Как Mointor очереди (и) и отправлять данные из Нифи Prometheus? - PullRequest
0 голосов
/ 08 января 2019

Как правило, я хочу отслеживать очередь (и) сбоев, и если счет увеличивает пороговое значение, я хочу создать предупреждение.

1) Очереди может быть более одной.

2) Оповещение: я хочу отправить данные в Прометей, откуда я буду читать и отображать их в Alerta.

Я в замешательстве, потому что кажется, что есть много способов, и я не знаю, как правильно или лучше. Я следовал за этим https://community.hortonworks.com/questions/172092/monitoring-nifi-back-pressure-threshold-and-trigge.html для мониторинга очереди, который работает для одной очереди, но все же часть Prometheus оставлена.

Во-вторых, я прочитал, что в Nifi есть ReportingTasks , которые могут делать нечто подобное и сообщать о матрицах. например, SiteToSiteStatusReportingTask

Я не уверен, какой подход выбрать ReportingTask, создать собственный ReportingTask или обычный рабочий процесс NIfi для мониторинга, как в статье.

А во-вторых, как отправить данные в Прометей. Какой-нибудь PostProcessor или снова задача для создания отчетов или пользовательский процессор и т. Д.

Как бы вы справились с этим и каков хороший подход?

1 Ответ

0 голосов
/ 09 января 2019

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 .

...