Возможно ли для Прометея захватить показатели каждого процесса в большом пакетном задании? - PullRequest
1 голос
/ 23 января 2020

Согласно заголовку, может ли Прометей собирать показатели каждого отдельного процесса в большом пакетном задании?

Это задание выполняется ежечасно и обрабатывает записи со скоростью около 500-1000 записей в секунду, отправка метрик (уникальных для каждой записи) в statsd_exporter для мониторинга наших SLO.

однако я понял, что Прометей может захватывать только столько, сколько позволяет scrape_interval, то есть определенно не хватает некоторых значений, отправленных в statsd_exporter (например, возможно, отсутствует некоторые скачки стоимости).

Есть ли способ преодолеть это? или, возможно, вместо этого я должен смотреть на некоторые другие инструменты.

обновления: предоставленный пример отправленных метрик. job метка ограничена 10 различными метками, т. Е. 10 временных рядов

# HELP time_taken_gauge Time taken for a particular job type to finish processing a record.
# TYPE time_taken_gauge gauge
time_taken_gauge{job="a"} 123
time_taken_gauge{job="b"} 1314
time_taken_gauge{job="c"} 5435
time_taken_gauge{job="d"} 212
time_taken_gauge{job="e"} 231
time_taken_gauge{job="f"} 324
time_taken_gauge{job="g"} 15
time_taken_gauge{job="h"} 1213
time_taken_gauge{job="i"} 123
time_taken_gauge{job="j"} 1235

Единственная проблема заключается в том, что они отправляются с гораздо более высокой скоростью, чем интервал очистки Прометея (1 с), поэтому отсутствуют некоторые записи

time_taken_gauge{job="a"} 123
time_taken_gauge{job="a"} 1232 <- scraped
time_taken_gauge{job="a"} 12412
time_taken_gauge{job="a"} 53453 <- high value metric missed but potentially problematic
time_taken_gauge{job="a"} 1564
time_taken_gauge{job="a"} 756
time_taken_gauge{job="a"} 34 <- scraped
time_taken_gauge{job="a"} 15433
.
.
.
time_taken_gauge{job="a"} 345 <- scraped

Ответы [ 2 ]

1 голос
/ 24 января 2020

500-1000 записей в секунду, отправка метрик датчика (уникальных для каждой записи)

Это будет большая мощность. Если вам нужна уникальная метрика c для каждой записи, вам нужна система регистрации событий, такая как ELK, а не система метрик, такая как Prometheus или что-то еще, что вы вводите в statsd.

0 голосов
/ 23 января 2020

Способ преодоления кратковременных или медленных заданий заключается в использовании Pushgateway, который будет хранить на нем все метрики и выставлять их для очистки.

Это стандарт для обработки таких случаев. Я не знаком с альтернативами. Буду рад.

Пушгейт Прометея существует, чтобы позволить эфемерным и пакетным заданиям выставлять свои метрики Прометею. Поскольку такого рода задания могут существовать недостаточно долго, чтобы их можно было очистить, вместо этого они могут отправлять свои метрики в Pushgateway. Затем Пушгейт выставляет эти метрики Прометею.

https://github.com/prometheus/pushgateway

...