statsd: Módulo de NGINX para enviar estadísticas a statsd
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- RedHat Enterprise Linux 7, 8, 9 y 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 y 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
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_statsd_module.so;
Este documento describe nginx-module-statsd v0.0.1 lanzado el 24 de febrero de 2020.
Un módulo de nginx para enviar estadísticas a statsd.
Así es como usar el módulo nginx-statsd:
http {
# Establece el servidor al que deseas enviar estadísticas.
statsd_server your.statsd.server.com;
# Muestra aleatoriamente el 10% de las solicitudes para que no abrumes tu servidor statsd.
# Por defecto, envía todas las estadísticas (100%).
statsd_sample_rate 10; # 10% de las solicitudes
server {
listen 80;
server_name www.your.domain.com;
# Incrementa "your_product.requests" en 1 cada vez que cualquier solicitud llegue a este servidor.
statsd_count "your_product.requests" 1;
location / {
# Incrementa la clave en 1 cuando se accede a esta ubicación.
statsd_count "your_product.pages.index_requests" 1;
# Incrementa la clave en 1, pero solo si $request_completion está establecido en algo.
statsd_count "your_product.pages.index_responses" 1 "$request_completion";
# Envía un tiempo a "your_product.pages.index_response_time" igual al valor
# devuelto por el servidor upstream. Si este valor evalúa a 0 o cadena vacía,
# no se enviará. Por lo tanto, no es necesario agregar una prueba.
statsd_timing "your_product.pages.index_response_time" "$upstream_response_time";
# Incrementa una clave basada en el valor de un encabezado personalizado. Solo envía el valor si
# el encabezado personalizado existe en la respuesta 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
Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-statsd.