Skip to content
Development
Skill

/azure-kusto

Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.

From plugin
github-copilot-for-azure
26454 skills2 MCP

Claude Code

$ npx -y skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto --agent claude-code

SKILL.md

azure-kusto.SKILL.md
name: azure-kusto
description: "Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection."
license: MIT
metadata:
  author: Microsoft
  version: "0.0.0-placeholder"

Azure Data Explorer (Kusto) Query & Analytics

Execute KQL queries and manage Azure Data Explorer resources for fast, scalable big data analytics on log, telemetry, and time series data.

Overview

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:

  • **Query Execution**: Run KQL queries against massive datasets
  • **Schema Exploration**: Discover tables, columns, and data types
  • **Resource Management**: List clusters and databases
  • **Analytics**: Aggregations, time series, anomaly detection, machine learning

Core Workflow

1. **Discover Resources**: List available clusters and databases in subscription. If the target table's location is unknown and multiple candidate clusters, databases, or Log Analytics workspaces exist, batch the search (see Pattern 6) and only report "not found" after all candidates are checked. 2. **Explore Schema**: Retrieve table structures to understand data model 3. **Query Data**: Execute KQL queries for analysis, filtering, aggregation 4. **Analyze Results**: Process query output for insights and reporting

Query Patterns

Pattern 1: Basic Data Retrieval

Fetch recent records from a table with simple filtering.

**Example KQL**:

Events
| where Timestamp > ago(1h)
| take 100

**Use for**: Quick data inspection, recent event retrieval

Pattern 2: Aggregation Analysis

Summarize data by dimensions for insights and reporting.

**Example KQL**:

Events
| summarize count() by EventType, bin(Timestamp, 1h)
| order by count_ desc

**Use for**: Event counting, distribution analysis, top-N queries

Pattern 3: Time Series Analytics

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 timechart

**Use for**: Performance monitoring, trend analysis, anomaly detection

Pattern 4: Join and Correlation

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, Severity

**Use for**: Root cause analysis, correlated event tracking

Pattern 5: Schema Discovery

Explore table structure before querying.

**Tools**: `kusto_table_schema_get`

**Use for**: Understanding data model, query planning

Pattern 6: Batch Search Across Candidate Sources

When a table's location is unknown and there are several candidate clusters, databases, or workspaces, batch read-only metadata discovery instead of querying candidates one at a time. List tables in each candidate database or workspace and match the exact table name before querying data.

After confirming which sources contain the table, query those sources together when needed:

union workspace('ws1').Requests, workspace('ws2').Requests
| take 1

**Use for**: Locating a table among many candidate resources without confusing an empty result with a missing table

Key Data Fields

When executing queries, common field patterns:

  • **Timestamp**: Time of event (datetime) - use `ago()`, `between()`, `bin()` for time filtering
  • **EventType/Category**: Classification field for grouping
  • **CorrelationId/SessionId**: For tracing related events
  • **Severity/Level**: For filtering by importance
  • **Dimensions**: Custom properties for grouping and filtering

Result Format

Query results include:

  • **Columns**: Field names and data types
  • **Rows**: Data records matching query
  • **Statistics**: Row count, execution time, resource utilization
  • **Visualization**: Chart rendering hints (timechart, barchart, etc.)

KQL Best Practices

**๐Ÿ”ต Query Patterns:**

  • Use `summarize` for aggregations instead of `count()` alone
  • Use `bin()` for time bucketing in time series
  • Use `project` to select only needed columns
  • Use `extend` to add calculated fields

**๐ŸŸก Common Functions:**

  • `ago(timespan)`: Relative time (ago(1h), ago(7d))
  • `between(start .. end)`: Range filtering
  • `startswith()`, `contains()`, `matches regex`: String filtering
  • `parse`, `extract`: Extract values from strings
  • `percentiles()`, `avg()`, `sum()`, `max()`, `min()`: Aggregations

Best Practices

  • Filter early with time range filters to optimize query performance and use indexed columns first
  • Use `take` or `limit` for exploratory queries to avoid large result sets
  • Leverage `summarize` for aggregations instead of client-side processing
  • Store frequently-used queries as functions in the database
  • Use materialized views for repeated aggregations
  • Monitor query performance and resource consumption
  • Apply data retention policies to manage storage costs
  • Use streaming ingestion for real-time analytics (< 1 second latency)
  • Integrate with Azure Monitor for operational insights

MCP Tools Used

| 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 name
  • `cluster`: Kusto cluster name
Read more
@microsoft
Ships withgithub-copilot-for-azure

GitHub Copilot for Azure is a set of extensions for Visual Studio, VS Code, and Claude Code designed to streamline the process of developing for Azure.

26454 skills2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
264
Star history of microsoft/GitHub-Copilot-for-Azure on GitHub, a chart by star-history.com

Other skills on github-copilot-for-azure.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, orโ€ฆ

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android โ€” semantic ARIA roles and labels,โ€ฆ

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commitsโ€ฆ

react5d252k
@facebook@facebookInstall Skill

Questions about azure-kusto.

Which coding agents can use azure-kusto?
azure-kusto installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.