$npx -y skills add PatrickGallucci/fabric-skills --skill fabric-rti-perf-remediateDiagnose and resolve performance issues in Microsoft Fabric Real-Time Intelligence including Eventhouse, KQL databases, Eventstream, and ingestion pipelines. Use when asked to troubleshoot slow KQL queries, high Eventhouse CPU or memory, ingestion latency or failures, Eventstream
| 1 | # Fabric Real-Time Intelligence Performance remediate |
| 2 | |
| 3 | Systematic toolkit for diagnosing and resolving performance issues across the Microsoft Fabric Real-Time Intelligence stack: Eventhouse, KQL databases, Eventstream, ingestion pipelines, and capacity management. |
| 4 | |
| 5 | ## When to Use This Skill |
| 6 | |
| 7 | - Eventhouse queries running slowly or timing out |
| 8 | - Ingestion latency or failures into KQL databases |
| 9 | - Eventstream throughput bottlenecks or backlog growth |
| 10 | - Capacity throttling errors (HTTP 430, TooManyRequestsForCapacity) |
| 11 | - High CPU, memory, or cache utilization on Eventhouse |
| 12 | - Materialized view lag or freshness issues |
| 13 | - Always-On and minimum consumption sizing decisions |
| 14 | - Workspace monitoring setup and dashboard interpretation |
| 15 | - KQL query optimization for Real-Time Intelligence workloads |
| 16 | |
| 17 | ## Prerequisites |
| 18 | |
| 19 | - Microsoft Fabric workspace with Contributor or higher permissions |
| 20 | - Workspace monitoring enabled (for query/ingestion logs) |
| 21 | - Fabric Capacity Metrics app installed (for capacity-level analysis) |
| 22 | - KQL Queryset or Eventhouse query editor access |
| 23 | |
| 24 | ## Step-by-Step Workflows |
| 25 | |
| 26 | ### Workflow 1: Diagnose Slow KQL Queries |
| 27 | |
| 28 | 1. **Enable workspace monitoring** if not already active. See [workspace-monitoring.md](./references/workspace-monitoring.md) |
| 29 | 2. **Identify expensive queries** using the diagnostic script: |
| 30 | Run [diagnose-slow-queries.kql](./scripts/diagnose-slow-queries.kql) against the monitoring Eventhouse |
| 31 | 3. **Analyze query patterns** — filter by Top CPU Time, Top Duration, or Memory Peak |
| 32 | 4. **Apply KQL optimization rules** from [kql-optimization.md](./references/kql-optimization.md) |
| 33 | 5. **Validate improvement** by re-running the query and comparing duration/CPU metrics |
| 34 | |
| 35 | ### Workflow 2: Troubleshoot Ingestion Issues |
| 36 | |
| 37 | 1. **Check ingestion results logs** using [diagnose-ingestion.kql](./scripts/diagnose-ingestion.kql) |
| 38 | 2. **Review Eventstream data insights** — check IncomingMessages, OutgoingMessages, BackloggedInputEvents, and WatermarkDelay metrics |
| 39 | 3. **Identify failure patterns** — deserialization errors, schema mismatches, throttling |
| 40 | 4. **Apply throughput tuning** per [ingestion-remediate.md](./references/ingestion-remediate.md) |
| 41 | 5. **Validate pipeline health** by monitoring runtime logs on source and destination nodes |
| 42 | |
| 43 | ### Workflow 3: Resolve Capacity Throttling |
| 44 | |
| 45 | 1. **Open the Fabric Capacity Metrics app** — filter to your capacity and workspace |
| 46 | 2. **Check Eventhouse UpTime CU consumption** — identify if a single Eventhouse dominates |
| 47 | 3. **Run capacity diagnostics** using [diagnose-capacity.kql](./scripts/diagnose-capacity.kql) |
| 48 | 4. **Evaluate sizing options**: Always-On minimum consumption, cache policy adjustments, or SKU upgrade |
| 49 | 5. **Apply recommendations** from [capacity-and-sizing.md](./references/capacity-and-sizing.md) |
| 50 | |
| 51 | ## remediate Quick Reference |
| 52 | |
| 53 | | Symptom | First Check | Script | |
| 54 | | --------------------------- | ---------------------------------------------- | ------------------------------------------------------------- | |
| 55 | | Slow queries | Workspace Monitoring → EH Queries tab | [diagnose-slow-queries.kql](./scripts/diagnose-slow-queries.kql) | |
| 56 | | Query throttling (HTTP 430) | Capacity Metrics app → CU utilization | [diagnose-capacity.kql](./scripts/diagnose-capacity.kql) | |
| 57 | | Ingestion failures | Eventstream → Runtime logs tab | [diagnose-ingestion.kql](./scripts/diagnose-ingestion.kql) | |
| 58 | | High ingestion latency | Eventstream → Data insights → WatermarkDelay | [diagnose-ingestion.kql](./scripts/diagnose-ingestion.kql) | |
| 59 | | Materialized view stale | `.show materialized-views` command | [diagnose-slow-queries.kql](./scripts/diagnose-slow-queries.kql) | |
| 60 | | Cold storage scans | Cache policy vs query time range | [diagnose-capacity.kql](./scripts/diagnose-capacity.kql) | |
| 61 | | Eventhouse wake-up latency | Always-On setting disabled | [capacity-and-sizing.md](./references/capacity-and-sizing.md) | |
| 62 | | Eventstream backlog growing | Throughput setting mismatch | [ingestion-remediate.md](./references/ingestion-remediate.md) | |
| 63 | |
| 64 | ## References |
| 65 | |
| 66 | - [KQL Query Optimization Guide](./references/kql-optimization.md) — Best practices for writing performant KQL |
| 67 | - [Inges |