Monitor Live Streams¶
The Streams page shows what's playing right now: active upstream connections to your providers, and every client currently watching. It auto-refreshes every 3 seconds. This is the built-in live view — for historical metrics you can graph over time, see Monitor with Prometheus / Grafana instead.
Active Streams¶
One row per upstream connection M3Undle currently has open with a provider — remember that multiple viewers on the same channel share one row, one upstream connection (see Stream Proxying).
| Column | What it shows |
|---|---|
| Channel | The channel name; hover for the internal session ID. |
| State | The session's current lifecycle state, with a tooltip explaining it. |
| Relay | Direct (bytes passed through unchanged) or Clean remux (FFmpeg repackaging). A warning icon appears if relay fell back to direct — click the details icon for why. See Retry, Failover, and Cooldowns. |
| Health | The channel's Stable / Cautious / Unstable grade, or a dash if the upstream connection hasn't been established yet. |
| Clients | Total downstream viewers. If any are watching via generated HLS, the count splits into direct connections vs. HLS-tracked (inferred from segment activity, since HLS doesn't hold an open connection the way direct delivery does). |
| Bitrate | Current upstream bitrate from the provider. |
| Buffer | Ring-buffer fill — how much of the recent-history buffer is in use. Full is normal for a healthy active stream, not a warning sign. |
| Reconnects | Upstream reconnect attempts for this session, with the failure kind if nonzero. |
| Running | How long the session has been open. |
| Last Data | How long since the last byte arrived from the provider; turns amber past 10 seconds. |
The rightmost column has two actions: an ⓘ icon opening the full health/relay details dialog for that session, and — only for generated HLS sessions — a restart icon that tears down and disconnects the current FFmpeg session (all its viewers get disconnected; the next request starts a fresh one). Use this if a browser-playback stream gets stuck.
Connected Clients¶
One row per individual downstream connection, across every active stream:
| Column | What it shows |
|---|---|
| Client | The player type, resolved from its User-Agent (e.g. "VLC", "IPTV Smarters"). |
| Channel | Which channel this client is watching, or the raw requested route if it can't be matched to a channel. |
| IP | The client's remote address. |
| Source | How the client reached M3Undle (e.g. direct, reverse proxy), if determinable. |
| Delivery | The transport this client is receiving — direct MPEG-TS relay or generated HLS. |
| Status | A computed health chip for this specific client's connection. |
| Transfer | Current throughput and total bytes sent. For direct clients, a client receiving noticeably less than the stream's upstream rate with a growing backlog is flagged as possibly slow or stalled. HLS clients instead show time since their last segment request. |
| Backlog | Chunks queued waiting to be written to this client (direct delivery only). A growing backlog can mean a slow or stalled client. |
| Connected | How long this client has been connected. |
Recently Ended¶
Sessions that closed recently collapse into an expandable Recently Ended panel below the two live tables — final state, relay mode, reconnect count, last recovery attempt (and how long output was held during it), and when the session started. Useful for checking what happened to a stream right after a viewer reports it cut out.
Nothing here¶
If no one is watching anything, both tables simply say so — this is a live view, not a history, so it's normal to see "No active streams" and "No connected clients" between sessions.