[CONFIGURATION] File configuration - component registry#3537
Merged
Conversation
✅ Deploy Preview for opentelemetry-cpp-api-docs canceled.
|
62 tasks
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3537 +/- ##
=======================================
Coverage 89.99% 89.99%
=======================================
Files 219 219
Lines 7048 7048
=======================================
Hits 6342 6342
Misses 706 706 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull Request Overview
Implements a component registry to manage core and extension builders by name, allowing deferred binding of optional components.
- Introduce a
Registryclass for storing and retrieving core and extension component builders. - Define abstract builder interfaces for propagators, exporters, samplers, processors, and metric readers under
sdk/init. - Populate default
TextMapPropagatorBuilderimplementations for tracecontext, baggage, B3 (single and multi-header), and Jaeger inregistry.cc.
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/src/init/registry.cc | Register default TextMapPropagatorBuilders and implement registry lookup/add methods |
| sdk/include/opentelemetry/sdk/init/registry.h | Declare Registry class with maps for core and extension component builders |
| sdk/include/opentelemetry/sdk/init/text_map_propagator_builder.h | Define abstract TextMapPropagatorBuilder interface |
| sdk/include/opentelemetry/sdk/init/zipkin_span_exporter_builder.h | Define ZipkinSpanExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/prometheus_pull_metric_exporter_builder.h | Define PrometheusPullMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_http_span_exporter_builder.h | Define OtlpHttpSpanExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_http_push_metric_exporter_builder.h | Define OtlpHttpPushMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_http_log_record_exporter_builder.h | Define OtlpHttpLogRecordExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_grpc_span_exporter_builder.h | Define OtlpGrpcSpanExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_grpc_push_metric_exporter_builder.h | Define OtlpGrpcPushMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_grpc_log_record_exporter_builder.h | Define OtlpGrpcLogRecordExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_file_span_exporter_builder.h | Define OtlpFileSpanExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_file_push_metric_exporter_builder.h | Define OtlpFilePushMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/otlp_file_log_record_exporter_builder.h | Define OtlpFileLogRecordExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_span_processor_builder.h | Define ExtensionSpanProcessorBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_span_exporter_builder.h | Define ExtensionSpanExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_sampler_builder.h | Define ExtensionSamplerBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_push_metric_exporter_builder.h | Define ExtensionPushMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_pull_metric_exporter_builder.h | Define ExtensionPullMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_log_record_processor_builder.h | Define ExtensionLogRecordProcessorBuilder interface |
| sdk/include/opentelemetry/sdk/init/extension_log_record_exporter_builder.h | Define ExtensionLogRecordExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/console_span_exporter_builder.h | Define ConsoleSpanExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/console_push_metric_exporter_builder.h | Define ConsolePushMetricExporterBuilder interface |
| sdk/include/opentelemetry/sdk/init/console_log_record_exporter_builder.h | Define ConsoleLogRecordExporterBuilder interface |
Comments suppressed due to low confidence (1)
sdk/src/init/registry.cc:103
- Consider adding unit tests for Registry::GetTextMapPropagatorBuilder and AddTextMapPropagatorBuilder to validate registration and lookup behavior.
auto search = m_propagator_builders.find(name);
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
dbarker
reviewed
Jul 15, 2025
Member
Author
|
@dbarker Thanks for the first round of review. All comments addressed, please take another look. |
Member
Author
|
@Copilot Please take another look. |
dbarker
reviewed
Jul 16, 2025
dbarker
reviewed
Jul 16, 2025
dbarker
reviewed
Jul 16, 2025
malkia
added a commit
to malkia/opentelemetry-cpp
that referenced
this pull request
Jul 18, 2025
[CONFIGURATION] File configuration - component registry (open-telemetry#3537)
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contributes to #2481
This is a partial fix, that implements the component registry.
Changes
Please provide a brief description of the changes here.
For significant contributions please make sure you have completed the following items:
CHANGELOG.mdupdated for non-trivial changes