open-telemetry / open-telemetry/opentelemetry-cpp
[Performance] Avoid duplication of metric exporters.
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 632
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 75
Description
When exporting metrics at different frequencies, the only possible setup according to the current spec is to:
- define multiple periodic metric readers, with different frequencies
- define a metric exporter dedicated for each reader
When all the exporters points to the same endpoint, this creates overhead:
- in memory, with multiple exporters send buffers
- in CPU, with multiple SSL sessions between the application and the endpoint
- in network, with multiple separate TCP/IP connections to the endpoint
To fix this, it should be possible to setup the SDK so that multiple metric readers can share a common metric exporter.
The spec however mentions that each reader owns one exporter, preventing sharing.
This performance improvement is blocked by the following spec change:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the OpenTelemetry specification change tracked in issue 3616, then assess how the C++ SDK could support multiple metric readers sharing one exporter. Done means the SDK design no longer requires a separate exporter for each reader while preserving the different export frequencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- observability-sre, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100