OBSERVERTC / Client Monitor

Connectivity detectors

Connection establishment, handshake failures and path changes.

ICE ReachabilityDetects when ICE cannot find a reachable network path.

Class

IceReachabilityDetector

What it collects

ICE gathering state, local candidates and connection history.

What triggers it

gathering complete, no local candidates, never connected; failing state or 6000 ms wait

What resolves it

candidates appear, connected, or closed; remembers prior success

Example

A completed ICE gathering produces no usable local candidates.

ICE Path EstablishmentReports slow connection establishment.

Class

IcePathEstablishmentDetector

What it collects

Time spent in the connecting state.

What triggers it

connection stays connecting ≥5000 ms; emits slow-stage event

Reset and lifecycle behavior

resets outside connecting; event once per episode

Example

A peer connection remains connecting for five seconds.

ICE Establishment FailedDetects failure to establish an ICE connection.

Class

IceEstablishmentFailedDetector

What it collects

Candidate availability and historical connection, pair and nomination states.

What triggers it

candidates exist, no historical connected/succeeded/nominated path, sustained 15000 ms

What resolves it

established path or closed; distinguishes no-network from failed establishment

Example

Candidates exist, but no path becomes established during the timeout.

DTLS Handshake FailedDetects a failed DTLS handshake.

Class

DtlsHandshakeFailedDetector

What it collects

The DTLS state of each transport.

What triggers it

dtlsState failed, immediate

What resolves it

connected or transport removed; per-transport raise map

Example

A transport reports a failed DTLS handshake.

DTLS Handshake StalledDetects a DTLS handshake that stops progressing.

Class

DtlsHandshakeStalledDetector

What it collects

DTLS progress and evidence of a healthy ICE path.

What triggers it

DTLS new/connecting while real ICE evidence is healthy for 6000 ms

What resolves it

connected/failed/removal; generation and missing-evidence paths reset accumulation

Example

ICE works, but DTLS remains connecting without completing its handshake.

ICE DisconnectedDetects a sustained ICE disconnection.

Class

IceDisconnectedDetector

What it collects

Each transport’s ICE state and disconnection duration.

What triggers it

per-transport disconnected for 5000 ms

What resolves it

connected/completed, ICE restart or removal

Example

A previously active ICE transport remains disconnected for five seconds.

ICE Connection FailedDetects an ICE connection failure.

Class

IceConnectionFailedDetector

What it collects

Each transport’s ICE connection state.

What triggers it

per-transport failed immediately

What resolves it

connected/completed, restart or removal

Example

A transport enters the failed ICE state.

ICE Transport StalledDetects a connected transport that stops receiving expected data.

Class

IceTransportStalledDetector

What it collects

Sending and receiving activity, ICE health and expected inbound media.

What triggers it

succeeded connected path previously received data; sends but no inbound, expected inbound media, 5000 ms

What resolves it

inbound resumes, connectivity lost, restart/removal; send-only/paused situations gated

Example

The connection stays established and sends data, but expected inbound traffic stops.

Unstable Ice PathDetects frequent changes to the selected ICE path.

Class

UnstableIcePathDetector

What it collects

Selected ICE path changes over an observation window.

What triggers it

at least 3 switches in 30000 ms observation window

What resolves it

completed quieter window or transport removal

Example

The selected path switches three times within thirty seconds.

Each row links through its named class in client-monitor-js/src/detectors/Detector.ts and the detector implementation reference; connectivity state machine context is in client-monitor-js/src/monitors/SelectedIcePath.ts.

Version coverage varies by reference. Source revisions · Markdown source