Skip to content

Commit dc99558

Browse files
authored
Merge branch 'main' into logging-silence-out-of-spec-attributes
2 parents c4f71d5 + 95b52b5 commit dc99558

33 files changed

Lines changed: 1863 additions & 710 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2929
([#3819](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3819))
3030
- `opentelemetry-instrumentation-system-metrics`: Add support for the `OTEL_PYTHON_SYSTEM_METRICS_EXCLUDED_METRICS` environment variable
3131
([#3959](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3959))
32-
- `opentelemetry-instrumentation-httpx`: add ability to capture custom headers
32+
- `opentelemetry-instrumentation-httpx`: add ability to capture custom headers
3333
([#4047](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4047))
3434
- `opentelemetry-instrumentation-urllib3`: add ability to capture custom headers
3535
([#4050](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4050))
3636
- `opentelemetry-instrumentation-urllib`: add ability to capture custom headers
3737
([#4051](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4051))
38+
- `opentelemetry-instrumentation-confluent-kafka`: Increase confluent-kafka upper bound to support newer versions (2.13.0)
39+
([#4099](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4099))
3840
- `opentelemetry-instrumentation-aiohttp-server` Implement new semantic convention opt-in migration
3941
([#3980](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3980))
4042
- `opentelemetry-instrumentation`: add database stability attribute setters in `_semconv` utilities
4143
([#4108](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4108))
44+
- `opentelemetry-instrumentation-tornado`: Implement new semantic convention opt-in migration
45+
([#3993](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3993))
46+
- `opentelemetry-instrumentation-pyramid` Implement new semantic convention opt-in migration
47+
([#3982](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3982))
4248

4349
### Fixed
4450

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ Some packages may require additional system-wide dependencies to be installed. F
122122

123123
For `docs` building, you may need to install `mysql-client` and other required dependencies as necessary. Ensure the Python version used in your local setup matches the version used in the [CI](./.github/workflows/) to maintain compatibility when building the documentation.
124124

125+
If you are using `tox-uv` for tests and have issues with resolving OpenTelemetry dependencies try:
126+
127+
```sh
128+
uv sync --refresh
129+
```
130+
125131
### Benchmarks
126132

127133
Some packages have benchmark tests. To run them, run `tox -f benchmark`. Benchmark tests use `pytest-benchmark` and they output a table with results to the console.

docs-requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ botocore~=1.0
2424
boto3~=1.0
2525
cassandra-driver~=3.25
2626
celery>=4.0
27-
confluent-kafka>= 1.8.2,<= 2.11.0
27+
confluent-kafka>= 1.8.2,<= 2.13.0
2828
elasticsearch>=6.0,<9.0
2929
flask~=2.0
3030
falcon~=2.0

instrumentation-genai/opentelemetry-instrumentation-langchain/src/opentelemetry/instrumentation/langchain/span_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
gen_ai_attributes as GenAI,
2121
)
2222
from opentelemetry.semconv.attributes import (
23-
error_attributes as ErrorAttributes,
23+
error_attributes,
2424
)
2525
from opentelemetry.trace import Span, SpanKind, Tracer, set_span_in_context
2626
from opentelemetry.trace.status import Status, StatusCode
@@ -112,6 +112,6 @@ def handle_error(self, error: BaseException, run_id: UUID):
112112
return
113113
span.set_status(Status(StatusCode.ERROR, str(error)))
114114
span.set_attribute(
115-
ErrorAttributes.ERROR_TYPE, type(error).__qualname__
115+
error_attributes.ERROR_TYPE, type(error).__qualname__
116116
)
117117
self.end_span(run_id)

instrumentation/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
| [opentelemetry-instrumentation-cassandra](./opentelemetry-instrumentation-cassandra) | cassandra-driver ~= 3.25,scylla-driver ~= 3.25 | No | development
1818
| [opentelemetry-instrumentation-celery](./opentelemetry-instrumentation-celery) | celery >= 4.0, < 6.0 | No | development
1919
| [opentelemetry-instrumentation-click](./opentelemetry-instrumentation-click) | click >= 8.1.3, < 9.0.0 | No | development
20-
| [opentelemetry-instrumentation-confluent-kafka](./opentelemetry-instrumentation-confluent-kafka) | confluent-kafka >= 1.8.2, <= 2.11.0 | No | development
20+
| [opentelemetry-instrumentation-confluent-kafka](./opentelemetry-instrumentation-confluent-kafka) | confluent-kafka >= 1.8.2, <= 2.13.0 | No | development
2121
| [opentelemetry-instrumentation-dbapi](./opentelemetry-instrumentation-dbapi) | dbapi | No | development
2222
| [opentelemetry-instrumentation-django](./opentelemetry-instrumentation-django) | django >= 2.0 | Yes | development
2323
| [opentelemetry-instrumentation-elasticsearch](./opentelemetry-instrumentation-elasticsearch) | elasticsearch >= 6.0 | No | development
@@ -38,7 +38,7 @@
3838
| [opentelemetry-instrumentation-pymongo](./opentelemetry-instrumentation-pymongo) | pymongo >= 3.1, < 5.0 | No | development
3939
| [opentelemetry-instrumentation-pymssql](./opentelemetry-instrumentation-pymssql) | pymssql >= 2.1.5, < 3 | No | development
4040
| [opentelemetry-instrumentation-pymysql](./opentelemetry-instrumentation-pymysql) | PyMySQL < 2 | No | development
41-
| [opentelemetry-instrumentation-pyramid](./opentelemetry-instrumentation-pyramid) | pyramid >= 1.7 | Yes | development
41+
| [opentelemetry-instrumentation-pyramid](./opentelemetry-instrumentation-pyramid) | pyramid >= 1.7 | Yes | migration
4242
| [opentelemetry-instrumentation-redis](./opentelemetry-instrumentation-redis) | redis >= 2.6 | No | development
4343
| [opentelemetry-instrumentation-remoulade](./opentelemetry-instrumentation-remoulade) | remoulade >= 0.50 | No | development
4444
| [opentelemetry-instrumentation-requests](./opentelemetry-instrumentation-requests) | requests ~= 2.0 | Yes | migration
@@ -47,7 +47,7 @@
4747
| [opentelemetry-instrumentation-starlette](./opentelemetry-instrumentation-starlette) | starlette >= 0.13 | Yes | development
4848
| [opentelemetry-instrumentation-system-metrics](./opentelemetry-instrumentation-system-metrics) | psutil >= 5 | No | development
4949
| [opentelemetry-instrumentation-threading](./opentelemetry-instrumentation-threading) | threading | No | development
50-
| [opentelemetry-instrumentation-tornado](./opentelemetry-instrumentation-tornado) | tornado >= 5.1.1 | Yes | development
50+
| [opentelemetry-instrumentation-tornado](./opentelemetry-instrumentation-tornado) | tornado >= 5.1.1 | Yes | migration
5151
| [opentelemetry-instrumentation-tortoiseorm](./opentelemetry-instrumentation-tortoiseorm) | tortoise-orm >= 0.17.0 | No | development
5252
| [opentelemetry-instrumentation-urllib](./opentelemetry-instrumentation-urllib) | urllib | Yes | migration
5353
| [opentelemetry-instrumentation-urllib3](./opentelemetry-instrumentation-urllib3) | urllib3 >= 1.0.0, < 3.0.0 | Yes | migration

instrumentation/opentelemetry-instrumentation-asyncio/tests/test_asyncio_future_cancellation.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,20 @@ async def future_cancelled():
3636
asyncio.run(future_cancelled())
3737
except asyncio.CancelledError as exc:
3838
self.assertEqual(isinstance(exc, asyncio.CancelledError), True)
39-
spans = self.memory_exporter.get_finished_spans()
39+
spans = self.get_finished_spans()
4040
self.assertEqual(len(spans), 2)
4141
self.assertEqual(spans[0].name, "root")
4242
self.assertEqual(spans[1].name, "asyncio future")
4343

44-
metrics = (
45-
self.memory_metrics_reader.get_metrics_data()
46-
.resource_metrics[0]
47-
.scope_metrics[0]
48-
.metrics
49-
)
44+
metrics = self.get_sorted_metrics()
5045
self.assertEqual(len(metrics), 2)
5146

52-
self.assertEqual(metrics[0].name, "asyncio.process.duration")
47+
self.assertEqual(metrics[0].name, "asyncio.process.created")
5348
self.assertEqual(
5449
metrics[0].data.data_points[0].attributes["state"], "cancelled"
5550
)
5651

57-
self.assertEqual(metrics[1].name, "asyncio.process.created")
52+
self.assertEqual(metrics[1].name, "asyncio.process.duration")
5853
self.assertEqual(
5954
metrics[1].data.data_points[0].attributes["state"], "cancelled"
6055
)

instrumentation/opentelemetry-instrumentation-celery/tests/test_metrics.py

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -71,43 +71,22 @@ def test_basic_metric(self):
7171
def test_metric_uninstrument(self):
7272
CeleryInstrumentor().instrument()
7373

74-
self.get_metrics()
74+
metrics = self.get_metrics()
7575
self.assertEqual(
76-
(
77-
self.memory_metrics_reader.get_metrics_data()
78-
.resource_metrics[0]
79-
.scope_metrics[0]
80-
.metrics[0]
81-
.data.data_points[0]
82-
.bucket_counts[1]
83-
),
76+
metrics[0].data.data_points[0].bucket_counts[1],
8477
1,
8578
)
8679

87-
self.get_metrics()
80+
metrics = self.get_metrics()
8881
self.assertEqual(
89-
(
90-
self.memory_metrics_reader.get_metrics_data()
91-
.resource_metrics[0]
92-
.scope_metrics[0]
93-
.metrics[0]
94-
.data.data_points[0]
95-
.bucket_counts[1]
96-
),
82+
metrics[0].data.data_points[0].bucket_counts[1],
9783
2,
9884
)
9985

10086
CeleryInstrumentor().uninstrument()
10187

102-
self.get_metrics()
88+
metrics = self.get_metrics()
10389
self.assertEqual(
104-
(
105-
self.memory_metrics_reader.get_metrics_data()
106-
.resource_metrics[0]
107-
.scope_metrics[0]
108-
.metrics[0]
109-
.data.data_points[0]
110-
.bucket_counts[1]
111-
),
90+
metrics[0].data.data_points[0].bucket_counts[1],
11291
2,
11392
)

instrumentation/opentelemetry-instrumentation-confluent-kafka/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ dependencies = [
3232

3333
[project.optional-dependencies]
3434
instruments = [
35-
"confluent-kafka >= 1.8.2, <= 2.11.0",
35+
"confluent-kafka >= 1.8.2, <= 2.13.0",
3636
]
3737

3838
[project.entry-points.opentelemetry_instrumentor]

instrumentation/opentelemetry-instrumentation-confluent-kafka/src/opentelemetry/instrumentation/confluent_kafka/package.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# limitations under the License.
1414

1515

16-
_instruments = ("confluent-kafka >= 1.8.2, <= 2.11.0",)
16+
_instruments = ("confluent-kafka >= 1.8.2, <= 2.13.0",)

instrumentation/opentelemetry-instrumentation-confluent-kafka/test-requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
asgiref==3.8.1
2-
confluent-kafka==2.11.0
2+
confluent-kafka==2.13.0
33
Deprecated==1.2.14
44
iniconfig==2.0.0
55
packaging==24.0

0 commit comments

Comments
 (0)