scouter_tracing/exporter/
noop.rs1use crate::exporter::ExporterType;
2use crate::exporter::SpanExporterBuilder;
3use crate::exporter::TraceError;
4use opentelemetry_sdk::error::OTelSdkResult;
5use opentelemetry_sdk::trace::SpanData;
6use opentelemetry_sdk::trace::SpanExporter;
7use opentelemetry_stdout::SpanExporter as OTelStdoutSpanExporter;
8#[derive(Debug, Default)]
9pub struct NoopSpanExporter {
10 _private: (),
11}
12
13impl NoopSpanExporter {
14 pub fn new() -> Self {
16 NoopSpanExporter { _private: () }
17 }
18}
19
20impl SpanExporter for NoopSpanExporter {
21 async fn export(&self, _: Vec<SpanData>) -> OTelSdkResult {
22 Ok(())
23 }
24}
25
26impl SpanExporterBuilder for NoopSpanExporter {
27 type Exporter = OTelStdoutSpanExporter;
28
29 fn export_type(&self) -> ExporterType {
30 ExporterType::Noop
31 }
32
33 fn sample_ratio(&self) -> Option<f64> {
34 None
35 }
36
37 fn batch_export(&self) -> bool {
38 true
39 }
40
41 fn build_exporter(&self) -> Result<Self::Exporter, TraceError> {
42 Ok(OTelStdoutSpanExporter::default())
44 }
45}