Prometheus обычно работает, периодически очищая другие приложения / службы для получения метрик. Контролируемое приложение (обычно веб-служба) предоставляет конечную точку HTTP, которая возвращает метрики в формате Prometheus.
При непосредственном инструментировании приложения, чтобы Прометей мог его очистить, это невозможно, Прометей Пушгейвэй является альтернативой. См. Также документацию по лучшим практикам .
Итак, у вас есть несколько вариантов вашего подхода. Один жизнеспособный подход, который я рекомендовал бы исследовать, был бы:
NiFi ReportingTask > ??? > Pushgateway > Prometheus
Где ???
- это ваша пользовательская реализация, которая соединяет метрики, записанные с интерфейсом NiFi ReportingTask, в Pushgateway. Это может быть просто пользовательская реализация ReportingTask, которая обеспечивает мост, или это может быть последовательность небольших шагов, таких как:
ReportingTask > file on disk > Pushgateway > ...
ReportingTask > JMX > Pushgateway > ...
Я знаю, что другие члены сообщества Нифи (или активно) изучают эту возможность. Я рекомендую вам взглянуть на:
Другой подход заключается в реализации расширения NiFi, которое предоставляет пользовательскую реализацию ReportingTask, а также запускает веб-сервер, предоставляющий порт / конечную точку, которую Prometheus может очистить напрямую, не используя Pushgateway. PrometheusReportingTask
будет собирать метрики, записанные в интерфейс ReportingTask, и сопоставлять их с моделью данных Prometheus с использованием клиентской библиотеки Prometheus Java. PrometheusReportingTask
также обеспечит конечную точку очистки, которая сбрасывает метрики прометея в памяти в формат текстового проводника прометея. Существуют различные реализации целей скрести Prometheus с открытым исходным кодом, такие как Конечная точка Prometheus Actuator , которая объединяет Prometheus с Micrometer Prometheus Meter Registry .