Class: Fluent::Plugin::OpentelemetryOutput

Inherits:
Output
  • Object
show all
Defined in:
lib/fluent/plugin/out_opentelemetry.rb

Defined Under Namespace

Classes: BatchProcessor, RetryableResponse

Constant Summary collapse

DEFAULT_CHUNK_LIMIT_SIZE =

8MB

8 * 1024 * 1024

Instance Method Summary collapse

Instance Method Details

#configure(conf) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 73

def configure(conf)
  super

  if @grpc_config && !defined?(GRPC)
    raise Fluent::ConfigError, "To use gRPC feature, please install grpc gem such as 'fluent-gem install grpc'."
  end

  unless [@http_config, @grpc_config].one?
    raise Fluent::ConfigError, "Please configure either <http> or <grpc> section."
  end

  @http_handler = Opentelemetry::HttpOutputHandler.new(@http_config, @transport_config, log) if @http_config
  @grpc_handler = Opentelemetry::GrpcOutputHandler.new(@grpc_config, @transport_config, log) if @grpc_config
end

#multi_workers_ready?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 88

def multi_workers_ready?
  true
end

#write(chunk) ⇒ Object



92
93
94
95
96
97
98
99
100
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 92

def write(chunk)
  BatchProcessor.build_export_requests(chunk).each do |export_request|
    if @grpc_handler
      @grpc_handler.export(export_request)
    else
      @http_handler.export(export_request)
    end
  end
end