如果生产者方面的确认滞后非常高,我们是否可以使用一些代理指标来监控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
用于分区负责人。
我想知道是否有人有这方面的经验,欢迎任何建议。 :)提前谢谢。
答案 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