Multi-tenancy
A single Coroot instance can monitor multiple projects. Each project represents a distinct infrastructure, such as a Dev, Staging, or Production environment, a regional cluster, or a cluster dedicated to specific products or features.
Configuration
By default, Coroot requires a dedicated ClickHouse and Prometheus configuration for each project.
To enable multi-tenancy mode, specify a global ClickHouse and Prometheus by using the GLOBAL_CLICKHOUSE_ADDRESS
and GLOBAL_PROMETHEUS_URL environment variables or their corresponding CLI arguments.
Note: When these parameters are set, ClickHouse and Prometheus configurations will no longer be editable in the UI.
ClickHouse
When multi-tenancy mode is enabled, Coroot automatically creates a dedicated database for each project.
Telemetry data pushed by Coroot agents (coroot-node-agent
and coroot-cluster-agent
) is stored in their
respective project databases, ensuring data isolation and enabling efficient querying for individual projects.
Prometheus
Multi-tenancy mode requires Coroot's agent to operate in push mode for metrics using the Prometheus Remote Write Protocol. This functionality is enabled by default when Coroot is deployed on Kubernetes using the Coroot Operator, Docker, or virtual machines (VMs).
Coroot automatically appends the coroot_project_id
label to each metric and uses {coroot_project_id="XXXX"}
as an
additional selector when querying metrics for a specific project. This ensures precise data segmentation and retrieval per project.