vm-kusto-query

Investigate Azure VM, disk, storage, and networking incidents using Kusto KQL queries.

Updated Aug 13, 2026
One-click install
npx skills add https://github.com/crystalzhangbai/TS-Agent-Azure --skill vm-kusto-query-crystalzhangbai
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: vm-kusto-query
Source: https://github.com/crystalzhangbai/TS-Agent-Azure/tree/main/bridge/skills/vm-kusto-query
Command: npx skills add https://github.com/crystalzhangbai/TS-Agent-Azure --skill vm-kusto-query-crystalzhangbai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, azure-devops, msrest, azure-identity, and includes scripts (resource) and references (resource) components.

What problem does it solve? Azure support engineers and SREs need to root-cause VM restarts, disk failures, allocation errors, storage throttling, and network connectivity issues, but the telemetry is scattered across dozens of internal Kusto clusters with no obvious starting point. This Skill turns natural-language incident descriptions into a structured KQL investigation with evidence-backed RCA. ## Core Features & Use Cases - Scenario routing playbooks: 24 playbooks (A–L, core + deep) route intents like VM restart RCA, cant-start/stop, deployment failure, VMSS, disk lifecycle, agent/extension, IMDS/MSI/Serial Console, storage account, and Azure Files to the right clusters and tables. - Curated KQL catalogs and dashboard guides: 15 cluster-organized query catalogs plus reverse-engineered KQL from 162 ASI dashboard pages (2300+ panel queries) with symptom-keyed investigation guides. - Investigation state machine and guardrails: An S0–S6 loop (identify, route, run, interpret, branch, expand, report) with query budgets, permission matrix, error recovery, and parallel batch execution via scripts/kusto_runner.py. - Use Case: A customer reports a VM rebooted at 2 AM. The Skill resolves VM identity via LogContainerSnapshot, checks service healing, live migration, and host update tables across AzureCM and VMInsight, then produces an evidence-ledger RCA distinguishing platform-triggered from customer-triggered restart. ## Quick Start Ask the assistant to investigate why your Azure VM restarted last night using Kusto, providing the subscription ID, VM name, and approximate time window.

Frequently Asked Questions about vm-kusto-query

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find the root cause of an Azure VM restart using Kusto?▼

Start by resolving VM identity through the LogContainerSnapshot table to get containerId and nodeId, then query service healing, live migration, and host update tables in AzureCM and VMInsight for the incident window. The Skill's Playbook A provides an 8-step decision flow that classifies the restart as platform-triggered or customer-initiated with evidence.

How to trace a managed disk lifecycle with KQL?▼

Query the Disks RP cluster for lifecycle events, ContextActivity verbose traces, and BackgroundTask entries filtered by disk name and time window. Playbook F routes disk delete, resize, snapshot, and encryption scenarios to the correct tables and correlates them with node faults or slow-IO signals.

What Kusto clusters does this Skill cover for Azure investigation?▼

It covers AzureCM, VMInsight, AzCore, Disks RP, CRP, ARMProd, NRP, Hybridnetworking, XStore, XArgus, AzureDCM, Sparkle, Hawkeye, ICM, Watson, AzPE, and others. A scenario-routing table maps each investigation type to the exact cluster, database, and first table to query.

Can I diagnose VM-to-Private-Endpoint connectivity issues?▼

Yes, networking topology and connectivity cases route to the optional eagleai MCP, which provides EagleEye topology discovery and NetworkARG queries against eearg.westus2. It handles VM-to-PE, VM-to-VM, NSG analysis, ExpressRoute, and Azure Front Door paths.

What permissions are required to run these Kusto queries?▼

Most clusters require CoreIdentity group membership such as WA CTS-14817, while some tables need JIT or PG-only access. The operational-discipline reference documents the full permission matrix and instructs stopping and reporting when hitting permission walls.

Why does my KQL query fail with SEM0100 errors?▼

SEM0100 means a referenced column does not exist in the table, and Kusto only reports the first invalid column. The Skill's query discipline requires running getschema on the table, verifying all projected columns at once, and never assuming sibling tables share the same schema.