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

Monitoring

  • 13 installs
  • 610 repo stars
  • Updated June 26, 2026
  • alsk1992/cloddsbot

monitoring is a Claude Code skill that runs system and LLM-provider health checks and sends threshold-based alerts to email and webhook targets.

About

This skill monitors the clodds bot's system health, tracks errors, and sends alerts when issues occur. A developer uses it to run health checks (CPU, memory, disk, LLM provider latency), configure email and webhook alert targets with cooldowns and thresholds, and subscribe to provider-down and recovery events. It exposes chat commands and a TypeScript monitoring service.

  • Run health checks on system, providers, and services
  • Threshold alerts to email and webhook targets with cooldowns
  • Track errors and unhandled exceptions with severity levels

Monitoring by the numbers

  • 13 all-time installs (skills.sh)
  • Ranked #966 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

monitoring capabilities & compatibility

Capabilities
health monitoring · alerting · error tracking
Works with
slack
Use cases
data analysis
Runs
Runs locally
Pricing
Free
From the docs

What monitoring says it does

Monitor system health, track errors, and receive alerts when issues occur.
SKILL.md
type: 'webhook', url: 'https://hooks.example.com/alerts' },
SKILL.md
npx skills add https://github.com/alsk1992/cloddsbot --skill monitoring

Add your badge

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

Listed on Skillselion
Installs13
repo stars610
Last updatedJune 26, 2026
Repositoryalsk1992/cloddsbot

What it does

Run health checks and send threshold-based alerts about system and LLM-provider status to email or webhook.

Who is it for?

Continuous health checks and alerting on system and LLM-provider status

When should I use this skill?

You need health checks, provider status, or threshold alerts for the running bot

What you get

Health checks run on an interval and alerts fire to email or webhook on threshold breaches.

By the numbers

  • 6 alert types tabled
  • 1-minute default health-check interval

Files

SKILL.mdMarkdownGitHub ↗

Monitoring - Complete API Reference

Monitor system health, track errors, and receive alerts when issues occur.

---

Chat Commands

Service Control

/monitor start                              # Start monitoring
/monitor stop                               # Stop monitoring
/monitor status                             # Check monitoring status

Health Checks

/monitor health                             # Run health check
/monitor health --verbose                   # Detailed health info
/monitor providers                          # Check LLM provider status

Alerts

/monitor alerts                             # View recent alerts
/monitor alerts --unread                    # Unread alerts only
/monitor alert-targets                      # View alert destinations
/monitor alert-targets add email <addr>     # Add email target
/monitor alert-targets add webhook <url>    # Add webhook target
/monitor alert-targets remove <id>          # Remove target

Configuration

/monitor config                             # View config
/monitor cooldown 300                       # Set alert cooldown (seconds)
/monitor threshold cpu 80                   # Set CPU alert threshold
/monitor threshold memory 90                # Set memory threshold

---

TypeScript API Reference

Create Monitoring Service

import { createMonitoringService } from 'clodds/monitoring';

const monitor = createMonitoringService({
  // Health check interval
  intervalMs: 60000,  // 1 minute

  // Alert targets
  alertTargets: [
    { type: 'email', address: 'alerts@example.com' },
    { type: 'webhook', url: 'https://hooks.example.com/alerts' },
  ],

  // Alert cooldown (prevent spam)
  alertCooldownMs: 300000,  // 5 minutes

  // Thresholds
  thresholds: {
    cpu: 80,        // Alert at 80% CPU
    memory: 90,     // Alert at 90% memory
    errorRate: 10,  // Alert at 10% error rate
  },
});

Start/Stop Monitoring

// Start monitoring
await monitor.start();

// Check if running
const isRunning = monitor.isRunning();

// Stop monitoring
await monitor.stop();

Health Checks

// Run health check
const health = await monitor.runHealthCheck();

console.log(`Overall: ${health.status}`);  // 'healthy' | 'degraded' | 'unhealthy'

console.log('\nSystem:');
console.log(`  CPU: ${health.system.cpu}%`);
console.log(`  Memory: ${health.system.memory}%`);
console.log(`  Disk: ${health.system.disk}%`);

console.log('\nProviders:');
for (const [name, status] of Object.entries(health.providers)) {
  console.log(`  ${name}: ${status.status} (${status.latencyMs}ms)`);
}

console.log('\nServices:');
for (const [name, status] of Object.entries(health.services)) {
  console.log(`  ${name}: ${status.status}`);
}

Provider Health

// Check LLM provider status
const providers = await monitor.checkProviders();

for (const provider of providers) {
  console.log(`${provider.name}:`);
  console.log(`  Status: ${provider.status}`);
  console.log(`  Latency: ${provider.latencyMs}ms`);
  console.log(`  Last error: ${provider.lastError || 'none'}`);
  console.log(`  Error rate: ${provider.errorRate}%`);
}

Alert Management

// Get recent alerts
const alerts = await monitor.getAlerts({ limit: 10 });

for (const alert of alerts) {
  console.log(`[${alert.severity}] ${alert.title}`);
  console.log(`  ${alert.message}`);
  console.log(`  Time: ${alert.timestamp}`);
  console.log(`  Acknowledged: ${alert.acknowledged}`);
}

// Acknowledge alert
await monitor.acknowledgeAlert(alertId);

// Get unread count
const unread = await monitor.getUnreadAlertCount();

Alert Targets

// Add alert target
await monitor.addAlertTarget({
  type: 'email',
  address: 'team@example.com',
});

await monitor.addAlertTarget({
  type: 'webhook',
  url: 'https://hooks.slack.com/...',
});

// List targets
const targets = monitor.getAlertTargets();

// Remove target
await monitor.removeAlertTarget(targetId);

Event Handlers

// Listen for events
monitor.on('alert', (alert) => {
  console.log(`🚨 Alert: ${alert.title}`);
});

monitor.on('healthCheck', (health) => {
  if (health.status !== 'healthy') {
    console.log(`⚠️ System ${health.status}`);
  }
});

monitor.on('providerDown', (provider) => {
  console.log(`❌ Provider down: ${provider.name}`);
});

monitor.on('providerRecovered', (provider) => {
  console.log(`✅ Provider recovered: ${provider.name}`);
});

Manual Alerts

// Send manual alert
await monitor.sendAlert({
  severity: 'warning',  // 'info' | 'warning' | 'error' | 'critical'
  title: 'Custom Alert',
  message: 'Something important happened',
  metadata: { key: 'value' },
});

---

Alert Types

TypeTrigger
provider_downLLM provider not responding
high_cpuCPU usage above threshold
high_memoryMemory usage above threshold
high_error_rateError rate above threshold
unhandled_exceptionUncaught exception
unhandled_rejectionUnhandled promise rejection

---

Configuration

// Update config
monitor.configure({
  intervalMs: 30000,
  alertCooldownMs: 600000,
  thresholds: {
    cpu: 85,
    memory: 95,
    errorRate: 5,
  },
});

---

Best Practices

1. Set appropriate thresholds - Avoid alert fatigue 2. Use cooldowns - Prevent alert spam 3. Multiple targets - Email + webhook for redundancy 4. Acknowledge alerts - Track what's been handled 5. Monitor providers - Know when APIs are down 6. Check health regularly - Don't just rely on alerts

Related skills

FAQ

Where can alerts be sent?

To email and webhook targets, with a configurable cooldown to prevent spam.

What triggers alerts?

Provider down, high CPU, high memory, high error rate, and unhandled exceptions or rejections.

DevOps & CI/CDmonitoring

This week in AI coding

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

unsubscribe anytime.