Métriques et santé
Métriques Prometheus
Exposées sur le port METRICS_PORT (9000 par défaut) :
| Métrique | Labels | Description |
|---|---|---|
nirn_proxy_error | aucun | Compteur d'erreurs |
nirn_proxy_requests | method, status, route, clientId | Histogramme de toutes les requêtes |
nirn_proxy_open_connections | route, method | Connexions client ouvertes avec le proxy |
nirn_proxy_requests_routed_sent | aucun | Requêtes routées vers d'autres nœuds |
nirn_proxy_requests_routed_received | aucun | Requêtes reçues d'autres nœuds |
nirn_proxy_requests_routed_error | aucun | Requêtes routées qui ont échoué |
nirn_proxy_invalid_requests | status | Réponses que Discord compte comme invalides : 401, 403, et 429 hors portée shared |
nirn_proxy_invalid_requests_window | aucun | Requêtes invalides sur les dix dernières minutes |
Une 429 apparaît avec l'un de deux statuts : 429 Too Many Requests, ou 429 Shared quand Discord répond avec l'en-tête x-ratelimit-scope: shared. Ces dernières ne comptent pas dans la limite du pare-feu de Cloudflare : ne les utilisez pas pour vos alertes.
Requêtes invalides
Discord bannit temporairement une adresse IP qui envoie 10 000 requêtes invalides en dix minutes. nirn_proxy_invalid_requests_window suit ce compte en continu, et le proxy journalise un avertissement dès 5 000, puis à chaque millier supplémentaire : c'est la métrique à surveiller en priorité. Le dépôt fournit un tableau de bord Grafana dans grafana-dash.
Santé
Le point /nirn/healthz répond aux sondes de disponibilité et de vivacité, par exemple sur Kubernetes.
Profilage
Avec ENABLE_PPROF à true, le proxy expose pprof sur http://ip:7654/debug/pprof/. Ce port écoute sur toutes les interfaces, quel que soit BIND_IP : ne l'activez que sur un réseau privé.