Aller au contenu principal

Métriques et santé

Métriques Prometheus​

Exposées sur le port METRICS_PORT (9000 par défaut) :

MétriqueLabelsDescription
nirn_proxy_erroraucunCompteur d'erreurs
nirn_proxy_requestsmethod, status, route, clientIdHistogramme de toutes les requêtes
nirn_proxy_open_connectionsroute, methodConnexions client ouvertes avec le proxy
nirn_proxy_requests_routed_sentaucunRequêtes routées vers d'autres nœuds
nirn_proxy_requests_routed_receivedaucunRequêtes reçues d'autres nœuds
nirn_proxy_requests_routed_erroraucunRequêtes routées qui ont échoué
nirn_proxy_invalid_requestsstatusRéponses que Discord compte comme invalides : 401, 403, et 429 hors portée shared
nirn_proxy_invalid_requests_windowaucunRequê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é.