【问题标题】:What Kafka broker metrics should be monitored if producer side ack lag is very high如果生产者方确认延迟非常高,应监控哪些 Kafka 代理指标
【发布时间】:2018-04-30 17:52:06
【问题描述】:

如果生产者端的确认延迟非常高,我们可以使用一些代理指标来监控 Kafka 代理。

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

另外,我们只使用kafka.acks = 1 作为分区领导者。

我想知道是否有人对此有一些经验,欢迎任何建议。 :) 提前致谢。

【问题讨论】:

    标签: apache-kafka monitoring


    【解决方案1】:

    我猜你说的是“指标”而不是矩阵!

    在 Producer 上,您拥有 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

    【讨论】:

    • 哈哈,改了。是的,我们已经使用了这些属性。任何其他经纪人方面的指标? :)
    • @MickaelMaison 您能否分享在这些指标上设置自定义警报的阈值?高还是低?
    猜你喜欢
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2019-03-08
    • 2019-08-11
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多