Skip to content

OTLP: Error when outputting OTLP in 3.2.7 (and 3.2.8) #10071

@nortenorte

Description

@nortenorte

Bug Report

Describe the bug
Error when outputing OTLP version 3.2.7 (and 3.2.8). Error happen on metrics, logs and traces.

Error have never happen on older versions, for example 3.2.6 works with exactly same test setup.

[error] [engine] chunk '422061-1741761815.979790809.flb' cannot be retried: task_id=0, input=opentelemetry.0 > output=opentelemetry.0

Se more details below.

To Reproduce

Build fluent-bit with the following defines:
cmake .. -DFLB_SIGNV4=Off -DFLB_AWS=Off -DFLB_FILTER_AWS=Off -DFLB_OUT_S3=Off -DFLB_OUT_KINESIS_FIREHOSE=Off -DFLB_OUT_KINESIS_STREAMS=Off -DFLB_OUT_CLOUDWATCH_LOGS=Off -DFLB_OUT_BIGQUERY=Off

  1. Start opentelemetry-collector. Official https://github.com/open-telemetry/opentelemetry-collector
    Installation according to: https://opentelemetry.io/docs/collector/installation/

Start:
bin> ./otelcorecol_linux_amd64 --config otelconfig.yaml

otelconfig.yaml

receivers:
  otlp:
    protocols:
      http:
        endpoint: 127.0.0.1:4319
 
processors:
  batch:
  memory_limiter:
    # 75% of maximum memory up to 2G
    limit_mib: 1536
    # 25% of limit up to 2G
    spike_limit_mib: 512
    check_interval: 5s
 
exporters:
  debug:
    verbosity: detailed
 
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [debug]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [debug]
    logs:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [debug]
  1. Start Fluent-bit.
    ./fluent-bit -c ~/fluent-bit.yaml

fluent-bit.yaml

service:
  log_level: trace 

pipeline:
  inputs:
    - name: opentelemetry
      tag: input_open
      listen: 127.0.0.1
      port: 4318
      successful_response_code: 200
  outputs:
    - name: opentelemetry
      host: 127.0.0.1
      port: 4319
      match: '*' 
  1. Send a otlp message.

Install protocurl: https://github.com/qaware/protocurl

Use protocurl to send a standard otlp metric message. (https://github.com/open-telemetry/opentelemetry-proto)

opentelemetry-proto> protocurl \
-i opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest \
-o opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse \
-u http://localhost:4318/v1/logs \
-d @examples/logs.json \
-I .
  1. Check result from otel-collector:
[2025/03/12 07:43:36] [debug] [task] created task=0x7e5244033dd0 id=0 OK
[2025/03/12 07:43:36] [debug] [upstream] KA connection #36 to 127.0.0.1:4319 is connected
[2025/03/12 07:43:36] [ warn] [output:opentelemetry:opentelemetry.0] error performing HTTP request, remote host=127.0.0.1:4319 connection error
[2025/03/12 07:43:36] [debug] [upstream] KA connection #36 to 127.0.0.1:4319 is now available
[2025/03/12 07:43:36] [debug] [upstream] KA connection #36 to 127.0.0.1:4319 has been disconnected by the remote service
[2025/03/12 07:43:36] [debug] [out flush] cb_destroy coro_id=0
[2025/03/12 07:43:36] [debug] [retry] new retry created for task_id=0 attempts=1
[2025/03/12 07:43:36] [ warn] [engine] failed to flush chunk '422061-1741761815.979790809.flb', retry in 9 seconds: task_id=0, input=opentelemetry.0 > output=opentelemetry.0 (out_id=0)
[2025/03/12 07:43:45] [ warn] [output:opentelemetry:opentelemetry.0] error performing HTTP request, remote host=127.0.0.1:4319 connection error
[2025/03/12 07:43:45] [debug] [out flush] cb_destroy coro_id=1
[2025/03/12 07:43:45] [debug] [task] task_id=0 reached retry-attempts limit 1/1
[2025/03/12 07:43:45] [error] [engine] chunk '422061-1741761815.979790809.flb' cannot be retried: task_id=0, input=opentelemetry.0 > output=opentelemetry.0
[2025/03/12 07:43:45] [debug] [task] destroy task=0x7e5244033dd0 (task_id=0)

Expected behavior

Result from v3.2.6:

[2025/03/12 07:47:58] [debug] [task] created task=0x756318033e90 id=0 OK
[2025/03/12 07:47:58] [debug] [upstream] KA connection #36 to 127.0.0.1:4319 is connected
[2025/03/12 07:47:58] [ info] [output:opentelemetry:opentelemetry.0] 127.0.0.1:4319, HTTP status=200
[2025/03/12 07:47:58] [debug] [upstream] KA connection #36 to 127.0.0.1:4319 is now available
[2025/03/12 07:47:58] [debug] [out flush] cb_destroy coro_id=0
[2025/03/12 07:47:58] [debug] [task] destroy task=0x756318033e90 (task_id=0)

Screenshots

Your Environment

  • Version used: 3.2.7 (and 3.2.8)
  • Configuration: See above configuration
  • Environment name and version (e.g. Kubernetes? What version?):
  • Server type and version: N/A
  • Operating System and version: Ubuntu 24.04 (x86), target system is embedded Linux on arm64. Same problem on both OS and hardware.
  • Filters and plugins: See above configuration

Additional context
Can not use v3.2.7 and v3.2.8 as we can not get out any logs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions