TurboPanel Docs
Server metrics

Router metrics

The Router group is the shared hosting Traefik on this host: the loopback proxy behind the hosting Caddy that routes each request to the right container. Every Docker-hosted site on the server passes through it once, so there is exactly one row per sample regardless of how many sites the host runs. It appears when the daemon can scrape that router's metrics entrypoint; a host not running the shared hosting ingress has no group.

Only the hosting router is metered

The path is hosting Caddy → Traefik → container. This group is the middle hop. Any other Traefik on the host — a per-service proxy inside a tenant's own stack — is not read here. The site-level Caddy is on Ingress.

The group header shows backends reachable as N of M whether or not the section is expanded — a low figure, not a high one, is the fault.

Backend requests

SeriesWire nameWhat it is
Requestsrouter.backendRequestsRequests the router forwarded to a backend in the interval
5xxrouter.backendErrors5xxResponses in the 5xx class from the container
Retriesrouter.retriesTimes the router retried a request against another backend

Compare the 5xx line with Caddy's 5xx. Caddy counts every 5xx a client saw; this counts only those a container produced. The gap between them is failures inside the proxy path itself — a backend that never answered, a connection the router could not open — rather than application errors.

Retries hide backend blips from clients and multiply load on whichever backends remain. A retry spike with backends dropping below total is the cascade to watch.

Backend latency

router.backendLatencyMsAvg — mean time the router waited on a backend in the interval, in milliseconds.

This is container time, measured from the router's side. Rising here while Caddy's percentiles hold is unusual; rising in both is the application getting slower. Flat here while Caddy's rise points at the hop in between or at Caddy itself.

Backends & services

SeriesWire nameWhat it is
Backends uprouter.backendsUpBackend servers the router currently considers reachable
Backends totalrouter.backendsTotalBackend servers configured
Servicesrouter.servicesTotalServices (load-balanced backend groups) in the running configuration
Routersrouter.routersTotalRouting rules in the running configuration

Up falling below total is a container the router has marked down; 5xx or retries usually follow. 0 of 0 is nothing configured, not an outage. Services and routers change only when sites are added, removed, or reconfigured — a step here with a config reload is a deploy; a step without one is worth a look.

Open connections

router.httpOpenConnections — client connections the router is holding open right now, excluding the collector's own scrape traffic.

Connections climbing together with backend latency is a backlog forming: requests are being held while containers catch up. Compare with Caddy's in-flight count on the hop in front.

Config reloads

router.configReloads — how many times the router reloaded its configuration in the interval.

The router watches for site changes and reloads on its own. A reload per deploy is expected. A steady stream with no deploys is something rewriting the configuration in a loop.

Since last config reload

router.configLastReloadAgeSeconds — how long the running configuration has been in place.

This is a gauge, kept off the reload-count chart on purpose. The legend's latest value is the "how stale is the running config" answer: a large age on a host whose sites change often means the watcher has stopped picking up edits, and new sites are not being routed.

Soonest TLS expiry

router.tlsCertSoonestExpiryDays — days until the earliest-expiring certificate the router serves lapses.

A minimum across every certificate, not a mean — one certificate about to expire matters regardless of how healthy the others are. Renewal normally keeps this well above zero; a line that keeps falling is a renewal that is failing.

  • Ingress — the site Caddy in front of this router
  • Network — TCP retransmits and kernel tables on the host
  • Events — the discrete companions to these gauges
Edit on GitHub

Last updated on

On this page