Skip to content

Commit c2dfd1a

Browse files
Merge branch 'main' into fix-jinja2-template
2 parents c758f67 + a47810c commit c2dfd1a

File tree

72 files changed

+3315
-1862
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+3315
-1862
lines changed

Diff for: .github/workflows/instrumentations_0.yml

+2-13
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- 'release/*'
77
pull_request:
88
env:
9-
CORE_REPO_SHA: 141a6a2e473ef7f0ec4915dfb71e3c0fa595283e
9+
CORE_REPO_SHA: main
1010

1111
jobs:
1212
instrumentations-0:
@@ -66,7 +66,6 @@ jobs:
6666
- "redis"
6767
- "remoulade"
6868
- "requests"
69-
- "sklearn"
7069
- "sqlalchemy"
7170
- "sqlite3"
7271
- "starlette"
@@ -75,14 +74,6 @@ jobs:
7574
- "tortoiseorm"
7675
os: [ubuntu-20.04]
7776
exclude:
78-
- python-version: py39
79-
package: "sklearn"
80-
- python-version: py310
81-
package: "sklearn"
82-
- python-version: py311
83-
package: "sklearn"
84-
- python-version: py312
85-
package: "sklearn"
8677
- python-version: py312
8778
package: "boto"
8879
- python-version: py312
@@ -103,8 +94,6 @@ jobs:
10394
package: "remoulade"
10495
- python-version: pypy3
10596
package: "requests"
106-
- python-version: pypy3
107-
package: "sklearn"
10897
- python-version: pypy3
10998
package: "confluent-kafka"
11099
- python-version: pypy3
@@ -125,6 +114,6 @@ jobs:
125114
path: |
126115
.tox
127116
~/.cache/pip
128-
key: v7-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
117+
key: v7-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('gen-requirements.txt', 'dev-requirements.txt') }}
129118
- name: run tox
130119
run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- -ra

Diff for: .github/workflows/instrumentations_1.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- 'release/*'
77
pull_request:
88
env:
9-
CORE_REPO_SHA: 141a6a2e473ef7f0ec4915dfb71e3c0fa595283e
9+
CORE_REPO_SHA: main
1010

1111
jobs:
1212
instrumentations-1:
@@ -38,6 +38,7 @@ jobs:
3838
- "resource-detector-azure"
3939
- "resource-detector-container"
4040
- "util-http"
41+
- "fastapi-slim"
4142
os: [ubuntu-20.04]
4243
exclude:
4344
- python-version: pypy3
@@ -58,6 +59,6 @@ jobs:
5859
path: |
5960
.tox
6061
~/.cache/pip
61-
key: v7-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
62+
key: v7-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('gen-requirements.txt', 'dev-requirements.txt') }}
6263
- name: run tox
6364
run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- -ra

Diff for: .github/workflows/lint.yml

+1-29
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- 'release/*'
77
pull_request:
88
env:
9-
CORE_REPO_SHA: 141a6a2e473ef7f0ec4915dfb71e3c0fa595283e
9+
CORE_REPO_SHA: main
1010

