Grafana using Prometheus
View as MarkdownThis guide walks you through the steps required to monitor the performance and overall health of your Materialize instance using Prometheus and Grafana.
Before you begin
Ensure you have:
- A self-managed instance of Materialize installed with helm values
observability.enabled=true,observability.podMetrics.enabled=true, andprometheus.scrapeAnnotations.enabled=true - Helm version 3.2.0+ installed
- kubectl installed and configured
- metrics-server installed in your cluster
- kube-state-metrics installed in your cluster
1. Download our Prometheus scrape configurations (prometheus.yml)
Download the Prometheus scrape configurations that we’ll use to configure Prometheus to collect metrics from Materialize:
curl -o prometheus_scrape_configs.yml https://materializeinc.github.io/materialize-monitoring/prometheus-scrapers/classic/scrape_config.yaml
2. Install Prometheus to your Kubernetes cluster
This guide uses the prometheus-community Helm chart to install Prometheus.
Many more production-ready Prometheus Helm charts are available which have different ways to configure Prometheus and its scrape configurations. Be sure to consult the documentation of the Prometheus Helm chart you are using to ensure that you are configuring Prometheus correctly.
-
Download the prometheus-community default chart values (
values.yaml):curl -O https://raw.githubusercontent.com/prometheus-community/helm-charts/refs/heads/main/charts/prometheus/values.yaml -
Within
values.yaml, replaceserverFiles > prometheus.yml > scrape_configswith our scrape configurations (prometheus_scrape_configs.yml). -
Install the helm chart with the updated
values.yaml:kubectl create namespace prometheus helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install --namespace prometheus prometheus prometheus-community/prometheus \ --values values.yaml
3. Optional. Visualize through Grafana
-
Install the Grafana helm chart following this guide.
-
Set up port forwarding to access the Grafana UI:
kubectl port-forward svc/grafana 3000:80 -n monitoringWARNING! The port forwarding method is for testing purposes only. For production environments, configure an ingress controller to securely expose the Grafana UI. -
Open the Grafana UI on http://localhost:3000 in a browser.
-
Add a Prometheus data source. In the Grafana UI, under Connection > Data sources,
- Click Add data source and select prometheus
- In the Connection section, set Prometheus server URL to
http://<prometheus server name>.<namespace>.svc:<port>(e.g.http://prometheus-server.prometheus.svc:80).

-
Download dashboards from our Grafana dashboards repository
-
Import the dashboards using the Prometheus data source
