16
16
import unittest
17
17
from contextlib import contextmanager
18
18
19
+ from opentelemetry import metrics as metrics_api
19
20
from opentelemetry import trace as trace_api
21
+ from opentelemetry .sdk .metrics import MeterProvider
22
+ from opentelemetry .sdk .metrics .export .in_memory_metrics_exporter import (
23
+ InMemoryMetricsExporter ,
24
+ )
20
25
from opentelemetry .sdk .trace import TracerProvider , export
21
26
from opentelemetry .sdk .trace .export .in_memory_span_exporter import (
22
27
InMemorySpanExporter ,
26
31
class TestBase (unittest .TestCase ):
27
32
@classmethod
28
33
def setUpClass (cls ):
29
- cls .original_provider = trace_api .get_tracer_provider ()
34
+ cls .original_tracer_provider = trace_api .get_tracer_provider ()
30
35
result = cls .create_tracer_provider ()
31
36
cls .tracer_provider , cls .memory_exporter = result
32
37
trace_api .set_tracer_provider (cls .tracer_provider )
38
+ cls .original_meter_provider = metrics_api .get_meter_provider ()
39
+ result = cls .create_meter_provider ()
40
+ cls .meter_provider , cls .memory_metrics_exporter = result
41
+ metrics_api .set_meter_provider (cls .meter_provider )
33
42
34
43
@classmethod
35
44
def tearDownClass (cls ):
36
- trace_api .set_tracer_provider (cls .original_provider )
45
+ trace_api .set_tracer_provider (cls .original_tracer_provider )
46
+ metrics_api .set_meter_provider (cls .original_meter_provider )
37
47
38
48
def setUp (self ):
39
49
self .memory_exporter .clear ()
@@ -53,7 +63,7 @@ def create_tracer_provider(**kwargs):
53
63
54
64
Returns:
55
65
A list with the tracer provider in the first element and the
56
- memory exporter in the second.
66
+ in- memory span exporter in the second.
57
67
"""
58
68
tracer_provider = TracerProvider (** kwargs )
59
69
memory_exporter = InMemorySpanExporter ()
@@ -62,6 +72,20 @@ def create_tracer_provider(**kwargs):
62
72
63
73
return tracer_provider , memory_exporter
64
74
75
+ @staticmethod
76
+ def create_meter_provider (** kwargs ):
77
+ """Helper to create a configured meter provider
78
+
79
+ Creates a `MeterProvider` and an `InMemoryMetricsExporter`.
80
+
81
+ Returns:
82
+ A list with the meter provider in the first element and the
83
+ in-memory metrics exporter in the second
84
+ """
85
+ meter_provider = MeterProvider (** kwargs )
86
+ memory_exporter = InMemoryMetricsExporter ()
87
+ return meter_provider , memory_exporter
88
+
65
89
@staticmethod
66
90
@contextmanager
67
91
def disable_logging (highest_level = logging .CRITICAL ):
0 commit comments