1111
jobs:
1212
lint-3_12:
@@ -93,31 +93,3 @@ jobs:
9393
key: v7-build-tox-cache-${{ matrix.package }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
9494
- name: run tox
9595
run: tox -e lint-${{ matrix.package }}
96-
97-
lint-3_8:
98-
strategy:
99-
fail-fast: false # ensures the entire test matrix is run, even if one permutation fails
100-
matrix:
101-
package:
102-
- "instrumentation-sklearn"
103-
os: [ubuntu-20.04]
104-
runs-on: ubuntu-20.04
105-
steps:
106-
- name: Checkout Contrib Repo @ SHA - ${{ github.sha }}
107-
uses: actions/checkout@v4
108-
- name: Set up Python 3.8
109-
uses: actions/setup-python@v5
110-
with:
111-
python-version: 3.8
112-
- name: Install tox
113-
run: pip install tox
114-
- name: Cache tox environment
115-
# Preserves .tox directory between runs for faster installs
116-
uses: actions/cache@v4
117-
with:
118-
path: |
119-
.tox
120-
~/.cache/pip
121-
key: v7-build-tox-cache-${{ matrix.package }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
122-
- name: run tox
123-
run: tox -e lint-${{ matrix.package }}

Diff for: .github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- 'release/*'
77
pull_request:
88
env:
9-
CORE_REPO_SHA: 141a6a2e473ef7f0ec4915dfb71e3c0fa595283e
9+
CORE_REPO_SHA: main
1010

1111
jobs:
1212
misc:

Diff for: CHANGELOG.md

+37-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- `opentelemetry-instrumentation-flask` Add `http.route` and `http.target` to metric attributes
13+
([#2621](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2621))
14+
- `opentelemetry-instrumentation-aws-lambda` Enable global propagator for AWS instrumentation
15+
([#2708](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2708))
16+
- `opentelemetry-instrumentation-sklearn` Deprecated the sklearn instrumentation
17+
([#2708](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2708))
1218
- `opentelemetry-instrumentation-pyramid` Record exceptions raised when serving a request
1319
([#2622](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2622))
1420
- `opentelemetry-sdk-extension-aws` Add AwsXrayLambdaPropagator
@@ -21,23 +27,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2127
([#2638](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2638))
2228
- `opentelemetry-instrumentation-asgi` Implement new semantic convention opt-in with stable http semantic conventions
2329
([#2610](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2610))
30+
- `opentelemetry-instrumentation-fastapi` Implement new semantic convention opt-in with stable http semantic conventions
31+
([#2682](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2682))
2432
- `opentelemetry-instrumentation-httpx` Implement new semantic convention opt-in migration with stable http semantic conventions
2533
([#2631](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2631))
2634
- `opentelemetry-instrumentation-system-metrics` Permit to use psutil 6.0+.
2735
([#2630](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2630))
2836
- `opentelemetry-instrumentation-system-metrics` Add support for capture open file descriptors
2937
([#2652](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2652))
38+
- `opentelemetry-instrumentation-httpx` Add support for instrument client with proxy
39+
([#2664](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2664))
40+
- `opentelemetry-instrumentation-aiohttp-client` Implement new semantic convention opt-in migration
41+
([#2673](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2673))
42+
- `opentelemetry-instrumentation-django` Add `http.target` to Django duration metric attributes
43+
([#2624](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2624))
44+
- `opentelemetry-instrumentation-urllib3` Implement new semantic convention opt-in migration
45+
([#2715](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2715))
46+
- `opentelemetry-instrumentation-django` Implement new semantic convention opt-in with stable http semantic conventions
47+
([#2714](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2714))
3048

3149
### Breaking changes
3250

3351
- `opentelemetry-instrumentation-asgi`, `opentelemetry-instrumentation-fastapi`, `opentelemetry-instrumentation-starlette` Use `tracer` and `meter` of originating components instead of one from `asgi` middleware
3452
([#2580](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2580))
35-
- Populate `{method}` as `HTTP` on `_OTHER` methods from scope
53+
- Populate `{method}` as `HTTP` on `_OTHER` methods from scope for `asgi` middleware
3654
([#2610](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2610))
37-
55+
- Populate `{method}` as `HTTP` on `_OTHER` methods from scope for `fastapi` middleware
56+
([#2682](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2682))
57+
- `opentelemetry-instrumentation-urllib3` Populate `{method}` as `HTTP` on `_OTHER` methods for span name
58+
([#2715](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2715))
59+
- Populate `{method}` as `HTTP` on `_OTHER` methods from scope for `fastapi` instrumentation
60+
([#2682](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2682))
61+
- Populate `{method}` as `HTTP` on `_OTHER` methods from scope for `django` middleware
62+
([#2714](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2714))
63+
- `opentelemetry-instrumentation-httpx`, `opentelemetry-instrumentation-aiohttp-client`,
64+
`opentelemetry-instrumentation-requests` Populate `{method}` as `HTTP` on `_OTHER` methods
65+
([#2726](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2726))
66+
- `opentelemetry-instrumentation-fastapi` Add dependency support for fastapi-slim
67+
([#2702](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2702))
3868

3969
### Fixed
4070

71+
- Handle `redis.exceptions.WatchError` as a non-error event in redis instrumentation
72+
([#2668](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2668))
4173
- `opentelemetry-instrumentation-httpx` Ensure httpx.get or httpx.request like methods are instrumented
4274
([#2538](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2538))
4375
- Add Python 3.12 support
@@ -53,14 +85,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5385
- `opentelemetry-instrumentation-asgi` Fix generation of `http.target` and `http.url` attributes for ASGI apps
5486
using sub apps
5587
([#2477](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2477))
56-
- `opentelemetry-instrumentation-aws-lambda` Bugfix: AWS Lambda event source key incorrect for SNS in instrumentation library.
88+
- `opentelemetry-instrumentation-aws-lambda` Bugfix: AWS Lambda event source key incorrect for SNS in instrumentation library.
5789
([#2612](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2612))
5890
- `opentelemetry-instrumentation-asyncio` instrumented `asyncio.wait_for` properly raises `asyncio.TimeoutError` as expected
5991
([#2637](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2637))
6092
- `opentelemetry-instrumentation-django` Handle exceptions from request/response hooks
6193
([#2153](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2153))
6294
- `opentelemetry-instrumentation-asgi` Removed `NET_HOST_NAME` AND `NET_HOST_PORT` from active requests count attribute
6395
([#2610](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2610))
96+
- `opentelemetry-instrumentation-asgi` Bugfix: Middleware did not set status code attribute on duration metrics for non-recording spans.
97+
([#2627](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2627))
6498

6599

66100
## Version 1.25.0/0.46b0 (2024-05-31)

Diff for: CONTRIBUTING.md

+3
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,9 @@ Below is a checklist of things to be mindful of when implementing a new instrume
269269
- ex. <https://github.com/open-telemetry/opentelemetry-python-contrib/blob/2518a4ac07cb62ad6587dd8f6cbb5f8663a7e179/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/__init__.py#L234>
270270
- Appropriate error handling
271271
- ex. <https://github.com/open-telemetry/opentelemetry-python-contrib/blob/2518a4ac07cb62ad6587dd8f6cbb5f8663a7e179/instrumentation/opentelemetry-instrumentation-requests/src/opentelemetry/instrumentation/requests/__init__.py#L220>
272+
- Isolate sync and async test
273+
- For synchronous tests, the typical test case class is inherited from `opentelemetry.test.test_base.TestBase`. However, if you want to write asynchronous tests, the test case class should inherit also from `IsolatedAsyncioTestCase`. Adding asynchronous tests to a common test class can lead to tests passing without actually running, which can be misleading.
274+
- ex. <https://github.com/open-telemetry/opentelemetry-python-contrib/blob/60fb936b7e5371b3e5587074906c49fb873cbd76/instrumentation/opentelemetry-instrumentation-grpc/tests/test_aio_server_interceptor.py#L84>
272275

273276
## Expectations from contributors
274277

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ Meeting notes are available as a public [Google doc](https://docs.google.com/doc
110110
Approvers ([@open-telemetry/python-approvers](https://github.com/orgs/open-telemetry/teams/python-approvers)):
111111

112112
- [Aaron Abbott](https://github.com/aabmass), Google
113+
- [Emídio Neto](https://github.com/emdneto), Zenvia
113114
- [Jeremy Voss](https://github.com/jeremydvoss), Microsoft
114115
- [Owais Lone](https://github.com/owais), Splunk
115116
- [Pablo Collins](https://github.com/pmcollins), Splunk

Diff for: eachdist.ini

-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ packages=
5454
[lintroots]
5555
extraroots=examples/*,scripts/
5656
subglob=*.py,tests/,test/,src/*,examples/*
57-
ignore=sklearn
5857

5958
[testroots]
6059
extraroots=examples/*,tests/

Diff for: exporter/opentelemetry-exporter-prometheus-remote-write/test-requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
asgiref==3.7.2
2-
certifi==2024.2.2
2+
certifi==2024.7.4
33
charset-normalizer==3.3.2
44
# We can drop this after bumping baseline to pypy-39
55
cramjam==2.1.0; platform_python_implementation == "PyPy"

Diff for: instrumentation/README.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
| Instrumentation | Supported Packages | Metrics support | Semconv status |
33
| --------------- | ------------------ | --------------- | -------------- |
44
| [opentelemetry-instrumentation-aio-pika](./opentelemetry-instrumentation-aio-pika) | aio_pika >= 7.2.0, < 10.0.0 | No | experimental
5-
| [opentelemetry-instrumentation-aiohttp-client](./opentelemetry-instrumentation-aiohttp-client) | aiohttp ~= 3.0 | No | experimental
5+
| [opentelemetry-instrumentation-aiohttp-client](./opentelemetry-instrumentation-aiohttp-client) | aiohttp ~= 3.0 | No | migration
66
| [opentelemetry-instrumentation-aiohttp-server](./opentelemetry-instrumentation-aiohttp-server) | aiohttp ~= 3.0 | No | experimental
77
| [opentelemetry-instrumentation-aiopg](./opentelemetry-instrumentation-aiopg) | aiopg >= 0.13.0, < 2.0.0 | No | experimental
88
| [opentelemetry-instrumentation-asgi](./opentelemetry-instrumentation-asgi) | asgiref ~= 3.0 | Yes | migration
@@ -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 | Yes | experimental
22+
| [opentelemetry-instrumentation-fastapi](./opentelemetry-instrumentation-fastapi) | fastapi ~= 0.58,fastapi-slim ~= 0.111.0 | 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
@@ -38,7 +38,6 @@
3838
| [opentelemetry-instrumentation-redis](./opentelemetry-instrumentation-redis) | redis >= 2.6 | No | experimental
3939
| [opentelemetry-instrumentation-remoulade](./opentelemetry-instrumentation-remoulade) | remoulade >= 0.50 | No | experimental
4040
| [opentelemetry-instrumentation-requests](./opentelemetry-instrumentation-requests) | requests ~= 2.0 | Yes | migration
41-
| [opentelemetry-instrumentation-sklearn](./opentelemetry-instrumentation-sklearn) | scikit-learn ~= 0.24.0 | No | experimental
4241
| [opentelemetry-instrumentation-sqlalchemy](./opentelemetry-instrumentation-sqlalchemy) | sqlalchemy | Yes | experimental
4342
| [opentelemetry-instrumentation-sqlite3](./opentelemetry-instrumentation-sqlite3) | sqlite3 | No | experimental
4443
| [opentelemetry-instrumentation-starlette](./opentelemetry-instrumentation-starlette) | starlette ~= 0.13.0 | Yes | experimental
@@ -47,5 +46,5 @@
4746
| [opentelemetry-instrumentation-tornado](./opentelemetry-instrumentation-tornado) | tornado >= 5.1.1 | Yes | experimental
4847
| [opentelemetry-instrumentation-tortoiseorm](./opentelemetry-instrumentation-tortoiseorm) | tortoise-orm >= 0.17.0 | No | experimental
4948
| [opentelemetry-instrumentation-urllib](./opentelemetry-instrumentation-urllib) | urllib | Yes | experimental
50-
| [opentelemetry-instrumentation-urllib3](./opentelemetry-instrumentation-urllib3) | urllib3 >= 1.0.0, < 3.0.0 | Yes | experimental
49+
| [opentelemetry-instrumentation-urllib3](./opentelemetry-instrumentation-urllib3) | urllib3 >= 1.0.0, < 3.0.0 | Yes | migration
5150
| [opentelemetry-instrumentation-wsgi](./opentelemetry-instrumentation-wsgi) | wsgi | Yes | migration

0 commit comments

Comments
 (0)