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-azure"
|
||||||
- "resource-detector-container"
|
- "resource-detector-container"
|
||||||
- "util-http"
|
- "util-http"
|
||||||
- "fastapi-slim"
|
- "fastapislim"
|
||||||
- "processor-baggage"
|
- "processor-baggage"
|
||||||
os: [ubuntu-20.04]
|
os: [ubuntu-20.04]
|
||||||
exclude:
|
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))
|
([#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
|
- `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))
|
([#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)
|
## Version 1.26.0/0.47b0 (2024-07-23)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,7 @@ API
|
||||||
---
|
---
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
from importlib.util import find_spec
|
from importlib.metadata import PackageNotFoundError, distribution
|
||||||
from typing import Collection
|
from typing import Collection
|
||||||
|
|
||||||
import fastapi
|
import fastapi
|
||||||
|
|
@ -285,10 +285,20 @@ class FastAPIInstrumentor(BaseInstrumentor):
|
||||||
app._is_instrumented_by_opentelemetry = False
|
app._is_instrumented_by_opentelemetry = False
|
||||||
|
|
||||||
def instrumentation_dependencies(self) -> Collection[str]:
|
def instrumentation_dependencies(self) -> Collection[str]:
|
||||||
if find_spec("fastapi") is not None:
|
# need to use distribution because find_spec("fastapi") will return
|
||||||
return (_fastapi,)
|
# something even with just fastapi-slim installed
|
||||||
if find_spec("fastapi_slim") is not None:
|
try:
|
||||||
|
distribution("fastapi-slim")
|
||||||
return (_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
|
# If neither is installed, return both as potential dependencies
|
||||||
return _instruments
|
return _instruments
|
||||||
|
|
||||||
|
|
|
||||||
14
tox.ini
14
tox.ini
|
|
@ -116,9 +116,9 @@ envlist =
|
||||||
|
|
||||||
; opentelemetry-instrumentation-fastapi
|
; opentelemetry-instrumentation-fastapi
|
||||||
py3{8,9,10,11,12}-test-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
|
||||||
pypy3-test-instrumentation-fastapi-slim
|
pypy3-test-instrumentation-fastapislim
|
||||||
lint-instrumentation-fastapi
|
lint-instrumentation-fastapi
|
||||||
|
|
||||||
; opentelemetry-instrumentation-flask
|
; 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-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 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: 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
|
fastapislim: 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
|
fastapislim: 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
|
fastapislim: 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
|
fastapislim: 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 -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-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
|
mysql: pip install opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue