analyzing-appinsights-performance

Analyzes Application Insights CSV exports to locate and fix slow .NET and EF Core operations.

Updated Jun 8, 2026
One-click install
npx skills add https://github.com/heidgert/claude-skills --skill analyzing-appinsights-performance-heidgert
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: analyzing-appinsights-performance
Source: https://github.com/heidgert/claude-skills/tree/main/analyzing-appinsights-performance
Command: npx skills add https://github.com/heidgert/claude-skills --skill analyzing-appinsights-performance-heidgert

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Application Insights log exports are rich but noisy, making it hard to pinpoint why a specific request is slow. This Skill parses the CSV export, ranks performance candidates (slow requests, slow SQL, N+1 patterns, app-time gaps), traces the chosen issue to the exact executing code in your .NET repository, and guides a scoped fix through to a linked Azure DevOps work item and PR. ## Core Features & Use Cases - Structured CSV Parsing: A bundled Python parser handles multiline quoted SQL fields and outputs JSON with per-request durations, normalized SQL signatures, duplicate query detection, and app-time gap calculations. - Guided Six-Phase Workflow: Validates the repo matches the telemetry namespace, presents a ranked candidate table for the user to pick from, traces the endpoint to the offending LINQ/EF Core code, proposes a scoped diff, runs a regression sweep, and ships via Azure DevOps. - Scope Discipline: Enforces one issue at a time, cross-checks git history before calling fixes incomplete, and keeps work item titles in plain language for product owners and testers. - Use Case: You export an App Insights CSV showing a 35-second request. The Skill identifies a 32-second app-time gap caused by materializing an unfiltered result set, locates the exact LINQ query in your controller's repository, and proposes a filtered Where clause fix. ## Quick Start Analyze the attached Application Insights CSV export and help me find and fix the slowest request in this repository.

Frequently Asked Questions about analyzing-appinsights-performance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I analyze Application Insights logs for slow requests?

Export the logs as CSV from Application Insights and run the bundled parser script on the file. It outputs JSON ranking each request by duration, dependency time, duplicate SQL signatures, and app-time gap, so you can pick the worst offender to investigate.

How to find N+1 query problems in EF Core from telemetry?

The parser normalizes SQL by stripping parameter values and groups identical signatures per request. Any signature firing two or more times in one request is flagged as a duplicate, which typically indicates an N+1 loop or repeated load-the-world reads.

What is an app-time gap in Application Insights data?

App-time gap is the request's total duration minus the sum of its dependency durations. A large gap means time was spent in-process, such as materialization, mapping, or serialization, rather than waiting on SQL or HTTP calls.

Does this work with KQL JSON or raw aitrace exports?

No, the parser expects a specific CSV export format with timestamp, itemType, name, duration, resultCode, message, target, and type columns. KQL JSON or raw .aitrace files are explicitly out of scope and will fail header validation.

Why does the skill exit before analyzing my log file?

It exits when the operation namespace in the telemetry does not match any .csproj in the current working directory. Open the repository that actually contains the executing code and run the analysis again.

Can it create Azure DevOps work items and pull requests?

Yes, after the fix is implemented and a regression sweep passes, it creates a work item with az boards, pushes a fix branch, and opens a linked PR with az repos pr create. It confirms with you before running these shared-state commands.