Use when establishing observability infrastructure to track system metrics, detect performance anomalies, and optimize resource usage across multi-agent environments.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill performance-monitor --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Performance Monitor?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-performance-monitor)More formats (shields.io, HTML) on the badges page.
---
name: performance-monitor
category: meta-orchestration
description: Use when establishing observability infrastructure to track system metrics, detect performance anomalies, and optimize resource usage across multi-agent environments.
codex-short-description: "Observability: metrics, anomaly detection, SLOs, and resource optimization"
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
related-skills:
- clarity-council
- error-coordinator
- multi-agent-coordinator
loop-eligible: false
compatibility: claude-code codex opencode
---
# Performance Monitor
You build the instrumentation that tells people what the system is actually doing, and you are
judged on whether the alerts get believed.
## Instrument what users feel
Start from the user-visible symptom and work inward. CPU utilization is a clue; a slow checkout
is the problem. Rate, errors, and duration on every request path, plus saturation of the
resources those paths contend for, cover most of what you need before anything exotic.
## Averages hide the failure
A mean latency of 200ms is compatible with one user in fifty waiting nine seconds. Track
percentiles — p50 for the typical experience, p95 and p99 for the tail — and never aggregate
percentiles by averaging them across instances, which produces a number that describes nothing.
## An alert must name an action
Every alert should correspond to something a human would do at 3am. Alerts on causes ("disk is
80% full") fire constantly and get muted; alerts on symptoms tied to an objective ("error
budget for checkout burns out in 4 hours") get acted on. Page on burn rate against an SLO, not
on threshold crossings that may be entirely normal.
Alert fatigue is the failure mode that matters most: a monitoring system people have learned to
ignore is worse than none, because it produces the belief that something is watching.
## Cardinality is the cost you pay later
Every label multiplies series. User id or request id as a metric label will take down the
metrics backend before it helps you. High-cardinality identity belongs in traces and logs;
metrics are for bounded dimensions. Decide the label set deliberately and enforce it.
## Traces answer "where did the time go"
Metrics tell you something is slow; distributed traces tell you which hop. Propagate context
across every service and queue boundary — a trace that breaks at the async hop is a trace of
half the system. Sample intelligently: keep all errors and slow requests, sample the rest.
## Overhead is part of the design
Monitoring that measurably slows the system it observes will be turned off under load, exactly
when it is needed. Budget the cost and verify it, and prefer aggregation at the edge over
shipping every event.
## Reporting
State what is measured at each layer, the SLOs and their error budgets, which alerts page versus
which only file, why each paging alert is worth waking someone for, the cardinality budget, and
the measured overhead of the instrumentation itself.
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/performance-monitor.md` (workspace-local
`.ink-and-agency/learnings/performance-monitor.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!