Repository navigation
Refator PMR to use dedicated thread and add export timeout setting - #8827
Conversation
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8827 +/- ##
============================================
- Coverage 90.43% 90.42% -0.02%
- Complexity 10908 10930 +22
============================================
Files 1015 1015
Lines 29854 29875 +21
Branches 3901 3905 +4
============================================
+ Hits 26998 27013 +15
- Misses 1907 1911 +4
- Partials 949 951 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- Replace scheduler-thread exports with dedicated worker thread architecture - Scheduler now only emits periodic tick signals; worker owns export execution - Use blocking signal queue for serial processing of ticks, flushes, and shutdown - Implement per-batch timeout enforcement that waits for actual completion - Add regression test proving no concurrent exporter invocations after timeout - Prevents concurrent Export calls as required by metrics specification The timeout behavior now correctly: - Applies timeout to each individual export(batch) invocation - Reports timeout after configured duration elapses - Waits for actual export completion before proceeding to next batch - Prevents concurrent exporter operations when timeout expires This addresses issue open-telemetry#8311 and aligns with PR open-telemetry#8827's dedicated-worker design.
|
@jack-berg sir Would it be okay if I add the |
|
Sure go for it. Open a the source branch of this PR in my fork. I'll review / merge it, and then the commit will be added to the batch. |
Pull request dashboard statusMerged · refreshed 2026-10-21 20:38 UTC Status above doesn't look right?
|
@jack-berg sir PTAL jack-berg#29 . |
This comment has been minimized.
This comment has been minimized.
jkwatson
left a comment
There was a problem hiding this comment.
API changes look fine to me.
…y-java into pmr-timeout-redesign
Fixes #8311.
Alternative to #8684. Motivation for this described here: #8684 (comment)
Summary:
PeriodicMetricReaderBuilder#setExporterTimeout(..)on top of the new shape, the implementation of which is much simpler after the refactor.maxExportBatchSizeis set, timeout applies per export (aligned with spec)