Skip to main content

aether_telemetry/
error.rs

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