Skip to content

Commit 995ba5a

Browse files
authored
Merge branch 'master' into travis
2 parents f7b4a31 + e1b5f8d commit 995ba5a

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed

lib/fluent/plugin/filter_kubernetes_log_levels.rb

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ module Plugin
2020
class KubernetesLogLevelsFilter < Fluent::Plugin::Filter
2121
Fluent::Plugin.register_filter("kubernetes_log_levels", self)
2222

23+
# TODO - solve default values problem
24+
config_param :log_level_label, :string
25+
config_param :log_level_key, :string
26+
config_param :default_logging_level, :string
2327

24-
config_param :log_level_label, :string, :default => 'logging-level'
25-
config_param :log_level_key, :string, :default => 'level'
2628
def configure(conf)
2729
super
2830
end
@@ -31,7 +33,6 @@ def level_to_num(level)
3133
case level
3234
when 'trace'
3335
10
34-
3536
when 'debug'
3637
20
3738
when 'info'
@@ -48,24 +49,35 @@ def level_to_num(level)
4849
end
4950

5051
def filter(tag, time, record)
51-
numeric_logging_level = 0
52+
puts @log_level_label
53+
log.trace "Start to process record"
54+
is_logging_label_exist = false
5255
if record.has_key?("kubernetes")
5356
if record["kubernetes"].has_key?("labels")
5457
if record["kubernetes"]["labels"].has_key?(@log_level_label)
58+
log.trace "kubernetes.labels.logging-level found"
5559
numeric_logging_level = level_to_num(record['kubernetes']['labels'][@log_level_label])
60+
is_logging_label_exist = true
5661
end
5762
end
5863
end
59-
if numeric_logging_level === 0
60-
record
61-
else
62-
numeric_level = level_to_num(record[@log_level_key])
63-
if numeric_level >= numeric_logging_level
64+
65+
log.trace "Check for logging level existance"
66+
if is_logging_label_exist == false
67+
if @default_logging_level.nil?
6468
record
6569
else
66-
nil
70+
numeric_logging_level = level_to_num(@default_logging_level)
6771
end
6872
end
73+
74+
log.trace "Process current log level"
75+
numeric_level = level_to_num(record[@log_level_key])
76+
if numeric_level >= numeric_logging_level
77+
record
78+
else
79+
nil
80+
end
6981
end
7082
end
7183
end

test/plugin/test_filter_kubernetes_log_levels.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@ class KubernetesLogLevelsFilterTest < Test::Unit::TestCase
2424

2525
@expected_info = []
2626

27-
@expected_static = [{
28-
'level' => 'debug'
27+
@expected_static_warning_default = [{
28+
'level' => 'warning'
2929
}]
3030
end
3131

3232
CONFIG = %[
3333
log_level_label logging-level
3434
log_level_key level
35+
default_logging_level warning
3536
]
3637

3738
# private
@@ -42,14 +43,15 @@ def create_driver(conf = CONFIG)
4243

4344
def filter(msg, time = event_time("2017-07-12 19:20:21 UTC"))
4445
d = create_driver
45-
d.run { d.feed('moshe', time, msg) }
46+
d.run { d.feed('kubernetes', time, msg) }
4647
d.filtered_records
4748
end
4849

4950
def test_default_configuration
5051
d = create_driver
5152
assert_equal 'logging-level', d.instance.config['log_level_label']
5253
assert_equal 'level', d.instance.config['log_level_key']
54+
assert_equal 'warning', d.instance.config['default_logging_level']
5355
end
5456

5557
def test_log_level_higher_then_threshold
@@ -65,6 +67,6 @@ def test_log_level_lower_then_threshold
6567
end
6668

6769
def test_static_log
68-
assert_equal @expected_static, filter({"level"=>"debug"})
70+
assert_equal @expected_static_warning_default, filter({"level"=>"warning"})
6971
end
7072
end

0 commit comments

Comments
 (0)