gpt4 book ai didi

azure - 如何获取 Azure EventHub 深度

转载 作者:行者123 更新时间:2023-12-04 12:41:56 32 4
gpt4 key购买 nike

我的 EventHub 每天都会摄取数百万条消息。我正在处理来自 Azure Function 的这些消息,并在日志中打印偏移量和序列数值。

public static async Task Run([EventHubTrigger("%EventHub%", Connection = "EventHubConnection", ConsumerGroup = "%EventHubConsumerGroup%")]EventData eventMessage,
[Inject]ITsfService tsfService, [Inject]ILog log)
{
log.Info($"PartitionKey {eventMessage.PartitionKey}, Offset {eventMessage.Offset} and SequenceNumber {eventMessage.SequenceNumber}");
}

日志输出

PartitionKey、偏移量 78048157161248 和 SequenceNumber 442995283

问题

  1. PartitionKey 值空白?我在该 EventHub 中有 2 个分区

  2. 有什么方法可以检查积压的订单吗?有时我想知道我的函数需要处理多少条消息。

最佳答案

是的,您可以将 PartitionContext 对象作为签名的一部分包含在内,这将为您提供一些附加信息,

public static async Task Run([EventHubTrigger("HubName", 
Connection = "EventHubConnectionStringSettingName",
ConsumerGroup = "Consumer-Group-If-Applicable")] EventData[] messageBatch, PartitionContext partitionContext, ILogger log)

编辑您的host.json并将enableReceiverRuntimeMetric设置为true,例如

"version":  "2.0",
"extensions": {
"eventHubs": {
"batchCheckpointFrequency": 100,
"eventProcessorOptions": {
"maxBatchSize": 256,
"prefetchCount": 512,
"enableReceiverRuntimeMetric": true
}
}
}

您现在可以访问 PartitionContext 上的 RuntimeInformation,其中包含有关 LastSequenceNumber 的一些信息,并且您当前的消息有自己的序列号,因此您可以使用它们之间的差异来计算指标,例如,

public class EventStreamBacklogTracing
{
private static readonly Metric PartitionSequenceMetric =
InsightsClient.Instance.GetMetric("PartitionSequenceDifference", "PartitionId", "ConsumerGroupName", "EventHubPath");

public static void LogSequenceDifference(EventData message, PartitionContext context)
{
var messageSequence = message.SystemProperties.SequenceNumber;
var lastEnqueuedSequence = context.RuntimeInformation.LastSequenceNumber;

var sequenceDifference = lastEnqueuedSequence - messageSequence;

PartitionSequenceMetric.TrackValue(sequenceDifference, context.PartitionId, context.ConsumerGroupName,
context.EventHubPath);
}
}

我在 Medium 上写了一篇文章,其中更详细地介绍了如何使用 grafana 中的数据,

https://medium.com/@dylanm_asos/azure-functions-event-hub-processing-8a3f39d2cd0f

关于azure - 如何获取 Azure EventHub 深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54292184/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com