matrix: report homeserver up, latency and database size through existing collectors
tuwunel 1.9.4 exports no metrics. The host collector gets an httpcheck receiver on the gateway's /_matrix/client/versions (new services.hyperhive.otel.httpChecks, declared by hive-matrix), and a timer in the hive-matrix container pushes the database directory's size through the forwarder's OTLP port, as the attic cache-size unit does. The size step dereferences the state directory's symlink and pushes nothing for a result under 4096 bytes.
This commit is contained in:
parent
839dbd642a
commit
bef9d401a4
1 changed files with 311 additions and 0 deletions
|
|
@ -399,6 +399,25 @@ authelia, cache, forge and homeserver have a forwarder client of their own
|
|||
`tuwunel`) and no `hive` label. The forwarder of all but the store's is
|
||||
`nix/container-modules/swarm-journal-forwarder.nix`.
|
||||
|
||||
**The homeserver's metrics.** tuwunel 1.9.4 exports no metrics of its own, so
|
||||
request rates, sync load and federation traffic aren't available. Two series
|
||||
stand in for them, and neither adds a service:
|
||||
|
||||
- The hive collector on the homeserver's host requests
|
||||
`https://<gatewayHost>/_matrix/client/versions` every 60 s with its
|
||||
`httpcheck` receiver (`services.hyperhive.otel.httpChecks`). It reports
|
||||
`httpcheck.status` (one series per status class), `httpcheck.duration` and
|
||||
`httpcheck.error`, labelled with the URL. The container's forwarder can't
|
||||
make this request, because `httpcheck` dials HTTP and HTTPS only and tuwunel
|
||||
listens on a unix socket. The request passes through the gateway, so it
|
||||
covers the gateway's route as well as the homeserver.
|
||||
- The `hive-matrix-database-size` timer in the container runs every five
|
||||
minutes. It measures tuwunel's database directory and pushes the gauge
|
||||
`hyperhive.matrix.database_bytes` through the forwarder's OTLP port,
|
||||
stamped `service.name` `hive-matrix`. It exists only where the container
|
||||
has a forwarder, which needs matrix-ctl's store identity set. A size under
|
||||
4096 bytes is no database, so the timer logs a warning and pushes nothing.
|
||||
|
||||
The swarm collector's own container, `swarm-otel`, has no forwarder: its
|
||||
collector reads the container's journal itself (receiver `journald/self`) and
|
||||
exports it to the log store like the host's journal, stamped `service.name`
|
||||
|
|
|
|||
Loading…
Reference in a new issue