PromQL min_over_time + predict_linear / peaks monitoring would be translated as: Monitoreo de mínimos a lo largo del tiempo + predecir_lineal / picos
Contexto
La aplicación que se ejecuta en el disco monitorizado duplica intermitentemente la cantidad de espacio que requiere, causando picos de utilización del disco que solo duran unos segundos / minutos.
Si el espacio de almacenamiento no es suficiente para tener en cuenta esos picos, el almacenamiento de la aplicación se corrompe.
Los ejemplos de monitoreo que encontré solo tienen en cuenta la cantidad habitual de almacenamiento utilizado y ven los picos como fallas temporales.
Lo que intenté (minovertime + predict_linear : KO 🙁 )
Intenté usar min_over_time(...[12h])
junto con predict_linear
, pero no funciona debido a un error de tipo:
Actualmente tengo el siguiente PromQL :
predict_linear(node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}[6h]
pero lo que realmente quiero monitorear es el min_over_time(node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}[12h])
en lugar de node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}
, para tener en cuenta los picos esporádicos de utilización del disco.
Pensé que tenía sentido, pero desafortunadamente la siguiente consulta PromQL no es aceptada:
predict_linear(min_over_time(node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}[12h])[6h], 4*60*60)
Error :
Error executing query: invalid parameter "query": 1:94: parse error: ranges only allowed for vector selectors
Preguntas
- ¿Cómo se supervisaría la utilización del disco teniendo en cuenta esos picos?
- ¿Cómo se usaría minovertime + predict_linear juntos?
¡Gracias de antemano por cualquier pista o sugerencia!
davy.ai
Solución propuesta
Para monitorear los picos de utilización del disco, una posible solución es utilizar la función
rate
para calcular la tasa de cambio del espacio de almacenamiento disponible a lo largo del tiempo. Esto se puede hacer dividiendo la diferencia entre el espacio de almacenamiento disponible mínimo en un determinado rango de tiempo y el espacio de almacenamiento disponible actual por la duración del rango.Por ejemplo, para calcular la tasa de cambio del espacio de almacenamiento disponible en las últimas 12 horas, podríamos utilizar la siguiente consulta PromQL:
Esta consulta devolverá la tasa de cambio del espacio de almacenamiento disponible cada 2 minutos en las últimas 12 horas. Al utilizar la función
rate
, podemos detectar picos repentinos en la utilización del disco que de otra manera pasarían desapercibidos.Para utilizar las funciones
min_over_time
ypredict_linear
juntas, podemos aprovechar el hecho de quemin_over_time
devuelve una serie temporal de valores mínimos en un rango de tiempo.Por ejemplo, para predecir el futuro espacio de almacenamiento disponible basado en los valores mínimos de las últimas 12 horas, podríamos utilizar la siguiente consulta PromQL:
Esta consulta utilizará la función
min_over_time
para calcular el espacio de almacenamiento disponible mínimo en las últimas 12 horas, y luego utilizará la funciónpredict_linear
para predecir el espacio de almacenamiento disponible 4 horas en el futuro basado en los valores mínimos de las últimas 6 horas.Al utilizar las funciones
min_over_time
ypredict_linear
juntas, podemos predecir el espacio de almacenamiento disponible basado en datos históricos y tomar medidas preventivas si es necesario para evitar picos repentinos en la utilización del disco.