From d54bc5c032ad1cdb92ebd084d6617ecdc97dbb94 Mon Sep 17 00:00:00 2001 From: Leighton Date: Tue, 15 Dec 2020 13:26:34 -0500 Subject: [PATCH 1/4] include --- .../src/opentelemetry/instrumentation/requests/__init__.py | 2 +- .../src/opentelemetry/instrumentation/urllib/__init__.py | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/__init__.py b/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/__init__.py index c46ce53f96..993309c7ed 100644 --- a/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/__init__.py +++ b/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/__init__.py @@ -122,7 +122,7 @@ def _instrumented_requests_call( method = method.upper() span_name = "" if name_callback is not None: - span_name = name_callback() + span_name = name_callback(method, url) if not span_name or not isinstance(span_name, str): span_name = get_default_span_name(method) diff --git a/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py b/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py index 46e332f722..e04d4b8f0c 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py +++ b/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py @@ -101,9 +101,7 @@ def uninstrument_opener( _uninstrument_from(opener, restore_as_bound_func=True) -# pylint: disable=unused-argument -# pylint: disable=R0915 -def get_default_span_name(method): +def get_default_span_name(method, url): """Default implementation for name_callback, returns HTTP {method_name}.""" return "HTTP {}".format(method).strip() @@ -145,7 +143,7 @@ def _instrumented_open_call( span_name = "" if name_callback is not None: - span_name = name_callback() + span_name = name_callback(method, url) if not span_name or not isinstance(span_name, str): span_name = get_default_span_name(method) From 4587e20b5b02439ffddd76d2961c543ab3a152ee Mon Sep 17 00:00:00 2001 From: Leighton Date: Tue, 15 Dec 2020 13:29:04 -0500 Subject: [PATCH 2/4] fix --- .../src/opentelemetry/instrumentation/urllib/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py b/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py index e04d4b8f0c..3436e37888 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py +++ b/instrumentation/opentelemetry-instrumentation-urllib/src/opentelemetry/instrumentation/urllib/__init__.py @@ -101,7 +101,7 @@ def uninstrument_opener( _uninstrument_from(opener, restore_as_bound_func=True) -def get_default_span_name(method, url): +def get_default_span_name(method): """Default implementation for name_callback, returns HTTP {method_name}.""" return "HTTP {}".format(method).strip() From 48d42d4c82ae3638ebf5caaf94264afa1bd165a8 Mon Sep 17 00:00:00 2001 From: Leighton Date: Tue, 15 Dec 2020 13:42:51 -0500 Subject: [PATCH 3/4] test --- .../tests/test_requests_integration.py | 8 ++++---- .../tests/test_urllib_integration.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-requests/tests/test_requests_integration.py b/instrumentation/opentelemetry-instrumentation-requests/tests/test_requests_integration.py index aaecce1679..e871ecfbae 100644 --- a/instrumentation/opentelemetry-instrumentation-requests/tests/test_requests_integration.py +++ b/instrumentation/opentelemetry-instrumentation-requests/tests/test_requests_integration.py @@ -108,8 +108,8 @@ def test_basic(self): self.assertGreaterEqual(view_data.aggregator.current.sum, 0) def test_name_callback(self): - def name_callback(): - return "test_name" + def name_callback(method, url): + return "GET" + url RequestsInstrumentor().uninstrument() RequestsInstrumentor().instrument(name_callback=name_callback) @@ -117,10 +117,10 @@ def name_callback(): self.assertEqual(result.text, "Hello!") span = self.assert_span() - self.assertEqual(span.name, "test_name") + self.assertEqual(span.name, "GET" + self.URL) def test_name_callback_default(self): - def name_callback(): + def name_callback(method, url): return 123 RequestsInstrumentor().uninstrument() diff --git a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py index 09a6be8ffe..f39fe26a35 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py +++ b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_urllib_integration.py @@ -137,8 +137,8 @@ def test_basic(self): self.assertGreaterEqual(view_data.aggregator.current.sum, 0) def test_name_callback(self): - def name_callback(): - return "test_name" + def name_callback(method, url): + return "GET" + url URLLibInstrumentor().uninstrument() URLLibInstrumentor().instrument(name_callback=name_callback) @@ -147,10 +147,10 @@ def name_callback(): self.assertEqual(result.read(), b"Hello!") span = self.assert_span() - self.assertEqual(span.name, "test_name") + self.assertEqual(span.name, "GET" + self.URL) def test_name_callback_default(self): - def name_callback(): + def name_callback(method, url): return 123 URLLibInstrumentor().uninstrument() From e4eb2ca1a8f5a8fbcc265ed3dabacbfac751dd97 Mon Sep 17 00:00:00 2001 From: Leighton Date: Wed, 16 Dec 2020 11:03:52 -0500 Subject: [PATCH 4/4] changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b192426904..370b1303c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#242](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/242)) - `opentelemetry-instrumentation-flask` Do not emit a warning message for request contexts created with `app.test_request_context` ([#253](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/253)) +- `opentelemetry-instrumentation-requests`, `opentelemetry-instrumentation-urllib` Fix span name callback parameters +- ([#259](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/259)) ## [0.16b1](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.16b1) - 2020-11-26