Skip to content

Commit 162363f

Browse files
committed
fix: fastapi auto-instrumentation by removing fastapi-slim support
Moreover `fastapi-slim` itself is discontinued from maintainers see fastapi/fastapi#11522 (comment) see https://fastapi.tiangolo.com/release-notes/#01120
1 parent 009bdba commit 162363f

File tree

9 files changed

+5
-174
lines changed

9 files changed

+5
-174
lines changed

.github/workflows/test_0.yml

-108
Original file line numberDiff line numberDiff line change
@@ -2212,24 +2212,6 @@ jobs:
22122212
- name: Run tests
22132213
run: tox -e py38-test-instrumentation-fastapi-main -- -ra
22142214

2215-
py38-test-instrumentation-fastapi-slim_ubuntu-latest:
2216-
name: instrumentation-fastapi-slim 3.8 Ubuntu
2217-
runs-on: ubuntu-latest
2218-
steps:
2219-
- name: Checkout repo @ SHA - ${{ github.sha }}
2220-
uses: actions/checkout@v4
2221-
2222-
- name: Set up Python 3.8
2223-
uses: actions/setup-python@v5
2224-
with:
2225-
python-version: "3.8"
2226-
2227-
- name: Install tox
2228-
run: pip install tox
2229-
2230-
- name: Run tests
2231-
run: tox -e py38-test-instrumentation-fastapi-slim -- -ra
2232-
22332215
py39-test-instrumentation-fastapi-main_ubuntu-latest:
22342216
name: instrumentation-fastapi-main 3.9 Ubuntu
22352217
runs-on: ubuntu-latest
@@ -2248,24 +2230,6 @@ jobs:
22482230
- name: Run tests
22492231
run: tox -e py39-test-instrumentation-fastapi-main -- -ra
22502232

2251-
py39-test-instrumentation-fastapi-slim_ubuntu-latest:
2252-
name: instrumentation-fastapi-slim 3.9 Ubuntu
2253-
runs-on: ubuntu-latest
2254-
steps:
2255-
- name: Checkout repo @ SHA - ${{ github.sha }}
2256-
uses: actions/checkout@v4
2257-
2258-
- name: Set up Python 3.9
2259-
uses: actions/setup-python@v5
2260-
with:
2261-
python-version: "3.9"
2262-
2263-
- name: Install tox
2264-
run: pip install tox
2265-
2266-
- name: Run tests
2267-
run: tox -e py39-test-instrumentation-fastapi-slim -- -ra
2268-
22692233
py310-test-instrumentation-fastapi-main_ubuntu-latest:
22702234
name: instrumentation-fastapi-main 3.10 Ubuntu
22712235
runs-on: ubuntu-latest
@@ -2284,24 +2248,6 @@ jobs:
22842248
- name: Run tests
22852249
run: tox -e py310-test-instrumentation-fastapi-main -- -ra
22862250

2287-
py310-test-instrumentation-fastapi-slim_ubuntu-latest:
2288-
name: instrumentation-fastapi-slim 3.10 Ubuntu
2289-
runs-on: ubuntu-latest
2290-
steps:
2291-
- name: Checkout repo @ SHA - ${{ github.sha }}
2292-
uses: actions/checkout@v4
2293-
2294-
- name: Set up Python 3.10
2295-
uses: actions/setup-python@v5
2296-
with:
2297-
python-version: "3.10"
2298-
2299-
- name: Install tox
2300-
run: pip install tox
2301-
2302-
- name: Run tests
2303-
run: tox -e py310-test-instrumentation-fastapi-slim -- -ra
2304-
23052251
py311-test-instrumentation-fastapi-main_ubuntu-latest:
23062252
name: instrumentation-fastapi-main 3.11 Ubuntu
23072253
runs-on: ubuntu-latest
@@ -2320,24 +2266,6 @@ jobs:
23202266
- name: Run tests
23212267
run: tox -e py311-test-instrumentation-fastapi-main -- -ra
23222268

