Skip to content

Statistics

dinio stats reads the counts Dinio’s DNS servers report for your zones and your clients. See Statistics for what the numbers mean.

Terminal window
dinio stats zones --since 7d --compare
dinio stats zone example.com --by qtype --since 7d --step 1d
dinio stats names example.com --limit 10
dinio stats client phone --by event_type
dinio stats blocked --since 24h
SERIES TOTAL SHARE PER SECOND PEAK STEP
A 30112 62.5% 0.050 5210 at 2026-10-26 00:00 UTC
AAAA 11870 24.6% 0.020 2034 at 2026-10-26 00:00 UTC
NXDOMAIN 4120 8.5% 0.007 761 at 2026-10-22 00:00 UTC

The servers report in 10-minute windows, and data is kept for 90 days. How far back you can read depends on the package: a zone’s statistics on its Owner’s, a client’s on yours. -o json prints the API’s full answer, with every point (times in milliseconds).

These need access to the zone; a zone key works for its own zone.

Command
stats zones Queries to all of your zones together. --by rcode (default), qtype, geo or none.
stats top-zones Your busiest zones, with their NXDOMAIN count and share.
stats zone ZONE Queries to the zone. --by rcode (default), qtype, geo (country), name or none. --name NAME (relative to the zone, @ for the apex) for one name.
stats nx ZONE NXDOMAIN answers under the zone, and an estimate of how many distinct names were missing.
stats names ZONE The zone’s busiest names, with their response codes and types.
stats nx-names ZONE The most asked names under the zone that don’t exist.

These need a personal key. CLIENT is a client’s name, IDENTIFY value or uuid; without it, all of your clients count.

Command
stats client [CLIENT] Lookups by outcome. --by event_type (default; sinkhole = blocked), client or none.
stats rcodes [CLIENT] Answers by response code. --by rcode (default), client or none.
stats blocked [CLIENT] The names your lists blocked most often.

Every stats command takes a range:

Option
--since DURATION Up to now, this far back: 1h, 24h, 7d.
--from TIME, --to TIME RFC 3339 with an offset, e.g. 2026-10-27T08:00:00Z. Not with --since.

Without them, the last 24 hours. A range spans at most 92 days.

Series (zones, zone, nx, client, rcodes) also take:

Option
--step STEP auto (default), 10m, 30m, 1h, 3h, 6h, 12h, 1d or 7d.
--compare Also compare with the preceding range of equal length (adds a CHANGE column).
--limit N Series kept, 1–100 (default 20); the rest is merged into “Other”.

Top lists (top-zones, names, nx-names, blocked) take --limit N, 1–100 (default 20).