diff --git a/opentelemetry/benches/attributes.rs b/opentelemetry/benches/attributes.rs index 6b811c2b3b..081af06c36 100644 --- a/opentelemetry/benches/attributes.rs +++ b/opentelemetry/benches/attributes.rs @@ -1,5 +1,6 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use opentelemetry::KeyValue; +use opentelemetry::{Key, KeyValue}; +use std::sync::Arc; // Run this benchmark with: // cargo bench --bench attributes @@ -9,20 +10,38 @@ fn criterion_benchmark(c: &mut Criterion) { } fn attributes_creation(c: &mut Criterion) { + c.bench_function("CreateOTelKey_Static", |b| { + b.iter(|| { + let _v1 = black_box(Key::new("attribute1")); + }); + }); + + c.bench_function("CreateOTelKey_Owned", |b| { + b.iter(|| { + let _v1 = black_box(Key::new(String::from("attribute1"))); + }); + }); + + c.bench_function("CreateOTelKey_Arc", |b| { + b.iter(|| { + let _v1 = black_box(Key::new(Arc::from("attribute1"))); + }); + }); + c.bench_function("CreateOTelKeyValue", |b| { b.iter(|| { let _v1 = black_box(KeyValue::new("attribute1", "value1")); }); }); - c.bench_function("CreateKeyValueTuple", |b| { + c.bench_function("CreateTupleKeyValue", |b| { b.iter(|| { let _v1 = black_box(("attribute1", "value1")); }); }); #[allow(clippy::useless_vec)] - c.bench_function("CreateVector_KeyValue", |b| { + c.bench_function("CreateOtelKeyValueVector", |b| { b.iter(|| { let _v1 = black_box(vec![ KeyValue::new("attribute1", "value1"), @@ -34,7 +53,7 @@ fn attributes_creation(c: &mut Criterion) { }); #[allow(clippy::useless_vec)] - c.bench_function("CreateVector_StringPairs", |b| { + c.bench_function("CreateTupleKeyValueVector", |b| { b.iter(|| { let _v1 = black_box(vec![ ("attribute1", "value1"), diff --git a/opentelemetry/benches/metrics.rs b/opentelemetry/benches/metrics.rs index bf562fe9b7..44c898d900 100644 --- a/opentelemetry/benches/metrics.rs +++ b/opentelemetry/benches/metrics.rs @@ -1,15 +1,11 @@ use criterion::{criterion_group, criterion_main, Criterion}; -use opentelemetry::{ - metrics::{noop::NoopMeterProvider, Counter, MeterProvider as _}, - KeyValue, -}; +use opentelemetry::{global, metrics::Counter, KeyValue}; // Run this benchmark with: // cargo bench --bench metrics --features=metrics fn create_counter() -> Counter { - let meter_provider: NoopMeterProvider = NoopMeterProvider::default(); - let meter = meter_provider.meter("benchmarks"); + let meter = global::meter("benchmarks"); let counter = meter.u64_counter("counter_bench").init(); counter } diff --git a/opentelemetry/src/global/mod.rs b/opentelemetry/src/global/mod.rs index 790343968c..47b3688b19 100644 --- a/opentelemetry/src/global/mod.rs +++ b/opentelemetry/src/global/mod.rs @@ -127,8 +127,8 @@ //! pub fn my_traced_library_function() { //! // End users of your library will configure their global meter provider //! // so you can use the global meter without any setup -//! let tracer = global::meter("my-library-name"); -//! let counter = tracer.u64_counter("my_counter").init(); +//! let meter = global::meter("my-library-name"); +//! let counter = meter.u64_counter("my_counter").init(); //! //! // record metrics //! counter.add(1, &[KeyValue::new("mykey", "myvalue")]);