1515import unittest
1616from unittest .mock import Mock , patch
1717
18- from azure .monitor .opentelemetry .distro import configure_opentelemetry
18+ from azure .monitor .opentelemetry .distro import configure_azure_monitor
1919from opentelemetry .semconv .resource import ResourceAttributes
2020
2121
@@ -30,16 +30,20 @@ class TestConfigure(unittest.TestCase):
3030 "azure.monitor.opentelemetry.distro.TracerProvider" ,
3131 autospec = True ,
3232 )
33+ @patch (
34+ "azure.monitor.opentelemetry.distro.ApplicationInsightsSampler" ,
35+ )
3336 @patch (
3437 "azure.monitor.opentelemetry.distro.Resource" ,
3538 )
3639 @patch (
3740 "azure.monitor.opentelemetry.distro.trace" ,
3841 )
39- def test_configure_opentelemetry (
42+ def test_configure_azure_monitor (
4043 self ,
4144 trace_mock ,
4245 resource_mock ,
46+ sampler_mock ,
4347 tp_mock ,
4448 exporter_mock ,
4549 bsp_mock ,
@@ -50,14 +54,17 @@ def test_configure_opentelemetry(
5054 exporter_mock .return_value = exp_init_mock
5155 resource_init_mock = Mock ()
5256 resource_mock .create .return_value = resource_init_mock
57+ sampler_init_mock = Mock ()
58+ sampler_mock .return_value = sampler_init_mock
5359 bsp_init_mock = Mock ()
5460 bsp_mock .return_value = bsp_init_mock
55- configure_opentelemetry (
56- connection_string = "test_cs" ,
61+ configure_azure_monitor (
5762 disable_tracing = False ,
5863 service_name = "test_service_name" ,
5964 service_namespace = "test_namespace" ,
6065 service_instance_id = "test_id" ,
66+ sampling_ratio = 0.5 ,
67+ tracing_export_interval_millis = 15000 ,
6168 )
6269 resource_mock .create .assert_called_once_with (
6370 {
@@ -66,10 +73,17 @@ def test_configure_opentelemetry(
6673 ResourceAttributes .SERVICE_INSTANCE_ID : "test_id" ,
6774 }
6875 )
69- tp_mock .assert_called_once_with (resource = resource_init_mock )
76+ tp_mock .assert_called_once_with (
77+ sampler = sampler_init_mock ,
78+ resource = resource_init_mock ,
79+ )
7080 trace_mock .set_tracer_provider .assert_called_once_with (tp_init_mock )
71- exporter_mock .assert_called_once_with (connection_string = "test_cs" )
72- bsp_mock .assert_called_once_with (exp_init_mock )
81+ exporter_mock .assert_called_once ()
82+ sampler_mock .assert_called_once_with (sampling_ratio = 0.5 )
83+ bsp_mock .assert_called_once_with (
84+ exp_init_mock ,
85+ export_timeout_millis = 15000 ,
86+ )
7387
7488 @patch (
7589 "azure.monitor.opentelemetry.distro.BatchSpanProcessor" ,
@@ -81,26 +95,87 @@ def test_configure_opentelemetry(
8195 "azure.monitor.opentelemetry.distro.TracerProvider" ,
8296 autospec = True ,
8397 )
98+ @patch (
99+ "azure.monitor.opentelemetry.distro.ApplicationInsightsSampler" ,
100+ )
84101 @patch (
85102 "azure.monitor.opentelemetry.distro.Resource" ,
86103 )
87104 @patch (
88105 "azure.monitor.opentelemetry.distro.trace" ,
89106 )
90- def test_configure_opentelemetry_disable_tracing (
107+ def test_configure_azure_monitor_disable_tracing (
91108 self ,
92109 trace_mock ,
93110 resource_mock ,
111+ sampler_mock ,
94112 tp_mock ,
95113 exporter_mock ,
96114 bsp_mock ,
97115 ):
98- configure_opentelemetry (
99- connection_string = "test_cs" ,
116+ configure_azure_monitor (
100117 disable_tracing = True ,
101118 )
102119 resource_mock .assert_not_called ()
103120 tp_mock .assert_not_called ()
104121 trace_mock .set_tracer_provider .assert_not_called ()
122+ sampler_mock .assert_not_called ()
105123 exporter_mock .assert_not_called ()
106124 bsp_mock .assert_not_called ()
125+
126+ @patch (
127+ "azure.monitor.opentelemetry.distro.BatchSpanProcessor" ,
128+ )
129+ @patch (
130+ "azure.monitor.opentelemetry.distro.AzureMonitorTraceExporter" ,
131+ )
132+ @patch (
133+ "azure.monitor.opentelemetry.distro.TracerProvider" ,
134+ autospec = True ,
135+ )
136+ @patch (
137+ "azure.monitor.opentelemetry.distro.ApplicationInsightsSampler" ,
138+ )
139+ @patch (
140+ "azure.monitor.opentelemetry.distro.Resource" ,
141+ )
142+ @patch (
143+ "azure.monitor.opentelemetry.distro.trace" ,
144+ )
145+ def test_configure_azure_monitor_exporter (
146+ self ,
147+ trace_mock ,
148+ resource_mock ,
149+ sampler_mock ,
150+ tp_mock ,
151+ exporter_mock ,
152+ bsp_mock ,
153+ ):
154+ tp_init_mock = Mock ()
155+ tp_mock .return_value = tp_init_mock
156+ exp_init_mock = Mock ()
157+ exporter_mock .return_value = exp_init_mock
158+ resource_init_mock = Mock ()
159+ resource_mock .create .return_value = resource_init_mock
160+ sampler_init_mock = Mock ()
161+ sampler_mock .return_value = sampler_init_mock
162+ bsp_init_mock = Mock ()
163+ bsp_mock .return_value = bsp_init_mock
164+ kwargs = {
165+ "connection_string" : "test_cs" ,
166+ "api_version" : "1.0" ,
167+ "disable_offline_storage" : True ,
168+ "storage_maintenance_period" : 50 ,
169+ "storage_max_size" : 1024 ,
170+ "storage_min_retry_interval" : 30 ,
171+ "storage_directory" : "/tmp" ,
172+ "storage_retention_period" : 60 ,
173+ "timeout" : 30 ,
174+ }
175+ configure_azure_monitor (** kwargs )
176+ resource_mock .create .assert_called_once ()
177+ tp_mock .assert_called_once ()
178+ trace_mock .set_tracer_provider .assert_called_once ()
179+ exporter_mock .assert_called_once_with (** kwargs )
180+ sampler_mock .assert_called_once ()
181+ bsp_mock .assert_called_once ()
0 commit comments