Aplicar la Función rate y Filtros de Etiquetas
En este paso, refinará su consulta utilizando filtros de etiquetas y la función rate() para obtener datos más significativos. El valor bruto de un contador a menudo no es útil; generalmente estamos más interesados en su tasa de cambio.
Primero, filtremos los resultados para ver solo el tiempo de CPU dedicado al modo idle. Puede hacer esto agregando un selector de etiquetas entre llaves {} a su consulta.
- Introduzca la siguiente consulta en el Navegador de Expresiones y ejecútela:
node_cpu_seconds_total{mode="idle"}
Esta consulta ahora solo devuelve las series temporales donde la etiqueta mode es exactamente idle.
A continuación, calculemos la tasa de cambio por segundo para este contador. Para ello, utilizamos la función rate(). La función rate() necesita saber durante qué período de tiempo calcular la tasa. Especificamos esto con un selector de vector de rango (range vector selector), como [5m] para los últimos 5 minutos.
- Ahora, modifique su consulta para envolverla en la función
rate() y agregue un selector de rango de 5 minutos. Ejecute la consulta final:
rate(node_cpu_seconds_total{mode="idle"}[5m])
Analicemos esta consulta avanzada:
node_cpu_seconds_total{mode="idle"}: Este es el selector de vector instantáneo (instant vector selector) que filtra nuestra métrica y etiqueta deseadas.
[5m]: Este es el selector de rango (range selector), que le indica a Prometheus que obtenga todos los puntos de datos de los últimos 5 minutos para las series temporales seleccionadas.
rate(...): Esta es la función que toma el rango de datos de 5 minutos y calcula la tasa promedio por segundo a la que aumentó el contador.
El resultado ya no es un valor de contador grande, sino un valor típicamente entre 0 y 1 (para un solo núcleo de CPU). Un valor de 0.95 significaría que durante los últimos 5 minutos, la CPU estuvo, en promedio, un 95% inactiva. Esta es una información mucho más útil para la monitorización.