Open-source, eBPF-powered observability and APM platform with zero-instrumentation auto-discovery, AI-powered root cause analysis, and continuous profiling.
Coroot is a zero-instrumentation observability platform that leverages eBPF to collect metrics, logs, traces, and continuous profiles directly at the kernel level — without code changes, SDK installations, or application restarts. It focuses on reducing Mean Time to Resolution (MTTR) through automated service map discovery and AI-powered root cause analysis.
Why it's better: The only open-source platform that provides eBPF-based auto-instrumentation across all 4 pillars (metrics, logs, traces, profiles) with zero code changes. AI-powered root cause analysis dramatically reduces MTTR. Automatically discovers and maps all services, databases, and external API dependencies.
When it fits (Applicability):
Teams wanting observability without instrumenting every service
Kubernetes-native environments needing automatic service discovery
Organizations seeking to minimize MTTR with AI-driven diagnostics
Small-to-medium teams without dedicated platform engineering
Pros and Cons:
Pros
Cons
Zero instrumentation required (eBPF)
Requires Linux kernel 4.16+ for eBPF
Auto-generated service maps
Younger project, smaller community
AI root cause analysis
Enterprise features behind paywall
Continuous profiling included
Less customizable dashboards vs Grafana
Apache 2.0 (community)
eBPF data may miss application-level context
Multi-cluster support
No built-in log management (uses ClickHouse/Prometheus)
Does Coroot support OpenTelemetry? → Yes, OTLP for traces and Prometheus remote_write for metrics.
What is the exact ClickHouse schema Coroot uses for trace storage? → Coroot stores traces, logs, and profiles in ClickHouse with per-day partitions managed via TTL (default 7d, configurable via traces.ttl, logs.ttl, profiles.ttl). The Coroot Node Agent collects eBPF traces with configurable sampling (0.0-1.0) and writes them to ClickHouse tables created at startup. Specific column-level schema is not publicly documented in the official docs; check the Coroot source code for exact table definitions, resolved in observability/coroot/architecture
How does Coroot handle eBPF on ARM-based Kubernetes nodes (e.g., Graviton)? → eBPF programs are architecture-specific and must be compiled for the target architecture (BPF bytecode is JIT-compiled to the host's native instruction set). ARM64/Graviton support depends on whether Coroot's Node Agent includes ARM64-compiled eBPF bytecode. No explicit ARM64 compatibility matrix is documented in official Coroot docs; check the Coroot GitHub issues and release notes for ARM64 support status, resolved in observability/coroot/architecture
What are the specific AI models used in the Enterprise RCA engine? → The specific AI/ML models used in Coroot Enterprise's automated root-cause analysis engine are not publicly documented. The Enterprise edition requires a license_key in the configuration and provides automated issue detection beyond the Community edition's capabilities. Contact Coroot directly or check Enterprise documentation for model details, resolved in observability/coroot/index
How does performance degrade with > 500 services in a single cluster? → No public benchmark exists for >500 services. Coroot's Node Agent requests 100m CPU / 200Mi memory with limits of 500m / 1Gi per node, and the metric cache has a configurable TTL (default 30d) and GC interval (10m). At >500 services, the main bottlenecks would be ClickHouse query performance for cross-service traces and the metric cache size. ClickHouse supports sharding (configurable via clickhouse.shards and clickhouse.replicas in the Helm chart) for horizontal scaling. Real-world benchmark at this scale TBD, resolved in observability/coroot/architecture
Does Coroot support Kubernetes NetworkPolicy detection via eBPF? → Coroot's eBPF tracer (ebpfTracer.enabled: true) collects network connection data between services to build the service map and detect latency/errors. It tracks TCP/HTTP/gRPC connections but does not explicitly detect or validate Kubernetes NetworkPolicy resources. NetworkPolicy enforcement is handled by CNI plugins (Calico, Cilium); Coroot can visualize the resulting network topology and detect connectivity failures that may result from NetworkPolicy misconfiguration. Explicit NetworkPolicy detection via eBPF is not a documented feature, resolved in observability/coroot/architecture