OBSERVERTC / Client Monitor

Telemetry detectors

State changes and collection-health events.

ICE TraversalReports changes to the selected ICE tuple set.

Class

IceTraversalDetector

What it collects

The selected ICE tuple set and its previous value.

What it observes

selected tuple set changes

State and reset behavior

remembers tuple set; no first-observation change event; no issue

Example

The selected network tuple changes after its initial observation.

ICE RestartTracks ICE restarts and their outcomes.

Class

IceRestartDetector

What it collects

Local ICE username-fragment changes and restart outcome.

What it observes

local ICE username fragment changes, restart outcome

State and reset behavior

per-transport generation/pending state; createEvent true

Example

A new local ICE username fragment starts a new restart generation.

ICE Restart RecommendationRecommends an ICE restart when connectivity is unhealthy.

Class

IceRestartRecommendationDetector

What it collects

Failed, disconnected, stalled or never-established connectivity, plus cooldown state.

What it observes

failed, disconnected/stalled≥10000 ms, or never-established≥10000 ms

State and reset behavior

cooldown 15000 ms; pending restart gates; recommendation event, does not itself restart ICE

Example

Connectivity remains unhealthy long enough to recommend a restart; the application chooses whether to act.

Capture Track MutedReports when a capture track becomes muted.

Class

CaptureTrackMutedDetector

What it collects

Changes in a previously observed capture track’s muted state.

What it observes

previously known unmuted→muted transition

State and reset behavior

track muted state; createEvent true; distinct from application mute

Example

A capture track changes from unmuted to muted.

Codec ChangeReports changes to codec configuration.

Class

CodecChangeDetector

What it collects

Codec MIME type and FMTP signatures.

What it observes

MIME/FMTP change

State and reset behavior

previous codec signature; first value establishes baseline

Example

A previously observed stream changes its codec configuration.

Video Resolution ChangeReports changes to video frame dimensions.

Class

VideoResolutionChangeDetector

What it collects

Positive frame width and height, stream direction and outbound limitation context.

What it observes

positive frame width/height changes

State and reset behavior

prior geometry; includes direction and outbound limitation context

Example

An observed video stream changes from 1280×720 to 640×360.

Simulcast LayerReports changes to the active simulcast layers.

Class

SimulcastLayerDetector

What it collects

The set of actively sending encoding-layer keys.

What it observes

set of actively sending layer keys changes

State and reset behavior

multiple encoding requirement; paused/end reset

Example

A simulcast stream stops sending one of its active layers.

Stats GapReports unusually long gaps between stats collections.

Class

StatsGapDetector

What it collects

Actual and expected intervals between stats collections.

What it observes

actual collection period >2×expected AND >5000 ms

State and reset behavior

prior collection start time; no issue, createEvent true

Example

A normally five-second collection cycle takes more than ten seconds.

Source files are preserved in the detector implementation reference and client-monitor-js/docs/TELEMETRY_DETECTORS.md. Telemetry can have thresholds (StatsGap and restart recommendations); prose saying it has none is too broad.

Version coverage varies by reference. Source revisions · Markdown source