Skip to content

Commit 582be47

Browse files
authored
Bump OpenTelemetry SDK to 1.37.0/0.58b0 (#389)
* Bump OpenTelemetry SDK to 1.37.0/0.58b0 * Handle new cpython metrics * Remove TODO after 1.37.0 rebase
1 parent 4cf66d1 commit 582be47

File tree

7 files changed

+90
-81
lines changed

7 files changed

+90
-81
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ With EDOT Python you have access to all the features of the OpenTelemetry Python
1414

1515
## Configuration
1616

17-
The distribution supports all the configuration variables from OpenTelemetry Python project version 1.36.0.
17+
The distribution supports all the configuration variables from OpenTelemetry Python project version 1.37.0.
1818

1919
See [Configuration](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/python/configuration.html) for more details.
2020

dev-requirements.txt

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ googleapis-common-protos==1.70.0
1818
# via
1919
# opentelemetry-exporter-otlp-proto-grpc
2020
# opentelemetry-exporter-otlp-proto-http
21-
grpcio==1.74.0
21+
grpcio==1.75.0
2222
# via
2323
# opentelemetry-exporter-otlp-proto-grpc
2424
# oteltest
@@ -32,7 +32,7 @@ iniconfig==2.1.0
3232
# via pytest
3333
leb128==1.0.8
3434
# via elastic-opentelemetry (pyproject.toml)
35-
opentelemetry-api==1.36.0
35+
opentelemetry-api==1.37.0
3636
# via
3737
# elastic-opentelemetry (pyproject.toml)
3838
# opentelemetry-exporter-otlp-proto-grpc
@@ -43,35 +43,35 @@ opentelemetry-api==1.36.0
4343
# opentelemetry-sdk
4444
# opentelemetry-semantic-conventions
4545
# oteltest
46-
opentelemetry-exporter-otlp==1.36.0
46+
opentelemetry-exporter-otlp==1.37.0
4747
# via elastic-opentelemetry (pyproject.toml)
48-
opentelemetry-exporter-otlp-proto-common==1.36.0
48+
opentelemetry-exporter-otlp-proto-common==1.37.0
4949
# via
5050
# opentelemetry-exporter-otlp-proto-grpc
5151
# opentelemetry-exporter-otlp-proto-http
52-
opentelemetry-exporter-otlp-proto-grpc==1.36.0
52+
opentelemetry-exporter-otlp-proto-grpc==1.37.0
5353
# via opentelemetry-exporter-otlp
54-
opentelemetry-exporter-otlp-proto-http==1.36.0
54+
opentelemetry-exporter-otlp-proto-http==1.37.0
5555
# via opentelemetry-exporter-otlp
56-
opentelemetry-instrumentation==0.57b0
56+
opentelemetry-instrumentation==0.58b0
5757
# via
5858
# elastic-opentelemetry (pyproject.toml)
5959
# opentelemetry-instrumentation-system-metrics
60-
opentelemetry-instrumentation-system-metrics==0.57b0
60+
opentelemetry-instrumentation-system-metrics==0.58b0
6161
# via elastic-opentelemetry (pyproject.toml)
62-
opentelemetry-proto==1.36.0
62+
opentelemetry-proto==1.37.0
6363
# via
6464
# opentelemetry-exporter-otlp-proto-common
6565
# opentelemetry-exporter-otlp-proto-grpc
6666
# opentelemetry-exporter-otlp-proto-http
6767
# oteltest
6868
opentelemetry-resource-detector-azure==0.1.5
6969
# via elastic-opentelemetry (pyproject.toml)
70-
opentelemetry-resource-detector-containerid==0.57b0
70+
opentelemetry-resource-detector-containerid==0.58b0
7171
# via elastic-opentelemetry (pyproject.toml)
7272
opentelemetry-resourcedetector-gcp==1.8.0a0
7373
# via elastic-opentelemetry (pyproject.toml)
74-
opentelemetry-sdk==1.36.0
74+
opentelemetry-sdk==1.37.0
7575
# via
7676
# elastic-opentelemetry (pyproject.toml)
7777
# opentelemetry-exporter-otlp-proto-grpc
@@ -82,7 +82,7 @@ opentelemetry-sdk==1.36.0
8282
# opentelemetry-sdk-extension-aws
8383
opentelemetry-sdk-extension-aws==2.1.0
8484
# via elastic-opentelemetry (pyproject.toml)
85-
opentelemetry-semantic-conventions==0.57b0
85+
opentelemetry-semantic-conventions==0.58b0
8686
# via
8787
# elastic-opentelemetry (pyproject.toml)
8888
# opentelemetry-instrumentation
@@ -99,12 +99,12 @@ pip-tools==7.5.0
9999
# via elastic-opentelemetry (pyproject.toml)
100100
pluggy==1.6.0
101101
# via pytest
102-
protobuf==6.32.0
102+
protobuf==6.32.1
103103
# via
104104
# googleapis-common-protos
105105
# opentelemetry-proto
106106
# oteltest
107-
psutil==7.0.0
107+
psutil==7.1.0
108108
# via opentelemetry-instrumentation-system-metrics
109109
pygments==2.19.2
110110
# via pytest
@@ -123,9 +123,10 @@ tomli==2.2.1
123123
# build
124124
# pip-tools
125125
# pytest
126-
typing-extensions==4.14.1
126+
typing-extensions==4.15.0
127127
# via
128128
# exceptiongroup
129+
# grpcio
129130
# opentelemetry-api
130131
# opentelemetry-exporter-otlp-proto-grpc
131132
# opentelemetry-exporter-otlp-proto-http

operator/requirements.txt

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,59 @@
1-
opentelemetry-exporter-prometheus==0.57b0
1+
opentelemetry-exporter-prometheus==0.58b0
22

33
opentelemetry-propagator-aws-xray==1.0.2
4-
opentelemetry-propagator-b3==1.36.0
5-
opentelemetry-propagator-jaeger==1.36.0
6-
opentelemetry-propagator-ot-trace==0.57b0
4+
opentelemetry-propagator-b3==1.37.0
5+
opentelemetry-propagator-jaeger==1.37.0
6+
opentelemetry-propagator-ot-trace==0.58b0
77

8-
opentelemetry-instrumentation-aio-pika==0.57b0
9-
opentelemetry-instrumentation-aiohttp-client==0.57b0
10-
opentelemetry-instrumentation-aiohttp-server==0.57b0
11-
opentelemetry-instrumentation-aiokafka==0.57b0
12-
opentelemetry-instrumentation-aiopg==0.57b0
13-
opentelemetry-instrumentation-asgi==0.57b0
14-
opentelemetry-instrumentation-asyncclick==0.57b0
15-
opentelemetry-instrumentation-asyncio==0.57b0
16-
opentelemetry-instrumentation-asyncpg==0.57b0
17-
opentelemetry-instrumentation-boto==0.57b0
18-
opentelemetry-instrumentation-boto3sqs==0.57b0
19-
opentelemetry-instrumentation-botocore==0.57b0
20-
opentelemetry-instrumentation-cassandra==0.57b0
21-
opentelemetry-instrumentation-celery==0.57b0
22-
opentelemetry-instrumentation-click==0.57b0
23-
opentelemetry-instrumentation-confluent-kafka==0.57b0
24-
opentelemetry-instrumentation-dbapi==0.57b0
25-
opentelemetry-instrumentation-django==0.57b0
26-
opentelemetry-instrumentation-elasticsearch==0.57b0
27-
opentelemetry-instrumentation-falcon==0.57b0
28-
opentelemetry-instrumentation-fastapi==0.57b0
29-
opentelemetry-instrumentation-flask==0.57b0
30-
opentelemetry-instrumentation-grpc==0.57b0
31-
opentelemetry-instrumentation-httpx==0.57b0
32-
opentelemetry-instrumentation-jinja2==0.57b0
33-
opentelemetry-instrumentation-kafka-python==0.57b0
34-
opentelemetry-instrumentation-logging==0.57b0
35-
opentelemetry-instrumentation-mysql==0.57b0
36-
opentelemetry-instrumentation-mysqlclient==0.57b0
37-
opentelemetry-instrumentation-pika==0.57b0
38-
opentelemetry-instrumentation-psycopg==0.57b0
39-
opentelemetry-instrumentation-psycopg2==0.57b0
40-
opentelemetry-instrumentation-pymemcache==0.57b0
41-
opentelemetry-instrumentation-pymongo==0.57b0
42-
opentelemetry-instrumentation-pymysql==0.57b0
43-
opentelemetry-instrumentation-pymssql==0.57b0
44-
opentelemetry-instrumentation-pyramid==0.57b0
45-
opentelemetry-instrumentation-redis==0.57b0
46-
opentelemetry-instrumentation-remoulade==0.57b0
47-
opentelemetry-instrumentation-requests==0.57b0
48-
opentelemetry-instrumentation-sqlalchemy==0.57b0
49-
opentelemetry-instrumentation-sqlite3==0.57b0
50-
opentelemetry-instrumentation-starlette==0.57b0
51-
opentelemetry-instrumentation-system-metrics==0.57b0
52-
opentelemetry-instrumentation-threading==0.57b0
53-
opentelemetry-instrumentation-tornado==0.57b0
54-
opentelemetry-instrumentation-tortoiseorm==0.57b0
55-
opentelemetry-instrumentation-urllib==0.57b0
56-
opentelemetry-instrumentation-urllib3==0.57b0
57-
opentelemetry-instrumentation-wsgi==0.57b0
8+
opentelemetry-instrumentation-aio-pika==0.58b0
9+
opentelemetry-instrumentation-aiohttp-client==0.58b0
10+
opentelemetry-instrumentation-aiohttp-server==0.58b0
11+
opentelemetry-instrumentation-aiokafka==0.58b0
12+
opentelemetry-instrumentation-aiopg==0.58b0
13+
opentelemetry-instrumentation-asgi==0.58b0
14+
opentelemetry-instrumentation-asyncclick==0.58b0
15+
opentelemetry-instrumentation-asyncio==0.58b0
16+
opentelemetry-instrumentation-asyncpg==0.58b0
17+
opentelemetry-instrumentation-boto==0.58b0
18+
opentelemetry-instrumentation-boto3sqs==0.58b0
19+
opentelemetry-instrumentation-botocore==0.58b0
20+
opentelemetry-instrumentation-cassandra==0.58b0
21+
opentelemetry-instrumentation-celery==0.58b0
22+
opentelemetry-instrumentation-click==0.58b0
23+
opentelemetry-instrumentation-confluent-kafka==0.58b0
24+
opentelemetry-instrumentation-dbapi==0.58b0
25+
opentelemetry-instrumentation-django==0.58b0
26+
opentelemetry-instrumentation-elasticsearch==0.58b0
27+
opentelemetry-instrumentation-falcon==0.58b0
28+
opentelemetry-instrumentation-fastapi==0.58b0
29+
opentelemetry-instrumentation-flask==0.58b0
30+
opentelemetry-instrumentation-grpc==0.58b0
31+
opentelemetry-instrumentation-httpx==0.58b0
32+
opentelemetry-instrumentation-jinja2==0.58b0
33+
opentelemetry-instrumentation-kafka-python==0.58b0
34+
opentelemetry-instrumentation-logging==0.58b0
35+
opentelemetry-instrumentation-mysql==0.58b0
36+
opentelemetry-instrumentation-mysqlclient==0.58b0
37+
opentelemetry-instrumentation-pika==0.58b0
38+
opentelemetry-instrumentation-psycopg==0.58b0
39+
opentelemetry-instrumentation-psycopg2==0.58b0
40+
opentelemetry-instrumentation-pymemcache==0.58b0
41+
opentelemetry-instrumentation-pymongo==0.58b0
42+
opentelemetry-instrumentation-pymysql==0.58b0
43+
opentelemetry-instrumentation-pymssql==0.58b0
44+
opentelemetry-instrumentation-pyramid==0.58b0
45+
opentelemetry-instrumentation-redis==0.58b0
46+
opentelemetry-instrumentation-remoulade==0.58b0
47+
opentelemetry-instrumentation-requests==0.58b0
48+
opentelemetry-instrumentation-sqlalchemy==0.58b0
49+
opentelemetry-instrumentation-sqlite3==0.58b0
50+
opentelemetry-instrumentation-starlette==0.58b0
51+
opentelemetry-instrumentation-system-metrics==0.58b0
52+
opentelemetry-instrumentation-threading==0.58b0
53+
opentelemetry-instrumentation-tornado==0.58b0
54+
opentelemetry-instrumentation-tortoiseorm==0.58b0
55+
opentelemetry-instrumentation-urllib==0.58b0
56+
opentelemetry-instrumentation-urllib3==0.58b0
57+
opentelemetry-instrumentation-wsgi==0.58b0
5858

5959
elastic-opentelemetry-instrumentation-openai==1.1.1

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@ classifiers = [
2626
]
2727

2828
dependencies = [
29-
"opentelemetry-api == 1.36.0",
30-
"opentelemetry-exporter-otlp == 1.36.0",
31-
"opentelemetry-instrumentation == 0.57b0",
32-
"opentelemetry-instrumentation-system-metrics == 0.57b0",
29+
"opentelemetry-api == 1.37.0",
30+
"opentelemetry-exporter-otlp == 1.37.0",
31+
"opentelemetry-instrumentation == 0.58b0",
32+
"opentelemetry-instrumentation-system-metrics == 0.58b0",
3333
"opentelemetry-resourcedetector-gcp ~= 1.8.0a0",
3434
"opentelemetry-resource-detector-azure ~= 0.1.5",
35-
"opentelemetry-resource-detector-containerid == 0.57b0",
36-
"opentelemetry-sdk == 1.36.0",
35+
"opentelemetry-resource-detector-containerid == 0.58b0",
36+
"opentelemetry-sdk == 1.37.0",
3737
"opentelemetry-sdk-extension-aws ~= 2.1.0",
38-
"opentelemetry-semantic-conventions == 0.57b0",
38+
"opentelemetry-semantic-conventions == 0.58b0",
3939
"packaging",
4040
"uuid-utils",
4141
]

src/elasticotel/distro/__init__.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,6 @@ def _configure(self, **kwargs):
8686
HTTPOTLPMetricExporter: otlp_http_exporter_options,
8787
HTTPOTLPSpanExporter: otlp_http_exporter_options,
8888
}
89-
# TODO: Remove the following line after rebasing on top of upstream 1.37.0
90-
_OTLP_HTTP_HEADERS["User-Agent"] = otlp_http_exporter_options["headers"]["User-Agent"]
91-
9289
super()._configure(**kwargs)
9390

