【问题标题】:Kafka monitoring using Burrow使用 Burrow 监控 Kafka
【发布时间】:2016-07-18 02:36:30
【问题描述】:

当使用 Burrow 监控 Kafka 时

1) 主题分区中给定消费者组的 Burrow 开始和结束偏移量是什么意思?我找不到这方面的任何文档。

匹配的 Kafka 术语是什么? Kafka 术语:上次提交的偏移量、当前偏移量、高水位标记偏移量、日志结束偏移量。 Burrow 开始和结束偏移映射到什么?是卡夫卡当前偏移量和卡夫卡高水位标记偏移量吗?

例如。

http://localhost:8000/v2/kafka/local/consumer/MyGroup-1-4/lag

{
   "error":false,
   "message":"consumer group status returned",
   "status":{
      "cluster":"local",
      "group":"MyGroup-1-4",
      "status":"ERR",
      "complete":false,
      "partitions":[
         {
            "topic":"MyTopicTest-1",
            "partition":1,
            "status":"OK",
            "start":{
               "offset":28,
               "timestamp":1468769616468,
               "lag":0
            },
            "end":{
               "offset":34,
               "timestamp":1468805045000,
               "lag":0
            }
         },
         {
            "topic":"MyTopicTest-1",
            "partition":3,
            "status":"STOP",
            "start":{
               "offset":32,
               "timestamp":1468803763000,
               "lag":0
            },
            "end":{
               "offset":32,
               "timestamp":1468804303000,
               "lag":0
            }
         },
         {
            "topic":"MyTopicTest-1",
            "partition":4,
            "status":"OK",
            "start":{
               "offset":32,
               "timestamp":1468804003000,
               "lag":0
            },
            "end":{
               "offset":33,
               "timestamp":1468804783000,
               "lag":0
            }
         },
         {
            "topic":"MyTopicTest-1",
            "partition":5,
            "status":"STOP",
            "start":{
               "offset":32,
               "timestamp":1468803763000,
               "lag":0
            },
            "end":{
               "offset":32,
               "timestamp":1468804303000,
               "lag":0
            }
         },
         {
            "topic":"MyTopicTest-1",
            "partition":6,
            "status":"OK",
            "start":{
               "offset":33,
               "timestamp":1468804423000,
               "lag":0
            },
            "end":{
               "offset":34,
               "timestamp":1468805045000,
               "lag":0
            }
         },
         {
            "topic":"MyTopicTest-1",
            "partition":7,
            "status":"OK",
            "start":{
               "offset":27,
               "timestamp":1468769387995,
               "lag":0
            },
            "end":{
               "offset":33,
               "timestamp":1468804783000,
               "lag":0
            }
         },
         {
            "topic":"MyTopicTest-1",
            "partition":9,
            "status":"OK",
            "start":{
               "offset":27,
               "timestamp":1468769433946,
               "lag":0
            },
            "end":{
               "offset":33,
               "timestamp":1468804783000,
               "lag":0
            }
         }
      ],
      "partition_count":10,
      "maxlag":null,
      "totallag":0
   },
   "request":{
      "url":"/v2/kafka/local/consumer/MyGroup-1-4/lag",
      "host":"****",
      "cluster":"local",
      "group":"MyGroup-1-4",
      "topic":""
   }
}

2) 某些状态被标记为已停止。将状态标记为 STOPPED 的 Burrow 规则是: 如果现在时间与最近一次偏移时间的差值大于窗口内最近一次偏移量和最旧一次偏移量的时间差,消费者处于ERROR状态,分区被标记为STOPPED .但是,如果分区的消费者偏移量和当前代理偏移量相等,则不认为该分区出错。

什么是“现在”?是延迟请求发送到 Burrow 的时间吗

【问题讨论】:

    标签: apache-kafka lag kafka-consumer-api consumer


    【解决方案1】:

    1) 主题分区中给定消费者组的 Burrow 开始和结束偏移量是什么意思?我找不到这方面的任何文档。
    这两个偏移量表示logcheck评估窗口中的开始和结束偏移量(消费者承诺的偏移量)。默认窗口将存储 10 个偏移量,用于评估消费者滞后。 请参考下图和链接。
    Burrow: Kafka Consumer Monitoring Reinvented

    2、什么是“现在时间”?是延迟请求发送到 Burrow 的时间吗?
    “现在时间”表示当前的“滞后检查间隔”。您可以在Example 5 中获得更详细的示例。

    存储的第一个偏移量和最后一个偏移量之间的时间差 存储的偏移量是 540 秒,和现在之间的时间差 最后存储的偏移量是 660 秒。消费者已停止 提交偏移量,这意味着它已失败或已停止。

    【讨论】:

    • 谢谢@Shawn。如果每个分区的“开始”偏移量是“__consumer_offsets 主题”并且“结束”偏移量是“代理 HEAD 偏移量”,那么为什么不 Burrow 将它们称为它们的本来面目,而不是引入新的“开始”和“结束”术语。另外为什么要打印“开始”和“结束”偏移量?只需打印差异并将其称为“滞后”以保持清晰。
    • 或者我错过了什么?
    • 开始和结束表示消费者在滞后评估窗口中提交的偏移量。延迟计算为代理的 HEAD 偏移量和消费者的偏移量之间的差异。默认日志检查窗口将有 10 个偏移量。实际上,我们通过单个“status”:“ERR”指标来决定消费者状态。开始和结束偏移信息有助于获取滞后详细信息。
    • 谢谢@Shawn。因此对于默认的 logcheck 窗口,开始是窗口中的第 1 个偏移量,结束是窗口中的第 10 个偏移量。 HEAD 偏移量不是当前分区中日志的末尾吗?这个偏移量可能还没有被复制。不应该根据已复制到所有副本的偏移量和窗口中当前提交的偏移量来计算滞后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2023-04-01
    • 2017-12-07
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多