@@ -711,7 +711,7 @@ std::unique_ptr<opentelemetry::sdk::trace::Sampler> SdkBuilder::CreateJaegerRemo
711711{
712712 std::unique_ptr<opentelemetry::sdk::trace::Sampler> sdk;
713713
714- static const std::string die (" JeagerRemoteSampler not supported" );
714+ static const std::string die (" JaegerRemoteSampler not supported" );
715715 throw UnsupportedException (die);
716716
717717 return sdk;
@@ -764,10 +764,19 @@ std::unique_ptr<opentelemetry::sdk::trace::Sampler> SdkBuilder::CreateParentBase
764764 local_parent_not_sampled_sdk = opentelemetry::sdk::trace::AlwaysOffSamplerFactory::Create ();
765765 }
766766
767- // FIXME-SDK: https://github.com/open-telemetry/opentelemetry-cpp/issues/3545
768- OTEL_INTERNAL_LOG_ERROR (" CreateParentBasedSampler: FIXME-SDK, missing param in parent factory" );
769- std::shared_ptr<opentelemetry::sdk::trace::Sampler> delegate_sampler = std::move (root_sdk);
770- sdk = opentelemetry::sdk::trace::ParentBasedSamplerFactory::Create (delegate_sampler);
767+ std::shared_ptr<opentelemetry::sdk::trace::Sampler> shared_root = std::move (root_sdk);
768+ std::shared_ptr<opentelemetry::sdk::trace::Sampler> shared_remote_parent_sampled =
769+ std::move (remote_parent_sampled_sdk);
770+ std::shared_ptr<opentelemetry::sdk::trace::Sampler> shared_remote_parent_not_sampled =
771+ std::move (remote_parent_not_sampled_sdk);
772+ std::shared_ptr<opentelemetry::sdk::trace::Sampler> shared_local_parent_sampled =
773+ std::move (local_parent_sampled_sdk);
774+ std::shared_ptr<opentelemetry::sdk::trace::Sampler> shared_local_parent_not_sampled =
775+ std::move (local_parent_not_sampled_sdk);
776+
777+ sdk = opentelemetry::sdk::trace::ParentBasedSamplerFactory::Create (
778+ shared_root, shared_remote_parent_sampled, shared_remote_parent_not_sampled,
779+ shared_local_parent_sampled, shared_local_parent_not_sampled);
771780
772781 return sdk;
773782}
@@ -1009,7 +1018,7 @@ std::unique_ptr<opentelemetry::sdk::trace::TracerProvider> SdkBuilder::CreateTra
10091018 std::unique_ptr<opentelemetry::sdk::trace::TracerProvider> sdk;
10101019
10111020 // FIXME-CONFIG: https://github.com/open-telemetry/opentelemetry-configuration/issues/70
1012- OTEL_INTERNAL_LOG_ERROR ( " CreateTracerProvider: FIXME-CONFIG ( IdGenerator) " );
1021+ // FIXME-CONFIG: Add support for IdGenerator
10131022
10141023 std::unique_ptr<opentelemetry::sdk::trace::Sampler> sampler;
10151024
@@ -1364,7 +1373,7 @@ SdkBuilder::CreateAttributesProcessor(
13641373
13651374 // FIXME-SDK: https://github.com/open-telemetry/opentelemetry-cpp/issues/3546
13661375 // FIXME-SDK: Need a subclass of AttributesProcessor for IncludeExclude
1367- OTEL_INTERNAL_LOG_ERROR ( " CreateAttributesProcessor() FIXME-SDK IncludeExclude " );
1376+ OTEL_INTERNAL_LOG_WARN ( " IncludeExclude attribute processor not supported, ignoring " );
13681377
13691378 return sdk;
13701379}
@@ -1699,7 +1708,7 @@ void SdkBuilder::SetResource(
16991708 {
17001709 // FIXME-SDK: https://github.com/open-telemetry/opentelemetry-cpp/issues/3548
17011710 // FIXME-SDK: Implement resource detectors
1702- OTEL_INTERNAL_LOG_ERROR ( " SdkBuilder::SetResource: FIXME-SDK detectors" );
1711+ OTEL_INTERNAL_LOG_WARN ( " resource detectors not supported, ignoring " );
17031712 }
17041713
17051714 auto sdk_resource =
@@ -1715,16 +1724,11 @@ void SdkBuilder::SetResource(
17151724std::unique_ptr<ConfiguredSdk> SdkBuilder::CreateConfiguredSdk (
17161725 const std::unique_ptr<opentelemetry::sdk::configuration::Configuration> &model) const
17171726{
1718- std::unique_ptr<ConfiguredSdk> sdk;
1719- auto resource = opentelemetry::sdk::resource::Resource::GetEmpty ();
1720- std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> tracer_provider;
1721- std::shared_ptr<opentelemetry::context::propagation::TextMapPropagator> propagator;
1722- std::shared_ptr<opentelemetry::sdk::metrics::MeterProvider> meter_provider;
1723- std::shared_ptr<opentelemetry::sdk::logs::LoggerProvider> logger_provider;
1727+ auto sdk = std::make_unique<ConfiguredSdk>();
17241728
17251729 if (!model->disabled )
17261730 {
1727- SetResource (resource, model->resource );
1731+ SetResource (sdk-> resource , model->resource );
17281732
17291733 if (model->attribute_limits )
17301734 {
@@ -1735,27 +1739,25 @@ std::unique_ptr<ConfiguredSdk> SdkBuilder::CreateConfiguredSdk(
17351739
17361740 if (model->tracer_provider )
17371741 {
1738- tracer_provider = CreateTracerProvider (model->tracer_provider , resource);
1742+ sdk-> tracer_provider = CreateTracerProvider (model->tracer_provider , sdk-> resource );
17391743 }
17401744
17411745 if (model->propagator )
17421746 {
1743- propagator = CreatePropagator (model->propagator );
1747+ sdk-> propagator = CreatePropagator (model->propagator );
17441748 }
17451749
17461750 if (model->meter_provider )
17471751 {
1748- meter_provider = CreateMeterProvider (model->meter_provider , resource);
1752+ sdk-> meter_provider = CreateMeterProvider (model->meter_provider , sdk-> resource );
17491753 }
17501754
17511755 if (model->logger_provider )
17521756 {
1753- logger_provider = CreateLoggerProvider (model->logger_provider , resource);
1757+ sdk-> logger_provider = CreateLoggerProvider (model->logger_provider , sdk-> resource );
17541758 }
17551759 }
17561760
1757- sdk = std::make_unique<ConfiguredSdk>(std::move (resource), tracer_provider, propagator,
1758- meter_provider, logger_provider);
17591761 return sdk;
17601762}
17611763
0 commit comments