Skip to content

Commit 26eef99

Browse files
authored
Split up metric instrument constructors (open-telemetry#1254)
1 parent 97b602f commit 26eef99

File tree

22 files changed

+526
-348
lines changed

22 files changed

+526
-348
lines changed

docs/examples/basic_meter/basic_metrics.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import time
2626

2727
from opentelemetry import metrics
28-
from opentelemetry.sdk.metrics import Counter, MeterProvider, ValueRecorder
28+
from opentelemetry.sdk.metrics import MeterProvider
2929
from opentelemetry.sdk.metrics.export import ConsoleMetricsExporter
3030

3131
print(
@@ -52,20 +52,18 @@
5252
metrics.get_meter_provider().start_pipeline(meter, exporter, 5)
5353

5454
# Metric instruments allow to capture measurements
55-
requests_counter = meter.create_metric(
55+
requests_counter = meter.create_counter(
5656
name="requests",
5757
description="number of requests",
5858
unit="1",
5959
value_type=int,
60-
metric_type=Counter,
6160
)
6261

63-
requests_size = meter.create_metric(
62+
requests_size = meter.create_valuerecorder(
6463
name="requests_size",
6564
description="size of requests",
6665
unit="1",
6766
value_type=int,
68-
metric_type=ValueRecorder,
6967
)
7068

7169
# Labels are used to identify key-values that are associated with a specific

docs/examples/basic_meter/calling_conventions.py

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,23 @@
1919
import time
2020

2121
from opentelemetry import metrics
22-
from opentelemetry.sdk.metrics import Counter, MeterProvider, ValueRecorder
22+
from opentelemetry.sdk.metrics import MeterProvider
2323
from opentelemetry.sdk.metrics.export import ConsoleMetricsExporter
2424

2525
# Use the meter type provided by the SDK package
2626
metrics.set_meter_provider(MeterProvider())
2727
meter = metrics.get_meter(__name__)
2828
metrics.get_meter_provider().start_pipeline(meter, ConsoleMetricsExporter(), 5)
2929

30-
requests_counter = meter.create_metric(
30+
requests_counter = meter.create_counter(
3131
name="requests",
3232
description="number of requests",
3333
unit="1",
3434
value_type=int,
35-
metric_type=Counter,
3635
)
3736

38-
requests_size = meter.create_metric(
39-
name="requests_size",
40-
description="size of requests",
41-
unit="1",
42-
value_type=int,
43-
metric_type=ValueRecorder,
44-
)
45-
46-
clicks_counter = meter.create_metric(
47-
name="clicks",
48-
description="number of clicks",
49-
unit="1",
50-
value_type=int,
51-
metric_type=Counter,
37+
clicks_counter = meter.create_counter(
38+
name="clicks", description="number of clicks", unit="1", value_type=int,
5239
)
5340

5441
labels = {"environment": "staging"}

docs/examples/basic_meter/observer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def get_cpu_usage_callback(observer):
3434
observer.observe(percent, labels)
3535

3636

37-
meter.register_observer(
37+
meter.register_valueobserver(
3838
callback=get_cpu_usage_callback,
3939
name="cpu_percent",
4040
description="per-cpu usage",
@@ -50,7 +50,7 @@ def get_ram_usage_callback(observer):
5050
observer.observe(ram_percent, {})
5151

5252

53-
meter.register_observer(
53+
meter.register_valueobserver(
5454
callback=get_ram_usage_callback,
5555
name="ram_percent",
5656
description="RAM memory usage",

docs/examples/basic_meter/view.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,7 @@
1717
It shows the usage of the direct, bound and batch calling conventions.
1818
"""
1919
from opentelemetry import metrics
20-
from opentelemetry.sdk.metrics import (
21-
MeterProvider,
22-
UpDownCounter,
23-
ValueRecorder,
24-
)
20+
from opentelemetry.sdk.metrics import MeterProvider
2521
from opentelemetry.sdk.metrics.export import ConsoleMetricsExporter
2622
from opentelemetry.sdk.metrics.export.aggregate import (
2723
HistogramAggregator,
@@ -36,20 +32,18 @@
3632
meter = metrics.get_meter(__name__)
3733
metrics.get_meter_provider().start_pipeline(meter, ConsoleMetricsExporter(), 5)
3834

39-
requests_counter = meter.create_metric(
35+
requests_counter = meter.create_counter(
4036
name="requests",
4137
description="number of requests",
4238
unit="1",
4339
value_type=int,
44-
metric_type=UpDownCounter,
4540
)
4641

47-
requests_size = meter.create_metric(
42+
requests_size = meter.create_valuerecorder(
4843
name="requests_size",
4944
description="size of requests",
5045
unit="1",
5146
value_type=int,
52-
metric_type=ValueRecorder,
5347
)
5448

5549
# Views are used to define an aggregation type and label keys to aggregate by

docs/examples/opencensus-exporter-metrics/collector.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,11 @@
3030
meter = metrics.get_meter(__name__)
3131
metrics.get_meter_provider().start_pipeline(meter, exporter, 5)
3232

33-
requests_counter = meter.create_metric(
33+
requests_counter = meter.create_counter(
3434
name="requests",
3535
description="number of requests",
3636
unit="1",
3737
value_type=int,
38-
metric_type=Counter,
3938
label_keys=("environment",),
4039
)
4140

docs/getting_started/metrics_example.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import time
1717

1818
from opentelemetry import metrics
19-
from opentelemetry.sdk.metrics import Counter, MeterProvider
19+
from opentelemetry.sdk.metrics import MeterProvider
2020
from opentelemetry.sdk.metrics.export import ConsoleMetricsExporter
2121
from opentelemetry.sdk.metrics.export.controller import PushController
2222

@@ -27,12 +27,11 @@
2727

2828
staging_labels = {"environment": "staging"}
2929

30-
requests_counter = meter.create_metric(
30+
requests_counter = meter.create_counter(
3131
name="requests",
3232
description="number of requests",
3333
unit="1",
3434
value_type=int,
35-
metric_type=Counter,
3635
label_keys=("environment",),
3736
)
3837

docs/getting_started/otlpcollector_example.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from opentelemetry import metrics, trace
1919
from opentelemetry.exporter.otlp.metrics_exporter import OTLPMetricsExporter
2020
from opentelemetry.exporter.otlp.trace_exporter import OTLPSpanExporter
21-
from opentelemetry.sdk.metrics import Counter, MeterProvider
21+
from opentelemetry.sdk.metrics import MeterProvider
2222
from opentelemetry.sdk.metrics.export.controller import PushController
2323
from opentelemetry.sdk.trace import TracerProvider
2424
from opentelemetry.sdk.trace.export import BatchExportSpanProcessor
@@ -54,12 +54,11 @@
5454
with tracer.start_as_current_span("foo"):
5555
print("Hello world!")
5656

57-
requests_counter = meter.create_metric(
57+
requests_counter = meter.create_counter(
5858
name="requests",
5959
description="number of requests",
6060
unit="1",
6161
value_type=int,
62-
metric_type=Counter,
6362
label_keys=("environment",),
6463
)
6564
# Labels are used to identify key-values that are associated with a specific

docs/getting_started/prometheus_example.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
from opentelemetry import metrics
2222
from opentelemetry.exporter.prometheus import PrometheusMetricsExporter
23-
from opentelemetry.sdk.metrics import Counter, MeterProvider
23+
from opentelemetry.sdk.metrics import MeterProvider
2424
from opentelemetry.sdk.metrics.export import ConsoleMetricsExporter
2525
from opentelemetry.sdk.metrics.export.controller import PushController
2626

@@ -35,12 +35,11 @@
3535

3636
staging_labels = {"environment": "staging"}
3737

38-
requests_counter = meter.create_metric(
38+
requests_counter = meter.create_counter(
3939
name="requests",
4040
description="number of requests",
4141
unit="1",
4242
value_type=int,
43-
metric_type=Counter,
4443
label_keys=("environment",),
4544
)
4645

exporter/opentelemetry-exporter-opencensus/tests/test_otcollector_metrics_exporter.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,14 @@ def test_get_collector_metric_type(self):
9090

9191
def test_get_collector_point(self):
9292
aggregator = aggregate.SumAggregator()
93-
int_counter = self._meter.create_metric(
94-
"testName", "testDescription", "unit", int, Counter
93+
int_counter = self._meter.create_counter(
94+
"testName", "testDescription", "unit", int,
9595
)
96-
float_counter = self._meter.create_metric(
97-
"testName", "testDescription", "unit", float, Counter
96+
float_counter = self._meter.create_counter(
97+
"testName", "testDescription", "unit", float,
9898
)
99-
valuerecorder = self._meter.create_metric(
100-
"testName", "testDescription", "unit", float, ValueRecorder
99+
valuerecorder = self._meter.create_valuerecorder(
100+
"testName", "testDescription", "unit", float,
101101
)
102102
result = metrics_exporter.get_collector_point(
103103
MetricRecord(
@@ -141,8 +141,8 @@ def test_export(self):
141141
collector_exporter = metrics_exporter.OpenCensusMetricsExporter(
142142
client=mock_client, host_name=host_name
143143
)
144-
test_metric = self._meter.create_metric(
145-
"testname", "testdesc", "unit", int, Counter, self._labels.keys(),
144+
test_metric = self._meter.create_counter(
145+
"testname", "testdesc", "unit", int, self._labels.keys(),
146146
)
147147
record = MetricRecord(
148148
test_metric,
@@ -167,8 +167,8 @@ def test_export(self):
167167
)
168168

169169
def test_translate_to_collector(self):
170-
test_metric = self._meter.create_metric(
171-
"testname", "testdesc", "unit", int, Counter, self._labels.keys()
170+
test_metric = self._meter.create_counter(
171+
"testname", "testdesc", "unit", int, self._labels.keys()
172172
)
173173
aggregator = aggregate.SumAggregator()
174174
aggregator.update(123)

exporter/opentelemetry-exporter-prometheus/src/opentelemetry/exporter/prometheus/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,11 @@
4343
# Starts the collect/export pipeline for metrics
4444
metrics.get_meter_provider().start_pipeline(meter, exporter, 5)
4545
46-
counter = meter.create_metric(
46+
counter = meter.create_counter(
4747
"requests",
4848
"number of requests",
4949
"requests",
5050
int,
51-
Counter,
5251
("environment",),
5352
)
5453

exporter/opentelemetry-exporter-prometheus/tests/test_prometheus_exporter.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ class TestPrometheusMetricExporter(unittest.TestCase):
3636
def setUp(self):
3737
set_meter_provider(metrics.MeterProvider())
3838
self._meter = get_meter_provider().get_meter(__name__)
39-
self._test_metric = self._meter.create_metric(
40-
"testname", "testdesc", "unit", int, metrics.Counter,
39+
self._test_metric = self._meter.create_counter(
40+
"testname", "testdesc", "unit", int,
4141
)
4242
labels = {"environment": "staging"}
4343
self._labels_key = get_dict_as_key(labels)
@@ -80,8 +80,8 @@ def test_export(self):
8080

8181
def test_min_max_sum_aggregator_to_prometheus(self):
8282
meter = get_meter_provider().get_meter(__name__)
83-
metric = meter.create_metric(
84-
"test@name", "testdesc", "unit", int, metrics.ValueRecorder, []
83+
metric = meter.create_valuerecorder(
84+
"test@name", "testdesc", "unit", int, []
8585
)
8686
labels = {}
8787
key_labels = get_dict_as_key(labels)
@@ -101,9 +101,7 @@ def test_min_max_sum_aggregator_to_prometheus(self):
101101

102102
def test_counter_to_prometheus(self):
103103
meter = get_meter_provider().get_meter(__name__)
104-
metric = meter.create_metric(
105-
"test@name", "testdesc", "unit", int, metrics.Counter,
106-
)
104+
metric = meter.create_counter("test@name", "testdesc", "unit", int,)
107105
labels = {"environment@": "staging", "os": "Windows"}
108106
key_labels = get_dict_as_key(labels)
109107
aggregator = SumAggregator()
@@ -134,9 +132,7 @@ def test_counter_to_prometheus(self):
134132

135133
def test_invalid_metric(self):
136134
meter = get_meter_provider().get_meter(__name__)
137-
metric = meter.create_metric(
138-
"tesname", "testdesc", "unit", int, StubMetric
139-
)
135+
metric = StubMetric("tesname", "testdesc", "unit", int, meter)
140136
labels = {"environment": "staging"}
141137
key_labels = get_dict_as_key(labels)
142138
record = MetricRecord(

instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/_utilities.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
import grpc
2121

22-
from opentelemetry.sdk.metrics import Counter, ValueRecorder
23-
2422

2523
class RpcInfo:
2624
def __init__(
@@ -47,33 +45,29 @@ def __init__(self, meter, span_kind):
4745
self._span_kind = span_kind
4846

4947
if self._meter:
50-
self._duration = self._meter.create_metric(
48+
self._duration = self._meter.create_valuerecorder(
5149
name="{}/{}/duration".format(service_name, span_kind),
5250
description="Duration of grpc requests to the server",
5351
unit="ms",
5452
value_type=float,
55-
metric_type=ValueRecorder,
5653
)
57-
self._error_count = self._meter.create_metric(
54+
self._error_count = self._meter.create_counter(
5855
name="{}/{}/errors".format(service_name, span_kind),
5956
description="Number of errors that were returned from the server",
6057
unit="1",
6158
value_type=int,
62-
metric_type=Counter,
6359
)
64-
self._bytes_in = self._meter.create_metric(
60+
self._bytes_in = self._meter.create_counter(
6561
name="{}/{}/bytes_in".format(service_name, span_kind),
6662
description="Number of bytes received from the server",
6763
unit="by",
6864
value_type=int,
69-
metric_type=Counter,
7065
)
71-
self._bytes_out = self._meter.create_metric(
66+
self._bytes_out = self._meter.create_counter(
7267
name="{}/{}/bytes_out".format(service_name, span_kind),
7368
description="Number of bytes sent out through gRPC",
7469
unit="by",
7570
value_type=int,
76-
metric_type=Counter,
7771
)
7872

7973
def record_bytes_in(self, bytes_in, method):

0 commit comments

Comments
 (0)