Skip to content

Commit a9c4e76

Browse files
committed
Set ExemplarFilter in SDK
1 parent e918960 commit a9c4e76

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed

sdk/include/opentelemetry/sdk/metrics/meter_context.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "opentelemetry/common/timestamp.h"
1313
#include "opentelemetry/nostd/function_ref.h"
1414
#include "opentelemetry/nostd/span.h"
15+
#include "opentelemetry/sdk/metrics/exemplar/filter.h"
1516
#include "opentelemetry/sdk/metrics/view/view_registry.h"
1617
#include "opentelemetry/sdk/resource/resource.h"
1718
#include "opentelemetry/version.h"
@@ -107,6 +108,9 @@ class MeterContext : public std::enable_shared_from_this<MeterContext>
107108
std::unique_ptr<MeterSelector> meter_selector,
108109
std::unique_ptr<View> view) noexcept;
109110

111+
void SetExemplarFilter(
112+
std::unique_ptr<metrics::ExemplarFilter> exemplar_filter) noexcept;
113+
110114
/**
111115
* NOTE - INTERNAL method, can change in future.
112116
* Adds a meter to the list of configured meters in thread safe manner.
@@ -135,6 +139,7 @@ class MeterContext : public std::enable_shared_from_this<MeterContext>
135139
opentelemetry::sdk::resource::Resource resource_;
136140
std::vector<std::shared_ptr<CollectorHandle>> collectors_;
137141
std::unique_ptr<ViewRegistry> views_;
142+
std::unique_ptr<metrics::ExemplarFilter> exemplar_filter_;
138143
opentelemetry::common::SystemTimestamp sdk_start_ts_;
139144
std::vector<std::shared_ptr<Meter>> meters_;
140145

sdk/include/opentelemetry/sdk/metrics/meter_provider.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "opentelemetry/metrics/meter_provider.h"
1111
#include "opentelemetry/nostd/shared_ptr.h"
1212
#include "opentelemetry/nostd/string_view.h"
13+
#include "opentelemetry/sdk/metrics/exemplar/filter.h"
1314
#include "opentelemetry/sdk/metrics/view/view_registry.h"
1415
#include "opentelemetry/sdk/resource/resource.h"
1516
#include "opentelemetry/version.h"
@@ -100,6 +101,9 @@ class MeterProvider final : public opentelemetry::metrics::MeterProvider
100101
std::unique_ptr<MeterSelector> meter_selector,
101102
std::unique_ptr<View> view) noexcept;
102103

104+
void SetExemplarFilter(
105+
std::unique_ptr<metrics::ExemplarFilter> exemplar_filter) noexcept;
106+
103107
/**
104108
* Shutdown the meter provider.
105109
*/

sdk/src/metrics/meter_context.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ void MeterContext::AddView(std::unique_ptr<InstrumentSelector> instrument_select
7474
views_->AddView(std::move(instrument_selector), std::move(meter_selector), std::move(view));
7575
}
7676

77+
void MeterContext::SetExemplarFilter(
78+
std::unique_ptr<metrics::ExemplarFilter> exemplar_filter) noexcept
79+
{
80+
exemplar_filter_ = std::move(exemplar_filter);
81+
}
82+
7783
void MeterContext::AddMeter(std::shared_ptr<Meter> meter)
7884
{
7985
std::lock_guard<opentelemetry::common::SpinLockMutex> guard(meter_lock_);

sdk/src/metrics/meter_provider.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ void MeterProvider::AddView(std::unique_ptr<InstrumentSelector> instrument_selec
110110
std::move(view));
111111
}
112112

113+
void MeterProvider::SetExemplarFilter(
114+
std::unique_ptr<metrics::ExemplarFilter> exemplar_filter) noexcept
115+
{
116+
return context_->SetExemplarFilter(std::move(exemplar_filter));
117+
}
118+
113119
/**
114120
* Shutdown the meter provider.
115121
*/

0 commit comments

Comments
 (0)