|
15 | 15 | # metrics.py
|
16 | 16 | # This is still work in progress as the metrics SDK is being implemented
|
17 | 17 |
|
| 18 | +from typing import Iterable |
| 19 | + |
18 | 20 | from opentelemetry._metrics import get_meter_provider, set_meter_provider
|
| 21 | +from opentelemetry._metrics.measurement import Measurement |
19 | 22 | from opentelemetry.sdk._metrics import MeterProvider
|
20 | 23 | from opentelemetry.sdk._metrics.export import (
|
21 | 24 | ConsoleMetricExporter,
|
|
27 | 30 | provider = MeterProvider(metric_readers=[reader])
|
28 | 31 | set_meter_provider(provider)
|
29 | 32 |
|
| 33 | + |
| 34 | +def observable_counter_func() -> Iterable[Measurement]: |
| 35 | + yield Measurement(1, {}) |
| 36 | + |
| 37 | + |
| 38 | +def observable_up_down_counter_func() -> Iterable[Measurement]: |
| 39 | + yield Measurement(-10, {}) |
| 40 | + |
| 41 | + |
| 42 | +def observable_gauge_func() -> Iterable[Measurement]: |
| 43 | + yield Measurement(9, {}) |
| 44 | + |
| 45 | + |
30 | 46 | meter = get_meter_provider().get_meter("getting-started", "0.1.2")
|
31 |
| -counter = meter.create_counter("first_counter") |
| 47 | + |
| 48 | +# Counter |
| 49 | +counter = meter.create_counter("counter") |
32 | 50 | counter.add(1)
|
33 |
| -# TODO: fill in details for additional metrics |
| 51 | + |
| 52 | +# Async Counter |
| 53 | +observable_counter = meter.create_observable_counter( |
| 54 | + "observable_counter", observable_counter_func |
| 55 | +) |
| 56 | + |
| 57 | +# UpDownCounter |
| 58 | +updown_counter = meter.create_up_down_counter("updown_counter") |
| 59 | +updown_counter.add(1) |
| 60 | +updown_counter.add(-5) |
| 61 | + |
| 62 | +# Async UpDownCounter |
| 63 | +observable_updown_counter = meter.create_observable_up_down_counter( |
| 64 | + "observable_updown_counter", observable_up_down_counter_func |
| 65 | +) |
| 66 | + |
| 67 | +# Histogram |
| 68 | +histogram = meter.create_histogram("histogram") |
| 69 | +histogram.record(99.9) |
| 70 | + |
| 71 | +# Async Gauge |
| 72 | +gauge = meter.create_observable_gauge("gauge", observable_gauge_func) |
0 commit comments