监视Azure事件中心队列队列大小的可用方法

问题描述 投票:0回答:2

Kafka提供监控当前偏移和最新偏移的功能。类似地,azure eventhub会暴露任何api来连续监视分区的当前偏移量和最新的可用偏移量吗?

azure azure-eventhub
2个回答
1
投票

看看Features and terminology in Azure Event Hubs - Event consumers - Stream offsets

偏移量是分区内事件的位置。您可以将偏移视为客户端游标。偏移量是事件的字节编号。此偏移使事件使用者(读者)能够指定他们想要从中开始读取事件的事件流中的点。您可以将偏移指定为时间戳或偏移值。消费者负责在Event Hubs服务之外存储他们自己的偏移值。在分区内,每个事件都包含一个偏移量。

在常见的消费者任务下 - 阅读事件:

当事件被发送到客户端时,每个事件数据实例包含重要的元数据,例如用于促进事件序列上的检查点的偏移和序列号。

似乎没有任何方法可用于监控偏移量,因为您需要自己执行此操作。


1
投票

扩展到上面的答案,您可以通过2种方式看到偏移。

  1. 在正在监听EventHub的日志文件中打印偏移量

例如使用Azure功能

    public static async Task Run([EventHubTrigger("EventHubname", ConsumerGroup = "ConsumerGroupname", Connection = "EventHubConnection")]EventData eventMessage,
        [Inject]IService service, [Inject]ILog log)
    {
    log.Info($"PartitionKey {eventMessage.PartitionKey}, Offset {eventMessage.Offset} and SequenceNumber {eventMessage.SequenceNumber}");
    }
  1. 我正在通过Azure Functions监听Eventhub,您可以在下面看到Azure功能按分区维护偏移的位置。

From Portal

选项3(最新)

偏移量不是测量Eventhub深度的正确方法,特别是当您想要检查需要处理的消息数时。

现在我们使用Eventhub消息SequenceNumber而不是Offset。我们创建了TimerTrigger Azure功能。每隔5分钟,我们从bloh存储(检查点位置)为每个分区从Eventhub和SequenceNumber获取LastEnqueuedSequenceNumber,然后我们在ApplicationInsight customMetrics中存储差异。

然后,ApplicationInsights帮助我们在Azure仪表板中输入PIN Eventhub深度信息并设置警报。

Eventhub Depth in Azure Dashboard

Timer Trigger Code

我希望这个能帮上忙!

© www.soinside.com 2019 - 2024. All rights reserved.