MCPInstall

aspire-monitoring

ANALYSIS SKILL - Observe Aspire apps: logs, traces, metrics, resource state, telemetry export, browser telemetry, and the standalone dashboard. Routes between local Aspire CLI, AKS workload diagnostics, and deployed Azure resource health. USE FOR: aspire logs, aspire otel logs, aspire otel traces, aspire otel spans, aspire describe, aspire ps, aspire export, aspire dashboard run, describe --include-hidden, browser logs in dashboard, terminal view, DevTunnel URLs, WithBrowserLogs, App Insights query, AKS pod logs, container app logs. DO NOT USE FOR: start/stop/wait (use aspire-orchestration), deploy/publish/destroy (use aspire-deployment), AppHost code edits like WithBrowserLogs() (use aspireify), Azure provisioning (use azure-prepare). INVOKES: aspire CLI, azure-diagnostics (deployed Azure), kubectl + Container Insights. FOR SINGLE OPERATIONS: Run the aspire CLI command directly for quick log or describe lookups.

Installs
1.1K
Last 24h
+27
Trending rank
#4665
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/microsoft/aspire-skills --skill aspire-monitoring
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads aspire-monitoring automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Aspire Monitoring

Aspire CLI provides full observability locally. For deployed apps, route to platform-specific tools.

Diagnostics Bridge — Where To Look

NeedEnvironmentToolCommand / Route
Console logsLocal devAspire CLIaspire logs <resource>
Structured logsLocal devAspire CLIaspire otel logs [resource]
Distributed tracesLocal devAspire CLIaspire otel traces [resource]
Span detailLocal devAspire CLIaspire otel spans [resource]
Running AppHostsLocal devAspire CLIaspire ps
Resource stateLocal devAspire CLIaspire describe (add --include-hidden if a resource is missing)
Telemetry exportLocal devAspire CLIaspire export [resource]
Standalone dashboardAny (no AppHost)Aspire CLIaspire dashboard run (foreground/blocking — see below)
Browser console / network / diagnosticsLocal dev (frontend)Aspire CLI + dashboardDiscover <frontend>-browser-logs, start its tracked browser, then inspect its console logs
AppHost / deployment definitionAuthoringaspire-deployment skill→ aspire-deployment skill
AKS workload (pod logs, pod state)Deployed AKSkubectl + Container Insightskubectl logs <pod>, kubectl describe pod <pod>, Container Insights in Azure Monitor
Azure resource health (App Insights, Front Door, NSP, private endpoint)Deployed Azureazure-diagnostics→ azure-diagnostics skill
App Service / Container Apps logsDeployed Azureazure-diagnostics→ azure-diagnostics skill
Logs/stateDeployed Docker / ComposeDocker CLIdocker logs <container>, docker compose logs <service>

Decision tree:

  1. Is this about AppHost code or deployment definition? → aspire-deployment skill.
  2. Is the app running locally via aspire start? → Aspire CLI.
  3. Is it deployed to AKS? → kubectl + Container Insights for workload; azure-diagnostics for the cluster's Azure resources.
  4. Is it deployed to other Azure (App Service, Container Apps)? → azure-diagnostics.
  5. Is it deployed to Docker / Compose? → docker / docker compose CLI.

See diagnostics-bridge.md for detailed routing.

Investigation Workflow

When something is wrong, investigate before editing code:

  1. aspire describe — check resource state and endpoints
  2. aspire otel logs <resource> — structured logs first
  3. aspire logs <resource> — console output as secondary view
  4. aspire otel traces <resource> — cross-service activity
  5. aspire export — zipped telemetry snapshot for deeper analysis

Local Commands Reference

