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.