groundcover stores the metrics it creates in a Prometheus compatible datasource. This datasource is deployed in-cluster inside your environment and under your control so they can be immediately added to your Grafana, enriching your current monitoring experience with highly intimate and granular insights about your applications and infrastructure.
agentgroundcover's data collection and aggregation agent. The agent is deployed as a DaemonSet called alligator, running a single pod in each node in the cluster.
backendgroundcover's in-cluster data backend and its connector to the groundcover cloud. The groundcover backend contains Pods that manage the data aggregation and data stores for the logs, metrics, traces and events that are created by the groundcover agent and stored in-cloud.
cloudgroundcover's control plane, taking care of routing the data from the groundcover backend to the user's browser. The groundcover cloud also handles and manages metadata around users, organizations etc.
Here's a detailed description of groundcover's unique in-cloud architecture:
groundcover's in-cloud architecture
When deploying groundcover you will see the following components running:
(DaemonSet)alligator is groundcover's agent. It is responsible for loading the eBPF program used to collect the data, aggregating the data (like creating high cardinality metrics on-the-fly) and capturing raw data (like API traces) based on its internal logic.
(ReplicaSet)shepherd is responsible for the smart aggregation of all metrics reported from the the different alligators in the cluster. shepherd controls the final metric cardinality before it's deposited into the time-series database and other mechanisms like series aging, report interval etc.
(ReplicaSet)k8s-watcher is responsible for gathering and clustering all Kubernetes metadata in the current cluster.
(StatefulSet)loki is a logs database (Grafana Loki), used for the persistent storage of all collected logs. loki supports LogQL as its log query language.
(StatefulSet)timescale (TimescaleDB) is a PostgreSQL-based database, used for the persistent storage of all collected traces and events.
(StatefulSet)VictoriaMetrics (VictoriaMetrics) is a time-series database, used for the persistent storage of all collected metrics. VictoriaMetrics supports a PromQL query interface, so it can be treated as a Prometheus compatible datasource.
(ReplicaSet)vmagent is a tiny agent which helps collect metrics from various sources. It is used for collecting groundcover's internal metrics.
(ReplicaSet)portal is responsible for connecting the customer's cluster to groundcover's cloud backend, and allow permitted users to access their in-cloud data.