Prometheus Metrics
ChannelWatch exposes a Prometheus endpoint at /metrics. This page documents only the metrics confirmed in the current backend implementation.
Scrape endpoint
Section titled “Scrape endpoint”GET /metricsThe endpoint returns standard Prometheus text exposition:
scrape_configs: - job_name: channelwatch static_configs: - targets: ['channelwatch-host:8501'] scrape_interval: 30s/metrics follows the app’s authentication policy. In a legacy API-key deployment, configure your scraper to send X-API-Key securely. Secure-login deployments require a valid authenticated session; the app does not issue Prometheus-specific service tokens. Do not disable authentication on a shared network just to make a scrape succeed.
Metric labels include DVR names, hosts, and ports. Keep the scrape endpoint and the monitoring system that stores those labels private.
Metric catalog
Section titled “Metric catalog”The current metrics are:
| Metric | Type | Notes |
|---|---|---|
channelwatch_uptime_seconds |
Gauge | Seconds since the UI backend started |
channelwatch_active_streams |
Gauge | Aggregate active streams plus per-DVR labeled series |
channelwatch_core_running |
Gauge | 1 when the core process is running, 0 otherwise |
channelwatch_configured_dvrs |
Gauge | Number of enabled DVRs in the current settings |
channelwatch_disk_free_bytes |
Gauge | Aggregate and per-DVR free storage bytes |
channelwatch_disk_total_bytes |
Gauge | Aggregate and per-DVR total storage bytes |
channelwatch_disk_used_bytes |
Gauge | Aggregate and per-DVR used storage bytes |
channelwatch_dvr_connected |
Gauge | Per-DVR reachability state |
channelwatch_dvr_version_info |
Gauge | Per-DVR version metadata; metric value is always 1 |
Any other metric names previously documented should be treated as stale unless you confirm them in the current app source.
Labels actually used today
Section titled “Labels actually used today”Per-DVR gauges
Section titled “Per-DVR gauges”The per-DVR variants of these metrics use:
dvr_iddvr_namehostport
This label set is used for:
channelwatch_dvr_connected- per-DVR
channelwatch_active_streams - per-DVR
channelwatch_disk_free_bytes - per-DVR
channelwatch_disk_total_bytes - per-DVR
channelwatch_disk_used_bytes
Aggregate disk gauges
Section titled “Aggregate disk gauges”The aggregate disk-byte series use:
scope="all"
Version info gauge
Section titled “Version info gauge”channelwatch_dvr_version_info uses these labels:
dvr_iddvr_nameversioncompatible
The sample value is always 1; the version and compatibility state live in the labels.
Example queries
Section titled “Example queries”channelwatch_dvr_connectedchannelwatch_active_streams{dvr_name="Living Room"}channelwatch_disk_free_bytes{scope="all"}channelwatch_dvr_version_info{compatible="0"}Related pages
Section titled “Related pages”- Health & Readiness Probes - how the backend exposes monitoring state over HTTP
- Per-DVR Health - the JSON health endpoint for one DVR
- Debug Bundles - bundle a sanitized troubleshooting snapshot