Class: Fluent::Plugin::Opentelemetry::GrpcInputHandler
- Inherits:
-
Object
- Object
- Fluent::Plugin::Opentelemetry::GrpcInputHandler
- Defined in:
- lib/fluent/plugin/opentelemetry/grpc_input_handler.rb
Defined Under Namespace
Classes: ExceptionInterceptor, ServiceHandler
Instance Method Summary collapse
-
#initialize(grpc_config, transport_config, logger) ⇒ GrpcInputHandler
constructor
A new instance of GrpcInputHandler.
- #run(logs:, metrics:, traces:) ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(grpc_config, transport_config, logger) ⇒ GrpcInputHandler
Returns a new instance of GrpcInputHandler.
53 54 55 56 57 |
# File 'lib/fluent/plugin/opentelemetry/grpc_input_handler.rb', line 53 def initialize(grpc_config, transport_config, logger) @grpc_config = grpc_config @logger = logger @credentials = Fluent::Plugin::Opentelemetry::GrpcTLS.server_credentials(transport_config) end |
Instance Method Details
#run(logs:, metrics:, traces:) ⇒ Object
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 |
# File 'lib/fluent/plugin/opentelemetry/grpc_input_handler.rb', line 59 def run(logs:, metrics:, traces:) @server = GRPC::RpcServer.new(interceptors: [ExceptionInterceptor.new]) @server.add_http2_port("#{@grpc_config.bind}:#{@grpc_config.port}", @credentials) logs_handler = ServiceHandler::Logs.new logs_handler.callback = lambda { |request| logs.call(request.to_json) Fluent::Plugin::Opentelemetry::Response::Logs.build } @server.handle(logs_handler) metrics_handler = ServiceHandler::Metrics.new metrics_handler.callback = lambda { |request| metrics.call(request.to_json) Fluent::Plugin::Opentelemetry::Response::Metrics.build } @server.handle(metrics_handler) traces_handler = ServiceHandler::Traces.new traces_handler.callback = lambda { |request| traces.call(request.to_json) Fluent::Plugin::Opentelemetry::Response::Traces.build } @server.handle(traces_handler) @server.run_till_terminated end |
#stop ⇒ Object
87 88 89 |
# File 'lib/fluent/plugin/opentelemetry/grpc_input_handler.rb', line 87 def stop @server.stop end |