2323-
py311-test-instrumentation-fastapi-slim_ubuntu-latest:
2324-
name: instrumentation-fastapi-slim 3.11 Ubuntu
2325-
runs-on: ubuntu-latest
2326-
steps:
2327-
- name: Checkout repo @ SHA - ${{ github.sha }}
2328-
uses: actions/checkout@v4
2329-
2330-
- name: Set up Python 3.11
2331-
uses: actions/setup-python@v5
2332-
with:
2333-
python-version: "3.11"
2334-
2335-
- name: Install tox
2336-
run: pip install tox
2337-
2338-
- name: Run tests
2339-
run: tox -e py311-test-instrumentation-fastapi-slim -- -ra
2340-
23412269
py312-test-instrumentation-fastapi-main_ubuntu-latest:
23422270
name: instrumentation-fastapi-main 3.12 Ubuntu
23432271
runs-on: ubuntu-latest
@@ -2356,24 +2284,6 @@ jobs:
23562284
- name: Run tests
23572285
run: tox -e py312-test-instrumentation-fastapi-main -- -ra
23582286

2359-
py312-test-instrumentation-fastapi-slim_ubuntu-latest:
2360-
name: instrumentation-fastapi-slim 3.12 Ubuntu
2361-
runs-on: ubuntu-latest
2362-
steps:
2363-
- name: Checkout repo @ SHA - ${{ github.sha }}
2364-
uses: actions/checkout@v4
2365-
2366-
- name: Set up Python 3.12
2367-
uses: actions/setup-python@v5
2368-
with:
2369-
python-version: "3.12"
2370-
2371-
- name: Install tox
2372-
run: pip install tox
2373-
2374-
- name: Run tests
2375-
run: tox -e py312-test-instrumentation-fastapi-slim -- -ra
2376-
23772287
pypy3-test-instrumentation-fastapi-main_ubuntu-latest:
23782288
name: instrumentation-fastapi-main pypy-3.8 Ubuntu
23792289
runs-on: ubuntu-latest
@@ -2392,24 +2302,6 @@ jobs:
23922302
- name: Run tests
23932303
run: tox -e pypy3-test-instrumentation-fastapi-main -- -ra
23942304

2395-
pypy3-test-instrumentation-fastapi-slim_ubuntu-latest:
2396-
name: instrumentation-fastapi-slim pypy-3.8 Ubuntu
2397-
runs-on: ubuntu-latest
2398-
steps:
2399-
- name: Checkout repo @ SHA - ${{ github.sha }}
2400-
uses: actions/checkout@v4
2401-
2402-
- name: Set up Python pypy-3.8
2403-
uses: actions/setup-python@v5
2404-
with:
2405-
python-version: "pypy-3.8"
2406-
2407-
- name: Install tox
2408-
run: pip install tox
2409-
2410-
- name: Run tests
2411-
run: tox -e pypy3-test-instrumentation-fastapi-slim -- -ra
2412-
24132305
py38-test-instrumentation-flask-0_ubuntu-latest:
24142306
name: instrumentation-flask-0 3.8 Ubuntu
24152307
runs-on: ubuntu-latest

CHANGELOG.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717

1818
## Fixed
1919

