Skip to content

otlplog: document Exporter concurrency guarantees - #9244

Open
saluja-ji wants to merge 4 commits into
open-telemetry:mainfrom
saluja-ji:docs/otlploggrpc-concurrency
Open

saluja-ji wants to merge 4 commits into
open-telemetry:mainfrom
saluja-ji:docs/otlploggrpc-concurrency

Conversation

@saluja-ji

@saluja-ji saluja-ji commented Oct 19, 2026 •

Copy link
Copy Markdown

Fixes #9135
Fixes #9134

Also clarify the behavior of repeated Shutdown calls.

Documentation-only change; no behavior changes.

@linux-foundation-easycla

linux-foundation-easycla Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: saluja-ji / name: saluja-ji (39e052a)

@opentelemetry-pr-dashboard

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

Copy link
Copy Markdown

Pull request dashboard status

Waiting on the author · refreshed 2026-10-23 20:22 UTC

Respond to 1 review item (e.g. link a commit, explain why not, ask a follow-up):

  • Top-level threads: 1
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.

Copilot AI 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.

🟢 Approval recommended

The documentation matches existing behavior, and no unresolved issues remain.

No open issues 🎉

What changed in this PR

Documents the OTLP/gRPC log exporter’s concurrency contract, addressing #9135 without changing runtime behavior.

Changes:

  • Clarifies concurrency guarantees for Export, Shutdown, and ForceFlush, plus repeated shutdown behavior.
  • Adds a changelog entry.
File Description
exporters/​otlp/​otlplog/​otlploggrpc/​exporter.go Documents concurrency and repeated shutdown guarantees.
CHANGELOG.md Records the documentation update.

Review effort: Balanced

Comment thread CHANGELOG.md Outdated
Co-authored-by: David Ashpole <dashpole@google.com>

Copilot AI 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.

🟢 Approval recommended

The documentation matches existing behavior, and no unresolved issues remain.

No open issues 🎉

Review effort: Balanced

@pellared pellared left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we also solve #9134 in the same PR?

Comment thread exporters/otlp/otlplog/otlploggrpc/exporter.go Outdated
Comment thread exporters/otlp/otlplog/otlploggrpc/exporter.go Outdated
@saluja-ji

Copy link
Copy Markdown
Author

Can we also solve #9134 in the same PR?

Yes, I will add the same documentation to otlploghttp in this PR. That includes that ForceFlush is a no op, and that Shutdown doesn't wait for or cancel in flight exports. I will update the title and description to cover both issues.

@pellared pellared changed the title otlploggrpc: document Exporter concurrency guarantees otlplog: document Exporter concurrency guarantees Oct 20, 2026
// Shutdown shuts down the Exporter. Calls to Export after Shutdown return
// [log.ErrExporterShutdown]. Calls to ForceFlush perform no operation.
//
// Shutdown does not wait for or cancel in-flight Export calls.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't we also add this sentence in exporters/otlp/otlplog/otlploggrpc/exporter.go?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I think the sentence fits HTTP but not gRPC as written. In gRPC, Shutdown acquires clientMu, which Export holds for the duration of the upload, so it waits for in-flight exports (it still doesn't cancel them). I think documenting that distinction in the gRPC Shutdown comment would be more accurate than copying the HTTP wording, but I'm happy to go with whichever you prefer

@codecov

codecov Bot commented Oct 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.4%. Comparing base (d376be4) to head (bc6eb0e).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            main   #9244     +/-   ##
=======================================
- Coverage   89.4%   89.4%   -0.1%     
=======================================
  Files        345     345             
  Lines      22687   22687             
=======================================
- Hits       20289   20288      -1     
- Misses      2398    2399      +1     
Files with missing lines Coverage Δ
exporters/otlp/otlplog/otlploggrpc/exporter.go 92.3% <ø> (ø)
exporters/otlp/otlplog/otlploghttp/exporter.go 95.4% <ø> (ø)

... and 2 files with indirect coverage changes

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

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

otlploggrpc: document concrete exporter concurrency guarantees Document concurrency guarantees of the OTLP/HTTP log exporter

4 participants