【Azure Event Hub】关于Event Hub指标 ConsumerLag 的解释

问题描述

在使用Azure Event Hub的过程中,需要监控消费端是否正常消费数据?而常规的指标只有 Incoming Message, Outgoing Message,是否指标能表明当前Event Hub消费滞后,即 Incoming 数量远远大于 Outgoing呢?

  • IncomingMessages :发布到事件中心的消息数。
  • OutgoingMessages :从事件中心使用的消息数。

常规思路是用 Incoming  - Outgoing, 但如果Event Hub有多个消费组消费的时候(比如5个),那么 Outgoing 会是 Incoming的5倍。而且消费一条消息的时候,可能会出现重复多次消费的情况,所以Outgoing 会远远大于Incoming。

问题解答

通过查看资料,发现在"高级"和“专用”的Event Hub中,有一个ConsumerLag指标,就是表示Incoming和Outgoing之间的延迟。但是,它有两种情况为0的时候:

1)如果当时没有消费的consumer和event hub连接的话,它的值是0。

2)如果消息被及时消费,没有积压数据,值为0。

第一种情况的0为异常状态,第二种情况的0为正常状态。

所以如果使用0作为一个指标条件,则会出现误判。

但是在根据 Incoming Message > 0 或  Outgoing  Message = 0 条件结合,则可以满足 Event Hub是否有滞后的判断。

 

参考资料

Azure 事件中心的监视数据参考 : https://learn.microsoft.com/zh-cn/azure/event-hubs/monitor-event-hubs-reference#application-metrics-logs

 

posted @ 2024-09-25 20:50  路边两盏灯  阅读(15)  评论(0编辑  收藏  举报