Skip to main content

coil_observability/
error.rs

1use crate::health::{DependencyKind, HealthProbeKind};
2use thiserror::Error;
3
4#[derive(Debug, Error, PartialEq, Eq)]
5pub enum ObservabilityError {
6    #[error("`{field}` cannot be empty")]
7    EmptyField { field: &'static str },
8    #[error("`{field}` contains an invalid token `{value}`")]
9    InvalidToken { field: &'static str, value: String },
10    #[error("metric `{metric}` is already defined")]
11    DuplicateMetric { metric: String },
12    #[error("probe `{probe}` already contains dependency `{dependency}`")]
13    DuplicateDependency {
14        probe: HealthProbeKind,
15        dependency: DependencyKind,
16    },
17    #[error("feature flag `{flag}` is already defined")]
18    DuplicateFlag { flag: String },
19    #[error("feature flag `{flag}` contains duplicate rule `{scope}`")]
20    DuplicateFlagRule { flag: String, scope: String },
21    #[error("trace sample rate must be within 0..=10000, got `{permyriad}`")]
22    InvalidTraceSampleRate { permyriad: u16 },
23}