Skip to content

Commit

Permalink
[release/v1.28.x-0.49bx] opentelemetry-instrumentation-httpx: make in…
Browse files Browse the repository at this point in the history
…strument_client a staticmethod again (#3003) (#3008)

* opentelemetry-instrumentation-httpx: make instrument_client a staticmethod again (#3003)

* opentelemetry-instrumentation-httpx: make instrument_client a staticmethod again

* ADd changelog

* Can be a classmethod

---------

Co-authored-by: Leighton Chen <lechen@microsoft.com>

* Move changelog entry to Unreleased section

---------

Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Co-authored-by: Leighton Chen <lechen@microsoft.com>
  • Loading branch information
3 people authored Nov 15, 2024
1 parent ec1c9ea commit 10b23cd
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
> The following components are released independently and maintain individual CHANGELOG files.
> Use [this search for a list of all CHANGELOG.md files in this repo](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md&type=code).
## Unreleased

### Added

### Fixed

- `opentelemetry-instrumentation-httpx`: instrument_client is a static method again
([#3003](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3003))

### Breaking changes

## Version 1.28.1/0.49b1 (2024-11-08)

### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -938,8 +938,9 @@ async def _handle_async_request_wrapper( # pylint: disable=too-many-locals

return response

@classmethod
def instrument_client(
self,
cls,
client: typing.Union[httpx.Client, httpx.AsyncClient],
tracer_provider: TracerProvider = None,
request_hook: typing.Union[
Expand Down Expand Up @@ -996,7 +997,7 @@ def instrument_client(
client._transport,
"handle_request",
partial(
self._handle_request_wrapper,
cls._handle_request_wrapper,
tracer=tracer,
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
request_hook=request_hook,
Expand All @@ -1008,7 +1009,7 @@ def instrument_client(
transport,
"handle_request",
partial(
self._handle_request_wrapper,
cls._handle_request_wrapper,
tracer=tracer,
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
request_hook=request_hook,
Expand All @@ -1021,7 +1022,7 @@ def instrument_client(
client._transport,
"handle_async_request",
partial(
self._handle_async_request_wrapper,
cls._handle_async_request_wrapper,
tracer=tracer,
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
async_request_hook=async_request_hook,
Expand All @@ -1033,7 +1034,7 @@ def instrument_client(
transport,
"handle_async_request",
partial(
self._handle_async_request_wrapper,
cls._handle_async_request_wrapper,
tracer=tracer,
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
async_request_hook=async_request_hook,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -910,13 +910,20 @@ def test_suppress_instrumentation_new_client(self):

self.assert_span(num_spans=0)

def test_instrument_client(self):
def test_instrument_client_called_on_the_instance(self):
client = self.create_client()
HTTPXClientInstrumentor().instrument_client(client)
result = self.perform_request(self.URL, client=client)
self.assertEqual(result.text, "Hello!")
self.assert_span(num_spans=1)

def test_instrument_client_called_on_the_class(self):
client = self.create_client()
HTTPXClientInstrumentor.instrument_client(client)
result = self.perform_request(self.URL, client=client)
self.assertEqual(result.text, "Hello!")
self.assert_span(num_spans=1)

def test_instrumentation_without_client(self):
HTTPXClientInstrumentor().instrument()
results = [
Expand Down

0 comments on commit 10b23cd

Please sign in to comment.