Skip to content

Commit bc26ac4

Browse files
examples/metrics: miscellaneous updates
- use explicit parameter names to make it more clear - fix comments (actually remove them) in simple_example
1 parent 2e8cf8d commit bc26ac4

File tree

3 files changed

+48
-22
lines changed

3 files changed

+48
-22
lines changed

examples/metrics/observer_example.py

+14-9
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from opentelemetry.sdk.metrics.export.controller import PushController
2626

2727
# Configure a stateful batcher
28-
batcher = UngroupedBatcher(True)
28+
batcher = UngroupedBatcher(stateful=True)
2929

3030
metrics.set_preferred_meter_implementation(lambda _: Meter(batcher))
3131
meter = metrics.meter()
@@ -34,7 +34,7 @@
3434
exporter = ConsoleMetricsExporter()
3535

3636
# Configure a push controller
37-
controller = PushController(meter, exporter, 2)
37+
controller = PushController(meter=meter, exporter=exporter, interval=2)
3838

3939

4040
# Callback to gather cpu usage
@@ -45,12 +45,12 @@ def get_cpu_usage_callback(observer):
4545

4646

4747
meter.register_observer(
48-
get_cpu_usage_callback,
49-
"cpu_percent",
50-
"per-cpu usage",
51-
1,
52-
float,
53-
("cpu_number",),
48+
callback=get_cpu_usage_callback,
49+
name="cpu_percent",
50+
description="per-cpu usage",
51+
unit="1",
52+
value_type=float,
53+
label_keys=("cpu_number",),
5454
)
5555

5656

@@ -61,7 +61,12 @@ def get_ram_usage_callback(observer):
6161

6262

6363
meter.register_observer(
64-
get_ram_usage_callback, "ram_percent", "RAM memory usage", 1, float, (),
64+
callback=get_ram_usage_callback,
65+
name="ram_percent",
66+
description="RAM memory usage",
67+
unit="1",
68+
value_type=float,
69+
label_keys=(),
6570
)
6671

6772
input("Press a key to finish...\n")

examples/metrics/record.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,25 @@
3030
exporter = ConsoleMetricsExporter()
3131
# controller collects metrics created from meter and exports it via the
3232
# exporter every interval
33-
controller = PushController(meter, exporter, 5)
33+
controller = PushController(meter=meter, exporter=exporter, interval=5)
3434

3535
# Example to show how to record using the meter
3636
counter = meter.create_metric(
37-
"requests", "number of requests", 1, int, Counter, ("environment",)
37+
name="requests",
38+
description="number of requests",
39+
unit="1",
40+
value_type=int,
41+
metric_type=Counter,
42+
label_keys=("environment",),
3843
)
3944

4045
counter2 = meter.create_metric(
41-
"clicks", "number of clicks", 1, int, Counter, ("environment",)
46+
name="clicks",
47+
description="number of clicks",
48+
unit="1",
49+
value_type=int,
50+
metric_type=Counter,
51+
label_keys=("environment",),
4252
)
4353

4454
# Labelsets are used to identify key-values that are associated with a specific

examples/metrics/simple_example.py

+21-10
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from opentelemetry.sdk.metrics.export.controller import PushController
3030

3131
batcher_mode = "stateful"
32+
stateful_bacher = False
3233

3334

3435
def usage(argv):
@@ -50,7 +51,8 @@ def usage(argv):
5051
# lifetime.
5152
# False indicates the batcher computes checkpoints which describe the updates
5253
# of a single collection period (deltas)
53-
batcher = UngroupedBatcher(batcher_mode == "stateful")
54+
stateful_bacher = batcher_mode == "stateful"
55+
batcher = UngroupedBatcher(stateful=stateful_bacher)
5456

5557
# If a batcher is not provided, a default batcher is used
5658
# Meter is responsible for creating and recording metrics
@@ -66,15 +68,30 @@ def usage(argv):
6668

6769
# Metric instruments allow to capture measurements
6870
requests_counter = meter.create_metric(
69-
"requests", "number of requests", 1, int, Counter, ("environment",)
71+
name="requests",
72+
description="number of requests",
73+
unit="1",
74+
value_type=int,
75+
metric_type=Counter,
76+
label_keys=("environment",),
7077
)
7178

7279
clicks_counter = meter.create_metric(
73-
"clicks", "number of clicks", 1, int, Counter, ("environment",)
80+
name="clicks",
81+
description="number of clicks",
82+
unit="1",
83+
value_type=int,
84+
metric_type=Counter,
85+
label_keys=("environment",),
7486
)
7587

7688
requests_size = meter.create_metric(
77-
"requests_size", "size of requests", 1, int, Measure, ("environment",)
89+
name="requests_size",
90+
description="size of requests",
91+
unit="1",
92+
value_type=int,
93+
metric_type=Measure,
94+
label_keys=("environment",),
7895
)
7996

8097
# Labelsets are used to identify key-values that are associated with a specific
@@ -86,21 +103,15 @@ def usage(argv):
86103
# Update the metric instruments using the direct calling convention
87104
requests_size.record(100, staging_label_set)
88105
requests_counter.add(25, staging_label_set)
89-
# Sleep for 5 seconds, exported value should be 25
90106
time.sleep(5)
91107

92108
requests_size.record(5000, staging_label_set)
93109
requests_counter.add(50, staging_label_set)
94-
# Exported value should be 75
95110
time.sleep(5)
96111

97112
requests_size.record(2, testing_label_set)
98113
requests_counter.add(35, testing_label_set)
99-
# There should be two exported values 75 and 35, one for each labelset
100114
time.sleep(5)
101115

102116
clicks_counter.add(5, staging_label_set)
103-
# There should be three exported values, labelsets can be reused for different
104-
# metrics but will be recorded seperately, 75, 35 and 5
105-
106117
time.sleep(5)

0 commit comments

Comments
 (0)