Skip to content

Commit 6cb3002

Browse files
authored
Merge branch 'open-telemetry:main' into main
2 parents 26a01cb + b6d77f1 commit 6cb3002

File tree

170 files changed

+1656
-452
lines changed

Some content is hidden

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

170 files changed

+1656
-452
lines changed

.github/workflows/test.yml

+2-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: 0ef76a5cc39626f783416ca75e43556e2bb2739d
9+
CORE_REPO_SHA: 9831afaff5b4d371fd9a14266ab47884546bd971
1010

1111
jobs:
1212
build:
@@ -44,7 +44,7 @@ jobs:
4444
~/.cache/pip
4545
key: v7-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
4646
- name: run tox
47-
run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- --benchmark-json=${{ env.RUN_MATRIX_COMBINATION }}-benchmark.json
47+
run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- -ra --benchmark-json=${{ env.RUN_MATRIX_COMBINATION }}-benchmark.json
4848
# - name: Find and merge ${{ matrix.package }} benchmarks
4949
# # TODO: Add at least one benchmark to every package type to remove this (#249)
5050
# if: matrix.package == 'sdkextension' || matrix.package == 'propagator'

CHANGELOG.md

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

88
## Unreleased
99

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))
14+
15+
## Version 1.21.0/0.42b0 (2023-11-01)
1016

