Prometheus metrics at /metrics, configured in jarl.yaml
New metrics: section (enabled, listen, allow, token). /metrics is served on the main listeners, the local socket (root and jarld's user) and optional metrics-only addresses; a scrape needs an allowed address or the bearer token. Exports health (named up, problems, drift, backups, blocklists, DNSSEC phases, token expiry) and, with stats on, named's and Jarl's query counters since jarld started plus named's process and cache gauges. docs/metrics.md has example queries and alerts checked with promtool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7e6e274a89
commit
c37de31f4c
17 files changed
+1126
-4
No files matched your search
@@ -14,7 +14,8 @@ type Server struct {
|
||||
PID int `json:"pid,omitempty"`
|
||||
RSS int64 `json:"rss,omitempty"` // resident memory, bytes
|
||||
Threads int64 `json:"threads,omitempty"`
|
||||
CPUPercent float64 `json:"cpu_percent"` // of one CPU, over the last minute
|
||||
CPUPercent float64 `json:"cpu_percent"` // of one CPU, over the last minute
|
||||
CPUSeconds float64 `json:"cpu_seconds,omitempty"` // user + system time since named started
|
||||
// From the statistics channel.
|
||||
MemInUse int64 `json:"mem_in_use"` // named's own count of the memory it uses
|
||||
CacheRRsets int64 `json:"cache_rrsets"`
|
||||
@@ -63,6 +64,7 @@ func (c *Collector) sampleServer(minute int64, now time.Time, snap *Snapshot) {
|
||||
c.proc = nil
|
||||
} else {
|
||||
srv.PID, srv.RSS, srv.Threads = p.PID, p.RSS, p.Threads
|
||||
srv.CPUSeconds = float64(p.CPU) / clockTicks
|
||||
if prev := c.proc; prev.At.Before(now) && !prev.At.IsZero() && p.CPU >= prev.CPU {
|
||||
// Tenths of a percent of one CPU: ticks / clockTicks is CPU seconds.
|
||||
permille := (p.CPU - prev.CPU) * 1000 / clockTicks / max(int64(now.Sub(prev.At)/time.Second), 1)
|
||||
|
||||
Reference in new issue
Block a user