Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Datadog exporter drops trace payloads when trace_buffer is full #28577

Closed
songy23 opened this issue Oct 24, 2023 · 2 comments · Fixed by #28582
Closed

Datadog exporter drops trace payloads when trace_buffer is full #28577

songy23 opened this issue Oct 24, 2023 · 2 comments · Fixed by #28582
Assignees
Labels
bug Something isn't working exporter/datadog Datadog components priority:p2 Medium

Comments

@songy23
Copy link
Member

songy23 commented Oct 24, 2023

Component(s)

exporter/datadog

What happened?

See https://github.com/open-telemetry/opentelemetry-collector-contrib/actions/runs/6627251378/job/18001822042?pr=28396#step:5:188 for an example

2023-10-24T13:10:43.382Z warn datadogexporter/zaplogger.go:43 Payload in channel full. Dropped 1 payload. {"kind": "exporter", "data_type": "metrics", "name": "datadog"}

Collector version

mainline

Environment information

No response

OpenTelemetry Collector configuration

No response

Log output

No response

Additional context

No response

@songy23 songy23 added bug Something isn't working priority:p2 Medium labels Oct 24, 2023
@songy23 songy23 self-assigned this Oct 24, 2023
@songy23 songy23 added the exporter/datadog Datadog components label Oct 24, 2023
mx-psi pushed a commit that referenced this issue Oct 25, 2023
**Description:**
Add a new traces config `trace_buffer` that specifies the number of
Datadog Agent TracerPayloads to buffer before dropping.

**Link to tracking Issue:**
Fixes #28577

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
sigilioso pushed a commit to carlossscastro/opentelemetry-collector-contrib that referenced this issue Oct 27, 2023
**Description:**
Add a new traces config `trace_buffer` that specifies the number of
Datadog Agent TracerPayloads to buffer before dropping.

**Link to tracking Issue:**
Fixes open-telemetry#28577

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
jmsnll pushed a commit to jmsnll/opentelemetry-collector-contrib that referenced this issue Nov 12, 2023
**Description:**
Add a new traces config `trace_buffer` that specifies the number of
Datadog Agent TracerPayloads to buffer before dropping.

**Link to tracking Issue:**
Fixes open-telemetry#28577

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
RoryCrispin pushed a commit to ClickHouse/opentelemetry-collector-contrib that referenced this issue Nov 24, 2023
**Description:**
Add a new traces config `trace_buffer` that specifies the number of
Datadog Agent TracerPayloads to buffer before dropping.

**Link to tracking Issue:**
Fixes open-telemetry#28577

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
@kallangerard
Copy link

kallangerard commented Jan 25, 2024

@songy23 does this actually fix this issue? The main issues I'm seeing are:

  • The exporter does not return any failure to the processor, so as far as the pipeline is concerned, the spans were submitted successfully
  • I believe this means that there's no otelcol telemetry to show this
  • why is the default behaviour unbuffered?
  • What should it be set to and under what conditions? In other words how do we actually use it?

I'm not sure if this is correct behaviour, regardless of a parameter. It seems like we should receive an ExportResult failure value as per the trace spec?

https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#exportbatch

@songy23
Copy link
Member Author

songy23 commented Jan 25, 2024

@kallangerard Unfortunately the change is from our upstream dependency library. It is not in the collector-contrib code base. The dependency library does not return any error when traces are dropped, the only indicator is the log message Payload in channel full. Dropped 1 payload. So when you see this log message, you may consider setting trace_buffer to a higher value.

We have relayed this issue to the dependency library to change the default behavior to back pressure instead of dropping.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working exporter/datadog Datadog components priority:p2 Medium
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants