·SuperBuilder Team

Cómo monitorizar el rendimiento del agente OpenClaw

openclawmonitoringperformancegrafanaloggingdevops

Cómo monitorizar el rendimiento del agente OpenClaw

Un agente OpenClaw en ejecución no es un sistema de "configúralo y olvídate". Los skills se rompen, las claves API caducan, las conversaciones fallan en silencio y los costes de tokens se disparan. Una monitorización adecuada detecta estos problemas antes de que afecten a tu experiencia. Esta guía cubre todos los aspectos de la monitorización de OpenClaw.

Arquitectura de monitorización de OpenClaw
Arquitectura de monitorización de OpenClaw

Monitorización integrada

openclaw status

La comprobación de salud más rápida:

openclaw status

# Output:
# OpenClaw v0.9.6
# Status:        running
# Uptime:        14d 3h 22m
# Model:         claude-sonnet-4-20250514
# Memory DB:     82 MB (1,234 entries)
# Active channels: telegram (connected), email (connected)
# Skills:        12 installed, 12 healthy
# Cron jobs:     5 active, 0 paused
# Last message:  2 minutes ago
# CPU:           3.2%
# Memory:        312 MB

openclaw logs

Transmisión de registros en tiempo real:

# Follow all logs
openclaw logs -f

# Filter by component
openclaw logs --filter "channel" --since 1h
openclaw logs --filter "skill" --since 1h
openclaw logs --filter "error" --since 24h
openclaw logs --filter "llm" --since 1h

# Show only errors and warnings
openclaw logs --level warn --since 24h

openclaw doctor

Una comprobación de diagnóstico exhaustiva:

openclaw doctor

# Output:
# [PASS] Node.js version: 20.11.0
# [PASS] OpenClaw version: 0.9.6 (latest)
# [PASS] Database: healthy, 82 MB
# [PASS] Anthropic API: connected, key valid
# [PASS] Telegram channel: connected
# [WARN] Email channel: webhook URL returns 404
# [PASS] Skills: 12/12 healthy
# [PASS] Cron: service running, 5 jobs active
# [PASS] Disk space: 12 GB free (60% available)
# [WARN] Memory usage: 312 MB (approaching 512 MB limit)
#
# 2 warnings found. Run `openclaw doctor --fix` to attempt auto-repair.

Ejemplo de salida de openclaw doctor
Ejemplo de salida de openclaw doctor

Métricas clave a controlar

1. Tiempo de respuesta

¿Cuánto tarda desde que se recibe un mensaje hasta que se envía una respuesta?

openclaw metrics response-time --period 24h

# Output:
# Average:  4.2s
# P50:      3.1s
# P90:      8.4s
# P99:      15.2s
# Min:      1.8s
# Max:      22.1s

A qué prestar atención:

2. Tasa de éxito

¿Qué porcentaje de mensajes obtiene una respuesta correcta?

openclaw metrics success-rate --period 7d

# Output:
# Total messages:  342
# Successful:      331 (96.8%)
# Failed:          11 (3.2%)
#
# Failure breakdown:
#   API rate limit:    5
#   Skill error:       3
#   Timeout:           2
#   Parse error:       1

Objetivo: tasa de éxito del 95% o superior. Por debajo del 90% indica un problema sistémico.

3. Uso de tokens

Controla el consumo diario de tokens para gestionar los costes:

openclaw metrics tokens --period 30d --daily

# Output:
# Date        Input Tokens  Output Tokens  Total     Cost
# 2026-04-05  45,230        12,340         57,570    $0.22
# 2026-04-04  52,100        15,890         67,990    $0.26
# 2026-04-03  38,900        10,200         49,100    $0.19
# ...
# Monthly:    1,234,567     345,678        1,580,245 $6.04

4. Salud de los skills

Monitoriza qué skills tienen éxito y cuáles fallan:

openclaw metrics skills --period 7d

# Output:
# Skill              Calls  Success  Failed  Avg Time
# web-search         45     44       1       2.1s
# file-manager       32     32       0       0.3s
# email-send         18     17       1       1.5s
# image-gen          8      6        2       8.4s
# shell-exec         156    154      2       0.8s

5. Disponibilidad de canales

Controla la conectividad de cada canal de mensajería:

openclaw metrics channels --period 7d

