Claude Skills Guide

Claude Code Platform Engineer Observability Stack Workflow

Building a robust observability stack is essential for any platform engineering team. In this guide, we’ll explore how Claude Code skills can automate the creation, configuration, and management of observability infrastructure—covering metrics collection, distributed tracing, log aggregation, and alerting systems.

Why Use Claude Code for Observability?

Platform engineers spend significant time configuring monitoring tools, writing alerting rules, and maintaining dashboards. Claude Code accelerates these tasks through specialized skills that understand observability best practices and can generate production-ready configurations for popular tools like Prometheus, Grafana, Jaeger, ELK Stack, and Datadog.

The key advantages include:

Setting Up Your Observability Skills

First, ensure you have the essential observability-related skills installed. Claude Code’s skill ecosystem includes several that are particularly useful for platform engineers:

# Install key observability skills
# Place the grafana skill in ~/.claude/skills/grafana.md
# Place the prometheus skill in ~/.claude/skills/prometheus.md
# Place the datadog skill in ~/.claude/skills/datadog.md
# Place the logging skill in ~/.claude/skills/logging.md

These skills understand the configuration formats, best practices, and deployment patterns for each tool.

Building a Complete Observability Stack

Let’s walk through creating a comprehensive observability stack for a microservices application using Claude Code.

Step 1: Define Your Monitoring Requirements

Start by creating a monitoring specification:

Create a monitoring spec for my microservices app called 'payment-service' that:
- Exposes Prometheus metrics on port 9090
- Uses structured JSON logging
- Requires tracing with Jaeger
- Has SLIs for API response time (p99 < 200ms) and availability (99.9%)
- Needs alerting for error rates above 1% and latency above threshold

Claude Code will generate a comprehensive monitoring.yaml specification that defines all your metrics, alerts, and dashboard requirements.

Step 2: Generate Prometheus Configuration

Prometheus is the foundation of most observability stacks. Claude Code can generate optimized scrape configs:

# Claude Code generates this prometheus-config.yaml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'payment-service'
    kubernetes_sd_configs:
      - role: pod
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: true
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        target_label: __address__

The generated config includes best practices like service discovery, relabeling rules, and proper metric path handling.

Step 3: Create Grafana Dashboards

Visualization is crucial for understanding system behavior. Claude Code can generate comprehensive Grafana dashboards:

Create a Grafana dashboard for payment-service that shows:
- Request rate (requests/second)
- Error rate (5xx errors as percentage)
- Latency percentiles (p50, p95, p99)
- Active connections
- Queue depth
- Resource usage (CPU, memory)

This generates a complete Grafana JSON dashboard with appropriate panels, queries using PromQL, and alert thresholds.

Step 4: Configure Distributed Tracing

For microservices, distributed tracing is essential. Here’s how Claude Code helps configure Jaeger:

# Generated jaeger-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: jaeger-config
data:
  collector.yml: |
    service:
      extensions:
        health_check:
        grpc:
        telemetry:
          metrics:
            level: detailed
          logs:
            level: debug
    processors:
      batch:
        timeout: 10s
        send_batch_size: 1000
      probabilistic:
        sampling_percentage: 10
      tail_sampling:
        decision_wait: 10s
        policies:
          - numeric_attribute:
              key: error
              min_value: 1
              max_value: 100
          - probabilistic:
              sampling_percentage: 10

This configuration includes sampling strategies that balance observability with cost management.

Step 5: Set Up Alerting Rules

Alert fatigue is a real problem. Claude Code helps create well-thought-out alerting rules:

# alerts.yaml - Production-ready alerting rules
groups:
  - name: payment-service-alerts
    rules:
      - alert: HighErrorRate
        expr: |
          sum(rate(payment_service_errors_total[5m])) 
          / sum(rate(payment_service_requests_total[5m])) > 0.01
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "High error rate detected"
          description: "Error rate is {{ $value | humanizePercentage }}"

      - alert: HighLatency
        expr: |
          histogram_quantile(0.99, 
            sum(rate(payment_service_duration_seconds_bucket[5m])) by (le)
          ) > 0.2
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "High latency detected"
          description: "p99 latency is {{ $value | humanizeDuration }}"

      - alert: ServiceDown
        expr: up{job="payment-service"} == 0
        for: 1m
        labels:
          severity: critical
        annotations:
          summary: "Payment service is down"

These alerts follow best practices: appropriate thresholds, proper for durations, and meaningful annotations.

Integrating with CI/CD

Claude Code excels at creating automated workflows. Here’s how to integrate observability into your deployment pipeline:

# Create an observability validation workflow
claude "create observability-verify \"
  --service payment-service \
  --validate-metrics \
  --validate-alerts \
  --validate-dashboards

This generates a GitHub Actions workflow that validates your monitoring setup on every deployment:

# .github/workflows/observability-verify.yml
name: Verify Observability Setup
on:
  pull_request:
    paths:
      - 'monitoring/**'
      - 'dashboards/**'
      - 'alerts/**'

jobs:
  verify-monitoring:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Validate Prometheus rules
        run: |
          # Claude Code generated validation
          promtool check rules alerts/*.yaml
      - name: Validate Grafana dashboards
        run: |
          grafana-toolkit validate dashboards/*.json
      - name: Check alert coverage
        run: |
          ./scripts/check-alert-coverage.sh

Log Aggregation with ELK Stack

Modern applications require structured logging. Claude Code can set up a complete ELK Stack configuration:

Set up ELK Stack for payment-service with:
- Filebeat on each node collecting JSON logs
- Logstash pipeline with grok parsing for payment logs
- Kibana dashboards for error analysis
- Index lifecycle management (hot-warm-delete)

The generated configuration includes:

# logstash/pipeline/payment.conf
filter {
  if [service] == "payment-service" {
    json {
      source => "message"
    }
    
    # Parse payment-specific fields
    grok {
      match => { 
        "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{DATA:trace_id} %{DATA:payment_id} %{GREEDYDATA:details}"
      }
    }
    
    # Add geoip for IP-based location
    if [client_ip] {
      geoip {
        source => "client_ip"
      }
    }
    
    # Clean up temporary fields
    mutate {
      remove_field => ["host", "ecs", "agent"]
    }
  }
}

Automated On-Call Documentation

Claude Code can generate on-call runbooks automatically:

Generate on-call runbook for payment-service that includes:
- Common error patterns and how to debug each
- Rollback procedures
- Escalation contacts
- Dashboards to check

This creates comprehensive documentation that helps on-call engineers respond quickly to incidents.

Conclusion

Claude Code transforms observability from a manual, time-consuming task into an automated, consistent process. By using specialized skills, platform engineers can:

  1. Generate production-ready monitoring configs in seconds
  2. Create standardized dashboards and alerts across services
  3. Integrate observability validation into CI/CD
  4. Maintain consistency as services scale

Start building your observability stack with Claude Code today, and transform how your team approaches monitoring and incident response.

The key is to treat monitoring as code—version controlled, reviewed, and automated—just like your application code. Claude Code makes this approach practical and efficient for teams of any size.

Built by theluckystrike — More at zovo.one