fluent-plugin-opentelemetry

Fluentd input/output plugin to forward OpenTelemetry Protocol data.

Installation

RubyGems

gem install fluent-plugin-opentelemetry

Bundler

gem "fluent-plugin-opentelemetry"

And then execute:

$ bundle

Configuration

Input plugin

To receive data, this plugin requires <http> or <grpc> section, or both.

Root section

parameter type description default
tag string The tag of the event required

<http> section

This requires to receive data via HTTP/HTTPS.

parameter type description default
bind string The address to bind to 0.0.0.0
port integer The port to listen to 4318

<grpc> section

This requires to receive data via gRPC. It needs to install grpc gem manually to use this feature.

[!WARNING] Now, gRPC feature status is experimental.

parameter type description default
bind string The address to bind to 0.0.0.0
port integer The port to listen to 4317
  • <transport> section

Refer Config: Transport Section

Example

<source>
  @type opentelemetry
  tag opentelemetry

  <http>
    bind 0.0.0.0
    port 4318
  </http>

  <grpc>
    bind 0.0.0.0
    port 4317
  </grpc>
</source>

Output plugin

To send data, this plugin requires <http> or <grpc> section.

<http> section

This requires to send data via HTTP/HTTPS.

parameter type description default
endpoint string The endpoint for HTTP/HTTPS request http://127.0.0.1:4318
proxy string The proxy for HTTP/HTTPS request nil
error_response_as_unrecoverable bool Raise UnrecoverableError when the response code is not SUCCESS true
retryable_response_codes array The list of retryable response codes [429, 502, 503, 504]
read_timeout integer The read timeout in seconds 60
write_timeout integer The write timeout in seconds 60
connect_timeout integer The connect timeout in seconds 60
parameter type description available values default
compress enum The option to compress HTTP request body text / gzip text

<grpc> section

This requires to send data via gRPC. It needs to install grpc gem manually to use this feature.

[!WARNING] Now, gRPC feature status is experimental.

parameter type description default
endpoint string The endpoint for HTTP/HTTPS request 127.0.0.1:4317

<transport> section

parameter type description default
cert_path string Specifies the path of Certificate file nil
private_key_path string Specifies the path of Private Key file nil
private_key_passphrase string Specifies the public CA private key passphrase nil
parameter type description available values default
min_version enum Specifies the lower bound of the supported SSL/TLS protocol TLS1_1 / TLS1_2 / TLS1_3 nil
max_version enum The endpoint for HTTP/HTTPS request TLS1_1 / TLS1_2 / TLS1_3 nil

Refer Config: Transport Section

<buffer> section

parameter type description default
chunk_keys array Overwrites the default chunk_keys value in this plugin. tag

Refer Config: Buffer Section

Example

<match opentelemetry.**>
  @type opentelemetry

  <http>
    endpoint "https://127.0.0.1:4318"
  </http>
</match>
  • Copyright(c) 2025- Shizuo Fujita
  • License
    • Apache License, Version 2.0