[SDK] MeterProvider should own MeterContext, not share it (#2218)
This commit is contained in:
parent
5466c5be26
commit
6ecd201f95
|
@ -21,6 +21,9 @@ Increment the:
|
||||||
* [API] Remove include_trace_context
|
* [API] Remove include_trace_context
|
||||||
[#2194](https://github.com/open-telemetry/opentelemetry-cpp/pull/2194)
|
[#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:
|
Important changes:
|
||||||
|
|
||||||
* [REMOVAL] Remove the jaeger exporter
|
* [REMOVAL] Remove the jaeger exporter
|
||||||
|
@ -28,6 +31,12 @@ Important changes:
|
||||||
* The CMake `WITH_JAEGER` option has been removed
|
* The CMake `WITH_JAEGER` option has been removed
|
||||||
* Please remove usage of `WITH_JAEGER` from user scripts and makefiles.
|
* 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
|
## [1.9.1] 2023-05-26
|
||||||
|
|
||||||
* [DEPRECATION] Drop C++11 support
|
* [DEPRECATION] Drop C++11 support
|
||||||
|
|
|
@ -48,9 +48,7 @@ void InitMetrics()
|
||||||
auto context = metric_sdk::MeterContextFactory::Create();
|
auto context = metric_sdk::MeterContextFactory::Create();
|
||||||
context->AddMetricReader(std::move(reader));
|
context->AddMetricReader(std::move(reader));
|
||||||
|
|
||||||
std::shared_ptr<metric_sdk::MeterContext> s_context(std::move(context));
|
auto u_provider = metric_sdk::MeterProviderFactory::Create(std::move(context));
|
||||||
|
|
||||||
auto u_provider = metric_sdk::MeterProviderFactory::Create(s_context);
|
|
||||||
std::shared_ptr<opentelemetry::metrics::MeterProvider> provider(std::move(u_provider));
|
std::shared_ptr<opentelemetry::metrics::MeterProvider> provider(std::move(u_provider));
|
||||||
|
|
||||||
metrics_api::Provider::SetMeterProvider(provider);
|
metrics_api::Provider::SetMeterProvider(provider);
|
||||||
|
|
|
@ -52,9 +52,7 @@ void InitMetrics()
|
||||||
auto context = metric_sdk::MeterContextFactory::Create();
|
auto context = metric_sdk::MeterContextFactory::Create();
|
||||||
context->AddMetricReader(std::move(reader));
|
context->AddMetricReader(std::move(reader));
|
||||||
|
|
||||||
std::shared_ptr<metric_sdk::MeterContext> s_context(std::move(context));
|
auto u_provider = metric_sdk::MeterProviderFactory::Create(std::move(context));
|
||||||
|
|
||||||
auto u_provider = metric_sdk::MeterProviderFactory::Create(s_context);
|
|
||||||
std::shared_ptr<opentelemetry::metrics::MeterProvider> provider(std::move(u_provider));
|
std::shared_ptr<opentelemetry::metrics::MeterProvider> provider(std::move(u_provider));
|
||||||
|
|
||||||
metrics_api::Provider::SetMeterProvider(provider);
|
metrics_api::Provider::SetMeterProvider(provider);
|
||||||
|
|
|
@ -44,9 +44,9 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a new meter provider with a specified context
|
* 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::shared_ptr<opentelemetry::metrics::Meter> GetMeter(
|
||||||
nostd::string_view name,
|
nostd::string_view name,
|
||||||
|
|
|
@ -69,7 +69,7 @@ public:
|
||||||
const opentelemetry::sdk::resource::Resource &resource);
|
const opentelemetry::sdk::resource::Resource &resource);
|
||||||
|
|
||||||
static std::unique_ptr<opentelemetry::metrics::MeterProvider> Create(
|
static std::unique_ptr<opentelemetry::metrics::MeterProvider> Create(
|
||||||
std::shared_ptr<sdk::metrics::MeterContext> context);
|
std::unique_ptr<sdk::metrics::MeterContext> context);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace metrics
|
} // namespace metrics
|
||||||
|
|
|
@ -21,7 +21,9 @@ namespace metrics
|
||||||
namespace resource = opentelemetry::sdk::resource;
|
namespace resource = opentelemetry::sdk::resource;
|
||||||
namespace metrics_api = opentelemetry::metrics;
|
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,
|
MeterProvider::MeterProvider(std::unique_ptr<ViewRegistry> views,
|
||||||
sdk::resource::Resource resource) noexcept
|
sdk::resource::Resource resource) noexcept
|
||||||
|
|
|
@ -46,7 +46,7 @@ std::unique_ptr<opentelemetry::metrics::MeterProvider> MeterProviderFactory::Cre
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<opentelemetry::metrics::MeterProvider> MeterProviderFactory::Create(
|
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(
|
std::unique_ptr<opentelemetry::metrics::MeterProvider> provider(
|
||||||
new metrics_sdk::MeterProvider(std::move(context)));
|
new metrics_sdk::MeterProvider(std::move(context)));
|
||||||
|
|
Loading…
Reference in New Issue