CommandPurposeExample
aspire logs <resource>Console stdout/stderraspire logs apiservice
aspire logs --followStream logs in real-timeaspire logs apiservice --follow
aspire otel logsStructured OpenTelemetry logsaspire otel logs
aspire otel tracesDistributed trace dataaspire otel traces
aspire otel spansIndividual span detailaspire otel spans
aspire otel logs --trace-id <id>Logs correlated to trace (⚠️ verify flag)aspire otel logs --trace-id abc123
aspire otel logs --dashboard-urlQuery a standalone dashboard (login URL or base URL + --api-key)aspire otel logs --dashboard-url "http://localhost:18888/login?t=TOKEN" --follow
aspire otel traces --dashboard-urlQuery a standalone dashboardaspire otel traces --dashboard-url "http://localhost:18888/login?t=TOKEN"
aspire describeResource state, endpoints, healthaspire describe --format Json
aspire describe --include-hiddenInclude proxies, helper containers, migrationsaspire describe --include-hidden --format Json
aspire resourcesCompatibility alias for resource statePrefer aspire describe in new guidance
aspire exportPortable telemetry bundleaspire export
aspire dashboard runStandalone dashboard (foreground/blocking)aspire dashboard run

Hidden resources are filtered by default

aspire describe and other CLI commands filter out resources marked hidden in the AppHost (proxies, helper containers, migrations). The default output is correct for normal app inspection. Add --include-hidden when:

  • Debugging proxies, sidecar/helper containers, or migration jobs.
  • An expected resource is "missing" from aspire resources / aspire describe.
  • Triaging connectivity or wiring issues that may involve infrastructure resources.

Tips for Agents

# ✅ Use --format Json for machine parsing (supported: describe, start)
aspire describe --format Json

# ✅ When a resource you expect is missing, retry with --include-hidden
aspire describe --include-hidden --format Json

# ✅ Get endpoints from describe, not guessing ports
ENDPOINT=$(aspire describe apiservice --format Json | jq -r '.endpoints[0].url')

# ✅ Use --apphost <path> when multiple AppHosts exist
aspire describe --apphost ./src/MyApp.AppHost/

Version-Specific Diagnostics

Check the running dashboard version and actual error before applying a historical fix. An older fix does not establish that downgrading a newer dashboard is a working mitigation, even temporarily or in an isolated test.

SymptomGuidance
Resource missing from aspire describeRe-run aspire describe --include-hidden; do not use removed aspire ps --include-hidden.
DevTunnel is healthy but has no public URL on 13.5.0-13.5.2Fixed in 13.5.3. Use a compatible release containing the fix before changing endpoint configuration.
Known multi-path icon Graph crash on 13.5.0-13.5.2Fixed in 13.5.3. Use a compatible release containing the fix.
Dashboard Graph crashes on 13.5.3 or laterKeep the selected version. Capture the browser console stack trace and dashboard logs to diagnose a separate cause or regression; do not recommend installing 13.5.3 as a workaround.

Resolved in 13.3: The standalone-dashboard workaround for #16236 is obsolete — use aspire dashboard run (see below).

Standalone Dashboard (aspire dashboard run)

aspire dashboard run launches the Aspire Dashboard without an AppHost, so any OTLP-emitting application (Aspire or not) can stream telemetry into it.

aspire dashboard run
# Dashboard:  http://localhost:18888/login?t=<TOKEN>
# OTLP/gRPC:  http://localhost:4317
# OTLP/HTTP:  http://localhost:4318

⚠️ Foreground / blocking. aspire dashboard run does not return until you stop it (Ctrl-C). Agents must treat it as a long-running background process — start it with the bash tool's mode="async", capture the dashboard URL and token from initial output, and leave it running. Do not invoke it as a one-shot synchronous command, and do not wait for it to "finish".

Connect the Aspire CLI to a standalone dashboard

aspire otel logs and aspire otel traces accept --dashboard-url. The simplest form passes the full login URL printed by aspire dashboard run — the CLI normalizes it automatically:

# Stream structured logs from a standalone dashboard (login URL form)
aspire otel logs --dashboard-url "http://localhost:18888/login?t=TOKEN" --follow

