{ "title": "Unbound", "uid": "unbound-overview", "tags": ["unbound", "dns", "resolver"], "schemaVersion": 39, "version": 1, "refresh": "1m", "time": { "from": "now-6h", "to": "now" }, "timezone": "browser", "editable": true, "graphTooltip": 1, "templating": { "list": [ { "name": "instance", "label": "Host", "type": "query", "datasource": { "type": "prometheus", "uid": "prometheus" }, "query": { "query": "label_values(up{job=\"unbound\"}, instance)", "refId": "A" }, "refresh": 2, "multi": false, "includeAll": false, "sort": 1, "current": { "selected": false, "text": "", "value": "" } } ] }, "panels": [ { "id": 1, "type": "stat", "title": "Up", "gridPos": { "h": 4, "w": 4, "x": 0, "y": 0 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "none", "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "green", "value": 1 } ] }, "mappings": [ { "type": "value", "options": { "0": { "text": "Down", "color": "red" }, "1": { "text": "Up", "color": "green" } } } ] }, "overrides": [] }, "options": { "reduceOptions": { "values": false, "calcs": ["lastNotNull"], "fields": "" }, "colorMode": "background", "graphMode": "none", "textMode": "auto", "justifyMode": "auto", "orientation": "auto" }, "targets": [ { "refId": "A", "expr": "unbound_up{instance=\"$instance\"}" } ] }, { "id": 2, "type": "stat", "title": "Uptime", "gridPos": { "h": 4, "w": 4, "x": 4, "y": 0 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "s", "color": { "mode": "none" } }, "overrides": [] }, "options": { "reduceOptions": { "values": false, "calcs": ["lastNotNull"], "fields": "" }, "colorMode": "value", "graphMode": "none", "textMode": "auto", "justifyMode": "auto", "orientation": "auto" }, "targets": [ { "refId": "A", "expr": "unbound_time_up_seconds_total{instance=\"$instance\"}" } ] }, { "id": 3, "type": "timeseries", "title": "Queries/sec", "gridPos": { "h": 4, "w": 8, "x": 8, "y": 0 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (instance) (rate(unbound_queries_total{instance=\"$instance\"}[$__rate_interval]))", "legendFormat": "queries" } ] }, { "id": 4, "type": "timeseries", "title": "Cache Hit Rate", "gridPos": { "h": 4, "w": 8, "x": 16, "y": 0 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "percentunit", "min": 0, "max": 1, "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (instance) (rate(unbound_cache_hits_total{instance=\"$instance\"}[$__rate_interval])) / (sum by (instance) (rate(unbound_cache_hits_total{instance=\"$instance\"}[$__rate_interval])) + sum by (instance) (rate(unbound_cache_misses_total{instance=\"$instance\"}[$__rate_interval])))", "legendFormat": "hit rate" } ] }, { "id": 5, "type": "timeseries", "title": "Response Time", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 4 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "s", "min": 0, "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "histogram_quantile(0.95, sum by (le) (rate(unbound_response_time_seconds_bucket{instance=\"$instance\"}[$__rate_interval])))", "legendFormat": "p95" }, { "refId": "B", "expr": "histogram_quantile(0.50, sum by (le) (rate(unbound_response_time_seconds_bucket{instance=\"$instance\"}[$__rate_interval])))", "legendFormat": "p50" } ] }, { "id": 6, "type": "timeseries", "title": "Recursion Time", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 4 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "s", "min": 0, "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "unbound_recursion_time_seconds_avg{instance=\"$instance\"}", "legendFormat": "avg" }, { "refId": "B", "expr": "unbound_recursion_time_seconds_median{instance=\"$instance\"}", "legendFormat": "median" } ] }, { "id": 7, "type": "timeseries", "title": "Answers by Rcode", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 12 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (rcode) (rate(unbound_answer_rcodes_total{instance=\"$instance\"}[$__rate_interval]))", "legendFormat": "{{rcode}}" } ] }, { "id": 8, "type": "timeseries", "title": "Query Types", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 12 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (type) (rate(unbound_query_types_total{instance=\"$instance\"}[$__rate_interval]))", "legendFormat": "{{type}}" } ] }, { "id": 9, "type": "timeseries", "title": "Request List (backlog)", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 20 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "short", "min": 0, "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (instance) (unbound_request_list_current_user{instance=\"$instance\"})", "legendFormat": "current user requests" } ] }, { "id": 10, "type": "timeseries", "title": "Dropped Queries", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 20 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (instance) (rate(unbound_request_list_exceeded_total{instance=\"$instance\"}[$__rate_interval]))", "legendFormat": "exceeded" }, { "refId": "B", "expr": "sum by (instance) (rate(unbound_request_list_overwritten_total{instance=\"$instance\"}[$__rate_interval]))", "legendFormat": "overwritten" } ] }, { "id": 11, "type": "timeseries", "title": "Transport", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 28 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "rate(unbound_query_tcp_total{instance=\"$instance\"}[$__rate_interval])", "legendFormat": "TCP" }, { "refId": "B", "expr": "rate(unbound_query_tls_total{instance=\"$instance\"}[$__rate_interval])", "legendFormat": "TLS (DoT)" }, { "refId": "C", "expr": "rate(unbound_query_https_total{instance=\"$instance\"}[$__rate_interval])", "legendFormat": "HTTPS (DoH)" } ] }, { "id": 12, "type": "timeseries", "title": "DNSSEC Validation", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 28 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "rate(unbound_answers_secure_total{instance=\"$instance\"}[$__rate_interval])", "legendFormat": "secure" }, { "refId": "B", "expr": "rate(unbound_answers_bogus{instance=\"$instance\"}[$__rate_interval])", "legendFormat": "bogus" } ] }, { "id": 13, "type": "timeseries", "title": "Cache Entries", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 36 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "short", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "unbound_msg_cache_count{instance=\"$instance\"}", "legendFormat": "msg" }, { "refId": "B", "expr": "unbound_rrset_cache_count{instance=\"$instance\"}", "legendFormat": "rrset" }, { "refId": "C", "expr": "unbound_infra_cache_count{instance=\"$instance\"}", "legendFormat": "infra" } ] }, { "id": 14, "type": "timeseries", "title": "Recursive vs Cache Replies", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 36 }, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { "unit": "ops", "color": { "mode": "palette-classic" }, "custom": { "fillOpacity": 20, "lineWidth": 1, "drawStyle": "line", "showPoints": "never" } }, "overrides": [] }, "targets": [ { "refId": "A", "expr": "sum by (instance) (rate(unbound_recursive_replies_total{instance=\"$instance\"}[$__rate_interval]))", "legendFormat": "recursive replies" } ] } ] }