An Azure service that stores unstructured data in the cloud as blobs.
Hello @Balamurugan, Susinthika
Your understanding of the PT1H.json layout is mostly correct, but one important detail is when an hourly blob is considered complete.
When Azure Monitor resource logs are archived to Storage, they use paths similar to:
insights-logs-<category>/resourceId=.../
y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json
During the current hour, Azure Monitor appends events to the corresponding PT1H.json as it receives them.
However, don't assume the previous hour's blob becomes immutable immediately at HH:00. At the start of a new hour, existing logs can still be written to the previous hour's blob while new logs are written to the new hour's blob. Logs are organized by when Azure Monitor receives them, not necessarily when the underlying event occurred.
Therefore, there isn't a documented "hour complete" or "blob finalized" event that you would use as a reliable ingestion checkpoint.
Regarding Event Grid, avoid using Microsoft.Storage.BlobCreated as a record-level notification mechanism for these Azure Monitor archive blobs.
Event Grid's BlobCreated semantics are based on the Storage API operation used to create/replace/commit a blob. Microsoft documents it for operations such as PutBlob, PutBlockList, and CopyBlob; it isn't a contract that Azure Monitor will generate one Event Grid event for every diagnostic-log record appended to an existing PT1H.json.
Consequently, I wouldn't design an Azure Firewall log consumer around:
Azure Firewall > Diagnostic settings > Blob PT1H.json > Event Grid > Incremental consumer
if the requirement is to process every Firewall event reliably as it becomes available.
Event Hubs is the better fit for incremental ingestion
Azure Firewall diagnostic settings can stream supported resource logs directly to Azure Event Hubs. Azure Monitor explicitly supports Event Hubs as a diagnostic-settings destination for streaming platform logs to external consumers/SIEM systems.
The architecture would then be:
Azure Firewall > Azure Monitor Diagnostic Settings > Azure Event Hubs > Consumer group > Your ingestion application
This avoids having to determine whether an hourly blob has changed or whether you've already processed part of the file. Your consumer can maintain its Event Hubs partition offsets/checkpoints and process the stream incrementally.
You can also configure multiple diagnostic settings/destinations if you need different use cases, for example, Event Hubs for streaming ingestion and Storage for long-term archival. Azure Monitor diagnostic settings support Storage, Event Hubs, and Log Analytics destinations.
One Azure Firewall-specific caveat is that destination support can vary by log category. For example, Microsoft's current Azure Firewall monitoring reference states that DNS Flow Trace Logs aren't supported with Event Hub as a destination, although Storage and Log Analytics support that category.
Azure Storage Queues: these aren't a native Azure Monitor diagnostic-settings destination for Azure Firewall logs. You could build an intermediate component that reads another supported destination and writes messages to a Storage Queue, but there isn't a direct Azure Firewall diagnostic setting → Storage Queue configuration.
Azure Firewall API: I also wouldn't use the Azure Firewall management APIs as a replacement log-ingestion API. Firewall traffic/resource logs are exposed through Azure Monitor diagnostic logging; the management APIs are for management/control-plane operations, not an incremental feed of Firewall log records.
For your stated requirement: reliably consuming Azure Firewall events incrementally without repeatedly reading partially updated hourly blobs, I recommend Event Hubs, assuming the specific Firewall log categories you require support that destination.
Keep Blob Storage in parallel if you also require inexpensive long-term archive/audit retention:
This separates the streaming and archival requirements rather than trying to turn the archive format into a streaming interface.
References:
Azure Monitor resource logs and PT1H.json behavior
Stream Azure monitoring data to Event Hubs
Azure Monitor diagnostic settings and supported destinations
Monitor Azure Firewall logs and metrics
Azure Firewall monitoring data reference
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.