Monitor a RisingWave cluster
If you run RisingWave in a Kubernetes cluster, you can monitor its performance, including the usage of resources like CPU, memory, and network, and the status of different nodes.
Install the monitoring stack
To monitor a RisingWave cluster, you can use the monitoring stack in the RisingWave-Operator
repository. The stack includes Prometheus for collecting data, Grafana for visualization and alerting, and other necessary resources.
Clone or download the RisingWave-Operator
repository to your environment.
Run the script to install the monitoring stack. It will create the monitoring
namespace and deploy all monitoring services in the namespace.
Start monitoring
The RisingWave operator is now integrated with the Prometheus operator, which creates a service monitor for RisingWave and ensures that data is collected automatically.
- Check if Prometheus is collecting data from RisingWave:
The expected output is like this:
- Forward the web port of Grafana to localhost.
The command above allows you to access Grafana from the local machine only. If you need to access Grafana from a different host, append --address 0.0.0.0
to the command to allow Grafana to accept requests from external hosts. The complete command is:
- Go to http://localhost:3000 if you access Grafana from a local machine, or
http://<client_address>:3000
if you access Grafana from a different host, where<client_address>
is the IP address of the machine running the Grafana service. When prompted, enter the default credentials (username:admin
; password:prom-operator
). - From Dashboards, select RisingWave -> RisingWave Dashboard. You can edit metrics in the dashboard and add new metrics.
Grafana dashboard for multi-cluster
If you have multiple RisingWave clusters deployed in a Kubernetes cluster, you need to generate a Grafana dashboard for the multi-cluster scenario.
The following steps can be run in any machine, it is only for generating the Grafana dashboard JSON model.
- Clone the risingwave repository.
-
Follow the instruction to set up the toolchain.
-
Run the following command to generate the Grafana dashboard JSON model.
- Import the generated JSON models (*.gen.json) into Grafana.
Troubleshooting
If the namespace filter is not working, it is probably because the metrics collected does not contain the label risingwave_name
. In that case, you need to
use metricRelabelings
and relabelings
fields in the endpoint spec to add this label to the metrics.