9491
enable_opamp = False
@@ -138,7 +135,9 @@ def load_instrumentor(self, entry_point: EntryPoint, **kwargs):
138135
system_metrics_enabled = system_metrics_configuration.lower() == "true"
139136
if not system_metrics_enabled:
140137
instrumentor_kwargs["config"] = {
141-
k: v for k, v in SYSTEM_METRICS_DEFAULT_CONFIG.items() if k.startswith("process.runtime")
138+
k: v
139+
for k, v in SYSTEM_METRICS_DEFAULT_CONFIG.items()
140+
if k.startswith("process.runtime") or k.startswith("cpython")
142141
}
143142
instrumentor_class(**instrumentor_kwargs).instrument(**kwargs) # type: ignore[reportCallIssue]
144143

tests/distro/test_distro.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ def test_load_instrumentor_call_with_default_kwargs_for_SystemMetricsInstrumento
8585
"process.runtime.memory": ["rss", "vms"],
8686
"process.runtime.cpu.time": ["user", "system"],
8787
"process.runtime.gc_count": None,
88+
"cpython.gc.collections": None,
89+
"cpython.gc.collected_objects": None,
90+
"cpython.gc.uncollectable_objects": None,
8891
"process.runtime.thread_count": None,
8992
"process.runtime.cpu.utilization": None,
9093
"process.runtime.context_switches": ["involuntary", "voluntary"],

tests/integration/test_integration.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ def test_metrics_default_does_not_contain_system_metrics(self):
9191
"process.runtime.cpython.memory",
9292
"process.runtime.cpython.cpu_time",
9393
"process.runtime.cpython.gc_count",
94+
"cpython.gc.collections",
95+
"cpython.gc.collected_objects",
96+
"cpython.gc.uncollectable_objects",
9497
"process.runtime.cpython.thread_count",
9598
"process.runtime.cpython.cpu.utilization",
9699
"process.runtime.cpython.context_switches",
@@ -137,6 +140,9 @@ def test_metrics_with_system_metrics(self):
137140
"process.runtime.cpython.memory",
138141
"process.runtime.cpython.cpu_time",
139142
"process.runtime.cpython.gc_count",
143+
"cpython.gc.collections",
144+
"cpython.gc.collected_objects",
145+
"cpython.gc.uncollectable_objects",
140146
"process.runtime.cpython.thread_count",
141147
"process.runtime.cpython.cpu.utilization",
142148
"process.runtime.cpython.context_switches",

0 commit comments

Comments
 (0)