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
| Commande | Description |
|---|
docker compose up -d | Démarrer Coroot avec Docker Compose |
docker compose down | Arrêter tous les services Coroot |
docker compose logs -f | Suivre les journaux Coroot |
helm install coroot coroot/coroot-ce | Installer Coroot sur Kubernetes |
helm upgrade coroot coroot/coroot-ce | Mettre à jour Coroot |
helm uninstall coroot -n coroot | Supprimer Coroot du cluster |
kubectl port-forward svc/coroot-coroot 8080:8080 -n coroot | Accéder à l’interface Coroot |
| Variable | Description | Par défaut |
|---|
BOOTSTRAP_PROMETHEUS_URL | Point de terminaison du serveur Prometheus | Requis |
BOOTSTRAP_REFRESH_INTERVAL | Intervalle de collecte des métriques | 15s |
BOOTSTRAP_CLICKHOUSE_ADDRESS | Adresse du serveur ClickHouse | Requis |
LISTEN_ADDRESS | Adresse d’écoute HTTP | :8080 |
DATA_DIR | Chemin du répertoire de données | /var/lib/coroot |
| Drapeau | Description | Par défaut |
|---|
--collector-endpoint | Point de terminaison du serveur Coroot | Requis |
--cgroupfs-root | Chemin racine du système de fichiers cgroup | /sys/fs/cgroup |
--scrape-interval | Intervalle de scrape des métriques | 15s |
--log-level | Verbosité de la journalisation | info |
| Composant | Rôle |
|---|
| Serveur Coroot | Tableau de bord central, moteur d’analyse, alertes |
| Agent nœud | Collecte de métriques et journaux basée sur eBPF sur chaque nœud |
| Agent cluster | Surveillance de la base de données (MySQL, PostgreSQL, Redis) |
| ClickHouse | Stockage des métriques, journaux, traces et profils |
| Prometheus | Scrape de métriques et écriture à distance |
| Fonctionnalité | Description |
|---|
| Découverte automatique | Services découverts automatiquement via eBPF — aucune modification de code nécessaire |
| Carte de service | Carte 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 journaux | Collecte automatique de journaux et clustering de modèles |
| Profilage continu | Profilage CPU/mémoire avec activation en un clic |
| Capacité | Description |
|---|
| Suivi SLO | Définir et surveiller les objectifs de niveau de service |
| Détection de problèmes | Identification automatique de 80%+ des problèmes |
| Suivi du déploiement | Suivi des déploiements Kubernetes et des restaurations |
| Surveillance des coûts | Analyse des coûts de ressources AWS, GCP, Azure |
| Analyse réseau | Métriques de connexion TCP, latence DNS, retransmissions |
| Protocole | Métriques collectées |
|---|
| HTTP/HTTPS | Latence, taux d’erreur, débit |
| gRPC | Latence au niveau de la méthode et erreurs |
| PostgreSQL | Latence des requêtes, connexions, erreurs |
| MySQL | Performance des requêtes, requêtes lentes |
| Redis | Latence des commandes, rapport hit/miss |
| MongoDB | Latence de l’opération, connexions |
| Kafka | Lag producteur/consommateur, débit |
| DNS | Latence 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’alerte | Description |
|---|
| Dépassement SLO | Déclenché quand la cible SLO est à risque |
| Pic de latence | La latence p99 dépasse le seuil |
| Taux d’erreur | Le pourcentage d’erreur dépasse le seuil |
| Ressource | Anomalie d’utilisation CPU, mémoire ou disque |
| Déploiement | Déploiement échoué ou dégradé détecté |
| Canal | Configuration |
|---|
| Slack | URL du webhook |
| PagerDuty | Clé d’intégration |
| Opsgenie | Clé API |
| Email | Paramètres SMTP |
| Webhook | Point de terminaison HTTP personnalisé |
| Problème | Solution |
|---|
| Aucune donnée n’apparaît | Vérifier que --collector-endpoint de l’agent nœud pointe vers le serveur Coroot |
| Services manquants | Vérifier que l’agent nœud s’exécute avec --privileged et --pid host |
| eBPF ne se charge pas | S’assurer que la version du noyau est 4.16+ avec support BTF |
| Utilisation mémoire élevée | Réduire --scrape-interval ou limiter les espaces de noms surveillés |
| Connexion ClickHouse | Vé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