Перейти к содержанию

statsd: Модуль NGINX для отправки статистики в statsd

Установка на Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-statsd, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте APT репозиторий, как описано в настройке APT репозитория.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-statsd
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия             | Компонент   | Архитектуры   |
|-------------|--------------------|-------------|----------------|
| debian      | bookworm           | main        | amd64, arm64   |
| debian      | bookworm-mainline  | main        | amd64, arm64   |
| debian      | trixie             | main        | amd64, arm64   |
| debian      | trixie-mainline    | main        | amd64, arm64   |
| ubuntu      | focal              | main        | amd64, arm64   |
| ubuntu      | focal-mainline     | main        | amd64, arm64   |
| ubuntu      | jammy              | main        | amd64, arm64   |
| ubuntu      | jammy-mainline     | main        | amd64, arm64   |
| ubuntu      | noble              | main        | amd64, arm64   |
| ubuntu      | noble-mainline     | main        | amd64, arm64   |

Модуль nginx для отправки статистики в statsd.

Вот как использовать модуль nginx-statsd:

http {

    # Установите сервер, на который вы хотите отправлять статистику.
    statsd_server your.statsd.server.com;

    # Случайно выбирайте 10% запросов, чтобы не перегружать ваш сервер statsd.
    # По умолчанию отправляется вся статистика (100%).
    statsd_sample_rate 10; # 10% запросов


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

        # Увеличивайте "your_product.requests" на 1 каждый раз, когда запрос попадает на этот сервер. 
        statsd_count "your_product.requests" 1;

        location / {

            # Увеличивайте ключ на 1, когда этот путь вызывается.
            statsd_count "your_product.pages.index_requests" 1;

            # Увеличивайте ключ на 1, но только если $request_completion установлен в какое-либо значение.
            statsd_count "your_product.pages.index_responses" 1 "$request_completion";

            # Отправьте время на "your_product.pages.index_response_time", равное значению,
            # возвращенному от сервера upstream. Если это значение равно 0 или пустая строка,
            # оно не будет отправлено. Таким образом, нет необходимости добавлять проверку.
            statsd_timing "your_product.pages.index_response_time" "$upstream_response_time";

            # Увеличивайте ключ на основе значения пользовательского заголовка. Отправляет значение только если
            # пользовательский заголовок существует в ответе upstream.
            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;
        }
    }
}