Skip to content

Commit

Permalink
Add note about stdout exporter (#1491)
Browse files Browse the repository at this point in the history
  • Loading branch information
cijothomas authored Jan 25, 2024
1 parent 16fd1ab commit de8e750
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
1 change: 0 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
"Lalit",
"msrv",
"Ochtman",
"openetelemetry",
"opentelemetry",
"OTLP",
"protoc",
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ For a deeper discussion, see:

Currently, the Opentelemetry Rust SDK has two ways to handle errors. In the situation where errors are not allowed to return. One should call global error handler to process the errors. Otherwise, one should return the errors.

The Opentelemetry Rust SDK comes with an error type `openetelemetry::Error`. For different function, one error has been defined. All error returned by trace module MUST be wrapped in `opentelemetry::trace::TraceError`. All errors returned by metrics module MUST be wrapped in `opentelemetry::metrics::MetricsError`.
The Opentelemetry Rust SDK comes with an error type `opentelemetry::Error`. For different function, one error has been defined. All error returned by trace module MUST be wrapped in `opentelemetry::trace::TraceError`. All errors returned by metrics module MUST be wrapped in `opentelemetry::metrics::MetricsError`. All errors returned by logs module MUST be wrapped in `opentelemetry::logs::LogsError`.

For users that want to implement their own exporters. It's RECOMMENDED to wrap all errors from the exporter into a crate-level error type, and implement `ExporterError` trait.

Expand Down
18 changes: 16 additions & 2 deletions opentelemetry-stdout/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
//! Export telemetry signals to stdout.
//! This exporter is designed for debugging and learning purposes. It is not
//! recommended for use in production environments. The output format might not be
//! exhaustive and is subject to change at any time.
//!
//! # Examples
//!
//! ```no_run
//! # #[cfg(all(feature = "metrics", feature = "trace"))]
//! # #[cfg(all(feature = "metrics", feature = "trace", feature = "logs"))]
//! {
//! use opentelemetry::metrics::MeterProvider;
//! use opentelemetry::trace::{Span, Tracer, TracerProvider as _};
Expand All @@ -13,6 +16,8 @@
//! use opentelemetry_sdk::runtime;
//! use opentelemetry_sdk::trace::TracerProvider;
//!
//! use opentelemetry_sdk::logs::LoggerProvider;
//!
//! fn init_trace() -> TracerProvider {
//! let exporter = opentelemetry_stdout::SpanExporter::default();
//! TracerProvider::builder()
Expand All @@ -26,13 +31,22 @@
//! SdkMeterProvider::builder().with_reader(reader).build()
//! }
//!
//! fn init_logs() -> LoggerProvider {
//! let exporter = opentelemetry_stdout::LogExporter::default();
//! LoggerProvider::builder()
//! .with_simple_exporter(exporter)
//! .build()
//! }
//!
//! let tracer_provider = init_trace();
//! let meter_provider = init_metrics();
//! let logger_provider = init_logs();
//!
//! // recorded traces and metrics will now be sent to stdout:
//! // recorded traces, metrics and logs will now be sent to stdout:
//!
//! // {"resourceMetrics":{"resource":{"attributes":[{"key":"service.name","value":{"str..
//! // {"resourceSpans":[{"resource":{"attributes":[{"key":"service.name","value":{"stri..
//! // {"resourceLogs": [{"resource": {"attributes": [{"key": "service.name", "value": {"str..
//! # }
//! ```
#![warn(missing_debug_implementations, missing_docs)]
Expand Down

0 comments on commit de8e750

Please sign in to comment.