Zum Inhalt

statsd: NGINX-Modul zum Senden von Statistiken an statsd

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

  • RedHat Enterprise Linux 7, 8, 9 und 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 und 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

Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_statsd_module.so;

Dieses Dokument beschreibt nginx-module-statsd v0.0.1, veröffentlicht am 24. Februar 2020.


Ein NGINX-Modul zum Senden von Statistiken an statsd.

So verwenden Sie das nginx-statsd-Modul:

http {

    # Setzen Sie den Server, an den Sie Statistiken senden möchten.
    statsd_server your.statsd.server.com;

    # Zufällig 10% der Anfragen sampeln, damit Sie Ihren statsd-Server nicht überlasten.
    # Standardmäßig werden alle statsd (100%) gesendet. 
    statsd_sample_rate 10; # 10% der Anfragen


    server {
        listen 80;
        server_name www.your.domain.com;

        # Erhöhen Sie "your_product.requests" um 1, wann immer eine Anfrage diesen Server erreicht. 
        statsd_count "your_product.requests" 1;

        location / {

            # Erhöhen Sie den Schlüssel um 1, wenn dieser Standort aufgerufen wird.
            statsd_count "your_product.pages.index_requests" 1;

            # Erhöhen Sie den Schlüssel um 1, aber nur, wenn $request_completion auf etwas gesetzt ist.
            statsd_count "your_product.pages.index_responses" 1 "$request_completion";

            # Senden Sie eine Zeitmessung an "your_product.pages.index_response_time", die dem Wert
            # entspricht, der vom Upstream-Server zurückgegeben wird. Wenn dieser Wert 0 oder einen leeren String ergibt,
            # wird er nicht gesendet. Daher ist es nicht notwendig, einen Test hinzuzufügen.
            statsd_timing "your_product.pages.index_response_time" "$upstream_response_time";

            # Erhöhen Sie einen Schlüssel basierend auf dem Wert eines benutzerdefinierten Headers. Sendet den Wert nur, wenn
            # der benutzerdefinierte Header in der Upstream-Antwort vorhanden ist.
            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

Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-statsd.