Как Прометей очищает тему Кафки?

Я сетевой парень, пытающийся построить мой первый трубопровод Кафка -> Прометей -> Графана. У моего брокера Kafka есть тема, которую заполняет внешний продюсер. Замечательно. Но я не могу понять, как настроить мой сервер Prometheus для очистки данных из этой темы в качестве потребителя.

Я также должен сказать, что мой узел Kafka работает на моей машине с Ubuntu (не в контейнере Docker). Я также запускаю экземпляр JMX Exporter при запуске Kafka. Вот как я запускаю Kafka в командной строке Ubuntu:

KAFKA_OPTS="$KAFKA_OPTS -javaagent:/home/me/kafka_2.11-2.1.1/jmx_prometheus_javaagent-0.6.jar=7071:/home/Me/kafka_2.11-2.1.1/kafka-0-8-2.yml" \
  ./bin/kafka-server-start.sh config/server.properties &

Хорошо. Мой Prometheus (также хост-процесс, а не контейнерная версия Docker) может успешно извлечь множество показателей из моей Kafka. Так что мне просто нужно выяснить, как заставить Прометея читать сообщения в моей теме. И мне интересно, эти сообщения уже видны? Моя тема называется "vflow.sflow", и когда я смотрю "меткие" метрики, доступные на Kafka (TCP 7071), я вижу эти метрики:

From http://localhost:7071/metrics:

kafka_cluster_partition_replicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_cluster_partition_insyncreplicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_log_logendoffset{partition="0",topic="vflow.sflow",} 1.5357405E7
kafka_cluster_partition_laststableoffsetlag{partition="0",topic="vflow.sflow",} 0.0
kafka_log_numlogsegments{partition="0",topic="vflow.sflow",} 11.0
kafka_cluster_partition_underminisr{partition="0",topic="vflow.sflow",} 0.0
kafka_cluster_partition_underreplicated{partition="0",topic="vflow.sflow",} 0.0
kafka_log_size{partition="0",topic="vflow.sflow",} 1.147821017E10
kafka_log_logstartoffset{partition="0",topic="vflow.sflow",} 0.0

"Раздел 0", "Размер журнала", "Смещение конца журнала"... все эти вещи выглядят многообещающе... Думаю?

Но имейте в виду, что я совершенно новичок в экосистеме Kafka/JMX/Prometheus. Вопрос: описанные выше метрики описывают мою тему "vflow.sflow"? Могу ли я использовать их для настройки Prometheus для фактического чтения сообщений в теме?

Если да, может кто-нибудь порекомендовать хороший учебник для этого? Я играл с моими конфигурационными файлами Prometheus YAML, но все, что мне удалось сделать, - это остановить процесс Prometheus, когда я это сделаю. Да, я читал большое количество онлайн-документации и сообщений на форуме. Это много информации для усвоения, и очень, очень легко инвестировать часы в документацию, которая оказывается тупиком.

Любой совет для новичка, как я? Общие советы, такие как "вы на правильном пути, следующий взгляд на X" или "вы, очевидно, не понимаете Y, больше времени проводите, глядя на Z", будут признательны. Спасибо!

1 ответ

Решение

Когда вы добавляете этот аргумент из контейнера Kafka, он очищает MBeans метрик JMX, а не фактические данные темы, поскольку Прометей не является потребителем Kafka

Из этой информации JMX вы увидите такие показатели, как частота сообщений и количество реплик

Если вы хотите читать тематические данные, можно использовать платформу Kafka Connect, и есть плагин для Influx, Mongo и Elasticsearch, которые являются хорошими источниками Grafana. Я не уверен, есть ли прямой Кафка для импортера Prometheus, но я думаю, что это потребует использования PushGateway

Другие вопросы по тегам