How can Azure administrators use Log Analytics and KQL to investigate infrastructure incidents?
Question
Answers
When an Azure infrastructure incident occurs, administrators need more than dashboards.
They need to answer questions such as:
- What failed?
- When did it fail?
- Which resource was affected?
- How many users were impacted?
- Was there a deployment before the incident?
- Is the problem still occurring?
- What changed?
Azure Monitor, Log Analytics, and Kusto Query Language (KQL) provide a powerful foundation for this type of investigation.
Think in Terms of Evidence
A useful incident investigation process is:
Alert ↓ Scope ↓ Timeline ↓ Logs ↓ KQL Analysis ↓ Correlation ↓ Root Cause ↓ Remediation
What is Log Analytics?
A Log Analytics workspace provides a central location for querying supported log and telemetry data.
Instead of manually inspecting individual resources, administrators can analyze information centrally.
Why KQL Matters
KQL allows administrators to filter, aggregate, summarize, correlate, and investigate large volumes of telemetry.
A conceptual query might look like:
AzureActivity | where TimeGenerated > ago(1h) | summarize Count = count() by ResourceGroup, OperationNameValue | order by Count desc
This can help identify what operations have occurred recently.
Another investigation might filter failures:
AzureActivity | where TimeGenerated > ago(2h) | where ActivityStatusValue == "Failed" | project TimeGenerated, ResourceGroup, Resource, OperationNameValue | order by TimeGenerated desc
The exact tables and fields available depend on the diagnostic data being collected.
Incident Timeline
Suppose users report that an application stopped working at 10:15 AM.
An administrator might investigate:
10:00 → Normal 10:08 → Configuration change 10:12 → Deployment 10:15 → Errors increase 10:17 → Availability alert
The objective is to correlate telemetry rather than simply look for a single error.
KQL Capabilities Worth Learning
Administrators should become comfortable with:
-
where -
project -
summarize -
count -
sort -
extend -
parse -
join - Time filtering
- Aggregations
- Time-series analysis
For example:
AzureActivity | where TimeGenerated > ago(24h) | summarize Operations = count() by bin(TimeGenerated, 1h) | order by TimeGenerated asc
This can help visualize activity over time.
Correlating Different Data Sources
Advanced investigations may require joining information from multiple sources.
For example:
Azure Activity Logs + Application Logs + Metrics + Security Events ↓ Incident Timeline
This is where KQL becomes particularly powerful.
Important: Logging Must Be Designed Before the Incident
One of the biggest operational lessons is:
You cannot investigate telemetry that you never collected.
Organizations should therefore define appropriate diagnostic settings and monitoring strategies before production incidents occur.
The exact logging strategy should balance:
- Troubleshooting requirements
- Security requirements
- Cost
- Data retention
- Privacy
- Compliance
From Monitoring to Observability
A mature organization moves beyond:
"Is the server running?"
toward:
"What is the health of the entire application and infrastructure ecosystem?"
That involves correlating:
Metrics Logs Traces Events Dependencies
with meaningful dashboards and alerts.
Career Tip
KQL is an extremely valuable skill for Azure administrators, cloud engineers, DevOps engineers, SREs, security professionals, and solution architects.
Being able to write KQL is useful—but being able to use KQL to form a hypothesis, investigate evidence, identify correlations, and explain the root cause of an incident is the real enterprise skill.