Estoy usando Pushgateway con Prometheus y todo está bien, pero después de un par de semanas, Pushgateway colapsa ... dándole un vistazo, hay toneladas de métricas que ya no se usan y eliminarlas manualmente es prácticamente imposible ... así que ->

¿Existe una forma de expirar las métricas de Pushgateway con un TTL o alguna otra configuración de retención como por tamaño o por tiempo? ... o tal vez ambos?

NOTA: Leí en la lista de correo de Prometheus a mucha gente que necesita algo como esto desde hace un año o más ... y la única respuesta hasta ahora es -> esta no es la forma de Prometheus de hacerlo ... ¿en serio? ... común, si esto es un verdadero dolor para muchas personas, tal vez debería haber una mejor manera (incluso si no es la manera Promethean)

1
Carlos Saltos 22 ago. 2020 a las 22:27

1 respuesta

La mejor respuesta

Supongamos que desea eliminar las métricas relacionadas con un grupo cuando se vuelven demasiado antiguas (para una definición dada de demasiado antiguas), tiene la métrica push_time_seconds que se define automáticamente mediante pushgateway.

push_time_seconds{instance="foo",job="bar",try="longtime"} 1.598280005888635e+09

Con esta información, puede escribir un script que solicite / tome esta métrica e identifique el antiguo grupo de datos ({instance="foo",job="bar",try="longtime"}) con el valor. La API le permite eliminar métricas relacionadas con sus datos antiguos:

 curl -X DELETE http://pushgateway:9091/metrics/job/bar/instance/foo/try/longtime

Esto se puede hacer en unas pocas líneas de script bash o python.

1
Michael Doubez 24 ago. 2020 a las 14:53