From 445ddd9e084730ed8308a7b978b14f577d2815b8 Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Fri, 10 May 2024 06:32:22 -0700 Subject: [PATCH 1/2] Stdout example to default to all features --- opentelemetry-stdout/Cargo.toml | 1 + opentelemetry-stdout/examples/basic.rs | 78 ++++++++++++++++---------- 2 files changed, 49 insertions(+), 30 deletions(-) diff --git a/opentelemetry-stdout/Cargo.toml b/opentelemetry-stdout/Cargo.toml index 09fe8c1dae..85649b0234 100644 --- a/opentelemetry-stdout/Cargo.toml +++ b/opentelemetry-stdout/Cargo.toml @@ -16,6 +16,7 @@ edition = "2021" rust-version = "1.65" [features] +default = ["trace", "metrics", "logs"] trace = ["opentelemetry/trace", "opentelemetry_sdk/trace", "futures-util"] metrics = ["async-trait", "opentelemetry/metrics", "opentelemetry_sdk/metrics"] logs = ["opentelemetry/logs", "opentelemetry_sdk/logs", "async-trait", "thiserror"] diff --git a/opentelemetry-stdout/examples/basic.rs b/opentelemetry-stdout/examples/basic.rs index b59a477b4b..f880c9e021 100644 --- a/opentelemetry-stdout/examples/basic.rs +++ b/opentelemetry-stdout/examples/basic.rs @@ -1,27 +1,29 @@ -//! run with `$ cargo run --example basic --all-features - -#[cfg(all(feature = "metrics", feature = "trace"))] -use opentelemetry::{ - global, - trace::{Span, Tracer, TracerProvider as _}, - KeyValue, -}; -#[cfg(all(feature = "metrics", feature = "trace"))] -use opentelemetry_sdk::{ - metrics::{PeriodicReader, SdkMeterProvider}, - runtime, - trace::TracerProvider, -}; - -#[cfg(all(feature = "metrics", feature = "trace"))] -fn init_trace() -> TracerProvider { +//! run with `$ cargo run --example basic + +use opentelemetry::{global, KeyValue}; + +#[cfg(feature = "trace")] +use opentelemetry::trace::{Span, Tracer}; + +#[cfg(feature = "metrics")] +use opentelemetry_sdk::runtime; + +#[cfg(feature = "metrics")] +use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider}; + +#[cfg(feature = "trace")] +use opentelemetry_sdk::trace::TracerProvider; + +#[cfg(feature = "trace")] +fn init_trace() { let exporter = opentelemetry_stdout::SpanExporter::default(); - TracerProvider::builder() + let provider = TracerProvider::builder() .with_simple_exporter(exporter) - .build() + .build(); + global::set_tracer_provider(provider); } -#[cfg(all(feature = "metrics", feature = "trace"))] +#[cfg(feature = "metrics")] fn init_metrics() { let exporter = opentelemetry_stdout::MetricsExporter::default(); let reader = PeriodicReader::builder(exporter, runtime::Tokio).build(); @@ -29,13 +31,9 @@ fn init_metrics() { global::set_meter_provider(provider); } -#[tokio::main] -#[cfg(all(feature = "metrics", feature = "trace"))] -async fn main() -> Result<(), Box> { - let tracer_provider = init_trace(); - init_metrics(); - - let tracer = tracer_provider.tracer("stdout-test"); +#[cfg(feature = "trace")] +fn emit_span() { + let tracer = global::tracer("stdout-test"); let mut span = tracer.start("test_span"); span.set_attribute(KeyValue::new("test_key", "test_value")); span.add_event( @@ -43,14 +41,34 @@ async fn main() -> Result<(), Box> { vec![KeyValue::new("test_event_key", "test_event_value")], ); span.end(); +} +#[cfg(feature = "metrics")] +fn emit_metrics() { let meter = global::meter("stdout-test"); - let c = meter.u64_counter("test_events").init(); + let c = meter.u64_counter("test_counter").init(); c.add(1, &[KeyValue::new("test_key", "test_value")]); +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + #[cfg(feature = "trace")] + init_trace(); + #[cfg(feature = "metrics")] + init_metrics(); + + #[cfg(feature = "trace")] + emit_span(); + + #[cfg(feature = "metrics")] + emit_metrics(); + + #[cfg(feature = "metrics")] global::shutdown_meter_provider(); + #[cfg(feature = "trace")] + global::shutdown_tracer_provider(); + Ok(()) } -#[cfg(not(all(feature = "metrics", feature = "trace")))] -fn main() {} From 915bd4b960fcc871f5ba0fbacbd2233303de0a7e Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Fri, 10 May 2024 08:37:23 -0700 Subject: [PATCH 2/2] order --- opentelemetry-stdout/examples/basic.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opentelemetry-stdout/examples/basic.rs b/opentelemetry-stdout/examples/basic.rs index f880c9e021..18d2ab6d8d 100644 --- a/opentelemetry-stdout/examples/basic.rs +++ b/opentelemetry-stdout/examples/basic.rs @@ -64,11 +64,11 @@ async fn main() -> Result<(), Box> { #[cfg(feature = "metrics")] emit_metrics(); - #[cfg(feature = "metrics")] - global::shutdown_meter_provider(); - #[cfg(feature = "trace")] global::shutdown_tracer_provider(); + #[cfg(feature = "metrics")] + global::shutdown_meter_provider(); + Ok(()) }