Aller au contenu

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.