<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Client Monitor on ObserveRTC</title><link>/docs/client-monitor-js/</link><description>Recent content in Client Monitor on ObserveRTC</description><generator>Hugo</generator><language>en</language><copyright>Copyright (c) 2020-2024 Thulite</copyright><lastBuildDate>Sun, 13 Sep 2026 10:00:00 +0200</lastBuildDate><atom:link href="/docs/client-monitor-js/index.xml" rel="self" type="application/rss+xml"/><item><title>What changed in 4.9</title><link>/docs/client-monitor-js/what-changed-in-4.9/</link><pubDate>Sun, 13 Sep 2026 10:00:00 +0200</pubDate><guid>/docs/client-monitor-js/what-changed-in-4.9/</guid><description>&lt;p>&lt;code>4.9.0&lt;/code> is the largest release the library has had. It is worth reading before upgrading, because
several changes &lt;strong>fail loudly&lt;/strong> (a retired config key no longer type-checks) and a few change
behaviour &lt;strong>quietly&lt;/strong> (the collection period is 2.5× longer by default, so tick-counted detectors
take 2.5× as long to fire).&lt;/p></description></item><item><title>Integrations</title><link>/docs/client-monitor-js/integrations/</link><pubDate>Thu, 07 Sep 2023 16:33:54 +0200</pubDate><guid>/docs/client-monitor-js/integrations/</guid><description>&lt;p>The monitor collects nothing until you give it a &lt;strong>source&lt;/strong>. A source is anything that owns
&lt;code>RTCPeerConnection&lt;/code>s: a peer connection itself, a mediasoup &lt;code>Device&lt;/code>, or a single mediasoup
transport.&lt;/p></description></item><item><title>Configuration</title><link>/docs/client-monitor-js/configuration/</link><pubDate>Thu, 07 Sep 2023 16:33:54 +0200</pubDate><guid>/docs/client-monitor-js/configuration/</guid><description>&lt;p>&lt;code>ClientMonitorConfig&lt;/code> is entirely optional — &lt;code>new ClientMonitor()&lt;/code> runs on defaults. Every detector
reads a block &lt;strong>named after itself&lt;/strong>, its &lt;code>name&lt;/code> in camelCase, and reads nothing else.&lt;/p></description></item><item><title>Detectors</title><link>/docs/client-monitor-js/detectors/</link><pubDate>Thu, 07 Sep 2023 16:33:54 +0200</pubDate><guid>/docs/client-monitor-js/detectors/</guid><description>&lt;p>&amp;ldquo;The call was bad&amp;rdquo; is not a diagnosis. The library ships &lt;strong>46 detector classes&lt;/strong> raising &lt;strong>37 issue
types&lt;/strong>, grouped into five categories, so that an engineer reading a failed session knows which of
four completely different investigations to start — and which facts to read alongside them.&lt;/p></description></item><item><title>Connectivity detectors</title><link>/docs/client-monitor-js/connectivity-detectors/</link><pubDate>Sun, 13 Sep 2026 10:00:00 +0200</pubDate><guid>/docs/client-monitor-js/connectivity-detectors/</guid><description>&lt;p>This is the reference for &lt;strong>category 1&lt;/strong>. It exists because the alternative is five issue types
that all mean approximately &amp;ldquo;ICE didn&amp;rsquo;t work&amp;rdquo;.&lt;/p></description></item><item><title>Transport quality detectors</title><link>/docs/client-monitor-js/transport-quality-detectors/</link><pubDate>Sun, 13 Sep 2026 10:00:00 +0200</pubDate><guid>/docs/client-monitor-js/transport-quality-detectors/</guid><description>&lt;p>This is the reference for &lt;strong>category 2&lt;/strong>. It exists because &amp;ldquo;the network is bad&amp;rdquo; is four different
faults with four different fixes, and until 4.9.0 the library could only name one of them.&lt;/p></description></item><item><title>Pipeline disruption detectors</title><link>/docs/client-monitor-js/pipeline-disruption-detectors/</link><pubDate>Sun, 13 Sep 2026 10:00:00 +0200</pubDate><guid>/docs/client-monitor-js/pipeline-disruption-detectors/</guid><description>&lt;p>This is the reference for &lt;strong>category 3&lt;/strong>, the largest at &lt;strong>15 classes and 15 issue types&lt;/strong>. The
answer it is built to give is a &lt;strong>place&lt;/strong>: the boundary where the upstream counter advanced and the
downstream one did not.&lt;/p></description></item><item><title>Perceived quality detectors</title><link>/docs/client-monitor-js/perceived-quality-detectors/</link><pubDate>Sun, 13 Sep 2026 10:00:00 +0200</pubDate><guid>/docs/client-monitor-js/perceived-quality-detectors/</guid><description>&lt;p>This is the reference for &lt;strong>category 4&lt;/strong>, asked from the participant&amp;rsquo;s chair rather than the
engineer&amp;rsquo;s. Nothing here says where the media chain broke, and nothing here has to.&lt;/p></description></item><item><title>Telemetry detectors</title><link>/docs/client-monitor-js/telemetry-detectors/</link><pubDate>Sun, 13 Sep 2026 10:00:00 +0200</pubDate><guid>/docs/client-monitor-js/telemetry-detectors/</guid><description>&lt;p>This is the reference for &lt;strong>category 5&lt;/strong>. Nothing here judges the call. What it buys is the missing
column in most investigations: &lt;em>which&lt;/em> codec the bad calls were using, &lt;em>when&lt;/em> the layer stopped
being sent, &lt;em>whether&lt;/em> the path moved just before the complaint.&lt;/p></description></item><item><title>Events &amp; issues</title><link>/docs/client-monitor-js/events-issues/</link><pubDate>Thu, 07 Sep 2023 16:33:54 +0200</pubDate><guid>/docs/client-monitor-js/events-issues/</guid><description>&lt;p>&lt;code>ClientMonitor&lt;/code> emits two categories of notification: &lt;strong>issues&lt;/strong>, which describe a problem state,
and &lt;strong>events&lt;/strong>, which describe a thing that happened. Picking the right one is the key to keeping
alerting code sane.&lt;/p></description></item></channel></rss>