class Fluent::Plugin::NaisLogformatFilter
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_nais_logformat.rb, line 11 def configure(conf) super end
filter(tag, time, record)
click to toggle source
# File lib/fluent/plugin/filter_nais_logformat.rb, line 15 def filter(tag, time, record) r = nil formats = @logformat if record['kubernetes'].is_a?(Hash) && record['kubernetes']['annotations'].is_a?(Hash) formats = record['kubernetes']['annotations']['nais_io/logformat'] end unless formats.nil? || formats == "" formats.split(',').each {|fmt| if fmt == 'accesslog' r = ::Nais::Log::Parser.parse_accesslog(record[@field]) unless r.nil? r = r[0] r[@field] = r.delete('request') level = ::Nais::Log::Parser.loglevel_from_http_response(r['response_code']) r['level'] = level unless level.nil? end elsif fmt == 'accesslog_with_processing_time' r = ::Nais::Log::Parser.parse_accesslog_with_processing_time(record[@field]) unless r.nil? r[@field] = r.delete('request') level = ::Nais::Log::Parser.loglevel_from_http_response(r['response_code']) r['level'] = level unless level.nil? end elsif fmt == 'accesslog_with_referer_useragent' r = ::Nais::Log::Parser.parse_accesslog_with_referer_useragent(record[@field]) unless r.nil? r[@field] = r.delete('request') level = ::Nais::Log::Parser.loglevel_from_http_response(r['response_code']) r['level'] = level unless level.nil? end elsif fmt == 'capnslog' r = ::Nais::Log::Parser.parse_capnslog(record[@field]) unless r.nil? r[@field] = r.delete('message') end elsif fmt == 'logrus' r = ::Nais::Log::Parser.parse_logrus(record[@field]) unless r.nil? r[@field] = r.delete('msg') end elsif fmt == 'gokit' r = ::Nais::Log::Parser.parse_gokit(record[@field]) unless r.nil? r['msg'] = r['err'] if r.has_key?('err') && !r.has_key?('msg') r[@field] = r.delete('msg') end elsif fmt == 'rook' r = ::Nais::Log::Parser.parse_rook(record[@field]) unless r.nil? r[@field] = r.delete('message') end elsif fmt == 'redis' r = ::Nais::Log::Parser.parse_redis(record[@field]) unless r.nil? r[@field] = r.delete('message') end elsif fmt == 'coredns' r = ::Nais::Log::Parser.parse_coredns(record[@field]) unless r.nil? r[@field] = r.delete('message') end elsif fmt == 'simple' r = ::Nais::Log::Parser.parse_simple(record[@field]) unless r.nil? r[@field] = r.delete('message') end elsif fmt == 'glog' r = ::Nais::Log::Parser.parse_glog(record[@field]) unless r.nil? r['source'] = r['file']+':'+r.delete('line') r['component'] = r.delete('file') r[@field] = r.delete('message') end elsif fmt == 'influxdb' r = ::Nais::Log::Parser.parse_influxdb(record[@field]) unless r.nil? r[@field] = r.delete('message') if r['component'] == 'httpd' level = ::Nais::Log::Parser.loglevel_from_http_response(r['response_code']) r['level'] = level unless level.nil? end end elsif fmt == 'log15' ::Nais::Log::Parser.remap_log15(record) end break unless r.nil? } end if r.nil? record else record.merge(r) end end