Configuration d’AppSignal
Tout d’abord, vous devez configurer votre intégration AppSignal ou l’agent autonome pour qu’il reçoive les métriques de NGINX. Si vous configurez votre intégration AppSignal avec des variables d’environnement, vous devez définirAPPSIGNAL_ENABLE_NGINX_METRICS à true.
Si vous configurez votre intégration AppSignal avec des fichiers de configuration, ou si vous utilisez l’agent autonome, vous pouvez suivre les instructions appropriées ci-dessous pour activer les métriques NGINX pour votre application :
Ruby
Ajoutezenable_nginx_metrics: true à l’environnement souhaité dans le fichier config/appsignal.yml de votre application, par exemple l’environnement de production :
Elixir
Ajoutezenable_nginx_metrics: true à votre bloc de configuration AppSignal, généralement situé dans config/config.exs :
Node.js
AjoutezenableNginxMetrics: true à votre fichier appsignal.cjs :
Agent autonome
Ajoutezenable_nginx_metrics = true à votre fichier de configuration /etc/appsignal-agent.conf :
Configuration de NGINX
L’étape suivante consiste à configurer votre serveur NGINX pour qu’il envoie les métriques à AppSignal. Dans la plupart des distributions Linux, la configuration NGINX par défaut inclut des fichiers de configuration provenant d’un dossier de configuration, souvent situé dans/etc/nginx/conf.d. Enregistrez la configuration suivante dans ce dossier sous le nom appsignal-metrics.conf :
Remplacez
127.0.0.1:27649 par l’hôte et le port où votre intégration AppSignal ou l’agent autonome écoute les métriques NGINX.http de votre fichier nginx.conf :
server ou location contient une directive access_log, les métriques des requêtes vers ce serveur ou cet emplacement ne seront pas rapportées à AppSignal. Pour rapporter les métriques à AppSignal pour ces requêtes, vous devrez ajouter la ligne suivante à l’intérieur du bloc :
Shell
Remplacez
127.0.0.1:27649 par l’hôte et le port où votre intégration AppSignal ou l’agent autonome écoute les métriques NGINX.access_log existante à l’intérieur du bloc continuera à fonctionner comme avant.
Configuration des groupes de requêtes
En modifiant la valeur de la variable$appsignal_group dans un bloc location ou server de votre configuration NGINX, vous pouvez différencier les différents types de requêtes traitées par votre serveur NGINX :
Désactivation des métriques
Vous pouvez utiliser la directiveaccess_log off pour désactiver tous les logs d’accès dans un bloc location ou server. Notez que cela désactivera tous les logs d’accès configurés, pas seulement ceux qui sont envoyés à AppSignal en tant que métriques.
Pour rapporter les métriques uniquement à partir de blocs location ou server spécifiques, supprimez la ligne suivante du fichier appsignal-metrics.conf, puis ajoutez-la uniquement à l’intérieur des blocs location ou server spécifiques à partir desquels vous souhaitez rapporter les métriques à AppSignal :
Remplacez
127.0.0.1:27649 par l’hôte et le port où votre intégration AppSignal ou l’agent autonome écoute les métriques NGINX.access_log dans le bloc server ou http environnant. Pour réactiver ces logs d’accès, répétez leur directive access_log correspondante à l’intérieur du bloc location ou server auquel vous avez ajouté la ligne ci-dessus :
Magic dashboard

- Request time : le temps mis par votre serveur NGINX pour répondre à une requête, en moyenne par minute et en 95e percentile.
- Throughput : un compte des requêtes traitées par votre serveur NGINX.
- Request length : la longueur en octets de la requête reçue du client par votre serveur NGINX, en moyenne par minute et en 95e percentile.
- Response length : la longueur en octets de la réponse envoyée au client par votre serveur NGINX, en moyenne par minute et en 95e percentile.
- Status codes : un compte des codes d’état des réponses envoyées par votre serveur NGINX.
- Connections : une gauge des connexions actuellement traitées par votre serveur NGINX, mesurée une fois par minute et segmentée par le statut de la connexion.
- Upstream status codes : un compte des codes d’état des réponses envoyées par les serveurs upstream que votre serveur NGINX proxifie.
- Upstream response time : le temps mis pour répondre à une requête par les serveurs upstream que votre serveur NGINX proxifie, en moyenne par minute et en 95e percentile.
- Upstream cache status : le statut du cache (tel que
HITouMISS) lors du traitement d’une requête mise en cache proxifiée depuis un serveur upstream.
Métriques
Les métriques suivantes seront envoyées à AppSignal depuis votre serveur NGINX :nginx_status: Un counter incrémenté pour chaque requête traitée par votre serveur NGINX. Tagué par :status: Le code d’état de la réponse.group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.
nginx_request_time: Une distribution du temps mis pour répondre à chaque requête. Tagué par :group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.
nginx_request_length: Une distribution des octets reçus dans la requête du client, pour chaque requête. Tagué par :group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.
nginx_bytes_sent: Une distribution des octets envoyés dans la réponse au client, pour chaque requête. Tagué par :group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.
proxy_pass, les métriques suivantes seront également présentes :
nginx_upstream_time: Une distribution du temps qu’il a fallu pour communiquer avec le serveur upstream. Tagué par :group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.upstream: Le serveur upstream vers lequel la requête a été proxifiée.measurement: La mesure de temps spécifique :connect: Le temps qu’il a fallu pour que la connexion soit établie.header: Le temps qu’il a fallu pour que l’en-tête de la réponse soit envoyé.response: Le temps qu’il a fallu pour que la réponse complète soit envoyée.
nginx_upstream_status: Un counter incrémenté pour chaque requête proxifiée vers un upstream. Tagué par :status: Le code d’état de la réponse.group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.upstream: Le serveur upstream vers lequel la requête a été proxifiée.
proxy_cache, la métrique suivante sera également présente :
nginx_upstream_cache_status: Un counter incrémenté pour chaque requête proxifiée vers un upstream avec mise en cache activée. Tagué par :status: Le statut du cache pour la requête.group: Le groupe de requêtes, tel que configuré dans votre serveur NGINX.hostname: Le nom d’hôte du serveur qui a traité la requête.
ngx_http_stub_status_module activé (comme fourni par la plupart des distributions Linux), la métrique suivante sera également présente :
nginx_connections: Le nombre de connexions que votre serveur NGINX traite actuellement. Tagué par :hostname: Le nom d’hôte du serveur qui a traité la requête.measurement: Le nombre spécifique de connexions mesuré :active: Le nombre de connexions actives.reading: Le nombre de connexions où la requête est en cours de lecture.writing: Le nombre de connexions où la réponse est en cours d’écriture.waiting: Le nombre de connexions inactives.