Skip to content

Commit 72519a1

Browse files
committed
Fix applying exemplar filter to observable instruments
1 parent 80bd271 commit 72519a1

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,17 @@ def __init__(
7878
] = []
7979

8080
def consume_measurement(self, measurement: Measurement) -> None:
81+
should_sample_exemplar = (
82+
self._sdk_config.exemplar_filter.should_sample(
83+
measurement.value,
84+
measurement.time_unix_nano,
85+
measurement.attributes,
86+
measurement.context,
87+
),
88+
)
8189
for reader_storage in self._reader_storages.values():
8290
reader_storage.consume_measurement(
83-
measurement,
84-
self._sdk_config.exemplar_filter.should_sample(
85-
measurement.value,
86-
measurement.time_unix_nano,
87-
measurement.attributes,
88-
measurement.context,
89-
),
91+
measurement, should_sample_exemplar
9092
)
9193

9294
def register_asynchronous_instrument(
@@ -126,7 +128,15 @@ def collect(
126128
)
127129

128130
for measurement in measurements:
129-
metric_reader_storage.consume_measurement(measurement)
131+
should_sample_exemplar = (
132+
self._sdk_config.exemplar_filter.should_sample(
133+
measurement.value,
134+
measurement.time_unix_nano,
135+
measurement.attributes,
136+
measurement.context,
137+
),
138+
)
139+
metric_reader_storage.consume_measurement(measurement, should_sample_exemplar)
130140

131141
result = self._reader_storages[metric_reader].collect()
132142

0 commit comments

Comments
 (0)