# Search recent traces
aspire otel traces --dashboard-url "http://localhost:18888/login?t=TOKEN"

For dashboards configured with API-key authentication (e.g., the standalone container image with a separate API key), pass --api-key alongside the base --dashboard-url:

aspire otel logs --dashboard-url https://my-dashboard.example.com --api-key "$DASHBOARD_API_KEY" --follow

The container-image standalone dashboard still works for environments where the CLI isn't available.

Browser Logs (Aspire.Hosting.Browsers)

When a frontend has already opted into WithBrowserLogs(), Aspire creates a child resource named <frontend>-browser-logs. Browser console messages, errors, exceptions, and network diagnostics are sent to that child resource's console log stream, not to the frontend's OpenTelemetry logs.

  1. Begin with normal aspire describe or aspire resources output to find <frontend>-browser-logs; aspire ps no longer lists resources. It is a normal child resource, so retry with aspire describe --include-hidden only if unavailable.

  2. Correlate it to the frontend through its parent relationship and Source property.

  3. Start a tracked browser session with:

    aspire resource <frontend>-browser-logs open-tracked-browser
    
  4. Inspect the browser diagnostics with:

    aspire logs <frontend>-browser-logs
    

Do not use aspire otel logs <frontend> for browser output; it does not return that child resource's browser diagnostics.

NeedAction
Inspect existing browser diagnosticsDiscover <frontend>-browser-logs, start open-tracked-browser, then run aspire logs <frontend>-browser-logs
Confirm the browser resource belongs to a frontendCheck the child resource's parent relationship and Source property
Confirm a frontend has browser logging enabledCheck the AppHost for .WithBrowserLogs() on the resource
Add WithBrowserLogs() to a resource→ aspireify skill (AppHost authoring) — do not edit the AppHost from this skill

Dashboard UX Features

Agents inspecting a running dashboard should know:

  • Notification center (bell icon, top-right) — surfaces results of resource commands and lifecycle events. Inline command responses appear here instead of being scraped from the logs panel.
  • Rebuild command — available on container and project resources; rebuilds the image and restarts the resource without restarting the whole AppHost. Result lands in the notification center.
  • Structured command results — custom resource commands return ExecuteCommandResult with a Message payload that the dashboard renders inline; HTTP commands set HttpCommandResultMode.Auto | Json | Text | None to control how the response body is shown.
  • 13.5 filtering — filter telemetry by timestamp, use == / != for exact numeric values, and search console-log text while streams continue updating.
  • Terminal view — resources configured with experimental WithTerminal() open as interactive sessions in the dashboard.
  • No dashboard AI Assistant — it was removed in 13.5. Use aspire agent init and the AppHost/CLI agent integration instead.
  • VS Code launch is opt-in — the Aspire extension no longer opens the dashboard automatically. Use its in-editor dashboard or configure dashboardBrowser / launch.json.

Authoring custom commands or WithBrowserLogs() calls is AppHost work — route to aspireify. This skill is for observing what those features surface in the dashboard.

Why Aspire CLI Can't Do Remote Diagnostics

The Aspire CLI talks to a running AppHost through a local backchannel socket at ~/.aspire/backchannels/. This is by design — there is no remote backchannel. For deployed apps, route to platform-specific tools (azure-diagnostics, kubectl, docker).

Exception: if a Dashboard is reachable (deployed alongside the app, or running standalone), aspire otel logs and aspire otel traces can query it via --dashboard-url (login URL form) and optional --api-key (see the Standalone Dashboard section above). This does not apply to aspire logs or aspire describe.

Handoff Rules

ScenarioRoute To
Start/stop/wait/rebuild lifecycle→ aspire-orchestration skill
Deploy, publish, pipeline steps, AppHost compute environment binding→ aspire-deployment skill
AppHost code changes (WithBrowserLogs(), custom commands, WithHttpCommand)→ aspireify skill
Deployed Azure resource health (App Insights, Front Door, NSP, private endpoint, ACA, App Service)→ azure-diagnostics skill (azure-skills)
AKS workload diagnostics (pod logs, pod state, Container Insights)→ kubectl + Azure Monitor Container Insights
Docker / Compose container logs→ docker logs / docker compose logs

