Skip to main content

o_sfu_core/engine/
observability.rs

1use metrics::{SourceSelectionKind, TransportHealthState};
2use o_sfu_telemetry::diagnostics::DiagnosticsTransportHealth;
3pub use o_sfu_telemetry::metrics;
4
5use crate::engine::{media_transport::TransportSessionHealth, source_model::SourceSelector};
6
7pub(crate) const fn diagnostics_transport_health(
8    health: TransportSessionHealth,
9) -> DiagnosticsTransportHealth {
10    match health {
11        TransportSessionHealth::Connected => DiagnosticsTransportHealth::Connected,
12        TransportSessionHealth::Disconnected => DiagnosticsTransportHealth::Disconnected,
13    }
14}
15
16pub(crate) const fn transport_health_state(health: TransportSessionHealth) -> TransportHealthState {
17    match health {
18        TransportSessionHealth::Connected => TransportHealthState::Connected,
19        TransportSessionHealth::Disconnected => TransportHealthState::Disconnected,
20    }
21}
22
23pub(crate) const fn source_selection_kind(selector: SourceSelector) -> SourceSelectionKind {
24    match selector {
25        SourceSelector::Open => SourceSelectionKind::Open,
26        SourceSelector::Encoding(_) => SourceSelectionKind::Encoding,
27    }
28}