Skip to content

Commit c9105f9

Browse files
authored
Remove conditional check on OTEL version for Gauge import (#1426)
1 parent 670fe79 commit c9105f9

File tree

2 files changed

+13
-43
lines changed

2 files changed

+13
-43
lines changed

logfire/_internal/metrics.py

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
ObservableGauge,
2020
ObservableUpDownCounter,
2121
UpDownCounter,
22+
_Gauge as Gauge,
2223
)
2324
from opentelemetry.sdk.metrics import MeterProvider as SDKMeterProvider
2425
from opentelemetry.trace import get_current_span
@@ -27,14 +28,6 @@
2728
from .tracer import _LogfireWrappedSpan # type: ignore
2829
from .utils import handle_internal_errors
2930

30-
try:
31-
# This only exists in opentelemetry-sdk>=1.23.0
32-
from opentelemetry.metrics import _Gauge
33-
34-
Gauge = _Gauge
35-
except ImportError: # pragma: no cover
36-
Gauge = None
37-
3831

3932
# The following proxy classes are adapted from OTEL's SDK
4033
@dataclasses.dataclass
@@ -160,14 +153,7 @@ def create_gauge(
160153
name: str,
161154
unit: str = '',
162155
description: str = '',
163-
) -> _Gauge:
164-
if Gauge is None:
165-
# This only exists in opentelemetry-sdk>=1.23.0
166-
raise RuntimeError(
167-
'Gauge is not available in this version of OpenTelemetry SDK.\n'
168-
'You should upgrade to 1.23.0 or newer:\n'
169-
' pip install opentelemetry-sdk>=1.23.0'
170-
)
156+
) -> Gauge:
171157
return self._add_proxy_instrument(_ProxyGauge, name=name, unit=unit, description=description)
172158

173159
def create_observable_gauge(
@@ -280,19 +266,15 @@ def _create_real_instrument(self, meter: Meter) -> UpDownCounter:
280266
return meter.create_up_down_counter(**self._kwargs)
281267

282268

283-
if Gauge is not None: # pragma: no branch
284-
285-
class _ProxyGauge(_ProxyInstrument[Gauge], Gauge):
286-
def set(
287-
self,
288-
amount: int | float,
289-
attributes: Attributes | None = None,
290-
*args: Any,
291-
**kwargs: Any,
292-
) -> None:
293-
self._instrument.set(amount, attributes, *args, **kwargs)
269+
class _ProxyGauge(_ProxyInstrument[Gauge], Gauge):
270+
def set(
271+
self,
272+
amount: int | float,
273+
attributes: Attributes | None = None,
274+
*args: Any,
275+
**kwargs: Any,
276+
) -> None:
277+
self._instrument.set(amount, attributes, *args, **kwargs)
294278

295-
def _create_real_instrument(self, meter: Meter):
296-
return meter.create_gauge(**self._kwargs)
297-
else: # pragma: no cover
298-
_ProxyGauge = None # type: ignore
279+
def _create_real_instrument(self, meter: Meter):
280+
return meter.create_gauge(**self._kwargs)

tests/test_metrics.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
)
1818

1919
import logfire
20-
import logfire._internal.metrics
2120
from logfire._internal.config import METRICS_PREFERRED_TEMPORALITY
2221
from logfire._internal.exporters.quiet_metrics import QuietMetricExporter
2322
from logfire._internal.exporters.test import TestExporter
@@ -205,17 +204,6 @@ def test_create_metric_gauge(metrics_reader: InMemoryMetricReader) -> None:
205204
)
206205

207206

208-
def test_create_metric_gauge_old_opentelemetry_sdk(monkeypatch: pytest.MonkeyPatch) -> None:
209-
monkeypatch.setattr(logfire._internal.metrics, 'Gauge', None)
210-
with pytest.raises(RuntimeError) as exc_info:
211-
logfire.metric_gauge('gauge')
212-
assert str(exc_info.value) == snapshot("""\
213-
Gauge is not available in this version of OpenTelemetry SDK.
214-
You should upgrade to 1.23.0 or newer:
215-
pip install opentelemetry-sdk>=1.23.0\
216-
""")
217-
218-
219207
def test_create_metric_up_down_counter(metrics_reader: InMemoryMetricReader) -> None:
220208
counter = logfire.metric_up_down_counter('up_down_counter')
221209
counter.add(1)

0 commit comments

Comments
 (0)