A rising connection counter is not a rising audience. Icecast exposes both current gauges and cumulative counts, with different lifetimes. Name the metric, its scope and its reset condition before drawing conclusions from a dashboard.
Keep scope and lifetime together
| Field | Interpretation |
|---|---|
Global listeners | Currently active listener connections |
listener_connections | Listener connections accumulated since startup |
clients | Current client connections of more than one kind |
connections | Accumulated incoming TCP connections |
sources | Current active sources |
server_start_iso8601 | Server startup time |
Mount listeners | Current listeners for this stream |
Mount listener_peak | Peak concurrent listeners for the source’s lifetime |
total_bytes_read / total_bytes_sent | Source-scope byte totals |
stream_start_iso8601 | Start of the current source connection |
slow_listeners | Slow-listener count exposed for the source |
Source-scoped values can reset when a source disconnects or reconnects. A process restart resets server-lifetime counters. Handle a smaller counter after a restart as a reset, not negative traffic. Never compare bit/s, kbit/s and bytes without conversion.
Choose a data interface
curl --fail --show-error --user admin http://127.0.0.1:8000/admin/stats
curl --fail --show-error http://127.0.0.1:8000/status-json.xslThe first local request is authenticated XML; the second is the public JSON view where enabled. The public view exposes less than the administration data. Fields may be absent depending on media type and current state. A consumer should cope with no active sources, a single source object or a source collection as appropriate to the returned representation.
Do not scrape the human-facing status HTML as an API. Use documented XML/JSON or a deliberately maintained XSLT transform. Validate the response type and parse it safely; never insert source-provided titles into HTML unescaped.
Monitor the media path
Track server reachability, presence of the expected source, repeated source reconnects and listener delivery separately. A reachable JSON endpoint can coexist with a missing source. During a controlled test, compare statistics with one actual player connection, stop that connection and observe the corresponding gauge. A single listener figure cannot prove continuous audible playback.