Skip to content
Back to skills

Monitoring

ASecurity

System health monitoring, alerts, and error tracking

  • 2,496 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 10, 2026
devopstypescriptapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned February 10, 2026

npx -y skills add alsk1992/CloddsBot --skill monitoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Monitoring?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Monitoring
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/alsk1992-monitoring/badge)](https://www.skillsdirectory.com/skills/alsk1992-monitoring)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: monitoring
description: "System health monitoring, alerts, and error tracking"
emoji: "πŸ””"
---

# 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

```typescript
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

```typescript
// Start monitoring
await monitor.start();

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

// Stop monitoring
await monitor.stop();
```

### Health Checks

```typescript
// 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

```typescript
// 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

```typescript
// 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

```typescript
// 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

```typescript
// 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

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

---

## Alert Types

| Type | Trigger |
|------|---------|
| **provider_down** | LLM provider not responding |
| **high_cpu** | CPU usage above threshold |
| **high_memory** | Memory usage above threshold |
| **high_error_rate** | Error rate above threshold |
| **unhandled_exception** | Uncaught exception |
| **unhandled_rejection** | Unhandled promise rejection |

---

## Configuration

```typescript
// 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

Files in this skill

  • SKILL.md5.7 KB
  • index.ts4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.