[SDK] MeterProvider should own MeterContext, not share it (#2218)

This commit is contained in:
Marc Alff 2023-07-06 22:46:53 +02:00 committed by GitHub
parent 5466c5be26
commit 6ecd201f95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 18 additions and 11 deletions

View File

@ -21,6 +21,9 @@ Increment the:
* [API] Remove include_trace_context
[#2194](https://github.com/open-telemetry/opentelemetry-cpp/pull/2194)
* [SDK] MeterProvider should own MeterContext, not share it
[#2218](https://github.com/open-telemetry/opentelemetry-cpp/pull/2218)
Important changes:
* [REMOVAL] Remove the jaeger exporter
@ -28,6 +31,12 @@ Important changes:
* The CMake `WITH_JAEGER` option has been removed
* Please remove usage of `WITH_JAEGER` from user scripts and makefiles.
* [SDK] MeterProvider should own MeterContext, not share it
[#2218](https://github.com/open-telemetry/opentelemetry-cpp/pull/2218)
* The `MeterProvider` constructor now takes a `unique_ptr` on
`MeterContext`, instead of a `shared_ptr`.
* Please adjust SDK configuration code accordingly.
## [1.9.1] 2023-05-26
* [DEPRECATION] Drop C++11 support

View File

@ -48,9 +48,7 @@ void InitMetrics()
auto context = metric_sdk::MeterContextFactory::Create();
context->AddMetricReader(std::move(reader));
std::shared_ptr<metric_sdk::MeterContext> s_context(std::move(context));
auto u_provider = metric_sdk::MeterProviderFactory::Create(s_context);
auto u_provider = metric_sdk::MeterProviderFactory::Create(std::move(context));
std::shared_ptr<opentelemetry::metrics::MeterProvider> provider(std::move(u_provider));
metrics_api::Provider::SetMeterProvider(provider);

View File

@ -52,9 +52,7 @@ void InitMetrics()
auto context = metric_sdk::MeterContextFactory::Create();
context->AddMetricReader(std::move(reader));
std::shared_ptr<metric_sdk::MeterContext> s_context(std::move(context));
auto u_provider = metric_sdk::MeterProviderFactory::Create(s_context);
auto u_provider = metric_sdk::MeterProviderFactory::Create(std::move(context));
std::shared_ptr<opentelemetry::metrics::MeterProvider> provider(std::move(u_provider));
metrics_api::Provider::SetMeterProvider(provider);

View File

@ -44,9 +44,9 @@ public:
/**
* Initialize a new meter provider with a specified context
* @param context The shared meter configuration/pipeline for this provider.
* @param context The owned meter configuration/pipeline for this provider.
*/
explicit MeterProvider(std::shared_ptr<MeterContext> context) noexcept;
explicit MeterProvider(std::unique_ptr<MeterContext> context) noexcept;
nostd::shared_ptr<opentelemetry::metrics::Meter> GetMeter(
nostd::string_view name,

View File

@ -69,7 +69,7 @@ public:
const opentelemetry::sdk::resource::Resource &resource);
static std::unique_ptr<opentelemetry::metrics::MeterProvider> Create(
std::shared_ptr<sdk::metrics::MeterContext> context);
std::unique_ptr<sdk::metrics::MeterContext> context);
};
} // namespace metrics

View File

@ -21,7 +21,9 @@ namespace metrics
namespace resource = opentelemetry::sdk::resource;
namespace metrics_api = opentelemetry::metrics;
MeterProvider::MeterProvider(std::shared_ptr<MeterContext> context) noexcept : context_{context} {}
MeterProvider::MeterProvider(std::unique_ptr<MeterContext> context) noexcept
: context_(std::move(context))
{}
MeterProvider::MeterProvider(std::unique_ptr<ViewRegistry> views,
sdk::resource::Resource resource) noexcept

View File

@ -46,7 +46,7 @@ std::unique_ptr<opentelemetry::metrics::MeterProvider> MeterProviderFactory::Cre
}
std::unique_ptr<opentelemetry::metrics::MeterProvider> MeterProviderFactory::Create(
std::shared_ptr<sdk::metrics::MeterContext> context)
std::unique_ptr<sdk::metrics::MeterContext> context)
{
std::unique_ptr<opentelemetry::metrics::MeterProvider> provider(
new metrics_sdk::MeterProvider(std::move(context)));