Skip to content

Commit

Permalink
Merge branch 'main' into emdneto-patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
lzchen authored Aug 1, 2024
2 parents 71903ac + 32e6f6d commit a99dddb
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 12 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/instrumentations_1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- "resource-detector-azure"
- "resource-detector-container"
- "util-http"
- "fastapi-slim"
- "fastapislim"
- "processor-baggage"
os: [ubuntu-20.04]
exclude:
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#2746](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2746))
- `opentelemetry-instrumentation-grpc` Fixes the issue with the gRPC instrumentation not working with the 1.63.0 and higher version of gRPC
([#2483](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2484))
- `opentelemetry-instrumentation-fastapi` Fix fastapi-slim support
([#2756](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2756))

## Version 1.26.0/0.47b0 (2024-07-23)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def client_response_hook(span: Span, scope: dict[str, Any], message: dict[str, A
---
"""
import logging
from importlib.util import find_spec
from importlib.metadata import PackageNotFoundError, distribution
from typing import Collection

import fastapi
Expand Down Expand Up @@ -285,10 +285,20 @@ def uninstrument_app(app: fastapi.FastAPI):
app._is_instrumented_by_opentelemetry = False

def instrumentation_dependencies(self) -> Collection[str]:
if find_spec("fastapi") is not None:
return (_fastapi,)
if find_spec("fastapi_slim") is not None:
# need to use distribution because find_spec("fastapi") will return
# something even with just fastapi-slim installed
try:
distribution("fastapi-slim")
return (_fastapi_slim,)
except PackageNotFoundError:
pass

try:
distribution("fastapi")
return (_fastapi,)
except PackageNotFoundError:
pass

# If neither is installed, return both as potential dependencies
return _instruments

Expand Down
14 changes: 7 additions & 7 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ envlist =

; opentelemetry-instrumentation-fastapi
py3{8,9,10,11,12}-test-instrumentation-fastapi
py3{8,9,10,11,12}-test-instrumentation-fastapi-slim
py3{8,9,10,11,12}-test-instrumentation-fastapislim
pypy3-test-instrumentation-fastapi
pypy3-test-instrumentation-fastapi-slim
pypy3-test-instrumentation-fastapislim
lint-instrumentation-fastapi

; opentelemetry-instrumentation-flask
Expand Down Expand Up @@ -556,11 +556,11 @@ commands_pre =
fastapi: pip install opentelemetry-sdk@{env:CORE_REPO}\#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk
fastapi: pip install opentelemetry-test-utils@{env:CORE_REPO}\#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils
fastapi: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements.txt
fastapi-slim: pip install opentelemetry-api@{env:CORE_REPO}\#egg=opentelemetry-api&subdirectory=opentelemetry-api
fastapi-slim: pip install opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions
fastapi-slim: pip install opentelemetry-sdk@{env:CORE_REPO}\#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk
fastapi-slim: pip install opentelemetry-test-utils@{env:CORE_REPO}\#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils
fastapi-slim: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements-slim.txt
fastapislim: pip install opentelemetry-api@{env:CORE_REPO}\#egg=opentelemetry-api&subdirectory=opentelemetry-api
fastapislim: pip install opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions
fastapislim: pip install opentelemetry-sdk@{env:CORE_REPO}\#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk
fastapislim: pip install opentelemetry-test-utils@{env:CORE_REPO}\#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils
fastapislim: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements-slim.txt

mysql: pip install opentelemetry-api@{env:CORE_REPO}\#egg=opentelemetry-api&subdirectory=opentelemetry-api
mysql: pip install opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions
Expand Down

0 comments on commit a99dddb

Please sign in to comment.