Project-Local Skill Routing

If .agents/skills/aspire/SKILL.md exists (from aspire agent init), see its references/monitoring.md for deeper telemetry workflow guidance.

References

  • diagnostics-bridge.md — Local vs deployed routing detail
  • monitoring.md — Telemetry inspection and export patterns
  • playwright-handoff.md — Find the correct Aspire frontend URL before browser testing

FAQ

What does the aspire-monitoring skill do?

ANALYSIS SKILL - Observe Aspire apps: logs, traces, metrics, resource state, telemetry export, browser telemetry, and the standalone dashboard. Routes between local Aspire CLI, AKS workload diagnostics, and deployed Azure resource health. USE FOR: aspire logs, aspire otel logs, aspire otel traces, aspire otel spans, aspire describe, aspire ps, aspire export, aspire dashboard run, describe --include-hidden, browser logs in dashboard, terminal view, DevTunnel URLs, WithBrowserLogs, App Insights query, AKS pod logs, container app logs. DO NOT USE FOR: start/stop/wait (use aspire-orchestration), deploy/publish/destroy (use aspire-deployment), AppHost code edits like WithBrowserLogs() (use aspireify), Azure provisioning (use azure-prepare). INVOKES: aspire CLI, azure-diagnostics (deployed Azure), kubectl + Container Insights. FOR SINGLE OPERATIONS: Run the aspire CLI command directly for quick log or describe lookups.

How do I install aspire-monitoring?

Run npx skills add https://github.com/microsoft/aspire-skills --skill aspire-monitoring in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/aspire-monitoring/ (personal) or .claude/skills/aspire-monitoring/ (project).

Which AI agents can use aspire-monitoring?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is aspire-monitoring safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains aspire-monitoring?

It is published by microsoft in microsoft/aspire-skills, and it is an official skill from the maker of the technology it covers. It has 1,106 recorded installs.

More from microsoft/aspire-skills

View all →

aspire

microsoft/aspire-skills

WORKFLOW SKILL - Aspire router. Detects AppHosts, enforces guardrails, and selects the right sub-skill. USE FOR: Aspire AppHost, Aspire CLI, distributed app, cloud-native .NET, aspire start/stop/resource/deploy/destroy/publish/init/new/add/wait/describe/ps/logs/otel, aspire agent init, WithBrowserLogs, WithTerminal, Interaction Service, apphost.mts, TS package managers, Yarn Classic, custom resource commands, .aspire/modules recovery, ProjectResource to DotnetProjectResource migration, or Playwright URL discovery. DO NOT USE FOR: non-Aspire projects or ordinary build/test tasks. INVOKES: aspire-init, aspireify, aspire-project-v2-migration, aspire-orchestration, aspire-deployment, aspire-monitoring. FOR SINGLE OPERATIONS: Route directly to the matching sub-skill.

OfficialDevOps & Cloud1.2K installs

aspire-orchestration

microsoft/aspire-skills

WORKFLOW SKILL — Manage Aspire lifecycle in VS Code or the CLI. WHEN: "start or stop my Aspire app", "aspireapphoststart", "aspireapphoststop", "notEditorOwned", "ambiguousSession", "aspire start", "aspire stop", "aspire wait", resource restart, file-lock errors (MSB3491 or CS2012), port conflicts, git worktrees, "--isolated", "aspire update --self", "aspire update --migrate", "aspire describe --include-hidden", "aspire stop --force", "aspire terminal", integration discovery, default watch, or hot reload. INVOKES: VS Code lifecycle tools first when exposed; Aspire CLI for readiness, inspection, resource operations, isolated worktree starts, and allowed fallbacks. DO NOT USE FOR: deploy/publish/destroy (aspire-deployment), logs/traces/metrics (aspire-monitoring), or AppHost code and resource wiring (aspireify). FOR SINGLE OPERATIONS: Load the matching editor tool first, then obey the exact-target, worktree-isolation, and stop-result rules below.

