๐ Prometheus Monitoring Stack
Host: Homelab ยท Compose:
Homelab/Docker/prometheus/compose.yaml
Stack name:prometheus[!NOTE] Update Available: Updates for this stack are pending in:
renovate/docker-dependencies,renovate/major-docker-dependencies.
1. Overview
A comprehensive Prometheus-based monitoring stack with exporters for nearly every service in the homelab. Metrics are collected from AdGuard, UniFi, all *arr applications, qBittorrent, MQTT, PostgreSQL, UPS (NUT), and Immich, then visualised in Grafana.
2. Architecture & Services
| Service | Image | Port | Role |
|---|---|---|---|
adguard_exporter_1 |
ebrianne/adguard-exporter:v1.14 |
โ | โ |
adguard_exporter_2 |
ebrianne/adguard-exporter:v1.14 |
โ | โ |
adguard_exporter_3 |
ebrianne/adguard-exporter:v1.14 |
โ | โ |
adguard_exporter_4 |
ebrianne/adguard-exporter:v1.14 |
โ | โ |
adguard_exporter_5 |
ebrianne/adguard-exporter:v1.14 |
โ | โ |
lidarr-exporter |
ghcr.io/onedr0p/exportarr:v2.3 |
9709 |
Lidarr metrics |
mqtt-exporter |
jryberg/mosquitto-exporter:v0.7.8 |
โ | MQTT broker metrics |
nut-exporter |
hon95/prometheus-nut-exporter:1.2.1 |
9995 |
UPS (NUT) metrics |
postgres-exporter |
prometheuscommunity/postgres-exporter:v0.20.1 |
โ | PostgreSQL metrics |
prometheus |
prom/prometheus:v3.14.0 |
9090 |
Core metrics storage and query engine |
prowlarr-exporter |
ghcr.io/onedr0p/exportarr:v2.3 |
9710 |
Prowlarr metrics |
qbittorrent-exporter |
caseyscarborough/qbittorrent-exporter:v1.3.5 |
โ | qBittorrent metrics |
radarr-exporter |
ghcr.io/onedr0p/exportarr:v2.3 |
9708 |
Radarr metrics |
readarr-exporter |
ghcr.io/onedr0p/exportarr:v2.3 |
9713 |
Readarr metrics |
sonarr-exporter |
ghcr.io/onedr0p/exportarr:v2.3 |
9707 |
Sonarr metrics |
unpoller |
ghcr.io/unpoller/unpoller:v3.5.0 |
โ | UniFi controller metrics |
3. Networking
appsโ โbackendโ โdatabaseโ โ
4. Persistent Storage
| Container | Host Path / Volume | Description |
|---|---|---||
| prometheus | /docker/data/prometheus/prometheus | prometheus.yml config and TSDB data |
5. Environment Variables
| Variable | Service | Description |
|---|---|---|
adguard_hostname |
adguard_exporter_1 |
โ |
adguard_password |
adguard_exporter_1 |
โ |
adguard_protocol |
adguard_exporter_1 |
โ |
adguard_username |
adguard_exporter_1 |
โ |
interval |
adguard_exporter_1 |
โ |
log_limit |
adguard_exporter_1 |
โ |
adguard_hostname |
adguard_exporter_2 |
โ |
adguard_password |
adguard_exporter_2 |
โ |
adguard_protocol |
adguard_exporter_2 |
โ |
adguard_username |
adguard_exporter_2 |
โ |
interval |
adguard_exporter_2 |
โ |
log_limit |
adguard_exporter_2 |
โ |
adguard_hostname |
adguard_exporter_3 |
โ |
adguard_password |
adguard_exporter_3 |
โ |
adguard_protocol |
adguard_exporter_3 |
โ |
adguard_username |
adguard_exporter_3 |
โ |
interval |
adguard_exporter_3 |
โ |
log_limit |
adguard_exporter_3 |
โ |
adguard_hostname |
adguard_exporter_4 |
โ |
adguard_password |
adguard_exporter_4 |
โ |
adguard_protocol |
adguard_exporter_4 |
โ |
adguard_username |
adguard_exporter_4 |
โ |
interval |
adguard_exporter_4 |
โ |
log_limit |
adguard_exporter_4 |
โ |
adguard_hostname |
adguard_exporter_5 |
โ |
adguard_password |
adguard_exporter_5 |
โ |
adguard_protocol |
adguard_exporter_5 |
โ |
adguard_username |
adguard_exporter_5 |
โ |
interval |
adguard_exporter_5 |
โ |
log_limit |
adguard_exporter_5 |
โ |
APIKEY |
lidarr-exporter |
โ |
PORT |
lidarr-exporter |
โ |
URL |
lidarr-exporter |
โ |
HTTP_PATH |
nut-exporter |
โ |
HTTP_PORT |
nut-exporter |
โ |
LOG_REQUESTS_CONSOLE |
nut-exporter |
โ |
PRINT_METRICS_AND_EXIT |
nut-exporter |
โ |
RUST_LOG |
nut-exporter |
โ |
TZ |
nut-exporter |
โ |
DATA_SOURCE_PASS |
postgres-exporter |
โ |
DATA_SOURCE_URI |
postgres-exporter |
โ |
DATA_SOURCE_USER |
postgres-exporter |
โ |
APIKEY |
prowlarr-exporter |
โ |
PORT |
prowlarr-exporter |
โ |
URL |
prowlarr-exporter |
โ |
QBITTORRENT_BASE_URL |
qbittorrent-exporter |
โ |
QBITTORRENT_PASSWORD |
qbittorrent-exporter |
โ |
QBITTORRENT_USERNAME |
qbittorrent-exporter |
โ |
APIKEY |
radarr-exporter |
โ |
PORT |
radarr-exporter |
โ |
URL |
radarr-exporter |
โ |
APIKEY |
readarr-exporter |
โ |
PORT |
readarr-exporter |
โ |
URL |
readarr-exporter |
โ |
APIKEY |
sonarr-exporter |
โ |
PORT |
sonarr-exporter |
โ |
URL |
sonarr-exporter |
โ |
UP_INFLUXDB_DISABLE |
unpoller |
โ |
UP_POLLER_DEBUG |
unpoller |
โ |
UP_PROMETHEUS_HTTP_LISTEN |
unpoller |
โ |
UP_PROMETHEUS_NAMESPACE |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_PASS |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_SAVE_ALARMS |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_SAVE_ANOMALIES |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_SAVE_DPI |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_SAVE_EVENTS |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_SAVE_IDS |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_SAVE_SITES |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_URL |
unpoller |
โ |
UP_UNIFI_CONTROLLER_0_USER |
unpoller |
โ |
UP_UNIFI_DYNAMIC |
unpoller |
โ |
6. Access & Usage
| URL | Description |
|---|---|
http://localhost:9090 |
Prometheus UI |
https://grafana.m1ckyb.com |
Grafana dashboards (OAuth via Authentik) |
# Start
docker compose -f Homelab/Docker/prometheus/compose.yaml up -d
# Reload config without restart
curl -X POST http://localhost:9090/-/reload
# Check all targets
curl http://localhost:9090/api/v1/targets | jq '.data.activeTargets[] | {job:.labels.job, health:.health}'