Skills jeffallan claude-skills

monitoring-expert

Use it when:
A service needs logs, metrics, traces and alerts, or you're debugging a production issue, load testing, profiling or planning capacity.
It does:
Picks what to measure, instruments the code, configures collection and checks data arrives, builds dashboards, then defines alerts.
You get:
Instrumentation code, collection config, dashboards and Prometheus alert rules, plus k6 load tests when you need them.
RED and USE:
Its dashboard methods: rate, errors and duration of requests; utilization, saturation and errors of resources.
Rules:
JSON logs with request IDs, no passwords, tokens or personal data in logs, alerts only on critical paths, business metrics too.

TL;DR

Its code examples are in Node.js: structured logging with Pino, a request counter and latency histogram with prom-client behind a /metrics endpoint for Prometheus to scrape, and OpenTelemetry tracing with a manual span around a critical operation. It also shows a Prometheus rule that alerts when more than 5% of requests fail, and a k6 load test that ramps to 50 virtual users with limits on 95th-percentile latency and error rate. Before alerts ship it checks they won't flood you with false positives, and it adds health check endpoints. Alerting on every error is out, to avoid alert fatigue. Reference files cover structured logging, Prometheus metrics, OpenTelemetry, alerting rules, Grafana dashboards, load testing with k6 and Artillery, CPU and memory profiling, and capacity planning.

Summarizes the skill at 078a25c.

npx skills add https://github.com/jeffallan/claude-skills --skill monitoring-expert
Weekly Downloads week to Nov 9, 2026
158
+33% in 8 weeks

Fewer weekly downloads than 69% of skills

Weekly values
Week toInstalls
Sep 21119
Sep 28150
Oct 5156
Oct 12184
Oct 19212
Oct 26183
Nov 2175
Nov 9158
Total Downloads on skills.sh
5,900

Fewer downloads than 76% of skills

Repo stars jeffallan/claude-skills
12,279

More stars than 61% of repos

Age published Jan 20, 2026
9 months

Older than 82% of skills

Category

Deploy, provision, observe and debug cloud apps.

Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills.

Type

A multi-step process the agent follows: interview, debug, run a TDD loop, review.

Effect

Its own steps create or change files, git state or local tools.

Needs

Instructions only. Works in any agent that supports skills.

Publisher

Everyone else. Unverified vendor claims default to community.

Topics
Stack

SKILL.md

From jeffallan/claude-skills at 078a25c. Checked daily, last changed Nov 6, 2026.

Frontmatter
name: monitoring-expert
description: Configures monitoring systems, implements structured logging pipelines, creates Prometheus/Grafana dashboards, defines alerting rules, and instruments distributed tracing. Implements Prometheus/Grafana stacks, conducts load testing, performs application profiling, and plans infrastructure capacity. Use when setting up application monitoring, adding observability to services, debugging production issues with logs/metrics/traces, running load tests with k6 or Artillery, profiling CPU/memory bottlenecks, or forecasting capacity needs.
license: MIT
metadata:
  author: https://github.com/Jeffallan
  company: https://synergetic.solutions
  version: "1.1.0"
  domain: devops
  triggers: monitoring, observability, logging, metrics, tracing, alerting, Prometheus, Grafana, DataDog, APM, performance testing, load testing, profiling, capacity planning, bottleneck
  role: specialist
  scope: implementation
  output-format: code
  related-skills: devops-engineer, debugging-wizard, architecture-designer

Monitoring Expert

Observability and performance specialist implementing comprehensive monitoring, alerting, tracing, and performance testing systems.

Core Workflow

  1. Assess — Identify what needs monitoring (SLIs, critical paths, business metrics)
  2. Instrument — Add logging, metrics, and traces to the application (see examples below)
  3. Collect — Configure aggregation and storage (Prometheus scrape, log shipper, OTLP endpoint); verify data arrives before proceeding
  4. Visualize — Build dashboards using RED (Rate/Errors/Duration) or USE (Utilization/Saturation/Errors) methods
  5. Alert — Define threshold and anomaly alerts on critical paths; validate no false-positive flood before shipping

Quick-Start Examples

