instrumentation/fastapi: fix fastapi-slim support (#2756)
This commit is contained in:
parent
dab664c06e
commit
32e6f6da92
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
- "resource-detector-azure"
|
||||
- "resource-detector-container"
|
||||
- "util-http"
|
||||
- "fastapi-slim"
|
||||
- "fastapislim"
|
||||
- "processor-baggage"
|
||||
os: [ubuntu-20.04]
|
||||
exclude:
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ API
|
|||
---
|
||||
"""
|
||||
import logging
|
||||
from importlib.util import find_spec
|
||||
from importlib.metadata import PackageNotFoundError, distribution
|
||||
from typing import Collection
|
||||
|
||||
import fastapi
|
||||
|
|
@ -285,10 +285,20 @@ class FastAPIInstrumentor(BaseInstrumentor):
|
|||
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
|
||||
|
||||
|
|
|
|||
14
tox.ini
14
tox.ini
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue