首页 > 解决方案 > 监视 Azure 事件中心分区队列大小的可用方法

问题描述

Kafka 提供了监控当前偏移量和最新偏移量的能力。同样,azure eventthub 是否公开任何 api 以持续监视分区的当前偏移量和最新的可用偏移量?

标签: azureazure-eventhub

解决方案


扩展上述答案,您可以看到两种方式的偏移量。

  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 函数保持分区偏移的位置。

从门户

选项 3(最新)

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

现在我们使用 Eventhub 消息 SequenceNumber 代替 Offset。我们创建了 TimerTrigger Azure 函数。每 5 分钟,我们从 Eventhub获取LastEnqueuedSequenceNumber ,从 blob 存储(检查点位置)获取每个分区的SequenceNumber,然后我们将差异存储在 ApplicationInsight customMetrics 中。

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

Azure 仪表板中的 Eventhub 深度

定时器触发代码

我希望这个能帮上忙!


推荐阅读