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

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

Установка

Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:

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

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_statsd_module.so;

Этот документ описывает nginx-module-statsd v0.0.1, выпущенный 24 февраля 2020 года.


Модуль 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;
        }
    }
}

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-statsd.