Skip to content

Integration in Grafana


Prometheus export

Blocky can optionally export metrics for Prometheus.

Following metrics will be exported:

name Description
blocky_denylist_cache / blocky_allowlist_cache Number of entries in denylist/allowlist cache, partitioned by group
blocky_error_total Number of total queries that ended in error for any reason
blocky_query_total Number of total queries, partitioned by client and DNS request type (A, AAAA, PTR, etc)
blocky_request_duration_ms_bucket Request duration histogram, partitioned by response type (Blocked, cached, etc)
blocky_response_total Number of responses, partitioned by response type (Blocked, cached, etc), DNS response code, and reason
blocky_blocking_enabled 1 if blocking is enabled, 0 otherwise
blocky_cache_entry_count Number of entries in cache
blocky_cache_hit_count / blocky_cache_miss_count Cache hit/miss counters
blocky_prefetch_count Amount of prefetched DNS responses
blocky_prefetch_domain_name_cache_count Amount of domain names being prefetched
blocky_failed_download_count Number of failed list downloads

Grafana dashboard

Example Grafana dashboard definition as JSON or at grafana-dashboard.

This dashboard shows all relevant statistics and allows enabling and disabling the blocking status.

Grafana configuration

Please install grafana-piechart-panel and set disable_sanitize_html in config or as env to use control buttons to enable/disable the blocking status.

Grafana and Prometheus example project

This repo contains example docker-compose.yml with blocky, prometheus (with configured scraper for blocky) and grafana with prometheus datasource.

MySQL / MariaDB

If database query logging is activated (see Query logging), you can use following Grafana Dashboard as JSON or at


Please define the MySQL source in Grafana, which points to the database with blocky's log entries.


The JSON for a Grafana dashboard equivalent to the MySQL/MariaDB version is located here