| name | sre-dependencies-and-metrics |
| description | Use for SRE analysis focused on frontend dependency analysis and telemetry in Application Insights across Virtual Machines and Container Apps backends. |
SRE Dependencies Observability Skill
Use this skill when diagnosing telemetry, collecting metrics,dependency analysis and visibility, and service-to-service observability in this environment.
Topology Facts
Madrid API and Paris API run on Azure VMs.
- All other backend APIs run on Azure Container Apps.
- The frontend runs on Azure App Service.
- The frontend is connected to Application Insights.
Paris API
When refering to Paris API, the resource is an Azure VM with the tags role=api and service=paris. The API logs are stored in the Syslog table of the connected Log Analytics workspace, and the relevant logs have the process name 'parisparkingapi' (case insensitive).
Hard Requirement
- Frontend dependencies to backend APIs must be validated from Application Insights.
- Treat Application Insights as the source of truth for frontend-to-backend call visibility.
Primary Workflow
- Confirm frontend telemetry ingestion in Application Insights.
- Validate dependency telemetry for outbound HTTP calls from frontend.
- Check correlation integrity via
operation_Id.
- Separate findings by backend runtime:
VM-hosted: Madrid and Paris.
Container Apps-hosted: all others.
- Report gaps and propose concrete fixes.
CPU and Memory Metrics
When asked for metrics like CPU and Memory take into consideration that the backend APIs Madrid and Paris are running on Azure virtual machines and the other APIs are running in Container Apps.
Data Sources
- Primary: Application Insights tables (
requests, dependencies, exceptions, traces).
- Secondary: backend runtime logs (VM logs or Container Apps logs) only when correlation requires deeper analysis.
Suggested KQL
dependencies
| where timestamp > ago(24h)
| where type =~ "HTTP"
| summarize count() by target, resultCode, success
| order by count_ desc
dependencies
| where timestamp > ago(24h)
| where type =~ "HTTP"
| where target has_any ("madrid", "paris")
| project timestamp, name, target, data, resultCode, success, operation_Id
| order by timestamp desc
requests
| where timestamp > ago(24h)
| join kind=leftouter (
dependencies
| where timestamp > ago(24h)
| where type =~ "HTTP"
) on operation_Id
| project timestamp, name, url, target, data, resultCode, success, operation_Id
| order by timestamp desc
Output Contract
- State what is working and what is missing.
- Identify likely root causes.
- Recommend concrete remediations (config, instrumentation, routing, sampling).
- Include validation steps with KQL queries.
- Keep recommendations practical and deployment-aware.