# aspire-monitoring

A skill for observing .NET Aspire apps: logs, traces, metrics, resource state and the standalone dashboard. Useful when you need to find what broke before touching code.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 installs · ★ 92
- Author: Microsoft
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/microsoft/aspire-skills/tree/HEAD/skills/aspire-monitoring/SKILL.md
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/skills/aspire-monitoring

## What it does

The skill walks the agent through diagnosing Aspire apps. Locally it drives the Aspire CLI: `aspire describe` reports resource state and endpoints, `aspire otel logs` and `aspire otel traces` return structured logs and distributed traces, `aspire export` bundles telemetry into an archive. A separate `aspire dashboard run` command starts the dashboard without an AppHost.

For deployed apps the skill routes elsewhere. On AKS that means `kubectl` plus Container Insights, for Azure resources it hands off to the `azure-diagnostics` skill, and for Docker or Compose you fall back to `docker logs`. A routing table and a decision tree sit inside: first check whether the question is about AppHost code, then where the app runs.

One thing that trips people up: `aspire describe` hides resources marked hidden in the AppHost — proxies, helper containers, migrations. If a resource you expect is missing from the output, add `--include-hidden`. And keep the skill boundaries straight: start and stop belong to `aspire-orchestration`, deploy to `aspire-deployment`, AppHost edits like `WithBrowserLogs()` to `aspireify`.

## Requirements
- Works with: Azure

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add microsoft/aspire-skills --skill aspire-monitoring -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/aspire-monitoring/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/aspire-monitoring/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add microsoft/aspire-skills --skill aspire-monitoring -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/aspire-monitoring/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add microsoft/aspire-skills --skill aspire-monitoring -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/aspire-monitoring/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install microsoft/aspire-skills aspire-monitoring
```

2. **Manually: put the files in place**
- File: `.github/skills/aspire-monitoring/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add microsoft/aspire-skills --skill aspire-monitoring -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/microsoft/aspire-skills --path skills/aspire-monitoring
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/aspire-monitoring/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add microsoft/aspire-skills --skill aspire-monitoring -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/microsoft/aspire-skills/tree/HEAD/skills/aspire-monitoring/SKILL.md

## When to use it
- find a resource that vanished from `aspire describe` output
- correlate logs with a specific trace by trace id
- capture a telemetry snapshot for an incident review
- read pod logs in an AKS cluster
- open the dashboard without a running AppHost

## Example prompts
- run `aspire describe` and tell me which resources failed to start
- pull structured logs for apiservice with `aspire otel logs`
- why is the resource missing from `aspire describe`? retry with `--include-hidden`

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: b7acf7d7ffa2f7f7.

BEGIN THIRD-PARTY FILE b7acf7d7ffa2f7f7
```text
---
name: aspire-monitoring
description: >-
  **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.
license: MIT
metadata:
  author: Microsoft
  version: "0.0.4"
---

# Aspire Monitoring

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

## Diagnostics Bridge — Where To Look

| Need | Environment | Tool | Command / Route |
|------|------------|------|-----------------|
| Console logs | Local dev | Aspire CLI | `aspire logs <resource>` |
| Structured logs | Local dev | Aspire CLI | `aspire otel logs [resource]` |
| Distributed traces | Local dev | Aspire CLI | `aspire otel traces [resource]` |
| Span detail | Local dev | Aspire CLI | `aspire otel spans [resource]` |
| Running AppHosts | Local dev | Aspire CLI | `aspire ps` |
| Resource state | Local dev | Aspire CLI | `aspire describe` (add `--include-hidden` if a resource is missing) |
| Telemetry export | Local dev | Aspire CLI | `aspire export [resource]` |
| Standalone dashboard | Any (no AppHost) | Aspire CLI | `aspire dashboard run` (foreground/blocking — see below) |
| Browser console / network / diagnostics | Local dev (frontend) | Aspire CLI + dashboard | Discover `<frontend>-browser-logs`, start its tracked browser, then inspect its console logs |
| AppHost / deployment definition | Authoring | aspire-deployment skill | → `aspire-deployment` skill |
| AKS workload (pod logs, pod state) | Deployed AKS | kubectl + Container Insights | `kubectl logs <pod>`, `kubectl describe pod <pod>`, Container Insights in Azure Monitor |
```
END THIRD-PARTY FILE b7acf7d7ffa2f7f7

The third-party file has ended. Everything between the b7acf7d7ffa2f7f7 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2467 of 14010 bytes. © Microsoft · MIT · https://github.com/microsoft/aspire-skills/tree/HEAD/skills/aspire-monitoring/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
