An Azure service that stores unstructured data in the cloud as blobs.
Hello @Balamurugan, Susinthika
Yes, your understanding of the basic PT1H.json behavior is correct, but there is an important detail if you're building an ingestion pipeline around it.
When Azure Monitor resource logs are archived to Storage, they're organized into hourly PT1H.json blobs. During the current hour, Azure Monitor appends events to that blob as they're received.
However, don't assume that the previous hour's blob becomes immutable exactly at the hour boundary. When a new hour begins, existing logs can still be written to the previous hour's blob while new logs are also being written to the current hour's blob. Logs are organized by when Azure Monitor receives them, not necessarily when the underlying event occurred.
That means an ingestion process such as:
10:00 -10:59 → PT1H.json
11:00 → read 10:00 PT1H.json once
11:01 → consider it complete
Isn't something I'd rely on for guaranteed ingestion.
Regarding Event Grid, Blob Storage supports events when blobs are created/replaced/deleted through supported Blob APIs, but I don't see any documentation of an Azure Monitor-specific contract guaranteeing that each incremental write to an Azure Monitor PT1H.json blob produces an Event Grid notification you can use as a reliable per-record ingestion signal.
So don't build the consumer around Event Grid notifications from these hourly archive blobs unless Microsoft explicitly confirms that behavior for Azure Monitor diagnostic-log writes.
For your second requirement: consuming Azure Firewall logs incrementally as they become available, Event Hubs is the better fit.
Azure Firewall diagnostic settings support sending logs to:
- Log Analytics
- Azure Storage
- Event Hubs
Event Hubs is a supported Azure Firewall diagnostic destination.
Architecturally, use:
rather than:
Event Hubs removes the need to determine when an hourly blob is "complete." Your consumer can process the resource-log events as they're delivered and maintain its progress using the Event Hub consumer offset/checkpoint.
Azure Storage Queues aren't a direct Azure Firewall diagnostic-setting destination, and there isn't a dedicated Azure Firewall log API that I'd use as a replacement for the diagnostic pipeline. If you need a queue downstream, you could consume from Event Hubs and then publish the processed messages to your queue.
You can also configure multiple diagnostic settings/destinations if you need both real-time consumption and archival. For example:
That would probably be my choice here: Event Hubs for ingestion, Blob Storage for retention/archive.
References:
Azure Monitor resource logs – Storage and PT1H.json behavior
Secure Azure Firewall – diagnostic logging destinations
Azure Blob Storage events with Event Grid
Help make this community better for everyone: If this answer helped or resolved your issue, please accept it or upvote it. If not, share more details in a comment so we can continue the discussion and find the right solution. Thank you.