class Fluent::Plugin::KubernetesLogLevelFilter
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_kubernetes_log_level.rb, line 28 def configure(conf) super end
filter(tag, time, record)
click to toggle source
# File lib/fluent/plugin/filter_kubernetes_log_level.rb, line 55 def filter(tag, time, record) log.trace "Start to process record" log_level_key = @default_log_level_key logging_level = @default_logging_level app = 'app' if record.has_key?("kubernetes") if record["kubernetes"].has_key?("labels") if record["kubernetes"]["labels"].has_key?('app') app = record['kubernetes']['labels']['app'] end if record["kubernetes"]["labels"].has_key?(@log_level_key_label) log_level_key = record['kubernetes']['labels'][@log_level_key_label] log.debug "[App: #{app}]: kubernetes.labels.#{@log_level_key_label} found with the value #{log_level_key}" end if record["kubernetes"]["labels"].has_key?(@log_level_label) logging_level = record['kubernetes']['labels'][@log_level_label] log.debug "[App: #{app}]: kubernetes.labels.#{@log_level_label} found with the value #{logging_level}" end end end numeric_logging_level = level_to_num(logging_level) log.trace "Process current log level" if record.has_key?(log_level_key.capitalize) log.debug "[App: #{app}]: Downcasing capitalized log_level from #{log_level_key.capitalize}" current_log_level = record[log_level_key.capitalize] elsif record.has_key?(log_level_key) current_log_level = record[log_level_key] else log.warn "[App: #{app}]: log level key #{log_level_key} not found in record" return nil end numeric_level = level_to_num(current_log_level) if numeric_level >= numeric_logging_level log.debug "[App: #{app}]: Emitting record with #{current_log_level} level" record else log.debug "[App: #{app}]: Dropping record with #{current_log_level} level" nil end end
level_to_num(level)
click to toggle source
# File lib/fluent/plugin/filter_kubernetes_log_level.rb, line 32 def level_to_num(level) if not level.is_a? String return level.to_i end case level.downcase when 'trace', 'verbose' 10 when 'debug' 20 when 'info', 'information' 30 when 'warning', 'warn' 40 when 'error' 50 when 'fatal' 60 else level.to_i end end