Herramienta de observabilidad y APM basada en eBPF de código abierto con métricas de cero instrumento, logs, trazas y perfilado continuo para entornos Kubernetes y Docker.
# Implementación de un solo comando con ClickHouse y Prometheus
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-compose.yaml | \
docker compose -f - up -d
# Acceder a la UI en http://localhost:8080
# Agregar repositorio Helm de Coroot
helm repo add coroot https://coroot.github.io/helm-charts
helm repo update coroot
# Instalar el operador Coroot
helm install -n coroot --create-namespace coroot-operator coroot/coroot-operator
# Implementar Community Edition
helm install -n coroot coroot coroot/coroot-ce
# Implementar con replicación de ClickHouse
helm install -n coroot coroot coroot/coroot-ce \
--set "clickhouse.shards=2,clickhouse.replicas=2"
# Port forward para acceder a la UI
kubectl port-forward -n coroot service/coroot-coroot 8080:8080
# Acceder a la UI en http://localhost:8080
# Implementar stack de Coroot
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-swarm-stack.yaml | \
docker stack deploy -c - coroot
# Instalar servidor Coroot
curl -sfL https://raw.githubusercontent.com/coroot/coroot/main/deploy/install.sh | \
BOOTSTRAP_PROMETHEUS_URL="http://PROMETHEUS_IP:9090" \
BOOTSTRAP_REFRESH_INTERVAL=15s \
BOOTSTRAP_CLICKHOUSE_ADDRESS=CLICKHOUSE_IP:9000 \
sh -
# El mismo instalador funciona para distribuciones basadas en RHEL
curl -sfL https://raw.githubusercontent.com/coroot/coroot/main/deploy/install.sh | \
BOOTSTRAP_PROMETHEUS_URL="http://PROMETHEUS_IP:9090" \
BOOTSTRAP_REFRESH_INTERVAL=15s \
BOOTSTRAP_CLICKHOUSE_ADDRESS=CLICKHOUSE_IP:9000 \
sh -
# Ejecutar agente de nodo como contenedor privilegiado
docker run --detach --name coroot-node-agent \
--pull=always --privileged --pid host \
-v /sys/kernel/tracing:/sys/kernel/tracing:rw \
-v /sys/kernel/debug:/sys/kernel/debug:rw \
-v /sys/fs/cgroup:/host/sys/fs/cgroup:ro \
ghcr.io/coroot/coroot-node-agent \
--cgroupfs-root=/host/sys/fs/cgroup \
--collector-endpoint=http://COROOT_IP:8080
# Instalar agente de nodo en bare-metal o VMs
curl -sfL https://raw.githubusercontent.com/coroot/coroot-node-agent/main/install.sh | \
COLLECTOR_ENDPOINT=http://COROOT_IP:8080 \
SCRAPE_INTERVAL=15s \
sh -
# El agente de nodo se implementa automáticamente por el operador Coroot
# No se necesita instalación separada cuando se usa Helm
| Comando | Descripción |
|---|
docker compose up -d | Iniciar Coroot con Docker Compose |
docker compose down | Detener todos los servicios de Coroot |
docker compose logs -f | Seguir logs de Coroot |
helm install coroot coroot/coroot-ce | Instalar Coroot en Kubernetes |
helm upgrade coroot coroot/coroot-ce | Actualizar Coroot |
helm uninstall coroot -n coroot | Remover Coroot del cluster |
kubectl port-forward svc/coroot-coroot 8080:8080 -n coroot | Acceder a la UI de Coroot |
| Variable | Descripción | Por defecto |
|---|
BOOTSTRAP_PROMETHEUS_URL | Endpoint del servidor Prometheus | Requerido |
BOOTSTRAP_REFRESH_INTERVAL | Intervalo de recolección de métricas | 15s |
BOOTSTRAP_CLICKHOUSE_ADDRESS | Dirección del servidor ClickHouse | Requerido |
LISTEN_ADDRESS | Dirección de escucha HTTP | :8080 |
DATA_DIR | Ruta del directorio de datos | /var/lib/coroot |
| Flag | Descripción | Por defecto |
|---|
--collector-endpoint | Endpoint del servidor Coroot | Requerido |
--cgroupfs-root | Ruta raíz del sistema de archivos cgroup | /sys/fs/cgroup |
--scrape-interval | Intervalo de escaneo de métricas | 15s |
--log-level | Verbosidad de logging | info |
| Componente | Rol |
|---|
| Servidor Coroot | Dashboard central, motor de análisis, alertas |
| Agente de nodo | Recolección de métricas/logs basada en eBPF en cada nodo |
| Agente de cluster | Monitoreo de base de datos (MySQL, PostgreSQL, Redis) |
| ClickHouse | Almacenamiento de métricas, logs, trazas y perfiles |
| Prometheus | Escaneo de métricas y escritura remota |
| Característica | Descripción |
|---|
| Descubrimiento automático | Servicios auto-descubiertos vía eBPF — sin cambios de código necesarios |
| Mapa de servicios | Mapa de topología en vivo mostrando todas las dependencias de servicio |
| Trazado distribuido | Trazado de solicitudes entre microservicios sin SDK |
| Recolección de logs | Recolección automática de logs y clustering de patrones |
| Perfilado continuo | Perfilado de CPU/memoria con activación de un clic |
| Capacidad | Descripción |
|---|
| Seguimiento de SLO | Definir y monitorear objetivos de nivel de servicio |
| Detección de problemas | Identificación automática de 80%+ de problemas |
| Seguimiento de implementación | Seguimiento de implementaciones de Kubernetes y rollbacks |
| Monitoreo de costos | Análisis de costos de recursos en AWS, GCP, Azure |
| Análisis de red | Métricas de conexión TCP, latencia DNS, retransmisiones |
| Protocolo | Métricas recolectadas |
|---|
| HTTP/HTTPS | Latencia, tasa de error, rendimiento |
| gRPC | Latencia a nivel de método y errores |
| PostgreSQL | Latencia de consulta, conexiones, errores |
| MySQL | Rendimiento de consultas, consultas lentas |
| Redis | Latencia de comando, proporción hit/miss |
| MongoDB | Latencia de operación, conexiones |
| Kafka | Lag de productor/consumidor, rendimiento |
| DNS | Latencia de resolución, tasa de fallo |
# Dimensionamiento personalizado de ClickHouse
helm install coroot coroot/coroot-ce \
--set clickhouse.shards=3 \
--set clickhouse.replicas=2 \
--set clickhouse.storage=100Gi
# Configuración personalizada de Prometheus
helm install coroot coroot/coroot-ce \
--set prometheus.storage=50Gi \
--set prometheus.retention=30d
# Habilitar ingress
helm install coroot coroot/coroot-ce \
--set ingress.enabled=true \
--set ingress.host=coroot.example.com
| Tipo de alerta | Descripción |
|---|
| Incumplimiento de SLO | Se activa cuando el objetivo de SLO está en riesgo |
| Pico de latencia | La latencia p99 excede el umbral |
| Tasa de error | El porcentaje de error excede el umbral |
| Recurso | Anomalía de uso de CPU, memoria o disco |
| Implementación | Implementación fallida o degradada detectada |
| Canal | Configuración |
|---|
| Slack | URL de webhook |
| PagerDuty | Clave de integración |
| Opsgenie | Clave de API |
| Email | Configuración SMTP |
| Webhook | Endpoint HTTP personalizado |
| Problema | Solución |
|---|
| Sin datos apareciendo | Verificar que el endpoint --collector-endpoint del agente de nodo apunta al servidor Coroot |
| Servicios faltantes | Verificar que el agente de nodo se ejecuta con --privileged y --pid host |
| eBPF no cargando | Asegurar versión de kernel 4.16+ con soporte BTF |
| Uso alto de memoria | Reducir --scrape-interval o limitar namespaces monitoreados |
| Conexión de ClickHouse | Verificar que ClickHouse está corriendo y accesible en puerto 9000 |
- Implementar agentes de nodo en cada nodo del cluster para visibilidad completa
- Usar replicación de ClickHouse para implementaciones de producción (mínimo 2 réplicas)
- Establecer objetivos de SLO significativos antes de confiar en alertas automáticas
- Comenzar con Docker Compose para evaluación, migrar a Helm para producción
- Configurar escritura remota de Prometheus para persistir métricas más allá de reinicios de pods
- Usar el profiler integrado para identificar hotspots de CPU/memoria antes de escalar
- Habilitar seguimiento de implementación para correlacionar cambios de rendimiento con lanzamientos