-
Notifications
You must be signed in to change notification settings - Fork 490
[CONFIGURATION] File configuration - component registry #3537
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
✅ Deploy Preview for opentelemetry-cpp-api-docs canceled.
|
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Implements a component registry to manage core and extension builders by name, allowing deferred binding of optional components.
- Introduce a
Registry
class 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
TextMapPropagatorBuilder
implementations 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);
sdk/include/opentelemetry/sdk/init/extension_span_processor_builder.h
Outdated
Show resolved
Hide resolved
sdk/include/opentelemetry/sdk/init/console_push_metric_exporter_builder.h
Outdated
Show resolved
Hide resolved
sdk/include/opentelemetry/sdk/init/console_log_record_exporter_builder.h
Outdated
Show resolved
Hide resolved
@dbarker Thanks for the first round of review. All comments addressed, please take another look. |
@Copilot Please take another look. |
sdk/include/opentelemetry/sdk/configuration/console_log_record_exporter_builder.h
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks!
[CONFIGURATION] File configuration - component registry (open-telemetry#3537)
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.md
updated for non-trivial changes