Technitium DNS Exporter
Full monitoring for Technitium DNS - single servers or clusters. Realtime queries/sec, cache hit %, block %, and SERVFAILs from lifetime counters; windowed stats (LastHour/LastDay/...) with Pi-hole-style top clients, domains, and blocked domains; zone and DHCP inventory; DNS resolution health and server version. Powered by the technitium-dns-prometheus-exporter (Python), with ready-made Prometheus alerting rules in the repo.
Dashboard for the Technitium DNS Prometheus Exporter - monitor a single Technitium DNS server or a whole cluster from one exporter instance.
Inspired by pihole-exporter and the Pi-hole Exporter Grafana dashboard. After migrating from Pi-hole to Technitium, I couldn't find any exporter that provided the metrics I needed while remaining simple and reliable - so I built one.
What you get
- Realtime metrics (Technitium v15+ lifetime counters): queries/sec, cache hit %, block %, SERVFAIL errors, uptime, lifetime clients
- Traffic overview (window-based stats, LastHour/LastDay/…): query mix, % blocked, Pi-hole-style top clients, top domains and top blocked domains
- Inventory & health: zone health table with serials, DHCP scope leases, cache size, block/allow list sizes
- Server status: API reachability, DNS resolution health check, and server version at a glance
- Cluster mode: every panel filters by the
serverlabel - one dashboard, dropdown per node
Requirements
- The exporter (Docker images for amd64 / arm64 / armv7) with a read-only Technitium API token - setup steps in the README
- The DNS Health panel needs Technitium ≥ 15.3 and the token account to hold DnsClient: View; on older versions it shows n/a (by design, not a bug)
Bonus: the repo also ships ready-made Prometheus alerting rules covering exporter/API availability, resolution failures, SERVFAIL rate, and silent block-list collapse.
Data source config
Collector config:
Upload an updated version of an exported dashboard.json file from Grafana
| Revision | Description | Created | |
|---|---|---|---|
| Download |