aether_telemetry/
error.rs1use 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}