Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. USE FOR: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection DO NOT USE FOR: SQL databases, NoSQL queries (use azure-storage), Elasticsearch, AWS analytics tools
Install with Tessl CLI
npx tessl i github:microsoft/github-copilot-for-azure --skill azure-kusto88
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillEvaluation — 97%
↑ 1.07xAgent success when using this skill
Validation for skill structure
Execute KQL queries and manage Azure Data Explorer resources for fast, scalable big data analytics on log, telemetry, and time series data.
Use this skill immediately when the user asks to:
Key Indicators:
This skill enables querying and managing Azure Data Explorer (Kusto), a fast and highly scalable data exploration service optimized for log and telemetry data. Azure Data Explorer provides sub-second query performance on billions of records using the Kusto Query Language (KQL).
Key capabilities:
Fetch recent records from a table with simple filtering.
Example KQL:
Events
| where Timestamp > ago(1h)
| take 100Use for: Quick data inspection, recent event retrieval
Summarize data by dimensions for insights and reporting.
Example KQL:
Events
| summarize count() by EventType, bin(Timestamp, 1h)
| order by count_ descUse for: Event counting, distribution analysis, top-N queries
Analyze data over time windows for trends and patterns.
Example KQL:
Telemetry
| where Timestamp > ago(24h)
| summarize avg(ResponseTime), percentiles(ResponseTime, 50, 95, 99) by bin(Timestamp, 5m)
| render timechartUse for: Performance monitoring, trend analysis, anomaly detection
Combine multiple tables for cross-dataset analysis.
Example KQL:
Events
| where EventType == "Error"
| join kind=inner (
Logs
| where Severity == "Critical"
) on CorrelationId
| project Timestamp, EventType, LogMessage, SeverityUse for: Root cause analysis, correlated event tracking
Explore table structure before querying.
Tools: kusto_table_schema_get
Use for: Understanding data model, query planning
When executing queries, common field patterns:
ago(), between(), bin() for time filteringQuery results include:
🟢 Performance Optimized:
where before joins and aggregationstake or limit to reduce data transfer🔵 Query Patterns:
summarize for aggregations instead of count() alonebin() for time bucketing in time seriesproject to select only needed columnsextend to add calculated fields🟡 Common Functions:
ago(timespan): Relative time (ago(1h), ago(7d))between(start .. end): Range filteringstartswith(), contains(), matches regex: String filteringparse, extract: Extract values from stringspercentiles(), avg(), sum(), max(), min(): Aggregationstake or limit for exploratory queries to avoid large result setssummarize for aggregations instead of client-side processing| Tool | Purpose |
|---|---|
kusto_cluster_list | List all Azure Data Explorer clusters in a subscription |
kusto_database_list | List all databases in a specific Kusto cluster |
kusto_query | Execute KQL queries against a Kusto database |
kusto_table_schema_get | Retrieve schema information for a specific table |
Required Parameters:
subscription: Azure subscription ID or display namecluster: Kusto cluster name (e.g., "mycluster")database: Database namequery: KQL query string (for query operations)table: Table name (for schema operations)Optional Parameters:
resource-group: Resource group name (for listing operations)tenant: Azure AD tenant IDIf Azure MCP Kusto tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.
| Operation | Azure CLI Command |
|---|---|
| List clusters | az kusto cluster list --resource-group <rg-name> |
| List databases | az kusto database list --cluster-name <cluster> --resource-group <rg-name> |
| Show cluster | az kusto cluster show --name <cluster> --resource-group <rg-name> |
| Show database | az kusto database show --cluster-name <cluster> --database-name <db> --resource-group <rg-name> |
For queries, use the Kusto REST API or direct cluster URL:
az rest --method post \
--url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \
--body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"Switch to Azure CLI when:
cc82eeb
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.