$npx -y skills add PatrickGallucci/fabric-skills --skill fabric-data-agent-perf-remediateDiagnose and resolve Microsoft Fabric Data Agent performance issues including slow query generation, capacity throttling (HTTP 430), Spark session startup delays, KQL/SQL/DAX query timeouts, data source misconfiguration, example query validation failures, resource profile tuning,
| 1 | # Fabric Data Agent Performance remediate |
| 2 | |
| 3 | Systematic toolkit for diagnosing and resolving performance issues in Microsoft Fabric Data |
| 4 | Agents, Operations Agents, and their underlying Spark compute and data source infrastructure. |
| 5 | |
| 6 | ## When to Use This Skill |
| 7 | |
| 8 | - Data Agent responses are slow or timing out |
| 9 | - Agent-generated SQL/KQL/DAX queries return errors or produce incorrect results |
| 10 | - Spark session startup takes longer than expected (>10 seconds) |
| 11 | - Capacity throttling errors (HTTP 430) during agent workloads |
| 12 | - Operations Agent playbooks fail to execute or trigger actions |
| 13 | - Data source connections are unreliable or stale |
| 14 | - Example queries fail validation against schema |
| 15 | - Resource profiles need tuning for agent-specific workloads |
| 16 | - Table maintenance (VOrder, bin-compaction, vacuum) is overdue |
| 17 | - Autoscale Billing configuration needs optimization |
| 18 | |
| 19 | ## Prerequisites |
| 20 | |
| 21 | - **Access**: Fabric workspace Contributor or Admin role |
| 22 | - **Tools**: PowerShell 7+, Fabric REST API access (Microsoft Entra token) |
| 23 | - **Endpoints**: `https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items` |
| 24 | - **Monitoring**: Access to Fabric Admin Portal and Azure Cost Analysis |
| 25 | - **Optional**: Azure subscription admin for SKU resizing and Autoscale Billing |
| 26 | |
| 27 | ## Diagnostic Decision Tree |
| 28 | |
| 29 | ``` |
| 30 | Agent performance issue reported |
| 31 | ├── Slow response times? |
| 32 | │ ├── First query after idle? → Spark session startup (see Workflow 1) |
| 33 | │ ├── All queries slow? → Resource profile mismatch (see Workflow 2) |
| 34 | │ └── Intermittent slowness? → Capacity throttling (see Workflow 3) |
| 35 | ├── Incorrect query results? |
| 36 | │ ├── Wrong tables/columns? → Data source instructions (see Workflow 4) |
| 37 | │ ├── SQL syntax errors? → Example query validation (see Workflow 5) |
| 38 | │ └── Stale data? → Lakehouse table maintenance (see Workflow 6) |
| 39 | ├── Agent not responding? |
| 40 | │ ├── HTTP 430 errors? → Concurrency limits (see Workflow 3) |
| 41 | │ ├── Connection failures? → Data source config (see Workflow 4) |
| 42 | │ └── Operations Agent stuck? → Playbook/action config (see Workflow 7) |
| 43 | └── Cost concerns? |
| 44 | ├── Unexpected charges? → Autoscale Billing audit (see Workflow 8) |
| 45 | └── Over-provisioned? → SKU right-sizing (see Workflow 8) |
| 46 | ``` |
| 47 | |
| 48 | ## Step-by-Step Workflows |
| 49 | |
| 50 | ### Workflow 1: Spark Session Startup Delays |
| 51 | |
| 52 | **Symptoms**: First query takes 2-5 minutes, subsequent queries are fast. |
| 53 | |
| 54 | | Scenario | Expected Startup | |
| 55 | | ------------------------------ | ---------------------- | |
| 56 | | Default, no custom libraries | 5-10 seconds | |
| 57 | | Default + library dependencies | 35 seconds - 5 minutes | |
| 58 | | High regional traffic | 2-5 minutes | |
| 59 | | Private Links / Managed VNet | 2-5 minutes | |
| 60 | | Network security + libraries | 2.5-10 minutes | |
| 61 | |
| 62 | **Resolution steps**: See [workflow-spark-startup.md](./references/workflow-spark-startup.md) |
| 63 | |
| 64 | ### Workflow 2: Resource Profile Optimization |
| 65 | |
| 66 | **Symptoms**: Consistently slow reads or writes across all agent queries. |
| 67 | |
| 68 | | Profile | Use Case | VOrder | OptimizeWrite | |
| 69 | | --------------------- | ---------------------------------- | ------------ | ------------------- | |
| 70 | | `writeHeavy` | High-frequency ingestion (default) | Disabled | Disabled | |
| 71 | | `readHeavyForPBI` | Power BI dashboard queries | Enabled | Enabled (1GB bin) | |
| 72 | | `readHeavyForSpark` | Interactive Spark analytics | Disabled | Enabled (128MB bin) | |
| 73 | | `custom` | User-defined workload tuning | Configurable | Configurable | |
| 74 | |
| 75 | **Resolution steps**: See [workflow-resource-profiles.md](./references/workflow-resource-profiles.md) |
| 76 | |
| 77 | ### Workflow 3: Capacity Throttling (HTTP 430) |
| 78 | |
| 79 | **Symptoms**: `TooManyRequestsForCapacity` errors, jobs queued or rejected. |
| 80 | |
| 81 | | SKU | Spark VCores | Queue Limit | |
| 82 | | ---- | ------------ | ----------- | |
| 83 | | F2 | 4 | 4 | |
| 84 | | F8 | 16 | 8 | |
| 85 | | F64 | 128 | 64 | |
| 86 | | F128 | 256 | 128 | |
| 87 | | F256 | 512 | 256 | |
| 88 | |
| 89 | **Formula**: 1 Capacity Unit = 2 Spark VCores |
| 90 | |
| 91 | **Resolution steps**: See [workflow-capacity-throttling.md](./references/workflow-capacity-throttling.md) |
| 92 | |
| 93 | ### Workflow 4: Data Source Configuration Issues |
| 94 | |
| 95 | **Symptoms**: Agent qu |