Struct OtlpStdoutSpanExporter

Source
pub struct OtlpStdoutSpanExporter { /* private fields */ }
Expand description

A span exporter that writes spans to stdout in OTLP format

This exporter implements the OpenTelemetry SpanExporter trait and writes spans to stdout in OTLP format with Protobuf serialization and GZIP compression.

§Features

  • Configurable GZIP compression level (0-9)
  • Environment variable support for service name and headers
  • Efficient batching of spans
  • Base64 encoding of compressed data

§Example

use opentelemetry_sdk::runtime;
use otlp_stdout_span_exporter::OtlpStdoutSpanExporter;

// Create an exporter with maximum compression
let exporter = OtlpStdoutSpanExporter::builder()
    .compression_level(9)
    .build();

Implementations§

Source§

impl OtlpStdoutSpanExporter

Source

pub fn builder() -> OtlpStdoutSpanExporterBuilder

Create a new OtlpStdoutSpanExporter with default configuration.

This uses a GZIP compression level of 6 unless overridden by an environment variable.

§Output Type

The output type is determined in the following order:

  1. The OTLP_STDOUT_SPAN_EXPORTER_OUTPUT_TYPE environment variable if set (“pipe” or “stdout”)
  2. Constructor parameter (pipe)
  3. Default (stdout)
§Example
use otlp_stdout_span_exporter::OtlpStdoutSpanExporter;

let exporter = OtlpStdoutSpanExporter::default();

Trait Implementations§

Source§

impl Debug for OtlpStdoutSpanExporter

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for OtlpStdoutSpanExporter

Source§

fn default() -> OtlpStdoutSpanExporter

Returns the “default value” for a type. Read more
Source§

impl SpanExporter for OtlpStdoutSpanExporter

Source§

fn export( &self, batch: Vec<SpanData>, ) -> impl Future<Output = Result<(), OTelSdkError>> + Send

Export spans to stdout in OTLP format

This function:

  1. Converts spans to OTLP format
  2. Serializes them to protobuf
  3. Compresses the data with GZIP
  4. Base64 encodes the result
  5. Writes a JSON object to stdout
§Arguments
  • batch - A vector of spans to export
§Returns

Returns a resolved future with Ok(()) if the export was successful, or a TraceError if it failed

Source§

fn shutdown(&mut self) -> Result<(), OTelSdkError>

Shuts down the exporter

This is a no-op for stdout export as no cleanup is needed.

§Returns

Returns Ok(()) as there is nothing to clean up.

Source§

fn force_flush(&mut self) -> Result<(), OTelSdkError>

Force flushes any pending spans

This is a no-op for stdout export as spans are written immediately.

§Returns

Returns Ok(()) as there is nothing to flush.

Source§

fn set_resource(&mut self, resource: &Resource)

Sets the resource for this exporter.

This method stores a clone of the provided resource to be used when exporting spans. The resource represents the entity producing telemetry and will be included in the exported trace data.

§Arguments
  • resource - The resource to associate with this exporter

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more