1117
### Added
18+
19+
- `opentelemetry-instrumentation-aiohttp-server` Add instrumentor and auto instrumentation support for aiohttp-server
20+
([#1800](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1800))
21+
- `opentelemetry-instrumentation-botocore` Include SNS topic ARN as a span attribute with name `messaging.destination.name` to uniquely identify the SNS topic
22+
([#1995](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1995))
1223
- `opentelemetry-instrumentation-system-metrics` Add support for collecting process metrics
1324
([#1948](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1948))
25+
- Added schema_url (`"https://opentelemetry.io/schemas/1.11.0"`) to all metrics and traces
26+
([#1977](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1977))
1427

1528
### Fixed
1629

@@ -21,7 +34,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2134
- `opentelemetry-resource-detector-azure` Using new Cloud Resource ID attribute.
2235
([#1976](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1976))
2336

24-
2537
## Version 1.20.0/0.41b0 (2023-09-01)
2638

2739
### Fixed
@@ -51,6 +63,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5163
([#1824](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1824))
5264
- Fix sqlalchemy instrumentation wrap methods to accept sqlcommenter options
5365
([#1873](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1873))
66+
- Exclude background task execution from root server span in ASGI middleware
67+
([#1952](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1952))
5468

5569
### Added
5670

@@ -60,7 +74,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6074
([#1744](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1744))
6175
- Fix async redis clients not being traced correctly
6276
([#1830](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1830))
63-
- Make Flask request span attributes available for `start_span`.
77+
- Make Flask request span attributes available for `start_span`.
6478
([#1784](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1784))
6579
- Fix falcon instrumentation's usage of Span Status to only set the description if the status code is ERROR.
6680
([#1840](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1840))

_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"

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

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"

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

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"

instrumentation/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
| --------------- | ------------------ | --------------- |
44
| [opentelemetry-instrumentation-aio-pika](./opentelemetry-instrumentation-aio-pika) | aio_pika >= 7.2.0, < 10.0.0 | No
55
| [opentelemetry-instrumentation-aiohttp-client](./opentelemetry-instrumentation-aiohttp-client) | aiohttp ~= 3.0 | No
6+
| [opentelemetry-instrumentation-aiohttp-server](./opentelemetry-instrumentation-aiohttp-server) | aiohttp ~= 3.0 | No
67
| [opentelemetry-instrumentation-aiopg](./opentelemetry-instrumentation-aiopg) | aiopg >= 0.13.0, < 2.0.0 | No
78
| [opentelemetry-instrumentation-asgi](./opentelemetry-instrumentation-asgi) | asgiref ~= 3.0 | No
89
| [opentelemetry-instrumentation-asyncpg](./opentelemetry-instrumentation-asyncpg) | asyncpg >= 0.12.0 | No

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
]

instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/aio_pika_instrumentor.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,10 @@ async def wrapper(wrapped, instance, args, kwargs):
6464
def _instrument(self, **kwargs):
6565
tracer_provider = kwargs.get("tracer_provider", None)
6666
tracer = trace.get_tracer(
67-
_INSTRUMENTATION_MODULE_NAME, __version__, tracer_provider
67+
_INSTRUMENTATION_MODULE_NAME,
68+
__version__,
69+
tracer_provider,
70+
schema_url="https://opentelemetry.io/schemas/1.11.0",
6871
)
6972
self._instrument_queue(tracer)
7073
self._instrument_exchange(tracer)

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"

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

instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,12 @@ def create_trace_config(
163163
# Explicitly specify the type for the `request_hook` and `response_hook` param and rtype to work
164164
# around this issue.
165165

166-
tracer = get_tracer(__name__, __version__, tracer_provider)
166+
tracer = get_tracer(
167+
__name__,
168+
__version__,
169+
tracer_provider,
170+
schema_url="https://opentelemetry.io/schemas/1.11.0",
171+
)
167172

168173
def _end_trace(trace_config_ctx: types.SimpleNamespace):
169174
context_api.detach(trace_config_ctx.token)

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"

instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py

+15
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,21 @@ def test_status_codes(self):
134134

135135
self.memory_exporter.clear()
136136

137+
def test_schema_url(self):
138+
with self.subTest(status_code=200):
139+
host, port = self._http_request(
140+
trace_config=aiohttp_client.create_trace_config(),
141+
url="/test-path?query=param#foobar",
142+
status_code=200,
143+
)
144+
145+
span = self.memory_exporter.get_finished_spans()[0]
146+
self.assertEqual(
147+
span.instrumentation_info.schema_url,
148+
"https://opentelemetry.io/schemas/1.11.0",
149+
)
150+
self.memory_exporter.clear()
151+
137152
def test_not_recording(self):
138153
mock_tracer = mock.Mock()
139154
mock_span = mock.Mock()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
OpenTelemetry aiohttp server Integration
2+
========================================
3+
4+
|pypi|
5+
6+
.. |pypi| image:: https://badge.fury.io/py/opentelemetry-instrumentation-aiohttp-client.svg
7+
:target: https://pypi.org/project/opentelemetry-instrumentation-aiohttp-client/
8+
9+
This library allows tracing HTTP requests made by the
10+
`aiohttp server <https://docs.aiohttp.org/en/stable/server.html>`_ library.
11+
12+
Installation
13+
------------
14+
15+
::
16+
17+
pip install opentelemetry-instrumentation-aiohttp-server
18+
19+
References
20+
----------
21+
22+
* `OpenTelemetry Project <https://opentelemetry.io/>`_
23+
* `aiohttp client Tracing <https://docs.aiohttp.org/en/stable/tracing_reference.html>`_
24+
* `OpenTelemetry Python Examples <https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples>`_
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
[build-system]
2+
requires = ["hatchling"]
3+
build-backend = "hatchling.build"
4+
5+
[project]
6+
name = "opentelemetry-instrumentation-aiohttp-server"
7+
dynamic = ["version"]
8+
description = "Aiohttp server instrumentation for OpenTelemetry"
9+
readme = "README.rst"
10+
license = "Apache-2.0"
11+
requires-python = ">=3.7"
12+
authors = [
13+
{ name = "OpenTelemetry Authors", email = "[email protected]"}
14+
]
15+
classifiers = [
16+
"Development Status :: 4 - Beta",
17+
"Intended Audience :: Developers",
18+
"License :: OSI Approved :: Apache Software License",
19+
"Programming Language :: Python",
20+
"Programming Language :: Python :: 3",
21+
"Programming Language :: Python :: 3.7",
22+
"Programming Language :: Python :: 3.8",
23+
"Programming Language :: Python :: 3.9",
24+
"Programming Language :: Python :: 3.10",
25+
"Programming Language :: Python :: 3.11"
26+
]
27+
dependencies = [
28+
"opentelemetry-api ~= 1.12",
29+
"opentelemetry-instrumentation == 0.43b0.dev",
30+
"opentelemetry-semantic-conventions == 0.43b0.dev",
31+
"opentelemetry-util-http == 0.43b0.dev",
32+
"wrapt >= 1.0.0, < 2.0.0",
33+
]
34+
35+
[project.optional-dependencies]
36+
instruments = [
37+
"aiohttp ~= 3.0",
38+
]
39+
test = [
40+
"opentelemetry-instrumentation-aiohttp-server[instruments]",
41+
"pytest-asyncio",
42+
"pytest-aiohttp",
43+
]
44+
45+
[project.entry-points.opentelemetry_instrumentor]
46+
aiohttp-server = "opentelemetry.instrumentation.aiohttp_server:AioHttpServerInstrumentor"
47+
48+
[project.urls]
49+
Homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-aiohttp-server"
50+
51+
[tool.hatch.version]
52+
path = "src/opentelemetry/instrumentation/aiohttp_server/version.py"
53+
54+
[tool.hatch.build.targets.sdist]
55+
include = [
56+
"/src",
57+
"/tests",
58+
]
59+
60+
[tool.hatch.build.targets.wheel]
61+
packages = ["src/opentelemetry"]

0 commit comments

Comments
 (0)