azure - 监视 Azure 事件中心分区队列大小的可用方法
问题描述
Kafka 提供了监控当前偏移量和最新偏移量的能力。同样,azure eventthub 是否公开任何 api 以持续监视分区的当前偏移量和最新的可用偏移量?
解决方案
扩展上述答案,您可以看到两种方式的偏移量。
- 在您正在监听 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}");
}
- 我正在听 Azure Functions 的 Eventhub,您可以在下面看到 Azure 函数保持分区偏移的位置。
选项 3(最新)
偏移量不是衡量 Eventhub 深度的正确方法,特别是当您想要检查需要处理多少条消息时。
现在我们使用 Eventhub 消息 SequenceNumber 代替 Offset。我们创建了 TimerTrigger Azure 函数。每 5 分钟,我们从 Eventhub获取LastEnqueuedSequenceNumber ,从 blob 存储(检查点位置)获取每个分区的SequenceNumber,然后我们将差异存储在 ApplicationInsight customMetrics 中。
然后 ApplicationInsights 帮助我们在 Azure 仪表板中 PIN Eventhub 深度信息并设置警报。
我希望这个能帮上忙!
推荐阅读
- unity3d - 我的 AddForce 方法不起作用或推动 Rigidbody2D
- macros - 如何将宏参数传递给同一宏中的表达式?
- c++ - 当在标头中声明的函数是自定义定义时,C++ 中的未定义符号
- javascript - springboot的跨域配置没有效果吗?
- android - 如何在 Android 上使用 mediastore 访问其他应用程序创建的文件?
- javascript - 在模态中找到的检查标签具有特定状态
- flutter - 更改地图中的键
- c++ - 如何将 long double 转换为 char 数组?
- mysql - 将下拉选择的值传递给 NodeJS 以查询数据库
- django - 如何通过 Django 中的表在多线程中添加自定义字段