Docs/ Operaciones/ Monitoreo y métricas

Monitoreo y métricas

Mantén un ojo en tu infraestructura con métricas integradas, alertas configurables, verificaciones de disponibilidad y páginas de estado compartibles -- todo sin herramientas externas.

Panel de métricas

sh0 recopila métricas de uso de recursos de cada contenedor y del sistema host. El panel de métricas proporciona vistas en tiempo real e históricas de uso de CPU, memoria, disco y red.

Accede a las métricas desde dos lugares:

  • Métricas a nivel de servidor -- Uso general de recursos del host en todos los contenedores. Navega a Configuración → Métricas.
  • Métricas a nivel de servicio -- Uso por contenedor. Abre cualquier servicio y haz clic en la pestaña Métricas.
Server-level metrics dashboard -- showing CPU, memory, disk, and network charts with time range selector

Métricas de CPU

Las métricas de CPU muestran el porcentaje de núcleos de CPU disponibles en uso. Para contenedores con límites de CPU, la gráfica también muestra el límite como línea de referencia para que puedas ver qué tan cerca está el contenedor de ser limitado.

CPU usage chart -- showing a time series line graph with the container CPU limit displayed as a dashed line

Métricas de memoria

Las métricas de memoria muestran el consumo actual de RAM, uso de caché y el límite configurado. Un contenedor que consistentemente usa cerca de su límite de memoria puede necesitar una asignación mayor o puede tener una fuga de memoria.

  • Usada -- Memoria activa consumida por el proceso.
  • Caché -- Caché del sistema de archivos (puede ser reclamada por el SO).
  • Límite -- El tope de memoria configurado.

Disco y red

Las métricas de disco muestran el espacio total y utilizado en el sistema de archivos del host. Las métricas de red rastrean el tráfico entrante y saliente por contenedor en bytes por segundo.

Disk usage bar and network I/O chart -- showing inbound and outbound traffic over time

Retención de métricas

Las métricas se almacenan en la base de datos SQLite interna de sh0 con submuestreo automático para mantener bajos los requisitos de almacenamiento:

Rango de tiempoResoluciónRetención
Última hora10 segundos1 hora
Últimas 24 horas1 minuto24 horas
Últimos 7 días5 minutos7 días
Últimos 30 días1 hora30 días
Note
Los datos de métricas se almacenan localmente en el servidor. Si necesitas retención de métricas a largo plazo o monitoreo externo, puedes integrarte con herramientas como Prometheus o Grafana exponiendo el endpoint de métricas.

Configurar alertas

Las alertas te notifican cuando una métrica cruza un umbral. Puedes configurar alertas de uso de CPU, uso de memoria, espacio en disco y estado de salud del contenedor.

  1. Navega a Configuración → Alertas.
  2. Haz clic en Agregar alerta.
  3. Selecciona el tipo de métrica (CPU, memoria, disco o estado del contenedor).
  4. Establece el valor del umbral (por ejemplo, CPU > 80%).
  5. Elige la duración -- cuánto tiempo debe persistir la condición antes de activarse (por ejemplo, 5 minutos).
  6. Selecciona uno o más canales de notificación.
  7. Haz clic en Guardar.
Alert configuration form -- metric type selector, threshold slider, duration input, and notification channel checkboxes

Canales de notificación

sh0 admite múltiples canales de notificación para alertas:

  • Correo electrónico -- Enviar correos de alerta a una o más direcciones.
  • Webhook -- Enviar un payload JSON por POST a cualquier URL (funciona con Slack, Discord, PagerDuty, etc.).
  • Panel de control -- Mostrar un banner de notificación en el panel de control de sh0 (siempre habilitado).
Webhook payload example
{
  "alert": "CPU Usage High",
  "service": "my-api",
  "stack": "production",
  "metric": "cpu_percent",
  "value": 92.5,
  "threshold": 80,
  "status": "firing",
  "timestamp": "2026-03-21T14:30:00Z"
}
Tip
Para enviar alertas a Slack, crea una URL de Webhook Entrante de Slack y agrégala como canal de notificación de webhook. El formato del payload de alertas de sh0 funciona con el formato esperado por Slack.

Monitoreo de disponibilidad

El monitoreo de disponibilidad verifica que tus servicios estén respondiendo a solicitudes HTTP. sh0 consulta tus endpoints configurados a intervalos regulares y registra el estado de respuesta y la latencia.

  1. Abre tu servicio y navega a la pestaña Disponibilidad.
  2. Haz clic en Agregar verificación.
  3. Ingresa la URL a monitorear (por ejemplo, https://myapp.sh0.app/health).
  4. Establece el intervalo de verificación (30 segundos, 1 minuto, 5 minutos, etc.).
  5. Opcionalmente establece el código de estado esperado (predeterminado: 200).
  6. Haz clic en Guardar.
Uptime monitoring dashboard -- showing uptime percentage, response time graph, and recent check results

Cuando una verificación falla consecutivamente durante el número configurado de reintentos, sh0 activa la alerta asociada. Cuando el servicio se recupera, se envía automáticamente una notificación de recuperación.

Páginas de estado públicas

Crea una página de estado pública para compartir la disponibilidad de tus servicios con los usuarios. Las páginas de estado muestran el estado actual y la disponibilidad histórica de servicios seleccionados.

  1. Navega a Configuración → Páginas de estado.
  2. Haz clic en Crear página de estado.
  3. Elige un slug de URL (por ejemplo, status.tudominio.com).
  4. Selecciona los servicios y verificaciones de disponibilidad a mostrar.
  5. Personaliza el título y la marca de la página.
  6. Haz clic en Publicar.
Warning
El formulario de suscripción por correo solo aparece en una página de estado pública cuando la instancia puede enviar correo realmente (SMTP configurado en Ajustes). Sin SMTP la página se sirve sin el formulario, en lugar de prometer un correo de confirmación que nunca llegaría.
Public status page -- showing service statuses (operational, degraded, outage) and a 90-day uptime history bar
Note
Las páginas de estado son servidas por sh0 mismo a través de Caddy. Puedes apuntar un dominio personalizado a tu página de estado agregando un registro CNAME. Los certificados SSL se aprovisionan automáticamente.