# Output:
# Channel     Uptime    Disconnects  Avg Reconnect
# telegram    99.8%     1            3.2s
# email       99.9%     0            N/A
# whatsapp    97.2%     4            12.4s

Panel de métricas clave
Panel de métricas clave

Configurar paneles de Grafana

Para una monitorización visual, exporta las métricas de OpenClaw a Grafana a través de Prometheus.

Paso 1: Habilitar la exportación de métricas

# config.yaml
metrics:
  enabled: true
  exporter: "prometheus"
  port: 9090
  path: "/metrics"

Paso 2: Configurar Prometheus

# prometheus.yml
scrape_configs:
  - job_name: 'openclaw'
    scrape_interval: 15s
    static_configs:
      - targets: ['localhost:9090']

Paso 3: Crear un panel de Grafana

Importa el panel comunitario de OpenClaw o crea el tuyo propio con estos paneles:

Tiempo de respuesta (serie temporal)

histogram_quantile(0.95, rate(openclaw_response_duration_seconds_bucket[5m]))

Tasa de éxito (gauge)

rate(openclaw_messages_success_total[1h]) / rate(openclaw_messages_total[1h]) * 100

Uso de tokens (gráfico de barras)

increase(openclaw_tokens_total[1d])

Canales activos (panel de estado)

openclaw_channel_connected

Docker Compose con stack de monitorización

version: "3.8"
services:
  openclaw:
    image: openclaw/openclaw:latest
    ports:
      - "127.0.0.1:3080:3080"
      - "127.0.0.1:9090:9090"
    volumes:
      - ./config:/app/config
      - ./data:/app/data

  prometheus:
    image: prom/prometheus:latest
    ports:
      - "127.0.0.1:9091:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana:latest
    ports:
      - "127.0.0.1:3000:3000"
    volumes:
      - grafana-data:/var/lib/grafana

volumes:
  grafana-data:

Ejemplo de panel de Grafana
Ejemplo de panel de Grafana

Comprobaciones de salud

Endpoint de salud HTTP

OpenClaw expone un endpoint de comprobación de salud:

curl http://localhost:3080/health

# Response:
# {
#   "status": "healthy",
#   "uptime": 1234567,
#   "version": "0.9.6",
#   "components": {
#     "database": "healthy",
#     "llm_api": "healthy",
#     "channels": {
#       "telegram": "connected",
#       "email": "connected"
#     }
#   }
# }

Monitorización de salud automatizada

Usa un script sencillo para comprobar la salud y alertar ante fallos:

#!/bin/bash
# health-check.sh

HEALTH_URL="http://localhost:3080/health"
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$HEALTH_URL")

if [ "$RESPONSE" != "200" ]; then
    # Alert via Inbounter email
    curl -X POST https://api.inbounter.com/v1/email/send \
      -H "Authorization: Bearer ${INBOUNTER_API_KEY}" \
      -H "Content-Type: application/json" \
      -d '{
        "to": "admin@company.com",
        "subject": "OpenClaw Health Check Failed",
        "body": "Health check returned HTTP '"$RESPONSE"' at '"$(date)"'"
      }'
fi

Programa esto con el cron del sistema:

# Check every 5 minutes
*/5 * * * * /home/user/scripts/health-check.sh

Monitorización de heartbeat

Para un enfoque más robusto, configura un heartbeat que te alerte cuando se detenga:

openclaw cron add --name "heartbeat" "*/5 * * * *" \
  "Send a heartbeat ping. This confirms I am running. 
   If this message does not arrive within 10 minutes, 
   something is wrong."

Configura Inbounter para que espere el heartbeat y te alerte si pierde una ventana.

Alertas

Alertas integradas

alerts:
  - name: "high-error-rate"
    condition: "error_rate > 0.10"
    period: "1h"
    channels: ["telegram"]
    message: "Error rate above 10% in the last hour"
  
  - name: "high-latency"
    condition: "p95_latency > 15"
    period: "15m"
    channels: ["telegram", "email"]
    message: "P95 response time above 15 seconds"
  
  - name: "budget-warning"
    condition: "daily_cost > 5.00"
    period: "1d"
    channels: ["email"]
    message: "Daily API cost exceeded $5.00"
  
  - name: "channel-disconnect"
    condition: "channel_disconnected"
    channels: ["email"]
    message: "Channel {{channel}} disconnected"

Alertas por correo y SMS a través de Inbounter

