5.4 Log Types: Analytics vs Basic vs Archive
Log Types: Analytics vs Basic vs Archive
By the end of this subsection, you will understand the three log tiers, their cost and query implications, and be able to assign the correct tier to each data source in your environment.
Not all log data has the same value to security operations. Sign-in logs need to be instantly queryable. Heartbeat data from 200 devices does not. Microsoft’s three-tier log model lets you match storage cost to operational value.
The three tiers
| Tier | Cost | Query speed | Retention | Analytics rules | Best for |
|---|---|---|---|---|---|
| Analytics | Highest (~$2.76/GB/day) | Full KQL, instant | 90 days interactive + archive | Yes — full support | Security tables you query daily (sign-in, email, alerts) |
| Basic | Limited KQL (no join, no summarize) | 30 days interactive + archive | Limited — basic queries only | High-volume, low-value data (network flow, verbose endpoint telemetry) | |
| Archive | Lowest (~$0.02/GB/month) | Search jobs only (minutes to hours) | Up to 12 years | No | Long-term compliance, cold investigation data |
Basic log tables do not support join, summarize, or let statements. This means you cannot build meaningful analytics rules against them — most detection logic requires aggregation or correlation. Assign Basic tier only to tables you will never build detection rules against.
Which tables go in which tier
Analytics tier (default — keep these here):
These tables drive detection rules, investigation queries, and hunting. They must support full KQL.
SigninLogs/AADNonInteractiveUserSignInLogs— every investigation starts hereSecurityAlert/SecurityIncident— your alert pipelineEmailEvents/EmailUrlInfo/UrlClickEvents— email investigationDeviceProcessEvents/DeviceNetworkEvents— endpoint investigationCloudAppEvents— cloud app activity (inbox rules, OAuth)AuditLogs— directory changes, app consentsOfficeActivity— mailbox access, file activityThreatIntelligenceIndicator— IOC matching
Basic tier (move these to save cost):
High-volume tables that provide context during investigation but rarely drive automated detection.
DeviceFileEvents— file creation/modification on endpoints (extremely high volume)DeviceRegistryEvents— registry changes (high volume, mostly noise)DeviceImageLoadEvents— DLL loading events (very high volume)Heartbeat— agent health dataAzureActivity— Azure management plane (unless you build Azure-specific detections)AADProvisioningLogs— user provisioning events
Once you change a table's plan to Basic, you cannot change it back for 30 days. Any analytics rules that reference the table will fail. Test the impact on your existing rules before making the change — run a dependency check first.
Archive tier
Data older than the interactive retention period (90 days for Analytics, 30 days for Basic) can be archived. Archive data costs ~$0.02/GB/month — orders of magnitude cheaper than interactive storage.
Archived data is not directly queryable with standard KQL. To access it:
- Search jobs: Submit a KQL query against archived data. Results are delivered to a new table in your workspace (minutes to hours depending on data volume).
- Restore: Temporarily restore a time range of archived data back to the interactive tier for full KQL querying. Costs the Analytics ingestion rate for the restored data.
| |
| DataType | GB |
|---|---|
| DeviceFileEvents | 48.7 |
| DeviceProcessEvents | 22.3 |
| DeviceNetworkEvents | 18.1 |
| SigninLogs | 8.4 |
| EmailEvents | 5.2 |
| AADNonInteractiveUserSignInLogs | 4.8 |
| DeviceRegistryEvents | 41.2 |
| DeviceImageLoadEvents | 37.5 |
Try it yourself
Ask two questions for each table:
1. Do I have (or plan to build) analytics rules that query this table? If yes, it must stay on Analytics. Basic tier does not support the KQL operators that detection rules need (join, summarize, let).
2. Do I query this table regularly during investigations? If yes but you do not build detection rules against it, Basic is acceptable — you can still run simple queries during ad-hoc investigation, just without join/summarize. If you rarely touch it, Basic or even Archive is appropriate.
Check your understanding
1. You want to build an analytics rule that joins SigninLogs with DeviceFileEvents. Can you move DeviceFileEvents to Basic tier?
2. DeviceRegistryEvents uses 41 GB/month in your workspace. You have no analytics rules that query it. What is the cost-optimized approach?