coil_observability/
runtime.rs1use crate::ObservabilityError;
2use crate::feature_flags::FeatureFlagRegistry;
3use crate::health::{HealthProbeKind, HealthReport, MaintenanceMode};
4use crate::telemetry::TelemetryCatalog;
5use coil_config::{Environment, ObservabilityConfig};
6
7#[derive(Debug, Clone, PartialEq, Eq)]
8pub struct ObservabilityRuntime {
9 pub telemetry: TelemetryCatalog,
10 pub liveness: HealthReport,
11 pub readiness: HealthReport,
12 pub maintenance: MaintenanceMode,
13 pub flags: FeatureFlagRegistry,
14}
15
16impl ObservabilityRuntime {
17 pub fn baseline(
18 config: &ObservabilityConfig,
19 environment: Environment,
20 ) -> Result<Self, ObservabilityError> {
21 Ok(Self {
22 telemetry: TelemetryCatalog::baseline(config, environment)?,
23 liveness: HealthReport::new(HealthProbeKind::Liveness),
24 readiness: HealthReport::new(HealthProbeKind::Readiness),
25 maintenance: MaintenanceMode::disabled(),
26 flags: FeatureFlagRegistry::new(),
27 })
28 }
29}