Skip to main content

o_sfu_telemetry/
schema.rs

1//! telemetry event and field names
2//!
3//! runtime logs, traces and diagnostics use these constants so observability
4//! names are reviewed in one place
5//! call sites should import schema names instead of hard-codding event or field
6//! strings when the name is part of the public telemetry contract
7
8pub mod event {
9    pub const RUNTIME_LOG: &str = "runtime.log";
10    pub const HTTP_LISTENER_READY: &str = "http.listener.ready";
11    pub const RUNTIME_BOOT: &str = "runtime.boot";
12    pub const RUNTIME_TELEMETRY_INITIALIZED: &str = "runtime.telemetry_initialized";
13    pub const ROOM_CREATED: &str = "room.created";
14    pub const ROOM_RESERVATION_EXPIRED: &str = "room.reservation.expired";
15    pub const ROOM_RESERVATION_CONFLICT: &str = "room.reservation_conflict";
16    pub const USER_JOINED: &str = "user.joined";
17    pub const USER_CLOSED: &str = "user.closed";
18    pub const USER_DISCONNECTED: &str = "user.disconnected";
19    pub const WS_CONNECTION_CLOSED: &str = "ws.closed";
20    pub const WS_HANDSHAKE_REJECTED: &str = "ws.handshake_rejected";
21    pub const WS_JOIN_FAILED: &str = "ws.join_failed";
22    pub const NEGOTIATION_FAILED: &str = "negotiation.failed";
23    pub const PUBLISH_COMMITTED: &str = "publish.committed";
24    pub const PUBLISH_ABORTED: &str = "publish.aborted";
25    pub const SUBSCRIBE_SUCCEEDED: &str = "subscribe.succeeded";
26    pub const SUBSCRIBE_REJECTED: &str = "subscribe.rejected";
27    pub const SUBSCRIPTION_ACTIVITY_CHANGED: &str = "subscription.activity_changed";
28    pub const PUBLICATION_ACTIVITY_CHANGED: &str = "publication.activity_changed";
29    pub const TRANSPORT_HEALTH_CHANGED: &str = "transport.health.changed";
30}
31
32#[allow(
33    dead_code,
34    reason = "The field catalog intentionally grows ahead of broad JSON-log and trace rollout so correlation names stay centralized."
35)]
36pub mod field {
37    pub const ROOM_ID: &str = "room_id";
38    pub const CLOSE_CODE: &str = "close_code";
39    pub const CONNECTION_ID: &str = "connection_id";
40    pub const DEPLOYMENT_ENVIRONMENT: &str = "deployment.environment";
41    pub const DURATION_MS: &str = "duration_ms";
42    pub const ERROR_KIND: &str = "error_kind";
43    pub const EVENT: &str = "event";
44    pub const LEVEL: &str = "level";
45    pub const MESSAGE: &str = "message";
46    pub const MEDIA_WORKER_ID: &str = "media_worker_id";
47    pub const OPERATION: &str = "operation";
48    pub const OUTCOME: &str = "outcome";
49    pub const REASON: &str = "reason";
50    pub const REMOTE_ADDRESS: &str = "remote_address";
51    pub const SERVICE_INSTANCE_ID: &str = "service.instance.id";
52    pub const SERVICE_NAME: &str = "service.name";
53    pub const SERVICE_VERSION: &str = "service.version";
54    pub const USER_ID: &str = "user_id";
55    pub const TARGET: &str = "target";
56    pub const TIMESTAMP: &str = "timestamp";
57    pub const TRACE_ID: &str = "trace_id";
58    pub const TRANSPORT_MEDIA_ID: &str = "transport_media_id";
59}
60
61pub const COMMON_FIELD_NAMES: &[&str] = &[
62    field::TIMESTAMP,
63    field::LEVEL,
64    field::EVENT,
65    field::MESSAGE,
66    field::TARGET,
67    field::SERVICE_NAME,
68    field::SERVICE_VERSION,
69    field::SERVICE_INSTANCE_ID,
70    field::DEPLOYMENT_ENVIRONMENT,
71];
72
73pub const CORRELATION_FIELD_NAMES: &[&str] = &[
74    field::ROOM_ID,
75    field::USER_ID,
76    field::CONNECTION_ID,
77    field::REMOTE_ADDRESS,
78    field::TRANSPORT_MEDIA_ID,
79    field::MEDIA_WORKER_ID,
80    field::TRACE_ID,
81    field::OPERATION,
82    field::OUTCOME,
83    field::REASON,
84    field::CLOSE_CODE,
85    field::ERROR_KIND,
86    field::DURATION_MS,
87];