Class: Fluent::Plugin::OpentelemetryOutput

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

Defined Under Namespace

Classes: RetryableResponse

Instance Method Summary collapse

Instance Method Details

#configure(conf) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 59

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

#format(tag, time, record) ⇒ Object



78
79
80
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 78

def format(tag, time, record)
  JSON.generate(record)
end

#multi_workers_ready?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 74

def multi_workers_ready?
  true
end

#write(chunk) ⇒ Object



82
83
84
85
86
87
88
89
90
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 82

def write(chunk)
  record = JSON.parse(chunk.read)

  if @grpc_handler
    @grpc_handler.export(record)
  else
    @http_handler.export(record)
  end
end