aks-cost-optimization
Analyze advanced AKS cost efficiency. WHEN: \"AKS NAP readiness\", \"AKS bin packing\", \"AKS node scaling bottleneck\", \"AKS…
Build and query Kusto graphs from natural language. Covers transient graphs (make-graph), persistent graph models/snapshots, pattern matching (graph-match), shortest paths, connected components, and graph-to-table export. Generates the edges-first thinking: define edges, define
Claude Code
$ npx -y skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph --agent claude-code
Codex
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph -a codex -y
Cursor
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph -a cursor -y
Gemini CLI
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph -a gemini-cli -y
GitHub Copilot
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph -a github-copilot -y
OpenCode
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph -a opencode -y
Windsurf
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill azure-kusto-graph -a windsurf -y
name: azure-kusto-graph description: "Build and query Kusto graphs from natural language. Covers transient graphs (make-graph), persistent graph models/snapshots, pattern matching (graph-match), shortest paths, connected components, and graph-to-table export. Generates the edges-first thinking: define edges, define node lookups, union, make-graph. WHEN: make-graph, graph-match, graph-shortest-paths, graph-to-table, graph-mark-components, persistent graph, graph model, graph snapshot, build a graph from data, find paths between nodes, pattern matching in graph, connected components, transient graph, Kusto graph, KQL graph." license: MIT metadata: author: Microsoft version: "0.0.0-placeholder"
Build transient and persistent graphs from tabular data using KQL graph operators. This skill translates natural language into the edges-first graph construction pattern and graph query operators.
Use this skill when the user:
**Not a natural-language-to-KQL converter.** The input should generally be a working KQL query whose results the user wants converted to a graph, plus a natural-language description of the desired graph structure. Basic NL source requests are supported only when they map directly to a known table with obvious columns. For general NL-to-KQL conversion, use a dedicated query-generation skill (available separately).
**Complementary skills:**
The fundamental pattern for building graphs in Kusto:
1. Define your EDGES -> src --> dest, with relationship type/properties 2. Define your NODE LOOKUPS -> display names, types, properties for each node ID 3. Union edge types -> if you have multiple relationship types 4. Union node lookups -> if you have multiple node types 5. Call make-graph -> edges | make-graph Source --> Target with nodes on nodeId
This is how to think in `make-graph`. Edges are the relationships you care about. Nodes are lookup tables that give those IDs a face -- display names, types, properties.
Edges | make-graph SourceId --> TargetId with Nodes on NodeId
G | graph-match (a)-[e]->(b) where <constraints> project <output>
Pattern notation:
| Element | Named | Anonymous | |---|---|---| | Node | `(n)` | `()` | | Edge left->right | `-[e]->` | `-->` | | Edge right->left | `<-[e]-` | `<--` | | Any direction | `-[e]-` | `--` | | Variable length | `-[e*1..5]->` | `-[*1..5]->` |
Multi-hop patterns: `(a)-[e1]->(b)-[e2]->(c)` Star patterns: `(a)--(center)--(b), (c)--(center)--(d)` Cycles control: `cycles = all | none | unique_edges` (default: `unique_edges`)
G | graph-shortest-paths (start)-[e*1..20]->(end)
where start.name == "Alice" and end.name == "Server01"
project Path = e, Length = array_length(e)G | graph-to-table nodes // export nodes G | graph-to-table edges // export edges G | graph-to-table nodes as N, edges as E // export both G | graph-to-table nodes with_node_id=Id // include node hash ID G | graph-to-table edges with_source_id=Src with_target_id=Tgt // include edge endpoint IDs
G | graph-mark-components with_component_id=ComponentId | graph-to-table nodes | summarize Members = make_list(name) by ComponentId
Assigns a `ComponentId` to each node. Nodes in the same connected component share the same ID.
graph("MyGraphModel") // latest snapshot
graph("MyGraphModel", "Snapshot_2025_01") // specific snapshot
graph("MyGraphModel", true) // transient from model definitionCreated dynamically during query execution. No setup required. Ideal for ad-hoc analysis, exploration, and prototyping.
// 1. Define edges
let edges = <SourceTable>
| summarize <aggregations> by SourceCol, TargetCol;
// 2. Define node lookups
let source_nodes = edges
| distinct SourceCol
| project nodeId = SourceCol, label = SourceCol, nodeType = "<SourceType>";
let target_nodes = edges
| distinct TargetCol
| project nodeId = TargetCol, label = TargetCol, nodeType = "<TargetType>";
let all_nodes = union source_nodes, target_nodes;
// 3. Build and query the graph
edges
| make-graph SourceCol --> TargetCol with all_nodes on nodeId
| graph-match (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.
Analyze advanced AKS cost efficiency. WHEN: \"AKS NAP readiness\", \"AKS bin packing\", \"AKS node scaling bottleneck\", \"AKS…
Diagnose Day-2 AKS GPU and KAITO incidents using profile-aware, read-only evidence. WHEN: 'Insufficient nvidia.com/gpu', GPU pod…
Lookup documented AKS fixes only when the prompt includes an exact catalog signature and all of its qualifiers:…
Collects bounded packet captures from AKS nodes and Azure network configuration for wire-level evidence. WHEN: \"capture packets…
Debug live Azure Kubernetes Service (AKS) incidents with a read-only, evidence-first investigation. WHEN: pod crashes or Pending,…
Builds an Azure portal deep link to a specific blade/menu item for supported Microsoft.ContainerService, Microsoft.Kubernetes,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.