
Agent Performance Monitor
Instrument agent swarms and tasks with real-time metrics, SLA checks, and bottleneck alerts while you run production workloads.
Overview
Agent Performance Monitor is an agent skill most often used in Operate (also Ship perf, Build backend) that collects real-time agent and swarm metrics and supports SLA monitoring, bottleneck analysis, and anomaly detecti
Install
npx skills add https://github.com/ruvnet/ruflo --skill agent-performance-monitorWhat is this skill?
- Multi-dimensional collectors for system, agent, swarm coordination, task, resource, and network metrics
- Configurable alert thresholds and aggregation pipelines for ongoing SLA tracking
- Bottleneck analysis oriented toward agent and coordination workloads, not just host CPU
- JavaScript-oriented MetricsCollector pattern for wiring collectors, aggregators, and streams
- Designed as a Performance Optimization Agent profile for optimization-focused automation
- Six metric domains: system, agents, coordination, tasks, resources, and network
Adoption & trust: 656 installs on skills.sh; 58.5k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You run agents or swarms in production but cannot see coordination latency, per-agent load, or SLA drift until users complain.
Who is it for?
Builders operating agent swarms, task runners, or orchestration layers who need explicit performance and SLA instrumentation patterns.
Skip if: Teams that only need a one-line curl health check or already have a full hosted APM with no agent-specific dimensions to add.
When should I use this skill?
You need real-time metrics collection, bottleneck analysis, SLA monitoring, or anomaly detection for agent or swarm workloads.
What do I get? / Deliverables
You get a structured metrics-collection and alerting model focused on agents, tasks, and coordination so you can tune performance and catch anomalies earlier.
- Metrics collection design across system, agent, coordination, task, resource, and network dimensions
- Alert threshold and SLA monitoring configuration guidance
- Bottleneck and anomaly analysis workflow for production tuning
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Performance monitoring is where solo builders sustain reliability after ship—canonical shelf is Operate so dashboards and alerts live next to other production concerns. Monitoring is the right subphase because the skill centers on metrics streams, thresholds, and anomaly detection rather than initial deploy or incident triage alone.
Where it fits
Profile task and coordination metrics before launch to set baseline SLAs and alert thresholds.
Stream agent and resource metrics with anomaly detection when error rates spike.
Embed a MetricsCollector-style layer while building the orchestration API.
How it compares
Use as an agent-oriented monitoring blueprint rather than assuming generic host-level metrics alone explain multi-agent failures.
Common Questions / FAQ
Who is agent-performance-monitor for?
Solo and indie builders running agent or swarm workloads who want reusable patterns for metrics, SLAs, and bottlenecks—not only traditional server monitoring.
When should I use agent-performance-monitor?
In Ship when tuning performance before launch, in Operate under monitoring when tracking SLAs and anomalies, and in Build integrations when designing how agents report telemetry.
Is agent-performance-monitor safe to install?
Review the skill source and the Security Audits panel on this Prism page before enabling collectors that touch production data or shell/network access in your agent.
SKILL.md
READMESKILL.md - Agent Performance Monitor
--- name: Performance Monitor type: agent category: optimization description: Real-time metrics collection, bottleneck analysis, SLA monitoring and anomaly detection --- # Performance Monitor Agent ## Agent Profile - **Name**: Performance Monitor - **Type**: Performance Optimization Agent - **Specialization**: Real-time metrics collection and bottleneck analysis - **Performance Focus**: SLA monitoring, resource tracking, and anomaly detection ## Core Capabilities ### 1. Real-Time Metrics Collection ```javascript // Advanced metrics collection system class MetricsCollector { constructor() { this.collectors = new Map(); this.aggregators = new Map(); this.streams = new Map(); this.alertThresholds = new Map(); } // Multi-dimensional metrics collection async collectMetrics() { const metrics = { // System metrics system: await this.collectSystemMetrics(), // Agent-specific metrics agents: await this.collectAgentMetrics(), // Swarm coordination metrics coordination: await this.collectCoordinationMetrics(), // Task execution metrics tasks: await this.collectTaskMetrics(), // Resource utilization metrics resources: await this.collectResourceMetrics(), // Network and communication metrics network: await this.collectNetworkMetrics() }; // Real-time processing and analysis await this.processMetrics(metrics); return metrics; } // System-level metrics async collectSystemMetrics() { return { cpu: { usage: await this.getCPUUsage(), loadAverage: await this.getLoadAverage(), coreUtilization: await this.getCoreUtilization() }, memory: { usage: await this.getMemoryUsage(), available: await this.getAvailableMemory(), pressure: await this.getMemoryPressure() }, io: { diskUsage: await this.getDiskUsage(), diskIO: await this.getDiskIOStats(), networkIO: await this.getNetworkIOStats() }, processes: { count: await this.getProcessCount(), threads: await this.getThreadCount(), handles: await this.getHandleCount() } }; } // Agent performance metrics async collectAgentMetrics() { const agents = await mcp.agent_list({}); const agentMetrics = new Map(); for (const agent of agents) { const metrics = await mcp.agent_metrics({ agentId: agent.id }); agentMetrics.set(agent.id, { ...metrics, efficiency: this.calculateEfficiency(metrics), responsiveness: this.calculateResponsiveness(metrics), reliability: this.calculateReliability(metrics) }); } return agentMetrics; } } ``` ### 2. Bottleneck Detection & Analysis ```javascript // Intelligent bottleneck detection class BottleneckAnalyzer { constructor() { this.detectors = [ new CPUBottleneckDetector(), new MemoryBottleneckDetector(), new IOBottleneckDetector(), new NetworkBottleneckDetector(), new CoordinationBottleneckDetector(), new TaskQueueBottleneckDetector() ]; this.patterns = new Map(); this.history = new CircularBuffer(1000); } // Multi-layer bottleneck analysis async analyzeBottlenecks(metrics) { const bottlenecks = []; // Parallel detection across all layers const detectionPromises = this.detectors.map(detector => detector.detect(metrics) ); const results = await Promise.all(detectionPromises); // Correlate and prioritize bottlenecks for (const result of results) { if (result.detected) { bottlenecks.push({ type: result.type, severity: result.severity, component: result.component, rootCause: result.root