Zum Inhalt springen

Coroot Observability

Open-Source-eBPF-basiertes Observability- und APM-Tool mit Zero-Instrumentation Metrics, Logs, Traces und Continuous Profiling für Kubernetes und Docker Umgebungen.

# One-Command-Deployment mit ClickHouse und Prometheus
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-compose.yaml | \
  docker compose -f - up -d

# UI zugreifen unter http://localhost:8080
# Coroot Helm Repository hinzufügen
helm repo add coroot https://coroot.github.io/helm-charts
helm repo update coroot

# Coroot Operator installieren
helm install -n coroot --create-namespace coroot-operator coroot/coroot-operator

# Community Edition deployen
helm install -n coroot coroot coroot/coroot-ce

# Mit ClickHouse Replication deployen
helm install -n coroot coroot coroot/coroot-ce \
  --set "clickhouse.shards=2,clickhouse.replicas=2"

# Port Forward, um auf UI zuzugreifen
kubectl port-forward -n coroot service/coroot-coroot 8080:8080

# UI zugreifen unter http://localhost:8080
# Coroot Stack deployen
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-swarm-stack.yaml | \
  docker stack deploy -c - coroot
# Coroot Server installieren
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 -
# Gleicher Installer funktioniert auch für RHEL-basierte Distributionen
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 -
# Node Agent als privilegierten Container ausführen
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
# Node Agent auf Bare-Metal oder VMs installieren
curl -sfL https://raw.githubusercontent.com/coroot/coroot-node-agent/main/install.sh | \
  COLLECTOR_ENDPOINT=http://COROOT_IP:8080 \
  SCRAPE_INTERVAL=15s \
  sh -
# Node Agent wird automatisch vom Coroot Operator deployt
# Keine separate Installation nötig, wenn Helm verwendet wird
BefehlBeschreibung
docker compose up -dCoroot mit Docker Compose starten
docker compose downAlle Coroot Services stoppen
docker compose logs -fCoroot Logs folgen
helm install coroot coroot/coroot-ceCoroot auf Kubernetes installieren
helm upgrade coroot coroot/coroot-ceCoroot upgraden
helm uninstall coroot -n corootCoroot aus Cluster entfernen
kubectl port-forward svc/coroot-coroot 8080:8080 -n corootUI zugreifen
VariableBeschreibungDefault
BOOTSTRAP_PROMETHEUS_URLPrometheus Server EndpointErforderlich
BOOTSTRAP_REFRESH_INTERVALMetrics Collection Interval15s
BOOTSTRAP_CLICKHOUSE_ADDRESSClickHouse Server AdresseErforderlich
LISTEN_ADDRESSHTTP Listen Adresse:8080
DATA_DIRData Directory Path/var/lib/coroot
FlagBeschreibungDefault
--collector-endpointCoroot Server EndpointErforderlich
--cgroupfs-rootCgroup Filesystem Root Path/sys/fs/cgroup
--scrape-intervalMetrics Scrape Interval15s
--log-levelLogging Verbosityinfo
KomponenteRolle
Coroot ServerZentrales Dashboard, Analyse-Engine, Alerting
Node AgenteBPF-basierte Metric/Log Collection auf jedem Node
Cluster AgentDatabase Monitoring (MySQL, PostgreSQL, Redis)
ClickHouseMetrics, Logs, Traces und Profiles Storage
PrometheusMetrics Scraping und Remote Write
FeatureBeschreibung
Automatic DiscoveryServices werden automatisch via eBPF discovered — keine Code Changes notwendig
Service MapLive Topology Map zeigt alle Service Dependencies
Distributed TracingRequest Tracing über Microservices ohne SDK
Log CollectionAutomatische Log-Sammlung und Pattern Clustering
Continuous ProfilingCPU/Memory Profiling mit One-Click Aktivation
FähigkeitBeschreibung
SLO TrackingDefine und Monitor Service Level Objectives
Issue DetectionAutomatische Identifikation von 80%+ der Issues
Deployment TrackingTrack Kubernetes Deployments und Rollbacks
Cost MonitoringAWS, GCP, Azure Resource Cost Analysis
Network AnalysisTCP Connection Metrics, DNS Latency, Retransmits
ProtokollCollected Metrics
HTTP/HTTPSLatency, Error Rate, Throughput
gRPCMethod-level Latency und Errors
PostgreSQLQuery Latency, Connections, Errors
MySQLQuery Performance, Slow Queries
RedisCommand Latency, Hit/Miss Ratio
MongoDBOperation Latency, Connections
KafkaProducer/Consumer Lag, Throughput
DNSResolution Latency, Failure Rate
# Custom ClickHouse Sizing
helm install coroot coroot/coroot-ce \
  --set clickhouse.shards=3 \
  --set clickhouse.replicas=2 \
  --set clickhouse.storage=100Gi

# Custom Prometheus Settings
helm install coroot coroot/coroot-ce \
  --set prometheus.storage=50Gi \
  --set prometheus.retention=30d

# Enable Ingress
helm install coroot coroot/coroot-ce \
  --set ingress.enabled=true \
  --set ingress.host=coroot.example.com
Alert TypeBeschreibung
SLO BreachTriggered, wenn SLO Target in Gefahr ist
Latency Spikep99 Latency übersteigt Threshold
Error RateError Percentage übersteigt Threshold
ResourceCPU, Memory oder Disk Usage Anomalie
DeploymentFailed oder Degraded Deployment erkannt
ChannelKonfiguration
SlackWebhook URL
PagerDutyIntegration Key
OpsgenieAPI Key
EmailSMTP Settings
WebhookCustom HTTP Endpoint
IssueLösung
Keine Daten sichtbarÜberprüfen Sie, ob Node Agent --collector-endpoint auf Coroot Server verweist
Fehlende ServicesÜberprüfen Sie, ob Node Agent mit --privileged und --pid host läuft
eBPF nicht geladenStellen Sie sicher, dass Kernel Version 4.16+ mit BTF Support vorhanden ist
Hohe Memory UsageReduzieren Sie --scrape-interval oder limitieren Sie monitored Namespaces
ClickHouse ConnectionÜberprüfen Sie, ob ClickHouse läuft und auf Port 9000 erreichbar ist
  • Node Agents auf jedem Node im Cluster deployen für komplette Visibility
  • ClickHouse Replication für Produktions-Deployments verwenden (Minimum 2 Replicas)
  • Sinnvolle SLO Targets setzen, bevor Sie sich auf automatisches Alerting verlassen
  • Mit Docker Compose zum Evaluieren beginnen, dann zu Helm für Produktion migrieren
  • Prometheus Remote Write konfigurieren, um Metrics über Pod Restarts zu persistieren
  • Built-in Profiler verwenden, um CPU/Memory Hotspots vor Scaling zu identifizieren
  • Deployment Tracking aktivieren, um Performance Changes mit Releases zu korrelieren