opentelemetry_stdout/lib.rs
1//! Export telemetry signals to stdout.
2//! <div class="warning">This exporter is designed for debugging and learning purposes. It is not
3//! recommended for use in production environments. The output format might not be
4//! exhaustive and is subject to change at any time.
5//! </div>
6//!
7//! # Feature Flags
8//! The following feature flags can enable exporters for different telemetry signals:
9//!
10//! * `trace`: Includes the trace exporters.
11//! * `metrics`: Includes the metrics exporters.
12//! * `logs`: Includes the logs exporters.
13//!
14//! # Examples
15//!
16//! ```no_run
17//! # #[cfg(all(feature = "metrics", feature = "trace", feature = "logs"))]
18//! {
19//! use opentelemetry::metrics::MeterProvider;
20//! use opentelemetry::trace::{Span, Tracer};
21//! use opentelemetry::{Context, KeyValue};
22//!
23//! use opentelemetry_sdk::metrics::{SdkMeterProvider, PeriodicReader};
24//! use opentelemetry_sdk::trace::SdkTracerProvider;
25//!
26//! use opentelemetry_sdk::logs::SdkLoggerProvider;
27//!
28//! fn init_trace() -> SdkTracerProvider {
29//! let exporter = opentelemetry_stdout::SpanExporter::default();
30//! SdkTracerProvider::builder()
31//! .with_simple_exporter(exporter)
32//! .build()
33//! }
34//!
35//! fn init_metrics() -> SdkMeterProvider {
36//! let exporter = opentelemetry_stdout::MetricExporter::default();
37//! SdkMeterProvider::builder().with_periodic_exporter(exporter).build()
38//! }
39//!
40//! fn init_logs() -> SdkLoggerProvider {
41//! let exporter = opentelemetry_stdout::LogExporter::default();
42//! SdkLoggerProvider::builder()
43//! .with_simple_exporter(exporter)
44//! .build()
45//! }
46//!
47//! let tracer_provider = init_trace();
48//! let meter_provider = init_metrics();
49//! let logger_provider = init_logs();
50//!
51//! // recorded traces, metrics and logs will now be sent to stdout:
52//!
53//! # }
54//! ```
55#![warn(missing_debug_implementations, missing_docs)]
56#![cfg_attr(
57 docsrs,
58 feature(doc_cfg, doc_auto_cfg),
59 deny(rustdoc::broken_intra_doc_links)
60)]
61
62#[cfg(feature = "metrics")]
63mod metrics;
64#[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
65#[cfg(feature = "metrics")]
66pub use metrics::*;
67
68#[cfg(feature = "trace")]
69mod trace;
70#[cfg_attr(docsrs, doc(cfg(feature = "trace")))]
71#[cfg(feature = "trace")]
72pub use trace::*;
73
74#[cfg(feature = "logs")]
75mod logs;
76#[cfg_attr(docsrs, doc(cfg(feature = "logs")))]
77#[cfg(feature = "logs")]
78pub use logs::*;