OfficialDevOps & Cloud1.1K installs

aspireify

microsoft/aspire-skills

WORKFLOW SKILL - Wire Aspire AppHosts or repair TypeScript AppHost toolchains. Scans the repo, proposes a resource graph, edits C, file-based C, or TypeScript AppHosts, wires ServiceDefaults + OTel, validates with aspire start, then stops. USE FOR: wire/scaffold AppHost, add Postgres/Redis/Rabbit/Mongo, connect frontend to API, after aspire init, AddNextJsApp, AddViteApp, WithBrowserLogs, WithTerminal, Interaction Service, command arguments, apphost.cs, apphost.mts, unified withEnvironment, .aspire/modules refusal, config/secrets, TS dependency restore, pnpm/yarn/bun, or Yarn Classic. DO NOT USE FOR: skeleton drop (aspire-init), lifecycle-only start/stop/wait/restart or aspire update --migrate (aspire-orchestration), publish/deploy/destroy (aspire-deployment), logs/traces (aspire-monitoring). INVOKES: aspire CLI, AppHost source edits, ServiceDefaults wiring. FOR SINGLE OPERATIONS: Run aspire add PACKAGE directly for a one-off integration.

OfficialDevOps & Cloud661 installs

aspire-init

microsoft/aspire-skills

WORKFLOW SKILL - First-run flow for adding Aspire to a repo. Picks aspire new (greenfield) or aspire init (existing repo), drops the AppHost skeleton, then hands off to aspireify for resource wiring. USE FOR: aspire init, aspire new, aspire-starter, aspire-ts-starter, aspire-py-starter, add Aspire to existing repo, scaffold Aspire app, bootstrap Aspire, no AppHost detected, install aspireify, apphost.mts, generated .aspire/modules. DO NOT USE FOR: AppHost wiring on an existing AppHost (use aspireify), start/stop/wait (use aspire-orchestration), deploy/publish (use aspire-deployment), logs/traces (use aspire-monitoring), repo that already has an AppHost. INVOKES: aspire CLI (init, new, doctor), aspireify (handoff after skeleton drop). FOR SINGLE OPERATIONS: Run aspire init or aspire new TEMPLATE directly.

OfficialDevOps & Cloud655 installs

aspire-deployment

microsoft/aspire-skills

WORKFLOW SKILL — Deploy Aspire apps from AppHost models to Docker Compose, Kubernetes, Azure, AWS, or preview Radius. WHEN: "deploy Aspire app", "publish Aspire artifacts", "deploy to Azure Container Apps", "generate Kubernetes artifacts", "deploy to Radius", "tear down Aspire deployment". INVOKES: aspire CLI, Aspire docs, target cloud/container CLIs. FOR SINGLE OPERATIONS: use generic Azure, Kubernetes, Docker, AWS, or Radius tools only when no Aspire AppHost exists.

OfficialDevOps & Cloud646 installs

aspire-project-v2-migration

microsoft/aspire-skills

Open the skill to read its SKILL.md instructions.

Popular devops & cloud skills

View category →

microsoft-foundry

microsoft/azure-skills

Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure

OfficialDevOps & Cloud579.1K installs

azure-diagnostics

microsoft/azure-skills

Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.

OfficialDevOps & Cloud569.8K installs

azure-prepare

microsoft/azure-skills

Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.

OfficialDevOps & Cloud569K installs

azure-ai

microsoft/azure-skills

Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.

OfficialDevOps & Cloud568.8K installs

azure-deploy

microsoft/azure-skills

Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.

OfficialDevOps & Cloud568.6K installs

azure-validate

microsoft/azure-skills

Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.

OfficialDevOps & Cloud568K installs