Structured Logging (Node.js / Pino)
import pino from 'pino';

const logger = pino({ level: 'info' });

// Good — structured fields, includes correlation ID
logger.info({ requestId: req.id, userId: req.user.id, durationMs: elapsed }, 'order.created');

// Bad — string interpolation, no correlation
console.log(`Order created for user ${userId}`);
Prometheus Metrics (Node.js)
import { Counter, Histogram, register } from 'prom-client';

const httpRequests = new Counter({
  name: 'http_requests_total',
  help: 'Total HTTP requests',
  labelNames: ['method', 'route', 'status'],
});

const httpDuration = new Histogram({
  name: 'http_request_duration_seconds',
  help: 'HTTP request latency',
  labelNames: ['method', 'route'],
  buckets: [0.05, 0.1, 0.3, 0.5, 1, 2, 5],
});

// Instrument a route
app.use((req, res, next) => {
  const end = httpDuration.startTimer({ method: req.method, route: req.path });
  res.on('finish', () => {
    httpRequests.inc({ method: req.method, route: req.path, status: res.statusCode });
    end();
  });
  next();
});

// Expose scrape endpoint
app.get('/metrics', async (req, res) => {
  res.set('Content-Type', register.contentType);
  res.end(await register.metrics());
});
OpenTelemetry Tracing (Node.js)
import { NodeSDK } from '@opentelemetry/sdk-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import { trace } from '@opentelemetry/api';

const sdk = new NodeSDK({
  traceExporter: new OTLPTraceExporter({ url: 'http://jaeger:4318/v1/traces' }),
});
sdk.start();

// Manual span around a critical operation
const tracer = trace.getTracer('order-service');
async function processOrder(orderId) {
  const span = tracer.startSpan('order.process');
  span.setAttribute('order.id', orderId);
  try {
    const result = await db.saveOrder(orderId);
    span.setStatus({ code: SpanStatusCode.OK });
    return result;
  } catch (err) {
    span.recordException(err);
    span.setStatus({ code: SpanStatusCode.ERROR });
    throw err;
  } finally {
    span.end();
  }
}
Prometheus Alerting Rule
groups:
  - name: api.rules
    rules:
      - alert: HighErrorRate
        expr: |
          rate(http_requests_total{status=~"5.."}[5m])
          / rate(http_requests_total[5m]) > 0.05
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "Error rate above 5% on {{ $labels.route }}"
k6 Load Test
import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '1m', target: 50 },   // ramp up
    { duration: '5m', target: 50 },   // sustained load
    { duration: '1m', target: 0 },    // ramp down
  ],
  thresholds: {
    http_req_duration: ['p(95)<500'],  // 95th percentile < 500 ms
    http_req_failed:   ['rate<0.01'],  // error rate < 1%
  },
};

export default function () {
  const res = http.get('https://api.example.com/orders');
  check(res, { 'status is 200': (r) => r.status === 200 });
  sleep(1);
}

Reference Guide

Load detailed guidance based on context:

Topic Reference Load When
Logging references/structured-logging.md Pino, JSON logging
Metrics references/prometheus-metrics.md Counter, Histogram, Gauge
Tracing references/opentelemetry.md OpenTelemetry, spans
Alerting references/alerting-rules.md Prometheus alerts
Dashboards references/dashboards.md RED/USE method, Grafana
Performance Testing references/performance-testing.md Load testing, k6, Artillery, benchmarks
Profiling references/application-profiling.md CPU/memory profiling, bottlenecks
Capacity Planning references/capacity-planning.md Scaling, forecasting, budgets

Constraints

MUST DO
  • Use structured logging (JSON)
  • Include request IDs for correlation
  • Set up alerts for critical paths
  • Monitor business metrics, not just technical
  • Use appropriate metric types (counter/gauge/histogram)
  • Implement health check endpoints
MUST NOT DO
  • Log sensitive data (passwords, tokens, PII)
  • Alert on every error (alert fatigue)
  • Use string interpolation in logs (use structured fields)
  • Skip correlation IDs in distributed systems

Maintained by @jeffallan, Principal Consultant at Synergetic Solutions

Documentation