如果生产者端的确认延迟非常高,我们是否可以使用一些代理度量来监视kafka代理。
我们使用datadog来监视producer和kafka代理端。可以看出,生产者确认滞后超过10秒。然而,在经纪人方面,我只想使用 message.in.rate
以及 kafka.net.bytes_in.rate
效率不高。我们最好在代理端有一些滞后指标来指示 the broker is fully loaded to acknowledge back the producer.
而且,我们只使用 kafka.acks = 1
分区负责人。
我想知道是否有人对此有一些经验,欢迎提出任何建议。:)提前谢谢。
1条答案
按热度按时间5t7ly7z51#
我猜你说的是“指标”而不是矩阵!
关于制片人,你有
kafka.producer:type=producer-metrics,client-id="{client-id}"
. 这个指标有两个有趣的属性:平均请求延迟:平均请求延迟(毫秒)
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