Skip to content

Commit 38ab658

Browse files
committed
Merge branch 'main' into httpx-sync-async-client-auto-instr-fix
# Conflicts: # CHANGELOG.md
2 parents 5b9e33a + 9afaf26 commit 38ab658

File tree

115 files changed

+635
-323
lines changed

Some content is hidden

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

115 files changed

+635
-323
lines changed

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: d054dff47d2da663a39b9656d106c3d15f344269
9+
CORE_REPO_SHA: 9831afaff5b4d371fd9a14266ab47884546bd971
1010

1111
jobs:
1212
build:

Diff for: CHANGELOG.md

+20-2
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10-
- `opentelemetry-instrumentation-aiohttp-server` Add instrumentor and auto instrumentation support for aiohttp-server
11-
([#1800](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1800))
10+
### Added
11+
12+
- `opentelemetry-instrumentation` Added Otel semantic convention opt-in mechanism
13+
([#1987](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1987))
1214
- `opentelemetry-instrumentation-httpx` Fix mixing async and non async hooks
1315
([#1920](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1920))
1416

17+
### Fixed
18+
19+
- `opentelemetry-instrumentation-urllib`/`opentelemetry-instrumentation-urllib3` Fix metric descriptions to match semantic conventions
20+
([#1959]((https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1959))
21+
22+
## Version 1.21.0/0.42b0 (2023-11-01)
23+
1524
### Added
1625

26+
- `opentelemetry-instrumentation-aiohttp-server` Add instrumentor and auto instrumentation support for aiohttp-server
27+
([#1800](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1800))
1728
- `opentelemetry-instrumentation-botocore` Include SNS topic ARN as a span attribute with name `messaging.destination.name` to uniquely identify the SNS topic
1829
([#1995](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1995))
1930
- `opentelemetry-instrumentation-system-metrics` Add support for collecting process metrics
@@ -27,6 +38,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2738
([#1980](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1980))
2839
- `opentelemetry-resource-detector-azure` Using new Cloud Resource ID attribute.
2940
([#1976](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1976))
41+
- Do not collect `system.network.connections` by default on macOS which was causing exceptions in metrics collection.
42+
([#2008](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2008))
3043

3144
## Version 1.20.0/0.41b0 (2023-09-01)
3245

@@ -57,6 +70,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5770
([#1824](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1824))
5871
- Fix sqlalchemy instrumentation wrap methods to accept sqlcommenter options
5972
([#1873](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1873))
73+
- Exclude background task execution from root server span in ASGI middleware
74+
([#1952](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1952))
6075

6176
### Added
6277

@@ -1388,6 +1403,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13881403
- `opentelemetry-ext-wsgi` Updates for core library changes
13891404
- `opentelemetry-ext-http-requests` Updates for core library changes
13901405

1406+
- `Added support for PyPy3` Initial release
1407+
## [#1033](https://github.com/open-telemetryopentelemetry-python-contrib/issues/1033)
1408+
13911409
## Version 0.1a0 (2019-09-30)
13921410

13931411
### Added

Diff for: _template/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: eachdist.ini

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ sortfirst=
1616
ext/*
1717

1818
[stable]
19-
version=1.21.0.dev
19+
version=1.22.0.dev
2020

2121
packages=
2222
opentelemetry-sdk
@@ -34,7 +34,7 @@ packages=
3434
opentelemetry-api
3535

3636
[prerelease]
37-
version=0.42b0.dev
37+
version=0.43b0.dev
3838

3939
packages=
4040
all

Diff for: exporter/opentelemetry-exporter-prometheus-remote-write/src/opentelemetry/exporter/prometheus_remote_write/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: exporter/opentelemetry-exporter-richconsole/pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ classifiers = [
2727
dependencies = [
2828
"opentelemetry-api ~= 1.12",
2929
"opentelemetry-sdk ~= 1.12",
30-
"opentelemetry-semantic-conventions == 0.42b0.dev",
30+
"opentelemetry-semantic-conventions == 0.43b0.dev",
3131
"rich>=10.0.0",
3232
]
3333

Diff for: exporter/opentelemetry-exporter-richconsole/src/opentelemetry/exporter/richconsole/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ instruments = [
3535
]
3636
test = [
3737
"opentelemetry-instrumentation-aio-pika[instruments]",
38-
"opentelemetry-test-utils == 0.42b0.dev",
38+
"opentelemetry-test-utils == 0.43b0.dev",
3939
"pytest",
4040
"wrapt >= 1.0.0, < 2.0.0",
4141
]

Diff for: instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: instrumentation/opentelemetry-instrumentation-aiohttp-client/pyproject.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ classifiers = [
2626
]
2727
dependencies = [
2828
"opentelemetry-api ~= 1.12",
29-
"opentelemetry-instrumentation == 0.42b0.dev",
30-
"opentelemetry-semantic-conventions == 0.42b0.dev",
31-
"opentelemetry-util-http == 0.42b0.dev",
29+
"opentelemetry-instrumentation == 0.43b0.dev",
30+
"opentelemetry-semantic-conventions == 0.43b0.dev",
31+
"opentelemetry-util-http == 0.43b0.dev",
3232
"wrapt >= 1.0.0, < 2.0.0",
3333
]
3434

Diff for: instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: instrumentation/opentelemetry-instrumentation-aiohttp-server/pyproject.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ classifiers = [
2626
]
2727
dependencies = [
2828
"opentelemetry-api ~= 1.12",
29-
"opentelemetry-instrumentation == 0.42b0.dev",
30-
"opentelemetry-semantic-conventions == 0.42b0.dev",
31-
"opentelemetry-util-http == 0.42b0.dev",
29+
"opentelemetry-instrumentation == 0.43b0.dev",
30+
"opentelemetry-semantic-conventions == 0.43b0.dev",
31+
"opentelemetry-util-http == 0.43b0.dev",
3232
"wrapt >= 1.0.0, < 2.0.0",
3333
]
3434

Diff for: instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: instrumentation/opentelemetry-instrumentation-aiopg/pyproject.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ classifiers = [
2626
]
2727
dependencies = [
2828
"opentelemetry-api ~= 1.12",
29-
"opentelemetry-instrumentation == 0.42b0.dev",
30-
"opentelemetry-instrumentation-dbapi == 0.42b0.dev",
29+
"opentelemetry-instrumentation == 0.43b0.dev",
30+
"opentelemetry-instrumentation-dbapi == 0.43b0.dev",
3131
"wrapt >= 1.0.0, < 2.0.0",
3232
]
3333

@@ -37,8 +37,8 @@ instruments = [
3737
]
3838
test = [
3939
"opentelemetry-instrumentation-aiopg[instruments]",
40-
"opentelemetry-semantic-conventions == 0.42b0.dev",
41-
"opentelemetry-test-utils == 0.42b0.dev",
40+
"opentelemetry-semantic-conventions == 0.43b0.dev",
41+
"opentelemetry-test-utils == 0.43b0.dev",
4242
]
4343

4444
[project.entry-points.opentelemetry_instrumentor]

Diff for: instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

Diff for: instrumentation/opentelemetry-instrumentation-asgi/pyproject.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ classifiers = [
2727
dependencies = [
2828
"asgiref ~= 3.0",
2929
"opentelemetry-api ~= 1.12",
30-
"opentelemetry-instrumentation == 0.42b0.dev",
31-
"opentelemetry-semantic-conventions == 0.42b0.dev",
32-
"opentelemetry-util-http == 0.42b0.dev",
30+
"opentelemetry-instrumentation == 0.43b0.dev",
31+
"opentelemetry-semantic-conventions == 0.43b0.dev",
32+
"opentelemetry-util-http == 0.43b0.dev",
3333
]
3434

3535
[project.optional-dependencies]
@@ -38,7 +38,7 @@ instruments = [
3838
]
3939
test = [
4040
"opentelemetry-instrumentation-asgi[instruments]",
41-
"opentelemetry-test-utils == 0.42b0.dev",
41+
"opentelemetry-test-utils == 0.43b0.dev",
4242
]
4343

4444
[project.urls]

Diff for: instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/__init__.py

+18-1
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ async def __call__(self, scope, receive, send):
576576
if scope["type"] == "http":
577577
self.active_requests_counter.add(1, active_requests_count_attrs)
578578
try:
579-
with trace.use_span(span, end_on_exit=True) as current_span:
579+
with trace.use_span(span, end_on_exit=False) as current_span:
580580
if current_span.is_recording():
581581
for key, value in attributes.items():
582582
current_span.set_attribute(key, value)
@@ -630,6 +630,8 @@ async def __call__(self, scope, receive, send):
630630
)
631631
if token:
632632
context.detach(token)
633+
if span.is_recording():
634+
span.end()
633635

634636
# pylint: enable=too-many-branches
635637

@@ -653,8 +655,11 @@ async def otel_receive():
653655
def _get_otel_send(
654656
self, server_span, server_span_name, scope, send, duration_attrs
655657
):
658+
expecting_trailers = False
659+
656660
@wraps(send)
657661
async def otel_send(message):
662+
nonlocal expecting_trailers
658663
with self.tracer.start_as_current_span(
659664
" ".join((server_span_name, scope["type"], "send"))
660665
) as send_span:
@@ -668,6 +673,8 @@ async def otel_send(message):
668673
] = status_code
669674
set_status_code(server_span, status_code)
670675
set_status_code(send_span, status_code)
676+
677+
expecting_trailers = message.get("trailers", False)
671678
elif message["type"] == "websocket.send":
672679
set_status_code(server_span, 200)
673680
set_status_code(send_span, 200)
@@ -703,5 +710,15 @@ async def otel_send(message):
703710
pass
704711

705712
await send(message)
713+
if (
714+
not expecting_trailers
715+
and message["type"] == "http.response.body"
716+
and not message.get("more_body", False)
717+
) or (
718+
expecting_trailers
719+
and message["type"] == "http.response.trailers"
720+
and not message.get("more_trailers", False)
721+
):
722+
server_span.end()
706723

707724
return otel_send

Diff for: instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.42b0.dev"
15+
__version__ = "0.43b0.dev"

0 commit comments

Comments
 (0)