File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -460,6 +460,10 @@ def get_meter(
460460def set_meter_provider (meter_provider : MeterProvider ) -> None :
461461 """Sets the current global :class:`~.MeterProvider` object."""
462462 global _METER_PROVIDER # pylint: disable=global-statement
463+
464+ if _METER_PROVIDER is not None :
465+ logger .warning ("Overriding current MeterProvider" )
466+
463467 _METER_PROVIDER = meter_provider
464468
465469
Original file line number Diff line number Diff line change @@ -463,6 +463,10 @@ def get_tracer(
463463def set_tracer_provider (tracer_provider : TracerProvider ) -> None :
464464 """Sets the current global :class:`~.TracerProvider` object."""
465465 global _TRACER_PROVIDER # pylint: disable=global-statement
466+
467+ if _TRACER_PROVIDER is not None :
468+ logger .warning ("Overriding current TracerProvider" )
469+
466470 _TRACER_PROVIDER = tracer_provider
467471
468472
Original file line number Diff line number Diff line change 1+ import unittest
2+ from logging import WARNING
3+
4+ from opentelemetry import metrics
5+ from opentelemetry .sdk .metrics import MeterProvider
6+
7+
8+ class TestGlobals (unittest .TestCase ):
9+ def test_meter_provider_override_warning (self ):
10+ """metrics.set_meter_provider should throw a warning when overridden"""
11+ metrics .set_meter_provider (MeterProvider ())
12+ with self .assertLogs (level = WARNING ) as test :
13+ metrics .set_meter_provider (MeterProvider ())
14+ self .assertEqual (
15+ test .output ,
16+ [
17+ "WARNING:opentelemetry.metrics:Overriding current "
18+ "MeterProvider"
19+ ],
20+ )
Original file line number Diff line number Diff line change 11import unittest
2+ from logging import WARNING
23from unittest .mock import patch
34
45from opentelemetry import context , trace
6+ from opentelemetry .sdk .trace import TracerProvider
57
68
79class TestGlobals (unittest .TestCase ):
@@ -20,6 +22,19 @@ def test_get_tracer(self):
2022 trace .get_tracer ("foo" , "var" , mock_provider )
2123 mock_provider .get_tracer .assert_called_with ("foo" , "var" )
2224
25+ def test_tracer_provider_override_warning (self ):
26+ """trace.set_tracer_provider should throw a warning when overridden"""
27+ trace .set_tracer_provider (TracerProvider ())
28+ with self .assertLogs (level = WARNING ) as test :
29+ trace .set_tracer_provider (TracerProvider ())
30+ self .assertEqual (
31+ test .output ,
32+ [
33+ "WARNING:opentelemetry.trace:Overriding current "
34+ "TracerProvider"
35+ ],
36+ )
37+
2338
2439class TestTracer (unittest .TestCase ):
2540 def setUp (self ):
You can’t perform that action at this time.
0 commit comments