20+
- `opentelemetry-instrumentation-fastapi` fix `fastapi` auto-instrumentation by removing `fastapi-slim` support, `fastapi-slim` itself is discontinued from maintainers
21+
([???](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/???))
2022
- `opentelemetry-instrumentation-aws-lambda` Avoid exception when a handler is not present.
2123
([#2750](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2750))
2224
- `opentelemetry-instrumentation-django` Fix regression - `http.target` re-added back to old semconv duration metrics
2325
([#2746](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2746))
2426
- `opentelemetry-instrumentation-grpc` Fixes the issue with the gRPC instrumentation not working with the 1.63.0 and higher version of gRPC
2527
([#2483](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2484))
26-
- `opentelemetry-instrumentation-fastapi` Fix fastapi-slim support
27-
([#2756](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2756))
2828
- `opentelemetry-instrumentation-aws-lambda` Fixing w3c baggage support
2929
([#2589](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2589))
3030
- `opentelemetry-instrumentation-celery` propagates baggage

instrumentation/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
| [opentelemetry-instrumentation-django](./opentelemetry-instrumentation-django) | django >= 1.10 | Yes | experimental
2020
| [opentelemetry-instrumentation-elasticsearch](./opentelemetry-instrumentation-elasticsearch) | elasticsearch >= 6.0 | No | experimental
2121
| [opentelemetry-instrumentation-falcon](./opentelemetry-instrumentation-falcon) | falcon >= 1.4.1, < 4.0.0 | Yes | experimental
22-
| [opentelemetry-instrumentation-fastapi](./opentelemetry-instrumentation-fastapi) | fastapi ~= 0.58,fastapi-slim ~= 0.111 | Yes | migration
22+
| [opentelemetry-instrumentation-fastapi](./opentelemetry-instrumentation-fastapi) | fastapi ~= 0.58 | Yes | migration
2323
| [opentelemetry-instrumentation-flask](./opentelemetry-instrumentation-flask) | flask >= 1.0 | Yes | migration
2424
| [opentelemetry-instrumentation-grpc](./opentelemetry-instrumentation-grpc) | grpcio ~= 1.27 | No | experimental
2525
| [opentelemetry-instrumentation-httpx](./opentelemetry-instrumentation-httpx) | httpx >= 0.18.0 | No | migration

instrumentation/opentelemetry-instrumentation-fastapi/pyproject.toml

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ dependencies = [
3535
[project.optional-dependencies]
3636
instruments = [
3737
"fastapi ~= 0.58",
38-
"fastapi-slim ~= 0.111",
3938
]
4039

4140
[project.entry-points.opentelemetry_instrumentor]

instrumentation/opentelemetry-instrumentation-fastapi/src/opentelemetry/instrumentation/fastapi/__init__.py

+1-21
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,6 @@ def client_response_hook(span: Span, scope: dict[str, Any], message: dict[str, A
179179
from __future__ import annotations
180180

181181
import logging
182-
from importlib.metadata import PackageNotFoundError, distribution
183182
from typing import Collection
184183

185184
import fastapi
@@ -197,11 +196,7 @@ def client_response_hook(span: Span, scope: dict[str, Any], message: dict[str, A
197196
ClientResponseHook,
198197
ServerRequestHook,
199198
)
200-
from opentelemetry.instrumentation.fastapi.package import (
201-
_fastapi,
202-
_fastapi_slim,
203-
_instruments,
204-
)
199+
from opentelemetry.instrumentation.fastapi.package import _instruments
205200
from opentelemetry.instrumentation.fastapi.version import __version__
206201
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
207202
from opentelemetry.metrics import get_meter
@@ -298,21 +293,6 @@ def uninstrument_app(app: fastapi.FastAPI):
298293
app._is_instrumented_by_opentelemetry = False
299294

300295
def instrumentation_dependencies(self) -> Collection[str]:
301-
# need to use distribution because find_spec("fastapi") will return
302-
# something even with just fastapi-slim installed
303-
try:
304-
distribution("fastapi-slim")
305-
return (_fastapi_slim,)
306-
except PackageNotFoundError:
307-
pass
308-
309-
try:
310-
distribution("fastapi")
311-
return (_fastapi,)
312-
except PackageNotFoundError:
313-
pass
314-
315-
# If neither is installed, return both as potential dependencies
316296
return _instruments
317297

318298
def _instrument(self, **kwargs):

instrumentation/opentelemetry-instrumentation-fastapi/src/opentelemetry/instrumentation/fastapi/package.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
# limitations under the License.
1414

1515

16-
_fastapi = "fastapi ~= 0.58"
17-
_fastapi_slim = "fastapi-slim ~= 0.111"
18-
19-
_instruments = (_fastapi, _fastapi_slim)
16+
_instruments = ("fastapi ~= 0.58",)
2017

2118
_supports_metrics = True
2219

instrumentation/opentelemetry-instrumentation-fastapi/test-requirements-slim.txt

-32
This file was deleted.

opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py

-4
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,6 @@
8484
"library": "fastapi ~= 0.58",
8585
"instrumentation": "opentelemetry-instrumentation-fastapi==0.48b0.dev",
8686
},
87-
{
88-
"library": "fastapi-slim ~= 0.111",
89-
"instrumentation": "opentelemetry-instrumentation-fastapi==0.48b0.dev",
90-
},
9187
{
9288
"library": "flask >= 1.0",
9389
"instrumentation": "opentelemetry-instrumentation-flask==0.48b0.dev",

tox.ini

-1
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,6 @@ commands_pre =
557557
fastapi: pip install opentelemetry-sdk@{env:CORE_REPO}\#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk
558558
fastapi: pip install opentelemetry-test-utils@{env:CORE_REPO}\#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils
559559
fastapi-main: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements.txt
560-
fastapi-slim: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements-slim.txt
561560
lint-instrumentation-fastapi: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements.txt
562561

563562
mysql: pip install opentelemetry-api@{env:CORE_REPO}\#egg=opentelemetry-api&subdirectory=opentelemetry-api

0 commit comments

Comments
 (0)