Какие показатели брокера Kafka следует отслеживать, если задержка ack на стороне производителя очень высока - PullRequest
0 голосов
/ 30 апреля 2018

Существуют ли какие-либо показатели брокера, которые мы можем использовать для мониторинга брокера Kafka, если задержка подтверждения очень высока на стороне производителя.

Мы используем datadog для мониторинга со стороны производителя и брокера Kafka. Видно, что задержка подтверждения составляет более 10 секунд. Однако со стороны брокера я чувствую, что использование message.in.rate и kafka.net.bytes_in.rate не очень эффективно. Было бы лучше, если бы мы имели некоторые показатели LAG на стороне брокера, чтобы указать the broker is fully loaded to acknowledge back the producer.

Кроме того, мы используем kafka.acks = 1 только для лидера раздела.

Интересно, есть ли у кого-нибудь опыт по этому поводу, и любые советы приветствуются. :) Заранее спасибо.

1 Ответ

0 голосов
/ 30 апреля 2018

Полагаю, вы говорите о "метриках", а не матрице!

На продюсере у вас есть kafka.producer:type=producer-metrics,client-id="{client-id}". Эта метрика имеет 2 интересных атрибута:

  • request-latency-avg: средняя задержка запроса в мс

  • request-latency-max: максимальная задержка запроса в мс

На стороне брокера есть несколько метрик, которые вы хотите проверить, чтобы исследовать вашу проблему:

  • Время преобразования сообщения: преобразование с понижением частоты происходит, если производитель использует более старый формат сообщения, чем посредник. kafka.network:type=RequestMetrics,name=MessageConversionsTimeMs,request=Produce
  • Общее время запроса: Общее время, затраченное Kafka на обработку запроса. kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce

    В случае высокого значения вы можете проверить показатели разбивки:

    • Время ожидания запроса в очереди: kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=Produce
    • Время обработки запроса у лидера: kafka.network:type=RequestMetrics,name=LocalTimeMs,request=Produce
    • Время ожидания запроса в очереди ответов: kafka.network:type=RequestMetrics,name=ResponseQueueTimeMs,request={Produce|FetchConsumer|FetchFollower}
    • Время отправки ответа: kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=Produce

Все они перечислены в метриках, рекомендуемых для отслеживания в документации Kafka: http://kafka.apache.org/documentation/#monitoring

...