-
Notifications
You must be signed in to change notification settings - Fork 0
Home
AstorisTheBrave edited this page Jun 21, 2026
·
7 revisions
Operational Prometheus / OpenTelemetry metrics for discord.py bots, in one line.
from argus import Argus
Argus(bot)This wiki is the in-depth reference. The README is the quick start; everything below assumes you know discord.py and Prometheus and want the specifics.
New to Argus? Follow a tutorial end to end:
- Single bot - instrument one bot: metrics, dashboard, Grafana.
- Fleet at scale - the control plane across many processes and regions.
- OpenTelemetry (OTLP) - push metrics to an OTLP backend.
- Per-guild analytics - the ClickHouse analytical path.
- FAQ - quick answers, including how the dashboard auth token works.
- Architecture and Invariants - the three layers, the seven invariants, and why they exist.
- Configuration - every kwarg/env var, precedence, and resolution.
- Compatibility - discord.py 2.x support and the fork situation.
- Security - what is exposed, how to gate it, and safe deployment.
- Metrics Reference - every metric, its kind, labels, and source.
- Dashboard - the built-in SPA, the SSE snapshot protocol, auth.
- History and ClickHouse - the per-guild analytical path and the event sink.
- OTLP - the OpenTelemetry push adapter.
-
Clustering - multi-process deployments and the
clusterlabel. - Fleet - the standalone control plane (Global/Fleet/Cluster view).
- Releasing - release-please, PyPI Trusted Publishing, the GHCR images.
- Contributing - dev setup, the checks, the DCO.
core observes the bot and maintains a backend-neutral metric registry.
adapters (Prometheus, OTLP) translate that registry into a backend. exposition
serves /metrics and the dashboard on the bot's own aiohttp loop. history is a
separate, optional path that drains per-guild events to an OLAP store. Data flows
one way: bot -> core -> adapters/exposition; core never imports an adapter.