Расширяя ответ выше, вы можете увидеть смещение двумя способами.
- Смещение печати в файле журнала, где вы слушаете 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}");
}
Я слушаю Eventhub по функциям Azure. Ниже вы можете увидеть расположение, в котором функция Azure поддерживает смещение по разделам.
Вариант 3 (последний)
Смещение не является правильным способом измерения глубины Eventhub, особенно если вы хотите проверить, сколько сообщений нужно обработать.
Теперь мыиспользуя Eventhub сообщение SequenceNumber вместо Offset.Мы создали функцию TimerTrigger Azure.Каждые 5 минут мы получаем LastEnqueuedSequenceNumber из Eventhub и SequenceNumber для каждого раздела из хранилища BLOB-объектов (расположение контрольных точек), затем мы сохраняем разницу в пользовательских метриках ApplicationInsight.
Затем ApplicationInsights помогает нам вводить информацию о глубине Eventhub в панели мониторинга Azure и настраивать оповещения.
Запуск по таймеруКод
Надеюсь, это поможет!