From 43d8d70f96f145c61a7654fd766aa362f89ef5a0 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 23 Jan 2026 14:09:00 +0900 Subject: [PATCH 1/2] falcon: use test_base to fetch metrics for assertions --- .../tests/test_falcon.py | 245 ++++++++---------- 1 file changed, 115 insertions(+), 130 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py b/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py index 7bd199006e..7b4622c238 100644 --- a/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py +++ b/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py @@ -487,26 +487,23 @@ def test_traced_not_recording(self): self.assertFalse(mock_span.set_attribute.called) self.assertFalse(mock_span.set_status.called) - metrics_list = self.memory_metrics_reader.get_metrics_data() - self.assertTrue(len(metrics_list.resource_metrics) != 0) - - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - data_points = list(metric.data.data_points) - self.assertEqual(len(data_points), 1) - for point in list(metric.data.data_points): - if isinstance(point, HistogramDataPoint): - self.assertEqual(point.count, 1) - if isinstance(point, NumberDataPoint): - self.assertEqual(point.value, 0) - for attr in point.attributes: - self.assertIn( - attr, - _recommended_metrics_attrs_old[ - metric.name - ], - ) + metrics = self.get_sorted_metrics() + self.assertTrue(len(metrics) != 0) + for metric in metrics: + data_points = list(metric.data.data_points) + self.assertEqual(len(data_points), 1) + for point in list(metric.data.data_points): + if isinstance(point, HistogramDataPoint): + self.assertEqual(point.count, 1) + if isinstance(point, NumberDataPoint): + self.assertEqual(point.value, 0) + for attr in point.attributes: + self.assertIn( + attr, + _recommended_metrics_attrs_old[ + metric.name + ], + ) def test_uninstrument_after_instrument(self): self.client().simulate_get(path="/hello") @@ -524,27 +521,23 @@ def test_falcon_metrics(self): self.client().simulate_get("/hello/756") self.client().simulate_get("/hello/756") self.client().simulate_get("/hello/756") - metrics_list = self.memory_metrics_reader.get_metrics_data() + metrics = self.get_sorted_metrics() number_data_point_seen = False histogram_data_point_seen = False - self.assertTrue(len(metrics_list.resource_metrics) != 0) - for resource_metric in metrics_list.resource_metrics: - self.assertTrue(len(resource_metric.scope_metrics) != 0) - for scope_metric in resource_metric.scope_metrics: - self.assertTrue(len(scope_metric.metrics) != 0) - for metric in scope_metric.metrics: - self.assertIn(metric.name, _expected_metric_names) - data_points = list(metric.data.data_points) - self.assertEqual(len(data_points), 1) - for point in data_points: - if isinstance(point, HistogramDataPoint): - self.assertEqual(point.count, 3) - histogram_data_point_seen = True - if isinstance(point, NumberDataPoint): - number_data_point_seen = True - for attr in point.attributes: - self.assertIn( - attr, _recommended_attrs[metric.name] + self.assertTrue(len(metrics) != 0) + for metric in metrics: + self.assertIn(metric.name, _expected_metric_names) + data_points = list(metric.data.data_points) + self.assertEqual(len(data_points), 1) + for point in data_points: + if isinstance(point, HistogramDataPoint): + self.assertEqual(point.count, 3) + histogram_data_point_seen = True + if isinstance(point, NumberDataPoint): + number_data_point_seen = True + for attr in point.attributes: + self.assertIn( + attr, _recommended_attrs[metric.name] ) self.assertTrue(number_data_point_seen and histogram_data_point_seen) @@ -556,31 +549,29 @@ def test_falcon_metric_values_new_semconv(self): self.client().simulate_get("/hello/756") duration = max(default_timer() - start, 0) - metrics_list = self.memory_metrics_reader.get_metrics_data() - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - data_points = list(metric.data.data_points) - self.assertEqual(len(data_points), 1) - for point in data_points: - if isinstance(point, HistogramDataPoint): - self.assertEqual(point.count, 1) - histogram_data_point_seen = True - self.assertAlmostEqual( - duration, point.sum, delta=10 - ) - self.assertEqual( - point.explicit_bounds, - HTTP_DURATION_HISTOGRAM_BUCKETS_NEW, - ) - if isinstance(point, NumberDataPoint): - self.assertEqual(point.value, 0) - number_data_point_seen = True - for attr in point.attributes: - self.assertIn( - attr, - _recommended_metrics_attrs_new[metric.name], - ) + metrics = self.get_sorted_metrics() + for metric in metrics: + data_points = list(metric.data.data_points) + self.assertEqual(len(data_points), 1) + for point in data_points: + if isinstance(point, HistogramDataPoint): + self.assertEqual(point.count, 1) + histogram_data_point_seen = True + self.assertAlmostEqual( + duration, point.sum, delta=10 + ) + self.assertEqual( + point.explicit_bounds, + HTTP_DURATION_HISTOGRAM_BUCKETS_NEW, + ) + if isinstance(point, NumberDataPoint): + self.assertEqual(point.value, 0) + number_data_point_seen = True + for attr in point.attributes: + self.assertIn( + attr, + _recommended_metrics_attrs_new[metric.name], + ) self.assertTrue(number_data_point_seen and histogram_data_point_seen) @@ -592,51 +583,49 @@ def test_falcon_metric_values_both_semconv(self): self.client().simulate_get("/hello/756") duration_s = default_timer() - start - metrics_list = self.memory_metrics_reader.get_metrics_data() + metrics = self.get_sorted_metrics() # pylint: disable=too-many-nested-blocks - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: + for metric in metrics: + if metric.unit == "ms": + self.assertEqual(metric.name, "http.server.duration") + elif metric.unit == "s": + self.assertEqual( + metric.name, "http.server.request.duration" + ) + else: + self.assertEqual( + metric.name, "http.server.active_requests" + ) + data_points = list(metric.data.data_points) + self.assertEqual(len(data_points), 1) + for point in data_points: + if isinstance(point, HistogramDataPoint): + self.assertEqual(point.count, 1) if metric.unit == "ms": - self.assertEqual(metric.name, "http.server.duration") + self.assertAlmostEqual( + max(round(duration_s * 1000), 0), + point.sum, + delta=10, + ) elif metric.unit == "s": - self.assertEqual( - metric.name, "http.server.request.duration" + self.assertAlmostEqual( + max(duration_s, 0), point.sum, delta=10 ) - else: self.assertEqual( - metric.name, "http.server.active_requests" + point.explicit_bounds, + HTTP_DURATION_HISTOGRAM_BUCKETS_NEW, ) - data_points = list(metric.data.data_points) - self.assertEqual(len(data_points), 1) - for point in data_points: - if isinstance(point, HistogramDataPoint): - self.assertEqual(point.count, 1) - if metric.unit == "ms": - self.assertAlmostEqual( - max(round(duration_s * 1000), 0), - point.sum, - delta=10, - ) - elif metric.unit == "s": - self.assertAlmostEqual( - max(duration_s, 0), point.sum, delta=10 - ) - self.assertEqual( - point.explicit_bounds, - HTTP_DURATION_HISTOGRAM_BUCKETS_NEW, - ) - - histogram_data_point_seen = True - if isinstance(point, NumberDataPoint): - self.assertEqual(point.value, 0) - number_data_point_seen = True - for attr in point.attributes: - self.assertIn( - attr, - _recommended_metrics_attrs_both[metric.name], - ) + + histogram_data_point_seen = True + if isinstance(point, NumberDataPoint): + self.assertEqual(point.value, 0) + number_data_point_seen = True + for attr in point.attributes: + self.assertIn( + attr, + _recommended_metrics_attrs_both[metric.name], + ) self.assertTrue(number_data_point_seen and histogram_data_point_seen) def test_falcon_metric_values(self): @@ -647,27 +636,25 @@ def test_falcon_metric_values(self): self.client().simulate_get("/hello/756") duration = max(round((default_timer() - start) * 1000), 0) - metrics_list = self.memory_metrics_reader.get_metrics_data() - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - data_points = list(metric.data.data_points) - self.assertEqual(len(data_points), 1) - for point in list(metric.data.data_points): - if isinstance(point, HistogramDataPoint): - self.assertEqual(point.count, 1) - histogram_data_point_seen = True - self.assertAlmostEqual( - duration, point.sum, delta=10 - ) - if isinstance(point, NumberDataPoint): - self.assertEqual(point.value, 0) - number_data_point_seen = True - for attr in point.attributes: - self.assertIn( - attr, - _recommended_metrics_attrs_old[metric.name], - ) + metrics = self.get_sorted_metrics() + for metric in metrics: + data_points = list(metric.data.data_points) + self.assertEqual(len(data_points), 1) + for point in list(metric.data.data_points): + if isinstance(point, HistogramDataPoint): + self.assertEqual(point.count, 1) + histogram_data_point_seen = True + self.assertAlmostEqual( + duration, point.sum, delta=10 + ) + if isinstance(point, NumberDataPoint): + self.assertEqual(point.value, 0) + number_data_point_seen = True + for attr in point.attributes: + self.assertIn( + attr, + _recommended_metrics_attrs_old[metric.name], + ) self.assertTrue(number_data_point_seen and histogram_data_point_seen) @@ -675,13 +662,11 @@ def test_metric_uninstrument(self): self.client().simulate_request(method="POST", path="/hello/756") FalconInstrumentor().uninstrument() self.client().simulate_request(method="POST", path="/hello/756") - metrics_list = self.memory_metrics_reader.get_metrics_data() - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - for point in list(metric.data.data_points): - if isinstance(point, HistogramDataPoint): - self.assertEqual(point.count, 1) + metrics = self.get_sorted_metrics() + for metric in metrics: + for point in list(metric.data.data_points): + if isinstance(point, HistogramDataPoint): + self.assertEqual(point.count, 1) class TestFalconInstrumentationWithTracerProvider(TestBase): From 27de00a2e90f2a78315ab2c0dcd285ce6f3111e4 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 23 Jan 2026 14:10:01 +0900 Subject: [PATCH 2/2] Formatting --- .../tests/test_falcon.py | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py b/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py index 7b4622c238..3ab1c6d102 100644 --- a/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py +++ b/instrumentation/opentelemetry-instrumentation-falcon/tests/test_falcon.py @@ -500,9 +500,7 @@ def test_traced_not_recording(self): for attr in point.attributes: self.assertIn( attr, - _recommended_metrics_attrs_old[ - metric.name - ], + _recommended_metrics_attrs_old[metric.name], ) def test_uninstrument_after_instrument(self): @@ -536,9 +534,7 @@ def test_falcon_metrics(self): if isinstance(point, NumberDataPoint): number_data_point_seen = True for attr in point.attributes: - self.assertIn( - attr, _recommended_attrs[metric.name] - ) + self.assertIn(attr, _recommended_attrs[metric.name]) self.assertTrue(number_data_point_seen and histogram_data_point_seen) def test_falcon_metric_values_new_semconv(self): @@ -557,9 +553,7 @@ def test_falcon_metric_values_new_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) histogram_data_point_seen = True - self.assertAlmostEqual( - duration, point.sum, delta=10 - ) + self.assertAlmostEqual(duration, point.sum, delta=10) self.assertEqual( point.explicit_bounds, HTTP_DURATION_HISTOGRAM_BUCKETS_NEW, @@ -590,13 +584,9 @@ def test_falcon_metric_values_both_semconv(self): if metric.unit == "ms": self.assertEqual(metric.name, "http.server.duration") elif metric.unit == "s": - self.assertEqual( - metric.name, "http.server.request.duration" - ) + self.assertEqual(metric.name, "http.server.request.duration") else: - self.assertEqual( - metric.name, "http.server.active_requests" - ) + self.assertEqual(metric.name, "http.server.active_requests") data_points = list(metric.data.data_points) self.assertEqual(len(data_points), 1) for point in data_points: @@ -644,9 +634,7 @@ def test_falcon_metric_values(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) histogram_data_point_seen = True - self.assertAlmostEqual( - duration, point.sum, delta=10 - ) + self.assertAlmostEqual(duration, point.sum, delta=10) if isinstance(point, NumberDataPoint): self.assertEqual(point.value, 0) number_data_point_seen = True