如果生产者方面的ack滞后非常高,应该监控哪些Kafka经纪人指标

时间:2018-04-30 08:00:03

标签: apache-kafka monitoring

如果生产者方面的确认滞后非常高,我们是否可以使用一些代理指标来监控Kafka经纪人。

我们正在使用datadog来监控生产者和Kafka经纪人方面。可以看出,生产者确认滞后超过10秒。但是,在经纪人方面,我觉得只使用message.in.ratekafka.net.bytes_in.rate效率不高。我们可以在代理方面使用一些LAG指标来表示the broker is fully loaded to acknowledge back the producer.

此外,我们仅将kafka.acks = 1用于分区负责人。

我想知道是否有人有这方面的经验,欢迎任何建议。 :)提前谢谢。

1 个答案:

答案 0 :(得分:4)

我猜你在谈论“指标”而不是矩阵!

在制作人上,您有kafka.producer:type=producer-metrics,client-id="{client-id}"。该指标有两个有趣的属性:

  • request-latency-avg:以ms为单位的平均请求延迟

  • request-latency-max:以ms为单位的最大请求延迟

在代理方面,您需要检查一些指标以调查您的问题:

  • 消息转换时间:如果生产者使用的是比代理更旧的消息格式,则会发生下转换。 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