Контекст: я хочу создать свой собственный экспортер для RabbitMQ. Для этого я установил HTTP-сервер, который запрашивает API управления, анализирует ответ и создает соответствующий ответ в формате Prometheus
Я измеряю количество сообщений в очереди, чтобы получать оповещения, когда в очереди слишком многомного сообщений в нем. Для этого я настроил следующий датчик: rabbitmq_queue_messages{queue_name="Q1"}
Мой вопрос: что произойдет, если очередь будет удалена? например:
- в T1 экспортер возвращает rabbitmq_queue_messages {queue_name = "Q1"} 5
- в T2, по какой-то причине очередь удаляется
- в T3моего экспортера снова спрашивают о метриках.
Как я понимаю, в T3, даже если очередь больше не существует, он будет возвращать тот же самый ответ rabbitmq_queue_messages{queue_name="Q1"} 5
, поскольку это то, как измеряетработать на Прометея. Для меня это кажется странным, потому что в T3 Q1 больше не существует, поэтому я ожидал бы прекратить получать точки данных для этой очереди вместо того, чтобы получать устаревшие данные.
Обходной путь, который я нашел для этого, состоит в построенииновый реестр Prometheus при каждом запросе экспортеру начинать с чистого листа, но это кажется немного хакерским, и я действительно не чувствую себя комфортно, работая таким образом.
Итак, как мне избежать использования устаревших датчиков? данные в более прометейском идиоматическом смысле?