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 OTLP header name is invalid: {0}")]
16    InvalidHeaderName(String),
17    #[error("telemetry OTLP header value is invalid for header {0}")]
18    InvalidHeaderValue(String),
19    #[error("failed to initialize telemetry HTTP client: {0}")]
20    HttpClient(#[source] reqwest::Error),
21    #[error("failed to initialize trace exporter: {0}")]
22    TraceExporter(#[source] ExporterBuildError),
23    #[error("failed to initialize metric exporter: {0}")]
24    MetricExporter(#[source] ExporterBuildError),
25}
26
27#[derive(Debug, Error)]
28pub enum TelemetryShutdownError {
29    #[error("failed to shutdown trace provider: {0}")]
30    Trace(#[source] OTelSdkError),
31    #[error("failed to shutdown metric provider: {0}")]
32    Metric(#[source] OTelSdkError),
33}