El agente Ruby de New Relic puede tomar muestras de las estadísticas del servidor de todo el clúster de Puma desde el proceso maestro Puma y reportarlas como Ruby/Puma/* métricas de segmento de tiempo.
Esta instrumentación está deshabilitada de forma predeterminada.
Requerimientos mínimos
Requisito | Detalles |
|---|---|
Versión del agente Ruby | 10.7.0 o superior |
Versión de Puma | 6.6.0 o superior |
Modo Puma | Modo único, o modo en clúster con
habilitado. |
Habilite la instrumentación
Para habilitar la instrumentación de Puma, establezca disable_puma_instrumentation en false en su newrelic.yml:
disable_puma_instrumentation: falseEl agente toma muestras de las estadísticas del proceso maestro Puma, por lo que solo recopila métricas donde el agente está cargado en el maestro:
Modo único (sin workers): las métricas siempre se recopilan.
Modo en clúster (uno o más trabajadores): las métricas se recopilan solo cuando tu aplicación está precargada, de modo que el agente se carga en el maestro en lugar de en un trabajador. Agrega
preload_app!a tupuma.rb:workers 2preload_app!Importante
En Puma v6.x debe establecer
preload_app!explícitamente. Puma v6.x no aplica su valor predeterminado depreload_appdel bloque de configuración, por lo que una aplicación en clúster conworkersestablecido pero sinpreload_app!explícito carga el agente en un hilo de trabajo y no se recopilan métricas de Puma. Cuando esto sucede, el agente registra una advertencia.
Ajustar la frecuencia de muestreo
Por defecto, el agente muestrea las estadísticas de Puma cada 60 segundos. Cambie esto con la configuración puma.sample_rate en su newrelic.yml:
puma.sample_rate: 30Qué captura
Todas las métricas se registran bajo el namespace Ruby/Puma/. Los valores por worker se suman en todo el clúster.
Métrica | Descripción |
|---|---|
| Número de requests que esperan un hilo disponible. |
| Número de hilos de trabajo actualmente generados en el grupo de hilos. |
| Capacidad de request de reserva: hilos inactivos más hilos aún no generados pero permitidos hasta
. |
| Número máximo de hilos configurado. |
| Número acumulado de requests procesados desde que se iniciaron los trabajadores. |
| Número de trabajadores de Puma. Reportado solo en modo clúster. |
Ejemplo de consulta
Consulte estas métricas con NRQL usando el tipo Metric. Reemplace YOUR_APP_NAME con el nombre de su aplicación.
Para ver todas las métricas de Puma a la vez:
FROM Metric SELECT average(newrelic.timeslice.value)WHERE appName = 'YOUR_APP_NAME' AND metricTimesliceName LIKE 'Ruby/Puma/%'FACET metricTimesliceName TIMESERIES LIMIT MAX SINCE 1 hour agoPara ver una sola métrica, filtre por su nombre:
FROM Metric SELECT average(newrelic.timeslice.value)WHERE appName = 'YOUR_APP_NAME' AND metricTimesliceName = 'Ruby/Puma/requests_count'TIMESERIES LIMIT MAX SINCE 1 hour agoCómo funciona
Cuando está habilitado, el agente inicia un hilo de informes en el proceso maestro de Puma para entregar estas métricas. Esto ejecuta una conexión de agente adicional en el maestro, junto con las conexiones de tus trabajadores de Puma.
La instrumentación registra solo medidores enteros y contadores a través de NewRelic::Agent.record_metric. No captura ningún dato de request, consulta o usuario.