Metrics on a thread and port of their own, from memory alone (#194)
/metrics shared the web server's threads, and answered after a token lookup and three counting queries, so a pool run dry, one of the things it is there to show, would have stalled it, and a slow scrape held a web thread. Now [web] metrics_bind starts a listener on its own OS thread with a current-thread runtime, reading only what is in memory: pool counts, channel capacity, the daemon runtime's metrics through its handle, /proc. No sign-in, as exporters have none; publish the port to the LAN only. The feed, pending and downloaded counts stay with the healthcheck's log lines, which the dashboard already reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -103,6 +103,7 @@ access_aud = "" # the Access application's AUD tag
|
||||
auto_create_users = true
|
||||
sign_out_url = "" # e.g. "/cdn-cgi/access/logout"
|
||||
session_days = 30
|
||||
metrics_bind = "" # e.g. "0.0.0.0:9187"; empty serves no metrics
|
||||
```
|
||||
|
||||
* **`token`** — the shared secret, which signs in as the **admin**. `?token=…` sets a cookie, so
|
||||
@@ -119,6 +120,9 @@ session_days = 30
|
||||
`/cdn-cgi/access/logout` behind Cloudflare Access. Empty sends them to the sign-in page, where
|
||||
the proxy signs them straight back in.
|
||||
* **`session_days`** — sign a session out after this long without a request.
|
||||
* **`metrics_bind`** — where to serve `/metrics` for Prometheus: database connections in use, the
|
||||
worker's queue, the runtime's tasks, memory and open files. It has a thread and a port of its own
|
||||
and no sign-in, so publish it to the LAN only. Empty, the default, serves none.
|
||||
|
||||
It is plain HTTP. On a LAN bind everything crosses the network in the clear — and a feed URL can
|
||||
itself carry a credential. Put TLS in front of it if that matters.
|
||||
|
||||
Reference in New Issue
Block a user