Skip to main content

canic_core/api/lifecycle/
mod.rs

1pub mod nonroot;
2pub mod root;
3
4pub mod metrics {
5    use crate::ops::runtime::metrics::lifecycle::LifecycleMetrics;
6
7    pub use crate::ops::runtime::metrics::lifecycle::{
8        LifecycleMetricOutcome, LifecycleMetricPhase, LifecycleMetricRole, LifecycleMetricStage,
9    };
10
11    ///
12    /// LifecycleMetricsApi
13    ///
14
15    pub struct LifecycleMetricsApi;
16
17    impl LifecycleMetricsApi {
18        /// Record one lifecycle runtime or bootstrap metric point.
19        pub fn record(
20            phase: LifecycleMetricPhase,
21            role: LifecycleMetricRole,
22            stage: LifecycleMetricStage,
23            outcome: LifecycleMetricOutcome,
24        ) {
25            LifecycleMetrics::record(phase, role, stage, outcome);
26        }
27
28        /// Record one lifecycle runtime metric point.
29        pub fn record_runtime(
30            phase: LifecycleMetricPhase,
31            role: LifecycleMetricRole,
32            outcome: LifecycleMetricOutcome,
33        ) {
34            Self::record(phase, role, LifecycleMetricStage::Runtime, outcome);
35        }
36
37        /// Record one lifecycle bootstrap metric point.
38        pub fn record_bootstrap(
39            phase: LifecycleMetricPhase,
40            role: LifecycleMetricRole,
41            outcome: LifecycleMetricOutcome,
42        ) {
43            Self::record(phase, role, LifecycleMetricStage::Bootstrap, outcome);
44        }
45    }
46}