@@ -43,6 +43,8 @@ class OpentelemetryInput < Input
4343 def configure ( conf )
4444 super
4545
46+ expand_tag_placeholders ( @tag )
47+
4648 if @grpc_config && !defined? ( GRPC )
4749 raise Fluent ::ConfigError , "To use gRPC feature, please install grpc gem such as 'fluent-gem install grpc'."
4850 end
@@ -59,13 +61,13 @@ def start
5961 http_handler = Opentelemetry ::HttpInputHandler . new
6062 http_server_create_http_server ( :in_opentelemetry_http_server , addr : @http_config . bind , port : @http_config . port , logger : log ) do |serv |
6163 serv . post ( "/v1/logs" ) do |req |
62- http_handler . logs ( req ) { |record | router . emit ( @tag , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_LOGS , "message" => record } ) }
64+ http_handler . logs ( req ) { |record | router . emit ( tag_for ( Opentelemetry :: RECORD_TYPE_LOGS ) , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_LOGS , "message" => record } ) }
6365 end
6466 serv . post ( "/v1/metrics" ) do |req |
65- http_handler . metrics ( req ) { |record | router . emit ( @tag , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_METRICS , "message" => record } ) }
67+ http_handler . metrics ( req ) { |record | router . emit ( tag_for ( Opentelemetry :: RECORD_TYPE_METRICS ) , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_METRICS , "message" => record } ) }
6668 end
6769 serv . post ( "/v1/traces" ) do |req |
68- http_handler . traces ( req ) { |record | router . emit ( @tag , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_TRACES , "message" => record } ) }
70+ http_handler . traces ( req ) { |record | router . emit ( tag_for ( Opentelemetry :: RECORD_TYPE_TRACES ) , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_TRACES , "message" => record } ) }
6971 end
7072 end
7173 end
@@ -75,17 +77,31 @@ def start
7577 grpc_handler = Opentelemetry ::GrpcInputHandler . new ( @grpc_config , log )
7678 grpc_handler . run (
7779 logs : lambda { |record |
78- router . emit ( @tag , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_LOGS , "message" => record } )
80+ router . emit ( tag_for ( Opentelemetry :: RECORD_TYPE_LOGS ) , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_LOGS , "message" => record } )
7981 } ,
8082 metrics : lambda { |record |
81- router . emit ( @tag , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_METRICS , "message" => record } )
83+ router . emit ( tag_for ( Opentelemetry :: RECORD_TYPE_METRICS ) , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_METRICS , "message" => record } )
8284 } ,
8385 traces : lambda { |record |
84- router . emit ( @tag , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_TRACES , "message" => record } )
86+ router . emit ( tag_for ( Opentelemetry :: RECORD_TYPE_TRACES ) , Fluent ::EventTime . now , { "type" => Opentelemetry ::RECORD_TYPE_TRACES , "message" => record } )
8587 }
8688 )
8789 end
8890 end
8991 end
92+
93+ private
94+
95+ def expand_tag_placeholders ( tag )
96+ @expand_tag_placeholders ||= {
97+ Opentelemetry ::RECORD_TYPE_LOGS => tag . gsub ( Opentelemetry ::PLACEHOLDER_TYPE , Opentelemetry ::PLACEHOLDER_TYPE_LOGS ) ,
98+ Opentelemetry ::RECORD_TYPE_METRICS => tag . gsub ( Opentelemetry ::PLACEHOLDER_TYPE , Opentelemetry ::PLACEHOLDER_TYPE_METRICS ) ,
99+ Opentelemetry ::RECORD_TYPE_TRACES => tag . gsub ( Opentelemetry ::PLACEHOLDER_TYPE , Opentelemetry ::PLACEHOLDER_TYPE_TRACES )
100+ }
101+ end
102+
103+ def tag_for ( type )
104+ @expand_tag_placeholders [ type ]
105+ end
90106 end
91107end
0 commit comments