Server statistics, multi-view record commands, and rc.3 fixes

Added:
- Server statistics: named's memory and CPU (from /proc), cache size,
  sockets and client counts against their limits (statistics channel,
  rndc status), host memory and load, and free disk space. Memory and
  CPU are kept over time as gauges (sum and sample count, averaged in
  timelines). Statistics page Server section, jarl stats server,
  GET /stats/server.
- jarl record add|set|delete|disable|enable --view a,b | all: the same
  change in each view, applied as one changeset.
- Blocking can be paused until resumed (jarl block pause indefinitely,
  "Until I resume", {"indefinitely": true}).

Changed:
- List options (allow-transfer, forwarders, ...) get their braces added
  when given without them.
- The dashboard lists named-checkconf's warnings about the running
  configuration; the CLI prints them after an apply.
- Stats page: tile and card rows fill their width, and the queries and
  failed answers charts share margins so their time axes line up.
- Dashboard: options have their own tile.
- 24-hour times in the web UI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adamandClaude Opus 5.5 committed 2026-10-11 18:03:05 +01:00
1 parent b097e10bef
commit 7be0762f48
48 files changed
+1346 -128

No files matched your search

+28
View File
@@ -8,6 +8,19 @@ All notable changes to Jarl are documented here. The format follows
### Added
- Server statistics: named's memory (resident, and its own count) and
CPU use, its cache size, sockets, and recursive and TCP clients against
their limits; the host's memory and load; free space where zone files,
logs and Jarl's data are. Memory and CPU are kept over time like the
other statistics. Statistics page → Server, `jarl stats server`, API
`/stats/server`. Read from named's statistics channel, `rndc status` and
/proc, with no extra privileges.
- CLI: the record commands that change records take several views,
`--view internal,external`, or `--view all`, and make the change in each,
as one changeset (all views or none).
- Blocking can be paused until resumed, like Pi-hole's "indefinitely":
`jarl block pause indefinitely`, **Until I resume** on the Blocking page,
`{"indefinitely": true}` in the API.
- Disabled zones: a zone can be disabled instead of deleted. named stops
loading it (its zone statement is left out of named.conf), while Jarl
keeps it with its records, options and history, still editable;
@@ -54,6 +67,21 @@ All notable changes to Jarl are documented here. The format follows
within a group. The same option is now in the same place in every view
and zone. The first apply after upgrading reorders named.conf (a diff
that only moves lines). Top-level statements keep their order.
- Options that end in a list (`allow-transfer`, `forwarders`,
`listen-on`, ...) can be given without their braces, in the web UI, CLI
and API: `10.0.10.53; key xfer` becomes `{ 10.0.10.53; key xfer; }`.
Before, only some server options (those edited one element per line)
added them.
- The dashboard's configuration checks include named-checkconf's own
warnings about the running configuration (such as `both "recursion no;"
and "allow-recursion" active`), which before only showed while applying.
The CLI now prints them after an apply too.
- Statistics page: cards and tiles fill their rows instead of leaving one
alone beside an empty space, and the queries and failed answers charts
have the same margins, so their time axes line up.
- Dashboard: options have their own tile; "0 TSIG keys · 22 options" read
as if the options belonged to the keys.
- Web UI times use the 24-hour clock.
- Diffs of named.conf say which block each change is in, after the `@@`
line numbers (`@@ -50,6 +49,8 @@ view "internal" {`), like git does
with function names. Moving an option from the server's options into a