statsd: module NGINX pour envoyer des statistiques à statsd
Installation
Vous pouvez installer ce module dans toute distribution basée sur RHEL, y compris, mais sans s'y limiter :
- RedHat Enterprise Linux 7, 8, 9 et 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 et Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-statsd
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-statsd
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_statsd_module.so;
Ce document décrit nginx-module-statsd v0.0.1 publié le 24 février 2020.
Un module nginx pour envoyer des statistiques à statsd.
Voici comment utiliser le module nginx-statsd :
http {
# Définissez le serveur auquel vous souhaitez envoyer des statistiques.
statsd_server your.statsd.server.com;
# Échantillonnez aléatoirement 10 % des requêtes afin de ne pas submerger votre serveur statsd.
# Par défaut, toutes les statistiques sont envoyées (100 %).
statsd_sample_rate 10; # 10 % des requêtes
server {
listen 80;
server_name www.your.domain.com;
# Incrémentez "your_product.requests" de 1 chaque fois qu'une requête atteint ce serveur.
statsd_count "your_product.requests" 1;
location / {
# Incrémentez la clé de 1 lorsque cet emplacement est atteint.
statsd_count "your_product.pages.index_requests" 1;
# Incrémentez la clé de 1, mais uniquement si $request_completion est défini sur quelque chose.
statsd_count "your_product.pages.index_responses" 1 "$request_completion";
# Envoyez un timing à "your_product.pages.index_response_time" égal à la valeur
# renvoyée par le serveur en amont. Si cette valeur est évaluée à 0 ou chaîne vide,
# elle ne sera pas envoyée. Ainsi, il n'est pas nécessaire d'ajouter un test.
statsd_timing "your_product.pages.index_response_time" "$upstream_response_time";
# Incrémentez une clé en fonction de la valeur d'un en-tête personnalisé. N'envoie la valeur que si
# l'en-tête personnalisé existe dans la réponse en amont.
statsd_count "your_product.custom_$upstream_http_x_some_custom_header" 1
"$upstream_http_x_some_custom_header";
proxy_pass http://some.other.domain.com;
}
}
}
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-statsd.