Объясните, почему у метрики раздела Kafka количество больше, чем у метрики потребителя.

Эта проблема

Привет, я пытаюсь визуализировать лаги Kafka с помощью Grafana. Я пытаюсь регистрировать лаги Kafka с помощью Metricbeat и сам делаю математику, поскольку Metricbeat не поддерживает регистрацию лагов Kafka в той версии, которую я использую (, но это было реализовано недавно). Вместо того, чтобы использовать max(partition.offset.newest) - max(consumergroup.offset) для вычисления лагов, я использую sum(partition.offset.newest) - sum(consumergroup.offset), отфильтрованный по конкретному kafka.topic.name. Однако сумма не совпадает, при дальнейшем расследовании я обнаружил, что подсчет даже не совпадает! Количество смещений разделов составляет 30 на 10 с, а смещение групп потребителей - 12 на 10 с. Я ожидаю, что количество для обоих будет одинаковым

смещения темы vs смещения потребителей

Я не понимаю, почему Metricbeat регистрирует раздел больше, чем группу потребителей. Сначала я подумал, что это из-за моей конфигурации Metricbeat, где у меня определены 2 группы хостов, из-за чего это могло быть регистрировался несколько раз. Однако после изменения моих конфигураций счетчик упал вдвое.

смещения тем и смещения потребителей с 1 хостом

TL;DR

Почему количество метрик для раздела и группы потребителей отличается?

Настраивать

  1. Брокеры Kafka 2
  2. Разделы тем Kafka:
Topic: xxx     PartitionCount:3        ReplicationFactor:2     Configs:
Topic: xxx     Partition: 0    Leader: 2       Replicas: 2,1   Isr: 2,1
Topic: xxx     Partition: 1    Leader: 1       Replicas: 1,2   Isr: 1,2
Topic: xxx     Partition: 2    Leader: 2       Replicas: 2,1   Isr: 2,1
  1. Конфигурация Metricbeat (modules.d / kafka.yml):
- module: kafka
  #metricsets:
  #  - partition
  #  - consumergroup
  period: 10s
  hosts: ["xxx.yyy:9092"]

Версии

  • Кафка 2.11-0.11.0.0
  • Elasticsearch-7.2.0
  • Кибана-7.2.0
  • Метрика-7.2.0

person Lumo Woong    schedule 10.12.2019    source источник


Ответы (1)


после долгой отладки я понял, что не так:

  1. По какой-то причине у моего брокера kafka 1 есть только метрика производителя и нет метрики потребителя, подключение к брокеру 2 решило эту проблему. Подключение обоих брокеров добавит обе метрики вместе.
  2. Lucene использует нечеткий поиск, поэтому в моих данных есть и другие группы потребителей. Для точного сопоставления слов используйте вместо этого kafka.partition.topic.keyword: 'xxx'. Это сделало отношение моего смещения производителя kafka к смещению потребителя 2: 1
  3. metricbeat также регистрирует реплики, поэтому мне нужно установить NOT kafka.partition.partition.is_leader: false, чтобы получить всех лидеров разделов. Это сделало соотношение потребителя к разделу 1: 1.

После выполнения трех шагов я могу использовать формулу sum(partition.offset.newest) - sum(consumergroup.offset) для получения лагов.

Однако я не знаю, почему у брокера 1 нет информации о потребителях.

person Lumo Woong    schedule 10.12.2019