Отчет о показателях шторма Apache не работает должным образом
Я использую версию Apache Storm 2.4.0, и мы хотим, чтобы все наши метрики были доступны. Итак, мы создали сервис, который в настоящее время принимает все метрики и предоставляет метрики в конечной точке /metrics. Storm использует метрики Drop-Wizard, и я конвертирую их в метрики Prometheus с помощью описанного выше процесса. Вся эта настройка выполняется в Kubernetes после внесения нескольких изменений в фактический код версии Storm 2.4.0. Что касается настройки Kubernetes, у меня есть модуль Nimbus, модуль Supervisor и модуль Zookeeper по-разному. Все они связаны (должны ли эти двое быть в одном модуле, не уверен).
topology.metrics.reporters:
# Prometheus Reporter
- class: "com.example.storm.PrometheusStormReporter"
daemons:
- "supervisor"
- "nimbus"
- "worker"
report.period: 60
report.period.units: "SECONDS"
storm.metrics.reporters:
# Prometheus Reporter
- class: "com.example.PrometheusStormReporter"
daemons:
- "supervisor"
- "nimbus"
- "worker"
report.period: 60
report.period.units: "SECONDS"
вышеупомянутый репортер позвонит в нашу службу, где будут заполнены все показатели.
Я преобразовал метрики мастера удаления в метрики Прометея и сделал POST-вызов в нашу службу. Я сократил время до 5 секунд и 10 секунд с 60 секунд. Но существует большая разница между тем, что обрабатывает Storm, и тем, что мы видим в конечной точке /metrics.
Еще один способ, который я попробовал, - это нажать метрику, когда я хочу, в методе выполнения болтов (последовательно с моей текущей логикой). Таким образом, я добавлял именно метрики и перемещал их соответствующим образом. Но это увеличивает время обработки (чего мне не нужно). Если публикация не удалась, мне нужно явно исключить кортеж и добавить для этого повторную попытку шторма.
Нужно ли мне перейти на push-шлюз? Или любым другим способом получить полные показатели.