Skip to content

Commit b1fc9b5

Browse files
authored
Merge branch 'main' into cijothomas/metric-api-instrument-builder-sync
2 parents 6a48989 + 5fba0de commit b1fc9b5

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

opentelemetry-sdk/src/metrics/meter_provider.rs

+25
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ mod tests {
253253
use crate::testing::metrics::metric_reader::TestMetricReader;
254254
use crate::Resource;
255255
use opentelemetry::global;
256+
use opentelemetry::metrics::MeterProvider;
256257
use opentelemetry::{Key, KeyValue, Value};
257258
use std::env;
258259

@@ -433,4 +434,28 @@ mod tests {
433434
// Now the shutdown should be invoked
434435
assert!(reader.is_shutdown());
435436
}
437+
438+
#[test]
439+
fn same_meter_reused_same_scope() {
440+
let provider = super::SdkMeterProvider::builder().build();
441+
let _meter1 = provider.meter("test");
442+
let _meter2 = provider.meter("test");
443+
assert_eq!(provider.inner.meters.lock().unwrap().len(), 1);
444+
let _meter3 =
445+
provider.versioned_meter("test", Some("1.0.0"), Some("http://example.com"), None);
446+
let _meter4 =
447+
provider.versioned_meter("test", Some("1.0.0"), Some("http://example.com"), None);
448+
let _meter5 =
449+
provider.versioned_meter("test", Some("1.0.0"), Some("http://example.com"), None);
450+
assert_eq!(provider.inner.meters.lock().unwrap().len(), 2);
451+
452+
// the below are different meters, as meter names are case sensitive
453+
let _meter6 =
454+
provider.versioned_meter("ABC", Some("1.0.0"), Some("http://example.com"), None);
455+
let _meter7 =
456+
provider.versioned_meter("Abc", Some("1.0.0"), Some("http://example.com"), None);
457+
let _meter8 =
458+
provider.versioned_meter("abc", Some("1.0.0"), Some("http://example.com"), None);
459+
assert_eq!(provider.inner.meters.lock().unwrap().len(), 5);
460+
}
436461
}

0 commit comments

Comments
 (0)