Skip to content

Issue 8831 exporter backpressure - #8928

Open
codedbyadiiii wants to merge 9 commits into
open-telemetry:mainfrom
codedbyadiiii:issue-8831-exporter-backpressure
Open

codedbyadiiii wants to merge 9 commits into
open-telemetry:mainfrom
codedbyadiiii:issue-8831-exporter-backpressure

Conversation

@codedbyadiiii

@codedbyadiiii codedbyadiiii commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Resolves #8831

Summary

Adds an opt-in mechanism for exporters to signal their supported export concurrency.

Changes

  • Adds getConcurrencyLimit() to span, log, and metric exporter interfaces.
  • Preserves serialized export behavior by default.
  • Adds bounded concurrent export execution to:
    • BatchSpanProcessor
    • BatchLogRecordProcessor
    • PeriodicMetricReader
  • Uses caller-runs backpressure when exporter capacity is exhausted.
  • Ensures in-flight exports complete during flush and shutdown.
  • Adds regression coverage for concurrent span exports.
  • Updates generated API-diff files.

Testing

  • ./gradlew :sdk:trace:test :sdk:logs:test :sdk:metrics:test
  • ./gradlew :sdk:trace:jApiCmp :sdk:logs:jApiCmp :sdk:metrics:jApiCmp

@codedbyadiiii
codedbyadiiii requested a review from a team as a code owner October 10, 2026 14:05
@otelbot otelbot Bot added the api-change Changes to public API surface area label Oct 10, 2026
@otelbot

otelbot Bot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

⚠️ API changes detected — additional maintainer review required

@jack-berg @jkwatson

This PR modifies the public API surface area of the following module(s):

  • opentelemetry-sdk-logs
  • opentelemetry-sdk-metrics
  • opentelemetry-sdk-trace

Please review the changes in docs/apidiffs/current_vs_latest/ carefully before approving.

@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Pull request dashboard status

Waiting on the author · refreshed 2026-10-22 13:46 UTC

Investigate required status check failures.

Status above doesn't look right?
  • Just replied or pushed? Anything around or after the refresh time above may not be picked up yet — give it a few minutes.
  • Should this be with reviewers? Comment /dashboard route:reviewers to route it to them.
  • Anything wrong — including the routing? Report it with what you expected; it helps us improve the dashboard.

@codecov

codecov Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 81.96721% with 22 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.40%. Comparing base (387f5c5) to head (db3118e).
⚠️ Report is 17 commits behind head on main.

Files with missing lines Patch % Lines
...metry/sdk/logs/export/BatchLogRecordProcessor.java 81.39% 8 Missing ⚠️
...telemetry/sdk/trace/export/BatchSpanProcessor.java 81.81% 8 Missing ⚠️
...metry/sdk/metrics/export/PeriodicMetricReader.java 81.25% 6 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #8928      +/-   ##
============================================
- Coverage     90.65%   90.40%   -0.25%     
- Complexity    10887    10961      +74     
============================================
  Files          1015     1018       +3     
  Lines         29731    30103     +372     
  Branches       3876     3929      +53     
============================================
+ Hits          26953    27215     +262     
- Misses         1860     1938      +78     
- Partials        918      950      +32     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jkwatson jkwatson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm ok with the API changes if Jack is.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api-change Changes to public API surface area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add mechanism for exporters to signal backpressure to callers

2 participants