Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
microsoft avatar

Aspire Monitoring

  • 124 installs
  • 74 repo stars
  • Updated July 27, 2026
  • microsoft/aspire-skills

aspire-monitoring is an agent skill that observes Aspire apps via CLI logs, OpenTelemetry traces, resource state, and dashboard telemetry with deployed diagnostics routing.

About

The aspire-monitoring skill observes Aspire applications through logs, traces, metrics, resource state, telemetry export, browser telemetry, and the standalone dashboard. It routes between local Aspire CLI commands and deployed platform diagnostics including kubectl for AKS workloads, azure-diagnostics for Azure resources, and docker for Compose containers. Local investigation follows describe resource state, structured aspire otel logs, console aspire logs, distributed traces, and aspire export for zipped telemetry snapshots. Commands cover aspire logs, aspire otel logs, aspire otel traces, aspire otel spans, aspire describe with optional --include-hidden for proxies and helper containers, aspire ps, and aspire dashboard run for OTLP-emitting apps without an AppHost. Agents should use --format Json for machine parsing, retry with --include-hidden when resources are missing, and run aspire dashboard run asynchronously because it blocks until stopped. Browser telemetry from Aspire.Hosting.Browsers surfaces console logs and network data when WithBrowserLogs is wired, while AppHost edits route to aspireify. Handoffs send lifecycle commands to aspire-orchestration, deployment to aspir.

  • Diagnostics bridge table routes local CLI versus deployed platform tools.
  • Five-step investigation workflow from describe through telemetry export.
  • Supports aspire otel logs, traces, spans, and --include-hidden resources.
  • Documents standalone aspire dashboard run with OTLP and async agent usage.
  • Handoffs lifecycle, deployment, and AppHost authoring to sibling skills.

Aspire Monitoring by the numbers

  • 124 all-time installs (skills.sh)
  • Ranked #500 of 1,453 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

aspire-monitoring capabilities & compatibility

Capabilities
local versus deployed diagnostics routing bridge · aspire cli logs traces spans and describe comman · hidden resource discovery with include hidden fl · standalone dashboard run and otlp connection · browser telemetry inspection and handoff rules
Works with
azure · kubernetes · docker
Use cases
devops · debugging
npx skills add https://github.com/microsoft/aspire-skills --skill aspire-monitoring

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs124
repo stars74
Last updatedJuly 27, 2026
Repositorymicrosoft/aspire-skills

How do I inspect Aspire app logs, traces, and resource health locally or on deployed Azure and AKS platforms?

Observe Aspire apps locally via CLI logs, traces, metrics, and dashboard telemetry with routing to deployed platform tools.

Who is it for?

Developers debugging running Aspire apps who need logs, OTEL traces, describe output, or dashboard telemetry inspection.

Skip if: Skip for aspire start/stop lifecycle, AppHost code edits, or Azure provisioning workflows.

When should I use this skill?

User asks for aspire logs, aspire otel traces, aspire describe, aspire dashboard run, or browser logs in dashboard.

What you get

Structured telemetry from Aspire CLI or routed platform tools with resource state and exportable snapshots.

Files

SKILL.mdMarkdownGitHub ↗

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]
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 / screenshotsLocal dev (frontend)Aspire dashboardSurfaced via Aspire.Hosting.Browsers + WithBrowserLogs()
AppHost / deployment definitionAuthoringaspire-deployment skillaspire-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-diagnosticsazure-diagnostics skill
App Service / Container Apps logsDeployed Azureazure-diagnosticsazure-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 ps --format JsonResource list with state (filtered)aspire ps --format Json
aspire ps --include-hidden --format JsonResource list with hidden resourcesaspire ps --include-hidden --format Json
aspire exportPortable telemetry bundleaspire export
aspire dashboard runStandalone dashboard (foreground/blocking)aspire dashboard run

Hidden resources are filtered by default

aspire ps, 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 ps / aspire describe.
  • Triaging connectivity or wiring issues that may involve infrastructure resources.

Tips for Agents

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

# ✅ When a resource you expect is missing, retry with --include-hidden
aspire ps --include-hidden --format Json | jq '.[] | {name, displayName, state, hidden}'

# ✅ 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/

Known Diagnostics Issues

IssueSymptomWorkaround
TS AppHost DNS failure (#15782)aspire otel "No such host" for *.dev.localhostUse --dashboard-url localhost:PORT
--isolated mode telemetry (#16107)OTEL port not randomized in isolated modeAvoid --isolated if telemetry is needed
Resource missing from aspire ps / aspire describeHidden-by-default resources such as proxies, helpers, or migrationsRe-run with --include-hidden
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 Telemetry (Aspire.Hosting.Browsers)

The Aspire.Hosting.Browsers integration captures browser console logs, network requests, and screenshots from frontend resources during local development and surfaces them in the dashboard alongside server-side telemetry. Frontend resources opt in via WithBrowserLogs().

NeedAction
Inspect browser telemetry that is already wiredOpen the dashboard; browser logs / network / screenshots appear next to server telemetry for the resource
Confirm a frontend has it enabledCheck the AppHost for .WithBrowserLogs() on the resource (e.g., AddViteApp("frontend").WithBrowserLogs())
Add WithBrowserLogs() to a resource`aspireify` skill (AppHost authoring) — do not edit the AppHost from this skill

When parsing telemetry programmatically, browser logs surface as additional OTLP log records associated with the frontend resource — aspire otel logs <frontend-resource> returns them alongside server logs.

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.
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 lifecycleaspire-orchestration skill
Deploy, publish, pipeline steps, AppHost compute environment bindingaspire-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 logsdocker 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

Related skills

FAQ

What does aspire-monitoring produce?

Telemetry from Aspire CLI commands, resource state via describe, and routed diagnostics for deployed AKS, Azure, or Docker workloads.

When should I use aspire-monitoring?

When inspecting logs, traces, metrics, or dashboard telemetry for a locally running or deployed Aspire application.

Is aspire-monitoring safe to install?

Review the Security Audits panel on this page before installing in production.

DevOps & CI/CDmonitoring

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.