Skip to main content

aether_telemetry/
error.rs

1use opentelemetry_otlp::ExporterBuildError;
2use opentelemetry_sdk::error::OTelSdkError;
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum TelemetryInitError {
7    #[error("telemetry OTLP endpoint is required")]
8    MissingOtlpEndpoint,
9    #[error("telemetry sample ratio must be between 0.0 and 1.0, got {0}")]
10    InvalidSampleRatio(f64),
11    #[error("telemetry OTLP header name is invalid: {0}")]
12    InvalidHeaderName(String),
13    #[error("telemetry OTLP header value is invalid for header {0}")]
14    InvalidHeaderValue(String),
15    #[error("failed to initialize telemetry HTTP client: {0}")]
16    HttpClient(#[source] reqwest::Error),
17    #[error("failed to initialize trace exporter: {0}")]
18    TraceExporter(#[source] ExporterBuildError),
19    #[error("failed to initialize metric exporter: {0}")]
20    MetricExporter(#[source] ExporterBuildError),
21}
22
23#[derive(Debug, Error)]
24pub enum TelemetryShutdownError {
25    #[error("failed to shutdown trace provider: {0}")]
26    Trace(#[source] OTelSdkError),
27    #[error("failed to shutdown metric provider: {0}")]
28    Metric(#[source] OTelSdkError),
29}