У меня есть пять связанных вопросов по настройке Prometheus для приема агрегированных метрик.
В моей системе есть несколько инвариантов:
Все, что посередине, в настоящее время разрабатывается. Я читал о том, как это должно работать, но ходил по кругу.
Push-шлюз прямо не поддерживает агрегирование:
Pushgateway явно не агрегатор или распределенный счетчик а скорее кеш метрик. Не имеет statsd-подобная семантика. Выдвигаемые метрики точно такие же, как и при парсинге в постоянно работающей программе. Если вам нужен распределенный подсчет, вы можете использовать фактический statsd в сочетании с Prometheus statsd экспортер, или взгляните на Шлюз агрегации Weavework.
Но потом (1) почему его официальный Клиент Python служба поддержки Histogram
, который
позволяет агрегировать расчет квантилей
?
Если я пойду statsd
маршрут, тогда statsd_exporter
Говорит, что
Поскольку экспортер StatsD использует тот же линейный протокол, что и сам StatsD, вы также можете настроить свои приложения для отправки метрик StatsD непосредственно в экспортер. В этом случае вам больше не нужно запускать сервер StatsD.
(2) Означает ли это, что Прометей делает фактически поддерживает агрегацию в statsd_exporter
в одиночестве?
Я бы хотел использовать самые популярные привязки Python для statsd
, просто называется statsd
в pypi. Но он утверждает, что
statsd это дружественный интерфейс для Графитовый. Это клиент Python для демона statsd.
(3) Если бы я только использовал statsd_exporter
, могу ли я пропустить зависимость Graphite?
Наконец: документы для statsd_exporter
также говорят, что
Мы рекомендуем это только как промежуточное решение и рекомендуем перейти на родная аппаратура Прометея в долгосрочной перспективе.
Ссылка на «родную реализацию Prometheus» для Python возвращает меня к prometheus_client
, но сразу кажется, что это не клиент - его тесно связан с серверной реализацией, как показано здесь:
Метрики обычно предоставляются через HTTP для чтения сервером Prometheus.
Самый простой способ сделать это - через
start_http_server
, который запустит HTTP-сервер в потоке демона на данном порту.
(4) Означает ли это, что "родная" аппаратура требует присоединения аппаратуры сервер к коду, который запрашивает Прометей? (5) Если бы это было использовать Histogram
, будет ли он поддерживать агрегацию?