Aninda Basu
Aninda Basu

Reputation: 183

Is there a way to get count of events in Azure Event Hub consumer group for a particular time period?

Is there a way to get count of events in Azure Event Hub for a particular time period? I need to get the count of events which come for an hour.

Upvotes: 0

Views: 2337

Answers (3)

Alex
Alex

Reputation: 18526

Assuming you really just need to know "how many events did my Event Hub receive in a particular hour" - you can take a look at the metrics published by the Event Hub. Be aware that, like mentioned in the other answers, the count might not be 100% accurate given the nature of the system.

Take a look at the Incoming Messages metric. If you take this for any given hour, it will give you the count of messages that were received during this time period. You can split the namespace metric by EventHub, and every consumer group will receive every single message, so you should be fine.

This is an example of how it can look in the UI, though you should also be able to export it to a log analytics workspace.

Metrics View

Upvotes: 0

Jesse Squire
Jesse Squire

Reputation: 7745

I'm not sure that the context of this question is correct, as a consumer group is just a logical grouping of those reading from an Event Hub and nothing gets published to it. For the remainder of my thoughts, I'm assuming that the nomenclature was a mistake, and what you're interested in is understanding what events were published to a partition of the Event Hub.

There's no available metric or report that I'm aware of that would surface the requested information. However, assuming that you know the time range that you're interested in, you can write a utility to compute this:

  1. Connect one of the consumer types from the Event Hubs SDK of your choice to the partition, using FromEnqueuedTime or the equivalent as your starting position. (sample)

  2. For each event read, inspect the EnqueuedTime or equivalent and compare it to the window that you're interested in.

  3. If the event was enqueued within your window, increase your count and repeat, starting at #2. If the event was later than your window, you're done.

The count that you've accumulated would be the number of events that the Event Hubs broker received during that time interval.

Note: If you're doing this across partitions, you'll want to read each partition individually and count. The ReadEvents method on the consumer does not guarantee ordering or fairness; it would be difficult to have a deterministic spot to decide that you're done reading.

Upvotes: 0

Sajeetharan
Sajeetharan

Reputation: 222522

No, there is no way to get it as of now, if you look at the docs, EventHub is a high-Throughput, low-latency durable stream of events on Azure, so getting a count may be not correct at that given point of time

unlike queues, there is no concept of queue length in Azure Event Hubs because the data is processed as a stream

Upvotes: 0

Related Questions