Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 33acdf3

Browse files
authored
fix: add attributes to get_meter wrapper (open-telemetry#4364)
1 parent 9e94fd2 commit 33acdf3

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10+
- Add `attributes` field in `metrics.get_meter` wrapper function
11+
([#4364](https://github.com/open-telemetry/opentelemetry-python/pull/4364))
1012
- Add Python 3.13 support
1113
([#4353](https://github.com/open-telemetry/opentelemetry-python/pull/4353))
1214

opentelemetry-api/src/opentelemetry/metrics/_internal/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,7 @@ def get_meter(
764764
version: str = "",
765765
meter_provider: Optional[MeterProvider] = None,
766766
schema_url: Optional[str] = None,
767+
attributes: Optional[Attributes] = None,
767768
) -> "Meter":
768769
"""Returns a `Meter` for use by the given instrumentation library.
769770
@@ -774,7 +775,7 @@ def get_meter(
774775
"""
775776
if meter_provider is None:
776777
meter_provider = get_meter_provider()
777-
return meter_provider.get_meter(name, version, schema_url)
778+
return meter_provider.get_meter(name, version, schema_url, attributes)
778779

779780

780781
def _set_meter_provider(meter_provider: MeterProvider, log: bool) -> None:

opentelemetry-api/tests/metrics/test_meter_provider.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@
2929
get_meter_provider,
3030
set_meter_provider,
3131
)
32-
from opentelemetry.metrics._internal import _ProxyMeter, _ProxyMeterProvider
32+
from opentelemetry.metrics._internal import (
33+
_ProxyMeter,
34+
_ProxyMeterProvider,
35+
get_meter,
36+
)
3337
from opentelemetry.metrics._internal.instrument import (
3438
_ProxyCounter,
3539
_ProxyGauge,
@@ -141,6 +145,25 @@ def test_invalid_name(self):
141145

142146
self.assertEqual(meter.name, None)
143147

148+
def test_get_meter_wrapper(self):
149+
"""
150+
`metrics._internal.get_meter` called with valid parameters and a NoOpMeterProvider
151+
should return a NoOpMeter with the same parameters.
152+
"""
153+
154+
meter = get_meter(
155+
"name",
156+
version="version",
157+
meter_provider=NoOpMeterProvider(),
158+
schema_url="schema_url",
159+
attributes={"key": "value", "key2": 5, "key3": "value3"},
160+
)
161+
162+
self.assertIsInstance(meter, NoOpMeter)
163+
self.assertEqual(meter.name, "name")
164+
self.assertEqual(meter.version, "version")
165+
self.assertEqual(meter.schema_url, "schema_url")
166+
144167

145168
class TestProxy(MetricsGlobalsTest, TestCase):
146169
def test_global_proxy_meter_provider(self):

0 commit comments

Comments
 (0)