Files
unpoller/examples/up.json.example
Cody Lee dabfeffe66 fix(prometheus): serve scrapes from cached background poll (#1013)
Decouples Prometheus scrape cadence from upstream UniFi API calls so a
429 backoff loop on the controller side no longer stalls /metrics. The
output plugin now owns a 60s background poller (configurable) whose
result is served from an in-memory cache. Concurrent /scrape requests
for the same target are coalesced via singleflight to prevent a noisy
scraper from multiplying upstream load.

Adds two new metrics so operators can detect cache staleness and
refresh failures independently:
- unpoller_prometheus_cache_age_seconds
- unpoller_prometheus_refresh_failures_total

Background goroutine recovers from panics so a malformed input payload
no longer silently kills refreshes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 17:43:44 -05:00

89 lines
1.9 KiB
JSON

{
"poller": {
"debug": false,
"quiet": false,
"plugins": [],
"log_unknown_types": false
},
"prometheus": {
"disable": false,
"http_listen": "0.0.0.0:9130",
"ssl_cert_path": "",
"ssl_key_path": "",
"report_errors": false,
"interval": "60s"
},
"influxdb": {
"disable": false,
"url": "http://127.0.0.1:8086",
"user": "unifipoller",
"pass": "unifipoller",
"db": "unifi",
"verify_ssl": false,
"interval": "30s",
"tags": {
"customer": "abc_corp",
"env": "prod"
}
},
"webserver": {
"enable": false,
"port": 37288,
"html_path": "/usr/local/lib/unpoller/web",
"ssl_cert_path": "",
"ssl_key_path": "",
"max_events": 200,
"accounts": {
"captain": "$2a$04$mxw6i0LKH6u46oaLK2cq5eCTAAFkfNiRpzNbz.EyvJZZWNa2FzIlS"
}
},
"datadog": {
"enable": false,
"address": "localhost:8125",
"namespace": "",
"tags": [
"customer:abcde"
]
},
"unifi": {
"dynamic": false,
"defaults": {
"user": "unifipoller",
"pass": "unifipoller",
"url": "https://127.0.0.1:8443",
"sites": ["all"],
"timeout": "60s",
"save_ids": false,
"save_events": false,
"save_alarms": false,
"save_anomalies": false,
"save_dpi": false,
"save_sites": true,
"hash_pii": false,
"verify_ssl": false,
"default_site_name_override": "My Custom Default Site"
},
"controllers": [
{
"user": "unifipoller",
"pass": "unifipoller",
"url": "https://127.0.0.1:8443",
"sites": ["all"],
"save_ids": false,
"save_events": false,
"save_alarms": false,
"save_anomalies": false,
"save_dpi": false,
"save_sites": true,
"hash_pii": false,
"verify_ssl": false
}
]
}
}