@@ -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
0 commit comments