55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# 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.warning "[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
|