Aller au contenu

Coroot - Observabilité

Outil d’observabilité et APM open-source basé sur eBPF avec métriques sans instrumentation, journaux, traces et profilage continu pour les environnements Kubernetes et Docker.

# Déploiement en une seule commande avec ClickHouse et Prometheus
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-compose.yaml | \
  docker compose -f - up -d

# Accéder à l'interface à http://localhost:8080
# Ajouter le référentiel Helm Coroot
helm repo add coroot https://coroot.github.io/helm-charts
helm repo update coroot

# Installer l'opérateur Coroot
helm install -n coroot --create-namespace coroot-operator coroot/coroot-operator

# Déployer Community Edition
helm install -n coroot coroot coroot/coroot-ce

# Déployer avec réplication ClickHouse
helm install -n coroot coroot coroot/coroot-ce \
  --set "clickhouse.shards=2,clickhouse.replicas=2"

# Redirection de port pour accéder à l'interface
kubectl port-forward -n coroot service/coroot-coroot 8080:8080

# Accéder à l'interface à http://localhost:8080
# Déployer la pile Coroot
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-swarm-stack.yaml | \
  docker stack deploy -c - coroot
# Installer le serveur 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 -
# Le même installateur fonctionne pour les distributions basées sur 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 -
# Exécuter l'agent nœud en tant que conteneur privilégié
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
# Installer l'agent nœud sur bare-metal ou VMs
curl -sfL https://raw.githubusercontent.com/coroot/coroot-node-agent/main/install.sh | \
  COLLECTOR_ENDPOINT=http://COROOT_IP:8080 \
  SCRAPE_INTERVAL=15s \
  sh -
# L'agent nœud est automatiquement déployé par l'opérateur Coroot
# Aucune installation séparée nécessaire lors de l'utilisation de Helm
CommandeDescription
docker compose up -dDémarrer Coroot avec Docker Compose
docker compose downArrêter tous les services Coroot
docker compose logs -fSuivre les journaux Coroot
helm install coroot coroot/coroot-ceInstaller Coroot sur Kubernetes
helm upgrade coroot coroot/coroot-ceMettre à jour Coroot
helm uninstall coroot -n corootSupprimer Coroot du cluster
kubectl port-forward svc/coroot-coroot 8080:8080 -n corootAccéder à l’interface Coroot
VariableDescriptionPar défaut
BOOTSTRAP_PROMETHEUS_URLPoint de terminaison du serveur PrometheusRequis
BOOTSTRAP_REFRESH_INTERVALIntervalle de collecte des métriques15s
BOOTSTRAP_CLICKHOUSE_ADDRESSAdresse du serveur ClickHouseRequis
LISTEN_ADDRESSAdresse d’écoute HTTP:8080
DATA_DIRChemin du répertoire de données/var/lib/coroot
DrapeauDescriptionPar défaut
--collector-endpointPoint de terminaison du serveur CorootRequis
--cgroupfs-rootChemin racine du système de fichiers cgroup/sys/fs/cgroup
--scrape-intervalIntervalle de scrape des métriques15s
--log-levelVerbosité de la journalisationinfo
ComposantRôle
Serveur CorootTableau de bord central, moteur d’analyse, alertes
Agent nœudCollecte de métriques et journaux basée sur eBPF sur chaque nœud
Agent clusterSurveillance de la base de données (MySQL, PostgreSQL, Redis)
ClickHouseStockage des métriques, journaux, traces et profils
PrometheusScrape de métriques et écriture à distance
FonctionnalitéDescription
Découverte automatiqueServices découverts automatiquement via eBPF — aucune modification de code nécessaire
Carte de serviceCarte de topologie en direct montrant toutes les dépendances de service
Traçage distribuéTraçage des requêtes sur les microservices sans SDK
Collecte de journauxCollecte automatique de journaux et clustering de modèles
Profilage continuProfilage CPU/mémoire avec activation en un clic
CapacitéDescription
Suivi SLODéfinir et surveiller les objectifs de niveau de service
Détection de problèmesIdentification automatique de 80%+ des problèmes
Suivi du déploiementSuivi des déploiements Kubernetes et des restaurations
Surveillance des coûtsAnalyse des coûts de ressources AWS, GCP, Azure
Analyse réseauMétriques de connexion TCP, latence DNS, retransmissions
ProtocoleMétriques collectées
HTTP/HTTPSLatence, taux d’erreur, débit
gRPCLatence au niveau de la méthode et erreurs
PostgreSQLLatence des requêtes, connexions, erreurs
MySQLPerformance des requêtes, requêtes lentes
RedisLatence des commandes, rapport hit/miss
MongoDBLatence de l’opération, connexions
KafkaLag producteur/consommateur, débit
DNSLatence de résolution, taux d’échec
# Dimensionnement personnalisé de ClickHouse
helm install coroot coroot/coroot-ce \
  --set clickhouse.shards=3 \
  --set clickhouse.replicas=2 \
  --set clickhouse.storage=100Gi

# Paramètres Prometheus personnalisés
helm install coroot coroot/coroot-ce \
  --set prometheus.storage=50Gi \
  --set prometheus.retention=30d

# Activer ingress
helm install coroot coroot/coroot-ce \
  --set ingress.enabled=true \
  --set ingress.host=coroot.example.com
Type d’alerteDescription
Dépassement SLODéclenché quand la cible SLO est à risque
Pic de latenceLa latence p99 dépasse le seuil
Taux d’erreurLe pourcentage d’erreur dépasse le seuil
RessourceAnomalie d’utilisation CPU, mémoire ou disque
DéploiementDéploiement échoué ou dégradé détecté
CanalConfiguration
SlackURL du webhook
PagerDutyClé d’intégration
OpsgenieClé API
EmailParamètres SMTP
WebhookPoint de terminaison HTTP personnalisé
ProblèmeSolution
Aucune donnée n’apparaîtVérifier que --collector-endpoint de l’agent nœud pointe vers le serveur Coroot
Services manquantsVérifier que l’agent nœud s’exécute avec --privileged et --pid host
eBPF ne se charge pasS’assurer que la version du noyau est 4.16+ avec support BTF
Utilisation mémoire élevéeRéduire --scrape-interval ou limiter les espaces de noms surveillés
Connexion ClickHouseVérifier que ClickHouse s’exécute et est accessible sur le port 9000
  • Déployer les agents nœud sur chaque nœud du cluster pour une visibilité complète
  • Utiliser la réplication ClickHouse pour les déploiements en production (minimum 2 réplicas)
  • Définir des cibles SLO significatives avant de s’appuyer sur les alertes automatiques
  • Commencer par Docker Compose pour l’évaluation, migrer vers Helm pour la production
  • Configurer l’écriture à distance Prometheus pour persister les métriques au-delà des redémarrages de pod
  • Utiliser le profileur intégré pour identifier les hotspots CPU/mémoire avant de mettre à l’échelle
  • Activer le suivi des déploiements pour corréler les modifications de performance avec les versions