Назад | Перейти на главную страницу

Как настроить Prometheus для агрегированных показателей?

У меня есть пять связанных вопросов по настройке 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, будет ли он поддерживать агрегацию?