Para alertas críticas, el correo o el SMS es más fiable que Telegram (que podría ser el propio canal que falla):

alerts:
  providers:
    inbounter:
      api_key: "${INBOUNTER_API_KEY}"
      email: "admin@company.com"
      sms: "+1234567890"  # For critical alerts only
  
  routing:
    warning: ["telegram"]
    error: ["telegram", "inbounter_email"]
    critical: ["telegram", "inbounter_email", "inbounter_sms"]

Diagrama de flujo de alertas
Diagrama de flujo de alertas

Gestión de registros

Rotación de registros

Evita que los registros llenen tu disco:

logging:
  file: "/var/log/openclaw/openclaw.log"
  max_size: "50MB"
  max_files: 10
  compress: true

O usa logrotate en Linux:

# /etc/logrotate.d/openclaw
/home/openclaw/.openclaw/logs/*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    copytruncate
}

Registro estructurado

Habilita registros en formato JSON para facilitar el análisis:

logging:
  format: "json"
  fields:
    - timestamp
    - level
    - component
    - user
    - message
    - duration

Esto permite la integración con herramientas de agregación de registros (Loki, ELK stack, Datadog).

Análisis de registros

Comandos rápidos para análisis comunes de registros:

# Most common errors today
openclaw logs --level error --since 24h --format json | \
  jq -r '.message' | sort | uniq -c | sort -rn | head -10

# Slowest responses
openclaw logs --filter "response_time" --since 24h --format json | \
  jq -r '. | select(.duration > 10) | "\(.timestamp) \(.duration)s \(.message)"'

# Failed skills
openclaw logs --filter "skill_error" --since 7d --format json | \
  jq -r '.skill_name' | sort | uniq -c | sort -rn

Optimización del rendimiento

Si la monitorización revela problemas de rendimiento, aquí están las correcciones más comunes:

Tiempo de respuesta alto

# Check if it's the API or your server
openclaw metrics response-time --breakdown

# If API is slow: switch to a faster model or provider
# If server is slow: check CPU and memory
openclaw status --resources

Fugas de memoria

# Track memory over time
watch -n 60 'openclaw status --resources | grep Memory'

# If memory keeps growing, restart periodically
openclaw cron add --name "weekly-restart" "0 3 * * 0" \
  "Notify admin that a scheduled restart is about to happen, 
   then restart the agent."

Optimización de la base de datos

# Check database size and health
openclaw db stats

# Compact the database
openclaw db vacuum

# Clear old data
openclaw memory prune --older-than 90d

Lista de verificación de optimización del rendimiento
Lista de verificación de optimización del rendimiento

Lista de verificación de monitorización

Usa esta lista para asegurarte de que tu monitorización está completa:

Preguntas frecuentes

¿Cómo monitorizo OpenClaw si estoy lejos de mi ordenador?

Configura alertas de Telegram o correo a través de Inbounter. Recibirás notificaciones en tu teléfono cuando algo requiera atención.

¿Cuál es una buena referencia para el tiempo de respuesta?

Con Claude Sonnet, espera de 3 a 8 segundos para consultas típicas. Cualquier cosa que esté consistentemente por encima de 15 segundos merece investigación.

¿Cuánto añade la monitorización a mis costes de servidor?

Prometheus + Grafana añaden unos 200-300 MB de RAM. En un VPS de 5 $ o más, esto es manejable. Si tienes hardware mínimo, quédate con openclaw status y alertas basadas en cron.

¿Puedo monitorizar varias instancias de OpenClaw desde un único panel?

Sí. Apunta Prometheus a varias instancias de OpenClaw y Grafana las mostrará todas. Usa etiquetas para distinguir entre instancias.

¿Debo monitorizar los costes de tokens en tiempo real?

La monitorización diaria suele ser suficiente. Configura alertas para cuando el gasto diario supere tu umbral y así detectes anomalías rápidamente.

¿Cómo sé si mi agente está funcionando bien?

Controla estos tres números: tasa de éxito (objetivo: 95% o más), tiempo de respuesta promedio (objetivo: menos de 8s) y coste diario de tokens (objetivo: dentro del presupuesto). Si los tres están en verde, tu agente está sano.

SuperBuilder

Crea más rápido con SuperBuilder

Ejecuta agentes de Claude Code en paralelo con seguimiento de costes, cola de tareas y aislamiento por worktree. Gratis y de código abierto.

Descargar para Mac