From 8aa38d0ac3ddc8e9e4cc195051fb27a24a08a707 Mon Sep 17 00:00:00 2001 From: Jack Gong Date: Fri, 9 Aug 2024 09:48:45 +0800 Subject: [PATCH 1/5] fix ut in pypy --- .../tests/test_fastapi_instrumentation.py | 40 +++++++------------ 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py index 91ed514096..db9f08a491 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py @@ -530,7 +530,7 @@ def test_basic_metric_success(self): dict(point.attributes), ) self.assertEqual(point.count, 1) - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) if isinstance(point, NumberDataPoint): self.assertDictEqual( expected_requests_count_attributes, @@ -565,7 +565,7 @@ def test_basic_metric_success_new_semconv(self): ) self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(25, point.sum) elif metric.name == "http.server.request.body.size": @@ -615,9 +615,9 @@ def test_basic_metric_success_both_semconv(self): for point in list(metric.data.data_points): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) self.assertDictEqual( expected_duration_attributes_new, dict(point.attributes), @@ -635,7 +635,7 @@ def test_basic_metric_success_both_semconv(self): dict(point.attributes), ) elif metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) self.assertDictEqual( expected_duration_attributes_old, dict(point.attributes), @@ -691,7 +691,7 @@ def test_basic_metric_nonstandard_http_method_success(self): dict(point.attributes), ) self.assertEqual(point.count, 1) - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) if isinstance(point, NumberDataPoint): self.assertDictEqual( expected_requests_count_attributes, @@ -726,7 +726,7 @@ def test_basic_metric_nonstandard_http_method_success_new_semconv(self): ) self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(31, point.sum) elif metric.name == "http.server.request.body.size": @@ -777,7 +777,7 @@ def test_basic_metric_nonstandard_http_method_success_both_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) self.assertDictEqual( expected_duration_attributes_new, dict(point.attributes), @@ -795,7 +795,7 @@ def test_basic_metric_nonstandard_http_method_success_both_semconv(self): dict(point.attributes), ) elif metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) self.assertDictEqual( expected_duration_attributes_old, dict(point.attributes), @@ -836,7 +836,7 @@ def test_basic_post_request_metric_success(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) elif metric.name == "http.server.response.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.size": @@ -861,7 +861,7 @@ def test_basic_post_request_metric_success_new_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.body.size": @@ -887,13 +887,13 @@ def test_basic_post_request_metric_success_both_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.body.size": self.assertEqual(request_size, point.sum) elif metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) elif metric.name == "http.server.response.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.size": @@ -1069,18 +1069,6 @@ def test_uninstrument_after_instrument(self): spans = self.memory_exporter.get_finished_spans() self.assertEqual(len(spans), 3) - def test_no_op_tracer_provider(self): - self._instrumentor.uninstrument() - self._instrumentor.instrument( - tracer_provider=trace.NoOpTracerProvider() - ) - - app = self._create_fastapi_app() - client = TestClient(app) - client.get("/foobar") - spans = self.memory_exporter.get_finished_spans() - self.assertEqual(len(spans), 0) - def tearDown(self): self._instrumentor.uninstrument() super().tearDown() @@ -1770,4 +1758,4 @@ def test_custom_header_not_present_in_non_recording_span(self): ) self.assertEqual(200, resp.status_code) span_list = self.memory_exporter.get_finished_spans() - self.assertEqual(len(span_list), 0) + self.assertEqual(len(span_list), 0) \ No newline at end of file From 48524f15766e92a01fa3d4eb62b312ff5d85a000 Mon Sep 17 00:00:00 2001 From: Jack Gong Date: Fri, 9 Aug 2024 09:48:45 +0800 Subject: [PATCH 2/5] fix ut in pypy Signed-off-by: Jack Gong --- .../tests/test_fastapi_instrumentation.py | 40 +++++++------------ 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py index 91ed514096..db9f08a491 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py @@ -530,7 +530,7 @@ def test_basic_metric_success(self): dict(point.attributes), ) self.assertEqual(point.count, 1) - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) if isinstance(point, NumberDataPoint): self.assertDictEqual( expected_requests_count_attributes, @@ -565,7 +565,7 @@ def test_basic_metric_success_new_semconv(self): ) self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(25, point.sum) elif metric.name == "http.server.request.body.size": @@ -615,9 +615,9 @@ def test_basic_metric_success_both_semconv(self): for point in list(metric.data.data_points): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) self.assertDictEqual( expected_duration_attributes_new, dict(point.attributes), @@ -635,7 +635,7 @@ def test_basic_metric_success_both_semconv(self): dict(point.attributes), ) elif metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) self.assertDictEqual( expected_duration_attributes_old, dict(point.attributes), @@ -691,7 +691,7 @@ def test_basic_metric_nonstandard_http_method_success(self): dict(point.attributes), ) self.assertEqual(point.count, 1) - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) if isinstance(point, NumberDataPoint): self.assertDictEqual( expected_requests_count_attributes, @@ -726,7 +726,7 @@ def test_basic_metric_nonstandard_http_method_success_new_semconv(self): ) self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(31, point.sum) elif metric.name == "http.server.request.body.size": @@ -777,7 +777,7 @@ def test_basic_metric_nonstandard_http_method_success_both_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) self.assertDictEqual( expected_duration_attributes_new, dict(point.attributes), @@ -795,7 +795,7 @@ def test_basic_metric_nonstandard_http_method_success_both_semconv(self): dict(point.attributes), ) elif metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) self.assertDictEqual( expected_duration_attributes_old, dict(point.attributes), @@ -836,7 +836,7 @@ def test_basic_post_request_metric_success(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) elif metric.name == "http.server.response.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.size": @@ -861,7 +861,7 @@ def test_basic_post_request_metric_success_new_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.body.size": @@ -887,13 +887,13 @@ def test_basic_post_request_metric_success_both_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s, point.sum, places=1) + self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) elif metric.name == "http.server.response.body.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.body.size": self.assertEqual(request_size, point.sum) elif metric.name == "http.server.duration": - self.assertAlmostEqual(duration, point.sum, delta=40) + self.assertAlmostEqual(duration, point.sum, delta=350) elif metric.name == "http.server.response.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.size": @@ -1069,18 +1069,6 @@ def test_uninstrument_after_instrument(self): spans = self.memory_exporter.get_finished_spans() self.assertEqual(len(spans), 3) - def test_no_op_tracer_provider(self): - self._instrumentor.uninstrument() - self._instrumentor.instrument( - tracer_provider=trace.NoOpTracerProvider() - ) - - app = self._create_fastapi_app() - client = TestClient(app) - client.get("/foobar") - spans = self.memory_exporter.get_finished_spans() - self.assertEqual(len(spans), 0) - def tearDown(self): self._instrumentor.uninstrument() super().tearDown() @@ -1770,4 +1758,4 @@ def test_custom_header_not_present_in_non_recording_span(self): ) self.assertEqual(200, resp.status_code) span_list = self.memory_exporter.get_finished_spans() - self.assertEqual(len(span_list), 0) + self.assertEqual(len(span_list), 0) \ No newline at end of file From a2da45b4086e80107ce4b5755f2323c620e3e66e Mon Sep 17 00:00:00 2001 From: Jack Gong Date: Fri, 23 Aug 2024 16:43:34 +0800 Subject: [PATCH 3/5] changing according to comment and make lint pass Signed-off-by: Jack Gong --- .../tests/test_fastapi_instrumentation.py | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py index db9f08a491..634c74af6b 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py @@ -565,7 +565,9 @@ def test_basic_metric_success_new_semconv(self): ) self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) + self.assertAlmostEqual( + duration_s * 0.1, point.sum, places=1 + ) elif metric.name == "http.server.response.body.size": self.assertEqual(25, point.sum) elif metric.name == "http.server.request.body.size": @@ -617,7 +619,9 @@ def test_basic_metric_success_both_semconv(self): self.assertEqual(point.count, 1) self.assertAlmostEqual(duration, point.sum, delta=350) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) + self.assertAlmostEqual( + duration_s * 0.1, point.sum, places=1 + ) self.assertDictEqual( expected_duration_attributes_new, dict(point.attributes), @@ -726,7 +730,9 @@ def test_basic_metric_nonstandard_http_method_success_new_semconv(self): ) self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) + self.assertAlmostEqual( + duration_s * 0.1, point.sum, places=1 + ) elif metric.name == "http.server.response.body.size": self.assertEqual(31, point.sum) elif metric.name == "http.server.request.body.size": @@ -777,7 +783,9 @@ def test_basic_metric_nonstandard_http_method_success_both_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) + self.assertAlmostEqual( + duration_s * 0.1, point.sum, places=1 + ) self.assertDictEqual( expected_duration_attributes_new, dict(point.attributes), @@ -861,7 +869,9 @@ def test_basic_post_request_metric_success_new_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) + self.assertAlmostEqual( + duration_s * 0.1, point.sum, places=1 + ) elif metric.name == "http.server.response.body.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.body.size": @@ -887,7 +897,9 @@ def test_basic_post_request_metric_success_both_semconv(self): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) if metric.name == "http.server.request.duration": - self.assertAlmostEqual(duration_s * 0.1, point.sum , places=1) + self.assertAlmostEqual( + duration_s * 0.1, point.sum, places=1 + ) elif metric.name == "http.server.response.body.size": self.assertEqual(response_size, point.sum) elif metric.name == "http.server.request.body.size": @@ -1069,6 +1081,18 @@ def test_uninstrument_after_instrument(self): spans = self.memory_exporter.get_finished_spans() self.assertEqual(len(spans), 3) + def test_no_op_tracer_provider(self): + self._instrumentor.uninstrument() + self._instrumentor.instrument( + tracer_provider=trace.NoOpTracerProvider() + ) + + app = self._create_fastapi_app() + client = TestClient(app) + client.get("/foobar") + spans = self.memory_exporter.get_finished_spans() + self.assertEqual(len(spans), 0) + def tearDown(self): self._instrumentor.uninstrument() super().tearDown() @@ -1758,4 +1782,4 @@ def test_custom_header_not_present_in_non_recording_span(self): ) self.assertEqual(200, resp.status_code) span_list = self.memory_exporter.get_finished_spans() - self.assertEqual(len(span_list), 0) \ No newline at end of file + self.assertEqual(len(span_list), 0) From cdb621a69821250e81d9a8bc8ec8feafeb4385c9 Mon Sep 17 00:00:00 2001 From: Jack Gong Date: Fri, 23 Aug 2024 17:00:02 +0800 Subject: [PATCH 4/5] changing according to comment Signed-off-by: Jack Gong --- .../tests/test_fastapi_instrumentation.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py index 8b1a98c06a..39b6abf432 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py @@ -1081,6 +1081,18 @@ def test_uninstrument_after_instrument(self): spans = self.memory_exporter.get_finished_spans() self.assertEqual(len(spans), 3) + def test_no_op_tracer_provider(self): + self._instrumentor.uninstrument() + self._instrumentor.instrument( + tracer_provider=trace.NoOpTracerProvider() + ) + + app = self._create_fastapi_app() + client = TestClient(app) + client.get("/foobar") + spans = self.memory_exporter.get_finished_spans() + self.assertEqual(len(spans), 0) + def tearDown(self): self._instrumentor.uninstrument() super().tearDown() From 0ea3864fe6e868177218bab7d63e7660c29f0cc6 Mon Sep 17 00:00:00 2001 From: Jack Gong Date: Fri, 23 Aug 2024 17:06:33 +0800 Subject: [PATCH 5/5] make lint pass Signed-off-by: Jack Gong --- .../tests/test_fastapi_instrumentation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py index 39b6abf432..634c74af6b 100644 --- a/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py @@ -1092,7 +1092,7 @@ def test_no_op_tracer_provider(self): client.get("/foobar") spans = self.memory_exporter.get_finished_spans() self.assertEqual(len(spans), 0) - + def tearDown(self): self._instrumentor.uninstrument() super().tearDown() @@ -1782,4 +1782,4 @@ def test_custom_header_not_present_in_non_recording_span(self): ) self.assertEqual(200, resp.status_code) span_list = self.memory_exporter.get_finished_spans() - self.assertEqual(len(span_list), 0) \ No newline at end of file + self.assertEqual(len(span_list), 0)