Skip to content

Commit

Permalink
Format
Browse files Browse the repository at this point in the history
  • Loading branch information
sarafonseca-123 authored and ocelotl committed Feb 5, 2024
1 parent 1d1836d commit 064ce06
Show file tree
Hide file tree
Showing 17 changed files with 72 additions and 87 deletions.
4 changes: 3 additions & 1 deletion docs/getting_started/metrics_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ def observable_gauge_func(options: CallbackOptions) -> Iterable[Observation]:
histogram.record(99.9)

# Async Gauge
observable_gauge = meter.create_observable_gauge("gauge", [observable_gauge_func])
observable_gauge = meter.create_observable_gauge(
"gauge", [observable_gauge_func]
)

# Sync Gauge
gauge = meter.create_gauge("gauge")
Expand Down
2 changes: 1 addition & 1 deletion opentelemetry-api/src/opentelemetry/metrics/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@
CallbackOptions,
CallbackT,
Counter,
Histogram,
Gauge,
Histogram,
Instrument,
NoOpCounter,
NoOpHistogram,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@
from opentelemetry.metrics._internal.instrument import (
CallbackT,
Counter,
Histogram,
Gauge,
Histogram,
NoOpCounter,
NoOpHistogram,
NoOpGauge,
NoOpHistogram,
NoOpObservableCounter,
NoOpObservableGauge,
NoOpObservableUpDownCounter,
Expand All @@ -65,8 +65,8 @@
ObservableUpDownCounter,
UpDownCounter,
_ProxyCounter,
_ProxyHistogram,
_ProxyGauge,
_ProxyHistogram,
_ProxyObservableCounter,
_ProxyObservableGauge,
_ProxyObservableUpDownCounter,
Expand Down Expand Up @@ -531,7 +531,7 @@ def create_histogram(
proxy = _ProxyHistogram(name, unit, description)
self._instruments.append(proxy)
return proxy

def create_gauge(
self,
name: str,
Expand Down Expand Up @@ -611,7 +611,7 @@ def create_counter(
description,
)
return NoOpCounter(name, unit=unit, description=description)

def create_gauge(
self,
name: str,
Expand All @@ -620,9 +620,9 @@ def create_gauge(
) -> Gauge:
"""Returns a no-op Gauge."""
super().create_gauge(name, unit=unit, description=description)
if self._is_instrument_registered(
name, NoOpGauge, unit, description
)[0]:
if self._is_instrument_registered(name, NoOpGauge, unit, description)[
0
]:
_logger.warning(
"An instrument with name %s, type %s, unit %s and "
"description %s has been created already.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,8 +397,10 @@ def _create_real_instrument(
self._name, self._callbacks, self._unit, self._description
)


class Gauge(Synchronous):
"""A Gauge is a synchronous `Instrument` which can be used to record non-additive values as they occur."""

@abstractmethod
def set(
self,
Expand All @@ -407,6 +409,7 @@ def set(
) -> None:
pass


class NoOpGauge(Gauge):
"""No-op implementation of `Gauge`."""

Expand All @@ -425,6 +428,7 @@ def set(
) -> None:
return super().set(amount, attributes=attributes)


class _ProxyGauge(
_ProxyInstrument[Gauge],
Gauge,
Expand All @@ -437,9 +441,5 @@ def set(
if self._real_instrument:
self._real_instrument.set(amount, attributes)

def _create_real_instrument(
self, meter: "metrics.Meter"
) -> Gauge:
return meter.create_gauge(
self._name, self._unit, self._description
)
def _create_real_instrument(self, meter: "metrics.Meter") -> Gauge:
return meter.create_gauge(self._name, self._unit, self._description)
38 changes: 10 additions & 28 deletions opentelemetry-api/tests/metrics/test_instruments.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ def test_histogram_record_method(self):

self.assertIsNone(NoOpHistogram("name").record(1))


class TestGauge(TestCase):
def test_create_gauge(self):
"""
Expand All @@ -302,44 +303,25 @@ def test_create_gauge_api(self):
Test that the API for creating a gauge accepts the description of the instrument
"""

create_gauge_signature = signature(
Meter.create_gauge
)
self.assertIn(
"name", create_gauge_signature.parameters.keys()
)
create_gauge_signature = signature(Meter.create_gauge)
self.assertIn("name", create_gauge_signature.parameters.keys())
self.assertIs(
create_gauge_signature.parameters["name"].default,
Signature.empty,
)
create_gauge_signature = signature(
Meter.create_gauge
)
create_gauge_signature = signature(
Meter.create_gauge
)
self.assertIn(
"unit", create_gauge_signature.parameters.keys()
)
self.assertIs(
create_gauge_signature.parameters["unit"].default, ""
)
create_gauge_signature = signature(Meter.create_gauge)
create_gauge_signature = signature(Meter.create_gauge)
self.assertIn("unit", create_gauge_signature.parameters.keys())
self.assertIs(create_gauge_signature.parameters["unit"].default, "")

create_gauge_signature = signature(
Meter.create_gauge
)
self.assertIn(
"description", create_gauge_signature.parameters.keys()
)
create_gauge_signature = signature(Meter.create_gauge)
self.assertIn("description", create_gauge_signature.parameters.keys())
self.assertIs(
create_gauge_signature.parameters[
"description"
].default,
create_gauge_signature.parameters["description"].default,
"",
)



class TestObservableGauge(TestCase):
def test_create_observable_gauge(self):
"""
Expand Down
3 changes: 1 addition & 2 deletions opentelemetry-api/tests/metrics/test_meter_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
from opentelemetry.metrics._internal import _ProxyMeter, _ProxyMeterProvider
from opentelemetry.metrics._internal.instrument import (
_ProxyCounter,
_ProxyHistogram,
_ProxyGauge,
_ProxyHistogram,
_ProxyObservableCounter,
_ProxyObservableGauge,
_ProxyObservableUpDownCounter,
Expand Down Expand Up @@ -284,7 +284,6 @@ def test_proxy_meter(self):
proxy_gauge.set(amount, attributes=attributes)
real_gauge.set.assert_called_once_with(amount, attributes)


def test_proxy_meter_with_real_meter(self) -> None:
# Creating new instruments on the _ProxyMeter with a real meter set
# should create real instruments instead of proxies
Expand Down
3 changes: 2 additions & 1 deletion opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
from opentelemetry.sdk.metrics._internal.exceptions import MetricsTimeoutError
from opentelemetry.sdk.metrics._internal.instrument import (
Counter,
Histogram,
Gauge,
Histogram,
ObservableCounter,
ObservableGauge,
ObservableUpDownCounter,
Expand All @@ -31,6 +31,7 @@
"MetricsTimeoutError",
"Counter",
"Histogram",
"Gauge",
"ObservableCounter",
"ObservableGauge",
"ObservableUpDownCounter",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
# This kind of import is needed to avoid Sphinx errors.
import opentelemetry.sdk.metrics
from opentelemetry.metrics import Counter as APICounter
from opentelemetry.metrics import Histogram as APIHistogram
from opentelemetry.metrics import Gauge as APIGauge
from opentelemetry.metrics import Histogram as APIHistogram
from opentelemetry.metrics import Meter as APIMeter
from opentelemetry.metrics import MeterProvider as APIMeterProvider
from opentelemetry.metrics import NoOpMeter
Expand All @@ -35,8 +35,8 @@
from opentelemetry.sdk.metrics._internal.exceptions import MetricsTimeoutError
from opentelemetry.sdk.metrics._internal.instrument import (
_Counter,
_Histogram,
_Gauge,
_Histogram,
_ObservableCounter,
_ObservableGauge,
_ObservableUpDownCounter,
Expand Down Expand Up @@ -219,7 +219,7 @@ def create_histogram(self, name, unit="", description="") -> APIHistogram:
with self._instrument_id_instrument_lock:
self._instrument_id_instrument[instrument_id] = instrument
return instrument

def create_gauge(self, name, unit="", description="") -> APIGauge:

(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
from opentelemetry.metrics import (
Asynchronous,
Counter,
Histogram,
Gauge,
Histogram,
Instrument,
ObservableCounter,
ObservableGauge,
Expand All @@ -47,8 +47,8 @@
from opentelemetry.sdk.metrics._internal.point import Buckets as BucketsPoint
from opentelemetry.sdk.metrics._internal.point import (
ExponentialHistogramDataPoint,
Gauge as GaugePoint,
)
from opentelemetry.sdk.metrics._internal.point import Gauge as GaugePoint
from opentelemetry.sdk.metrics._internal.point import (
Histogram as HistogramPoint,
)
Expand Down Expand Up @@ -1106,7 +1106,7 @@ def _create_aggregation(

if isinstance(instrument, ObservableGauge):
return _LastValueAggregation(attributes)

if isinstance(instrument, Gauge):
return _LastValueAggregation(attributes)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@
from opentelemetry.sdk.metrics._internal.exceptions import MetricsTimeoutError
from opentelemetry.sdk.metrics._internal.instrument import (
Counter,
Histogram,
Gauge,
Histogram,
ObservableCounter,
ObservableGauge,
ObservableUpDownCounter,
UpDownCounter,
_Counter,
_Histogram,
_Gauge,
_Histogram,
_ObservableCounter,
_ObservableGauge,
_ObservableUpDownCounter,
Expand Down Expand Up @@ -255,9 +255,7 @@ def __init__(
_Histogram
] = temporality
elif typ is Gauge:
self._instrument_class_temporality[
_Gauge
] = temporality
self._instrument_class_temporality[_Gauge] = temporality
elif typ is ObservableCounter:
self._instrument_class_temporality[
_ObservableCounter
Expand Down Expand Up @@ -297,9 +295,7 @@ def __init__(
_Histogram
] = aggregation
elif typ is Gauge:
self._instrument_class_aggregation[
_Gauge
] = aggregation
self._instrument_class_aggregation[_Gauge] = aggregation
elif typ is ObservableCounter:
self._instrument_class_aggregation[
_ObservableCounter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import opentelemetry.sdk.metrics
from opentelemetry.metrics import CallbackT
from opentelemetry.metrics import Counter as APICounter
from opentelemetry.metrics import Histogram as APIHistogram
from opentelemetry.metrics import Gauge as APIGauge
from opentelemetry.metrics import Histogram as APIHistogram
from opentelemetry.metrics import ObservableCounter as APIObservableCounter
from opentelemetry.metrics import ObservableGauge as APIObservableGauge
from opentelemetry.metrics import (
Expand Down Expand Up @@ -212,6 +212,7 @@ def record(
Measurement(amount, self, attributes)
)


class Gauge(_Synchronous, APIGauge):
def __new__(cls, *args, **kwargs):
if cls is Gauge:
Expand All @@ -225,6 +226,7 @@ def set(
Measurement(amount, self, attributes)
)


class ObservableGauge(_Asynchronous, APIObservableGauge):
def __new__(cls, *args, **kwargs):
if cls is ObservableGauge:
Expand Down Expand Up @@ -254,8 +256,10 @@ class _ObservableUpDownCounter(ObservableUpDownCounter):
class _Histogram(Histogram):
pass


class _Gauge(Gauge):
pass


class _ObservableGauge(ObservableGauge):
pass
2 changes: 1 addition & 1 deletion opentelemetry-sdk/tests/metrics/test_aggregation.py
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ def test_histogram(self):
0,
)
self.assertIsInstance(aggregation, _ExplicitBucketHistogramAggregation)

def test_gauge(self):

aggregation = self.default_aggregation._create_aggregation(
Expand Down
2 changes: 1 addition & 1 deletion opentelemetry-sdk/tests/metrics/test_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ def test_import_init(self):
with self.assertNotRaises(Exception):
from opentelemetry.sdk.metrics import ( # noqa: F401
Counter,
Histogram,
Gauge,
Histogram,
Meter,
MeterProvider,
ObservableCounter,
Expand Down
Loading

0 comments on commit 064ce06

Please sign in to comment.