Skip to content

Commit 54d4f3f

Browse files
authored
Update dependencies, especially OTEL (#337)
1 parent f3c50a2 commit 54d4f3f

File tree

7 files changed

+72
-64
lines changed

7 files changed

+72
-64
lines changed

logfire/_internal/exporters/processor_wrapper.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,13 @@ def _tweak_asgi_send_receive_spans(span: ReadableSpanDict) -> None:
136136

137137
def _is_asgi_send_receive_span(name: str, instrumentation_scope: InstrumentationScope | None) -> bool:
138138
return (
139-
instrumentation_scope is not None and instrumentation_scope.name == 'opentelemetry.instrumentation.asgi'
139+
instrumentation_scope is not None
140+
and instrumentation_scope.name
141+
in (
142+
'opentelemetry.instrumentation.asgi',
143+
'opentelemetry.instrumentation.starlette',
144+
'opentelemetry.instrumentation.fastapi',
145+
)
140146
) and (name.endswith((' http send', ' http receive', ' websocket send', ' websocket receive')))
141147

142148

logfire/_internal/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
from django.http import HttpRequest, HttpResponse
7070
from fastapi import FastAPI
7171
from flask.app import Flask
72-
from opentelemetry.metrics import _Gauge as Gauge
72+
from opentelemetry.metrics import _Gauge as Gauge # type: ignore
7373
from starlette.applications import Starlette
7474
from starlette.requests import Request
7575
from starlette.websockets import WebSocket

logfire/_internal/metrics.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
try:
2626
# This only exists in opentelemetry-sdk>=1.23.0
27-
from opentelemetry.metrics import _Gauge
27+
from opentelemetry.metrics import _Gauge # type: ignore
2828

2929
Gauge = _Gauge
3030
except ImportError: # pragma: no cover
@@ -99,10 +99,12 @@ def get_meter(
9999
name: str,
100100
version: str | None = None,
101101
schema_url: str | None = None,
102+
*args: Any,
103+
**kwargs: Any,
102104
) -> Meter:
103105
with self.lock:
104106
meter = _ProxyMeter(
105-
self.provider.get_meter(name, version=version, schema_url=schema_url),
107+
self.provider.get_meter(name, version=version, schema_url=schema_url, *args, **kwargs),
106108
name,
107109
version,
108110
schema_url,

logfire/_internal/tracer.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,14 @@ def set_provider(self, provider: SDKTracerProvider) -> None:
5050

5151
def get_tracer(
5252
self,
53-
instrumenting_module_name: str,
54-
instrumenting_library_version: str | None = None,
55-
schema_url: str | None = None,
53+
*args: Any,
5654
is_span_tracer: bool = True,
55+
**kwargs: Any,
5756
) -> _ProxyTracer:
5857
with self.lock:
5958

6059
def make() -> Tracer:
61-
return self.provider.get_tracer(
62-
instrumenting_module_name=instrumenting_module_name,
63-
instrumenting_library_version=instrumenting_library_version,
64-
schema_url=schema_url,
65-
)
60+
return self.provider.get_tracer(*args, **kwargs)
6661

6762
tracer = _ProxyTracer(make(), self, is_span_tracer)
6863
self.tracers[tracer] = make

requirements-dev.lock

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# features: []
77
# all-features: false
88
# with-sources: false
9+
# generate-hashes: false
910

1011
-e file:.
1112
aiohttp==3.9.5
@@ -73,6 +74,7 @@ coverage==7.6.0
7374
deprecated==1.2.14
7475
# via opentelemetry-api
7576
# via opentelemetry-exporter-otlp-proto-http
77+
# via opentelemetry-semantic-conventions
7678
dirty-equals==0.7.1.post0
7779
distlib==0.3.8
7880
# via virtualenv
@@ -118,7 +120,7 @@ httpx==0.27.0
118120
# via anthropic
119121
# via fastapi
120122
# via openai
121-
huggingface-hub==0.24.0
123+
huggingface-hub==0.24.2
122124
# via tokenizers
123125
identify==2.6.0
124126
# via pre-commit
@@ -128,12 +130,12 @@ idna==3.7
128130
# via httpx
129131
# via requests
130132
# via yarl
131-
importlib-metadata==7.1.0
133+
importlib-metadata==8.0.0
132134
# via opentelemetry-api
133135
# via opentelemetry-instrumentation-flask
134136
iniconfig==2.0.0
135137
# via pytest
136-
inline-snapshot==0.11.0
138+
inline-snapshot==0.12.0
137139
itsdangerous==2.2.0
138140
# via flask
139141
jinja2==3.1.4
@@ -175,7 +177,7 @@ mkdocs-autorefs==1.0.1
175177
mkdocs-get-deps==0.2.0
176178
# via mkdocs
177179
mkdocs-glightbox==0.4.0
178-
mkdocs-material==9.5.29
180+
mkdocs-material==9.5.30
179181
mkdocs-material-extensions==1.3.1
180182
# via mkdocs-material
181183
mkdocstrings==0.25.1
@@ -191,10 +193,10 @@ mypy-extensions==1.0.0
191193
nodeenv==1.9.1
192194
# via pre-commit
193195
# via pyright
194-
numpy==2.0.0
196+
numpy==2.0.1
195197
# via pandas
196-
openai==1.36.0
197-
opentelemetry-api==1.25.0
198+
openai==1.37.0
199+
opentelemetry-api==1.26.0
198200
# via opentelemetry-exporter-otlp-proto-http
199201
# via opentelemetry-instrumentation
200202
# via opentelemetry-instrumentation-aiohttp-client
@@ -217,11 +219,11 @@ opentelemetry-api==1.25.0
217219
# via opentelemetry-instrumentation-wsgi
218220
# via opentelemetry-sdk
219221
# via opentelemetry-semantic-conventions
220-
opentelemetry-exporter-otlp-proto-common==1.25.0
222+
opentelemetry-exporter-otlp-proto-common==1.26.0
221223
# via opentelemetry-exporter-otlp-proto-http
222-
opentelemetry-exporter-otlp-proto-http==1.25.0
224+
opentelemetry-exporter-otlp-proto-http==1.26.0
223225
# via logfire
224-
opentelemetry-instrumentation==0.46b0
226+
opentelemetry-instrumentation==0.47b0
225227
# via logfire
226228
# via opentelemetry-instrumentation-aiohttp-client
227229
# via opentelemetry-instrumentation-asgi
@@ -241,37 +243,37 @@ opentelemetry-instrumentation==0.46b0
241243
# via opentelemetry-instrumentation-starlette
242244
# via opentelemetry-instrumentation-system-metrics
243245
# via opentelemetry-instrumentation-wsgi
244-
opentelemetry-instrumentation-aiohttp-client==0.46b0
245-
opentelemetry-instrumentation-asgi==0.46b0
246+
opentelemetry-instrumentation-aiohttp-client==0.47b0
247+
opentelemetry-instrumentation-asgi==0.47b0
246248
# via opentelemetry-instrumentation-fastapi
247249
# via opentelemetry-instrumentation-starlette
248-
opentelemetry-instrumentation-asyncpg==0.46b0
249-
opentelemetry-instrumentation-celery==0.46b0
250-
opentelemetry-instrumentation-dbapi==0.46b0
250+
opentelemetry-instrumentation-asyncpg==0.47b0
251+
opentelemetry-instrumentation-celery==0.47b0
252+
opentelemetry-instrumentation-dbapi==0.47b0
251253
# via opentelemetry-instrumentation-psycopg
252254
# via opentelemetry-instrumentation-psycopg2
253-
opentelemetry-instrumentation-django==0.46b0
254-
opentelemetry-instrumentation-fastapi==0.46b0
255-
opentelemetry-instrumentation-flask==0.46b0
256-
opentelemetry-instrumentation-httpx==0.46b0
257-
opentelemetry-instrumentation-psycopg==0.46b0
258-
opentelemetry-instrumentation-psycopg2==0.46b0
259-
opentelemetry-instrumentation-pymongo==0.46b0
260-
opentelemetry-instrumentation-redis==0.46b0
261-
opentelemetry-instrumentation-requests==0.46b0
262-
opentelemetry-instrumentation-sqlalchemy==0.46b0
263-
opentelemetry-instrumentation-starlette==0.46b0
264-
opentelemetry-instrumentation-system-metrics==0.46b0
265-
opentelemetry-instrumentation-wsgi==0.46b0
255+
opentelemetry-instrumentation-django==0.47b0
256+
opentelemetry-instrumentation-fastapi==0.47b0
257+
opentelemetry-instrumentation-flask==0.47b0
258+
opentelemetry-instrumentation-httpx==0.47b0
259+
opentelemetry-instrumentation-psycopg==0.47b0
260+
opentelemetry-instrumentation-psycopg2==0.47b0
261+
opentelemetry-instrumentation-pymongo==0.47b0
262+
opentelemetry-instrumentation-redis==0.47b0
263+
opentelemetry-instrumentation-requests==0.47b0
264+
opentelemetry-instrumentation-sqlalchemy==0.47b0
265+
opentelemetry-instrumentation-starlette==0.47b0
266+
opentelemetry-instrumentation-system-metrics==0.47b0
267+
opentelemetry-instrumentation-wsgi==0.47b0
266268
# via opentelemetry-instrumentation-django
267269
# via opentelemetry-instrumentation-flask
268-
opentelemetry-proto==1.25.0
270+
opentelemetry-proto==1.26.0
269271
# via opentelemetry-exporter-otlp-proto-common
270272
# via opentelemetry-exporter-otlp-proto-http
271-
opentelemetry-sdk==1.25.0
273+
opentelemetry-sdk==1.26.0
272274
# via logfire
273275
# via opentelemetry-exporter-otlp-proto-http
274-
opentelemetry-semantic-conventions==0.46b0
276+
opentelemetry-semantic-conventions==0.47b0
275277
# via opentelemetry-instrumentation-aiohttp-client
276278
# via opentelemetry-instrumentation-asgi
277279
# via opentelemetry-instrumentation-asyncpg
@@ -288,7 +290,7 @@ opentelemetry-semantic-conventions==0.46b0
288290
# via opentelemetry-instrumentation-starlette
289291
# via opentelemetry-instrumentation-wsgi
290292
# via opentelemetry-sdk
291-
opentelemetry-util-http==0.46b0
293+
opentelemetry-util-http==0.47b0
292294
# via opentelemetry-instrumentation-aiohttp-client
293295
# via opentelemetry-instrumentation-asgi
294296
# via opentelemetry-instrumentation-django
@@ -321,11 +323,11 @@ pluggy==1.5.0
321323
pre-commit==3.7.1
322324
prompt-toolkit==3.0.47
323325
# via click-repl
324-
protobuf==4.25.3
326+
protobuf==4.25.4
325327
# via googleapis-common-protos
326328
# via logfire
327329
# via opentelemetry-proto
328-
psutil==5.9.8
330+
psutil==6.0.0
329331
# via opentelemetry-instrumentation-system-metrics
330332
psycopg==3.2.1
331333
psycopg-binary==3.2.1
@@ -345,7 +347,7 @@ pymdown-extensions==10.8.1
345347
# via mkdocs-material
346348
# via mkdocstrings
347349
pymongo==4.8.0
348-
pyright==1.1.372
350+
pyright==1.1.373
349351
pytest==8.3.1
350352
# via pytest-django
351353
# via pytest-pretty
@@ -373,7 +375,7 @@ pyyaml==6.0.1
373375
pyyaml-env-tag==0.1
374376
# via mkdocs
375377
redis==5.0.7
376-
regex==2024.5.15
378+
regex==2024.7.24
377379
# via mkdocs-material
378380
requests==2.32.3
379381
# via huggingface-hub
@@ -386,8 +388,8 @@ rich==13.7.1
386388
# via logfire
387389
# via pytest-pretty
388390
# via typer
389-
ruff==0.5.3
390-
setuptools==71.0.4
391+
ruff==0.5.4
392+
setuptools==71.1.0
391393
# via opentelemetry-instrumentation
392394
shellingham==1.5.4
393395
# via typer
@@ -401,7 +403,7 @@ sniffio==1.3.1
401403
# via openai
402404
sqlalchemy==2.0.31
403405
# via sqlmodel
404-
sqlmodel==0.0.20
406+
sqlmodel==0.0.21
405407
sqlparse==0.5.1
406408
# via django
407409
starlette==0.37.2
@@ -422,6 +424,7 @@ typing-extensions==4.12.2
422424
# via anthropic
423425
# via fastapi
424426
# via huggingface-hub
427+
# via inline-snapshot
425428
# via logfire
426429
# via mypy
427430
# via openai

requirements.lock

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# features: []
77
# all-features: false
88
# with-sources: false
9+
# generate-hashes: false
910

1011
-e file:.
1112
certifi==2024.7.4
@@ -15,38 +16,39 @@ charset-normalizer==3.3.2
1516
deprecated==1.2.14
1617
# via opentelemetry-api
1718
# via opentelemetry-exporter-otlp-proto-http
19+
# via opentelemetry-semantic-conventions
1820
executing==2.0.1
1921
# via logfire
2022
googleapis-common-protos==1.63.2
2123
# via opentelemetry-exporter-otlp-proto-http
2224
idna==3.7
2325
# via requests
24-
importlib-metadata==7.1.0
26+
importlib-metadata==8.0.0
2527
# via opentelemetry-api
2628
markdown-it-py==3.0.0
2729
# via rich
2830
mdurl==0.1.2
2931
# via markdown-it-py
30-
opentelemetry-api==1.25.0
32+
opentelemetry-api==1.26.0
3133
# via opentelemetry-exporter-otlp-proto-http
3234
# via opentelemetry-instrumentation
3335
# via opentelemetry-sdk
3436
# via opentelemetry-semantic-conventions
35-
opentelemetry-exporter-otlp-proto-common==1.25.0
37+
opentelemetry-exporter-otlp-proto-common==1.26.0
3638
# via opentelemetry-exporter-otlp-proto-http
37-
opentelemetry-exporter-otlp-proto-http==1.25.0
39+
opentelemetry-exporter-otlp-proto-http==1.26.0
3840
# via logfire
39-
opentelemetry-instrumentation==0.46b0
41+
opentelemetry-instrumentation==0.47b0
4042
# via logfire
41-
opentelemetry-proto==1.25.0
43+
opentelemetry-proto==1.26.0
4244
# via opentelemetry-exporter-otlp-proto-common
4345
# via opentelemetry-exporter-otlp-proto-http
44-
opentelemetry-sdk==1.25.0
46+
opentelemetry-sdk==1.26.0
4547
# via logfire
4648
# via opentelemetry-exporter-otlp-proto-http
47-
opentelemetry-semantic-conventions==0.46b0
49+
opentelemetry-semantic-conventions==0.47b0
4850
# via opentelemetry-sdk
49-
protobuf==4.25.3
51+
protobuf==4.25.4
5052
# via googleapis-common-protos
5153
# via logfire
5254
# via opentelemetry-proto
@@ -56,7 +58,7 @@ requests==2.32.3
5658
# via opentelemetry-exporter-otlp-proto-http
5759
rich==13.7.1
5860
# via logfire
59-
setuptools==71.0.4
61+
setuptools==71.1.0
6062
# via opentelemetry-instrumentation
6163
typing-extensions==4.12.2
6264
# via logfire

tests/test_metrics.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def test_create_metric_gauge(metrics_reader: InMemoryMetricReader) -> None:
146146
'data_points': [
147147
{
148148
'attributes': {},
149-
'start_time_unix_nano': 0,
149+
'start_time_unix_nano': None,
150150
'time_unix_nano': IsInt(),
151151
'value': 1,
152152
}
@@ -169,7 +169,7 @@ def test_create_metric_gauge(metrics_reader: InMemoryMetricReader) -> None:
169169
'data_points': [
170170
{
171171
'attributes': {},
172-
'start_time_unix_nano': 0,
172+
'start_time_unix_nano': None,
173173
'time_unix_nano': IsInt(),
174174
'value': 24,
175175
}
@@ -278,7 +278,7 @@ def observable_gauge(options: CallbackOptions):
278278
'data_points': [
279279
{
280280
'attributes': {},
281-
'start_time_unix_nano': 0,
281+
'start_time_unix_nano': None,
282282
'time_unix_nano': IsInt(),
283283
'value': 4000,
284284
}

0 commit comments

Comments
 (0)