Skip to content

Commit aadd4be

Browse files
committed
fix integration tests
Signed-off-by: emdneto <[email protected]>
1 parent dd8b269 commit aadd4be

File tree

1 file changed

+111
-10
lines changed

1 file changed

+111
-10
lines changed

opentelemetry-sdk/tests/metrics/integration_test/test_exemplars.py

Lines changed: 111 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14-
1514
import os
1615
from unittest import TestCase, mock
1716

18-
from opentelemetry import trace
17+
from opentelemetry import trace as trace_api
1918
from opentelemetry.sdk.metrics import Exemplar, MeterProvider
2019
from opentelemetry.sdk.metrics.export import (
2120
AggregationTemporality,
@@ -41,7 +40,6 @@ def test_always_on_exemplars(self):
4140
counter = meter.create_counter("testcounter")
4241
counter.add(10, {"label": "value1"})
4342
data = reader.get_metrics_data()
44-
4543
metrics = data.resource_metrics[0].scope_metrics[0].metrics
4644
self.assertEqual(
4745
metrics,
@@ -86,18 +84,123 @@ def test_trace_based_exemplars(self):
8684
trace_flags=TraceFlags(TraceFlags.SAMPLED),
8785
trace_state={},
8886
)
89-
span = trace.NonRecordingSpan(span_context)
90-
trace.set_span_in_context(span)
87+
span = trace_api.NonRecordingSpan(span_context)
88+
trace_api.set_span_in_context(span)
89+
reader = InMemoryMetricReader()
90+
meter_provider = MeterProvider(
91+
metric_readers=[reader],
92+
)
93+
94+
meter = meter_provider.get_meter("testmeter")
95+
counter = meter.create_counter("testcounter")
96+
with trace_api.use_span(span):
97+
counter.add(10, {"label": "value1"})
98+
data = reader.get_metrics_data()
99+
metrics = data.resource_metrics[0].scope_metrics[0].metrics
100+
self.assertEqual(
101+
metrics,
102+
[
103+
Metric(
104+
name="testcounter",
105+
description="",
106+
unit="",
107+
data=Sum(
108+
data_points=[
109+
NumberDataPoint(
110+
attributes={"label": "value1"},
111+
start_time_unix_nano=mock.ANY,
112+
time_unix_nano=mock.ANY,
113+
value=10,
114+
exemplars=[
115+
Exemplar(
116+
filtered_attributes={},
117+
value=10,
118+
time_unix_nano=mock.ANY,
119+
span_id=self.SPAN_ID,
120+
trace_id=self.TRACE_ID,
121+
),
122+
],
123+
)
124+
],
125+
aggregation_temporality=AggregationTemporality.CUMULATIVE,
126+
is_monotonic=True,
127+
),
128+
)
129+
],
130+
)
91131

132+
def test_default_exemplar_filter(self):
133+
span_context = SpanContext(
134+
trace_id=self.TRACE_ID,
135+
span_id=self.SPAN_ID,
136+
is_remote=False,
137+
trace_flags=TraceFlags(TraceFlags.SAMPLED),
138+
trace_state={},
139+
)
140+
span = trace_api.NonRecordingSpan(span_context)
141+
trace_api.set_span_in_context(span)
92142
reader = InMemoryMetricReader()
93143
meter_provider = MeterProvider(
94144
metric_readers=[reader],
95145
)
146+
96147
meter = meter_provider.get_meter("testmeter")
97148
counter = meter.create_counter("testcounter")
98-
counter.add(10, {"label": "value1"})
149+
with trace_api.use_span(span):
150+
counter.add(10, {"label": "value1"})
99151
data = reader.get_metrics_data()
152+
metrics = data.resource_metrics[0].scope_metrics[0].metrics
153+
self.assertEqual(
154+
metrics,
155+
[
156+
Metric(
157+
name="testcounter",
158+
description="",
159+
unit="",
160+
data=Sum(
161+
data_points=[
162+
NumberDataPoint(
163+
attributes={"label": "value1"},
164+
start_time_unix_nano=mock.ANY,
165+
time_unix_nano=mock.ANY,
166+
value=10,
167+
exemplars=[
168+
Exemplar(
169+
filtered_attributes={},
170+
value=10,
171+
time_unix_nano=mock.ANY,
172+
span_id=self.SPAN_ID,
173+
trace_id=self.TRACE_ID,
174+
),
175+
],
176+
)
177+
],
178+
aggregation_temporality=AggregationTemporality.CUMULATIVE,
179+
is_monotonic=True,
180+
),
181+
)
182+
],
183+
)
100184

185+
def test_exemplar_trace_based_manual_context(self):
186+
span_context = SpanContext(
187+
trace_id=self.TRACE_ID,
188+
span_id=self.SPAN_ID,
189+
is_remote=False,
190+
trace_flags=TraceFlags(TraceFlags.SAMPLED),
191+
trace_state={},
192+
)
193+
span = trace_api.NonRecordingSpan(span_context)
194+
ctx = trace_api.set_span_in_context(span)
195+
reader = InMemoryMetricReader()
196+
meter_provider = MeterProvider(
197+
metric_readers=[reader],
198+
)
199+
200+
meter = meter_provider.get_meter("testmeter")
201+
counter = meter.create_counter("testcounter")
202+
counter.add(10, {"label": "value1"}, context=ctx)
203+
data = reader.get_metrics_data()
101204
metrics = data.resource_metrics[0].scope_metrics[0].metrics
102205
self.assertEqual(
103206
metrics,
@@ -142,9 +245,8 @@ def test_always_off_exemplars(self):
142245
trace_flags=TraceFlags(TraceFlags.SAMPLED),
143246
trace_state={},
144247
)
145-
span = trace.NonRecordingSpan(span_context)
146-
trace.set_span_in_context(span)
147-
248+
span = trace_api.NonRecordingSpan(span_context)
249+
trace_api.set_span_in_context(span)
148250
reader = InMemoryMetricReader()
149251
meter_provider = MeterProvider(
150252
metric_readers=[reader],
@@ -153,7 +255,6 @@ def test_always_off_exemplars(self):
153255
counter = meter.create_counter("testcounter")
154256
counter.add(10, {"label": "value1"})
155257
data = reader.get_metrics_data()
156-
157258
metrics = data.resource_metrics[0].scope_metrics[0].metrics
158259
self.assertEqual(
159260
metrics,

0 commit comments

Comments
 (0)