Enum wlancfg_lib::telemetry::TelemetryEvent
source · pub enum TelemetryEvent {
Show 30 variants
QueryStatus {
sender: Sender<QueryStatusResult>,
},
StartEstablishConnection {
reset_start_time: bool,
},
ClearEstablishConnectionStartTime,
ActiveScanRequested {
num_ssids_requested: usize,
},
ActiveScanRequestedViaApi {
num_ssids_requested: usize,
},
NetworkSelectionDecision {
network_selection_type: NetworkSelectionType,
num_candidates: Result<usize, ()>,
selected_count: usize,
},
ConnectResult {
iface_id: u16,
policy_connect_reason: Option<ConnectReason>,
result: ConnectResult,
multiple_bss_candidates: bool,
ap_state: ApState,
network_is_likely_hidden: bool,
},
Disconnected {
track_subsequent_downtime: bool,
info: DisconnectInfo,
},
OnSignalReport {
ind: SignalReportIndication,
rssi_velocity: f64,
},
OnChannelSwitched {
info: ChannelSwitchInfo,
},
RoamingScan,
WouldRoamConnect,
SavedNetworkCount {
saved_network_count: usize,
config_count_per_saved_network: Vec<usize>,
},
NetworkSelectionScanInterval {
time_since_last_scan: Duration,
},
ConnectionSelectionScanResults {
saved_network_count: usize,
bss_count_per_saved_network: Vec<usize>,
saved_network_count_found_by_active_scan: usize,
},
PostConnectionScores {
connect_time: Time,
score_at_connect: u8,
scores: HistoricalList<TimestampedConnectionScore>,
},
StartClientConnectionsRequest,
StopClientConnectionsRequest,
StopAp {
enabled_duration: Duration,
},
UpdateExperiment {
experiment: ExperimentUpdate,
},
IfaceCreationResult(Result<(), ()>),
IfaceDestructionResult(Result<(), ()>),
StartApResult(Result<(), ()>),
ScanRequestFulfillmentTime {
duration: Duration,
reason: ScanReason,
},
ScanQueueStatistics {
fulfilled_requests: usize,
remaining_requests: usize,
},
BssSelectionResult {
reason: ConnectReason,
scored_candidates: Vec<(ScannedCandidate, i16)>,
selected_candidate: Option<(ScannedCandidate, i16)>,
},
ScanEvent {
inspect_data: ScanEventInspectData,
scan_defects: Vec<ScanIssue>,
},
LongDurationConnectionScoreAverage {
scores: Vec<TimestampedConnectionScore>,
},
RecoveryEvent {
reason: RecoveryReason,
},
GetTimeSeries {
sender: Sender<Arc<Mutex<TimeSeriesStats>>>,
},
}
Variants§
QueryStatus
Request telemetry for the latest status
Fields
sender: Sender<QueryStatusResult>
StartEstablishConnection
Notify the telemetry event loop that the process of establishing connection is started
Fields
ClearEstablishConnectionStartTime
Clear any existing start time of establish connection process tracked by telemetry.
ActiveScanRequested
Notify the telemetry event loop of an active scan being requested.
ActiveScanRequestedViaApi
Notify the telemetry event loop of an active scan being requested via Policy API.
NetworkSelectionDecision
Notify the telemetry event loop that network selection is complete.
Fields
network_selection_type: NetworkSelectionType
Type of network selection. If it’s undirected and no candidate network is found, telemetry will toggle the “no saved neighbor” flag.
num_candidates: Result<usize, ()>
When there’s a scan error, num_candidates
should be Err.
When num_candidates
is Ok(0)
for an undirected network selection, telemetry
will toggle the “no saved neighbor” flag. If the event loop is tracking downtime,
the subsequent downtime period will also be used to increment the,
downtime_no_saved_neighbor_duration
counter. This counter is used to
adjust the raw downtime.
ConnectResult
Notify the telemetry event loop of connection result.
If connection result is successful, telemetry will move its internal state to
connected. Subsequently, the telemetry event loop will increment the connected_duration
counter periodically.
Disconnected
Notify the telemetry event loop that the client has disconnected.
Subsequently, the telemetry event loop will increment the downtime counters periodically
if TelemetrySender has requested downtime to be tracked via track_subsequent_downtime
flag.
Fields
track_subsequent_downtime: bool
Indicates whether subsequent period should be used to increment the downtime counters.
info: DisconnectInfo
OnSignalReport
OnChannelSwitched
Fields
info: ChannelSwitchInfo
RoamingScan
Notify telemetry that there was a decision to look for networks to roam to after evaluating the existing connection.
WouldRoamConnect
Proactive roams do not happen yet, but we want to analyze metrics for when they would happen. Roams are set up to log metrics when disconnects happen to roam, so this event covers when roams would happen but no actual disconnect happens.
SavedNetworkCount
Counts of saved networks and count of configurations for each of those networks, to be recorded periodically.
NetworkSelectionScanInterval
Record the time since the last network selection scan
Fields
time_since_last_scan: Duration
ConnectionSelectionScanResults
Statistics about networks observed in scan results for Connection Selection
Fields
PostConnectionScores
Notify telemetry event loop that connection duration has reached threshold to log post-connect score deltas.
StartClientConnectionsRequest
Notify telemetry of an API request to start client connections.
StopClientConnectionsRequest
Notify telemetry of an API request to stop client connections.
StopAp
Notify telemetry of when AP is stopped, and how long it was started.
Fields
enabled_duration: Duration
UpdateExperiment
Notify telemetry that its experiment group has changed and that a new metrics logger must be created.
Fields
experiment: ExperimentUpdate
IfaceCreationResult(Result<(), ()>)
Notify telemetry of the result of a create iface request.
IfaceDestructionResult(Result<(), ()>)
Notify telemetry of the result of destroying an interface.
StartApResult(Result<(), ()>)
Notify telemetry of the result of a StartAp request.
ScanRequestFulfillmentTime
Record scan fulfillment time
ScanQueueStatistics
Record scan queue length upon scan completion
BssSelectionResult
Record the results of a completed BSS selection
Fields
reason: ConnectReason
scored_candidates: Vec<(ScannedCandidate, i16)>
selected_candidate: Option<(ScannedCandidate, i16)>
ScanEvent
LongDurationConnectionScoreAverage
Fields
scores: Vec<TimestampedConnectionScore>
RecoveryEvent
Record recovery events and store recovery-related metadata so that the efficacy of the recovery mechanism can be evaluated later.
Fields
reason: RecoveryReason
GetTimeSeries
Get the TimeSeries held by telemetry loop. Intended for test only.