Ir al contenido

Coroot Observability

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
ComandoDescripción
docker compose up -dIniciar Coroot con Docker Compose
docker compose downDetener todos los servicios de Coroot
docker compose logs -fSeguir logs de Coroot
helm install coroot coroot/coroot-ceInstalar Coroot en Kubernetes
helm upgrade coroot coroot/coroot-ceActualizar Coroot
helm uninstall coroot -n corootRemover Coroot del cluster
kubectl port-forward svc/coroot-coroot 8080:8080 -n corootAcceder a la UI de Coroot
VariableDescripciónPor defecto
BOOTSTRAP_PROMETHEUS_URLEndpoint del servidor PrometheusRequerido
BOOTSTRAP_REFRESH_INTERVALIntervalo de recolección de métricas15s
BOOTSTRAP_CLICKHOUSE_ADDRESSDirección del servidor ClickHouseRequerido
LISTEN_ADDRESSDirección de escucha HTTP:8080
DATA_DIRRuta del directorio de datos/var/lib/coroot
FlagDescripciónPor defecto
--collector-endpointEndpoint del servidor CorootRequerido
--cgroupfs-rootRuta raíz del sistema de archivos cgroup/sys/fs/cgroup
--scrape-intervalIntervalo de escaneo de métricas15s
--log-levelVerbosidad de logginginfo
ComponenteRol
Servidor CorootDashboard central, motor de análisis, alertas
Agente de nodoRecolección de métricas/logs basada en eBPF en cada nodo
Agente de clusterMonitoreo de base de datos (MySQL, PostgreSQL, Redis)
ClickHouseAlmacenamiento de métricas, logs, trazas y perfiles
PrometheusEscaneo de métricas y escritura remota
CaracterísticaDescripción
Descubrimiento automáticoServicios auto-descubiertos vía eBPF — sin cambios de código necesarios
Mapa de serviciosMapa de topología en vivo mostrando todas las dependencias de servicio
Trazado distribuidoTrazado de solicitudes entre microservicios sin SDK
Recolección de logsRecolección automática de logs y clustering de patrones
Perfilado continuoPerfilado de CPU/memoria con activación de un clic
CapacidadDescripción
Seguimiento de SLODefinir y monitorear objetivos de nivel de servicio
Detección de problemasIdentificación automática de 80%+ de problemas
Seguimiento de implementaciónSeguimiento de implementaciones de Kubernetes y rollbacks
Monitoreo de costosAnálisis de costos de recursos en AWS, GCP, Azure
Análisis de redMétricas de conexión TCP, latencia DNS, retransmisiones
ProtocoloMétricas recolectadas
HTTP/HTTPSLatencia, tasa de error, rendimiento
gRPCLatencia a nivel de método y errores
PostgreSQLLatencia de consulta, conexiones, errores
MySQLRendimiento de consultas, consultas lentas
RedisLatencia de comando, proporción hit/miss
MongoDBLatencia de operación, conexiones
KafkaLag de productor/consumidor, rendimiento
DNSLatencia 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 alertaDescripción
Incumplimiento de SLOSe activa cuando el objetivo de SLO está en riesgo
Pico de latenciaLa latencia p99 excede el umbral
Tasa de errorEl porcentaje de error excede el umbral
RecursoAnomalía de uso de CPU, memoria o disco
ImplementaciónImplementación fallida o degradada detectada
CanalConfiguración
SlackURL de webhook
PagerDutyClave de integración
OpsgenieClave de API
EmailConfiguración SMTP
WebhookEndpoint HTTP personalizado
ProblemaSolución
Sin datos apareciendoVerificar que el endpoint --collector-endpoint del agente de nodo apunta al servidor Coroot
Servicios faltantesVerificar que el agente de nodo se ejecuta con --privileged y --pid host
eBPF no cargandoAsegurar versión de kernel 4.16+ con soporte BTF
Uso alto de memoriaReducir --scrape-interval o limitar namespaces monitoreados
Conexión de ClickHouseVerificar 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