Prometheus and Grafana with Redis Cloud
Use Prometheus and Grafana to collect and visualize Redis Cloud metrics.
You can use Prometheus and Grafana to collect and visualize your Redis Cloud metrics.
- Prometheus is an open source systems monitoring and alerting toolkit that can scrape metrics from different sources.
- Grafana is an open source metrics visualization tool that can process Prometheus data.
Redis Cloud exposes its metrics through a Prometheus endpoint. You can configure your Prometheus server to scrape metrics from your Redis Cloud subscription on port 8070.
The Redis Cloud Prometheus endpoint is exposed on Redis Cloud's internal network. To access this network, enable VPC peering or Private Service Connect. Both options are only available with Redis Cloud Pro. You cannot use Prometheus and Grafana with Redis Cloud Essentials.
For more information on how Prometheus communicates with Redis Enterprise clusters, see Prometheus integration with Redis Enterprise Software.
Quick start
You can quickly set up Prometheus and Grafana for testing using the Prometheus and Grafana Docker images.
Prerequisites
-
Create a Redis Cloud Pro database.
-
Set up VPC peering.
-
Extract the Prometheus endpoint from the private endpoint to your database. The private endpoint is in the Redis Cloud console under the Configuration tab of your database. The Prometheus endpoint is on port 8070 of the internal server.
For example, if your private endpoint is:
redis-12345.internal.<cluster_address>:12345
The Prometheus endpoint is:
internal.<cluster_address>:8070
-
Create an instance to run Prometheus and Grafana on the same cloud provider as your Redis Cloud subscription (for example, Amazon Web Services or Google Cloud). This instance must:
- Exist in the same region as your Redis Cloud subscription.
- Connect to the VPC subnet that is peered with your Redis Cloud subscription.
- Allow outbound connections to port 8070, so that Prometheus can scrape the Redis Cloud server for data.
- Allow inbound connections to port 9090 for Prometheus and port 3000 for Grafana.
Set up Prometheus
To get started with custom monitoring with Prometheus on Docker:
-
Create a directory on the Prometheus instance called
prometheus
and create aprometheus.yml
file in that directory. -
Add the following contents to
prometheus.yml
. Replace<prometheus_endpoint>
with the Prometheus endpoint.global: scrape_interval: 15s evaluation_interval: 15s # Attach these labels to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). external_labels: monitor: "prometheus-stack-monitor" # Load and evaluate rules in this file every 'evaluation_interval' seconds. #rule_files: # - "first.rules" # - "second.rules" scrape_configs: # scrape Prometheus itself - job_name: prometheus scrape_interval: 10s scrape_timeout: 5s static_configs: - targets: ["localhost:9090"] # scrape Redis Cloud - job_name: redis-cloud scrape_interval: 30s scrape_timeout: 30s metrics_path: / scheme: https static_configs: - targets: ["<prometheus_endpoint>:8070"]
-
Create a
docker-compose.yml
file with instructions to set up the Prometheus and Grafana Docker images.version: '3' services: prometheus-server: image: prom/prometheus ports: - 9090:9090 volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml grafana-ui: image: grafana/grafana ports: - 3000:3000 environment: - GF_SECURITY_ADMIN_PASSWORD=secret links: - prometheus-server:prometheus
-
To start the containers, run:
$ docker compose up -d
-
To check that all the containers are up, run:
docker ps
-
In your browser, sign in to Prometheus at
http://localhost:9090
to make sure the server is running. -
Select Status and then Targets to check that Prometheus is collecting data from the Redis Cloud cluster.
If Prometheus is connected to the cluster, you can type node_up in the Expression field on the Prometheus home page to see the cluster metrics.
See Prometheus Metrics for a list of metrics that Prometheus collects from Redis Enterprise clusters.
Set up Grafana
Once the Prometheus and Grafana Docker containers are running, and Prometheus is connected to your Redis Cloud subscription, you can set up your Grafana dashboards.
-
Sign in to Grafana. If you installed Grafana with Docker, go to
http://localhost:3000
and sign in with:- Username:
admin
- Password:
secret
- Username:
-
In the Grafana configuration menu, select Data Sources.
-
Select Add data source.
-
Select Prometheus from the list of data source types.
-
Enter the Prometheus configuration information:
- Name:
redis-cloud
- URL:
http://prometheus-server:9090
- Access:
Server
Note:- If the network port is not accessible to the Grafana server, select the Browser option from the Access menu.
- In a testing environment, you can select Skip TLS verification.
- Name:
-
Add dashboards for your subscription and database metrics. To add preconfigured dashboards:
- In the Grafana dashboards menu, select Manage.
- Select Import.
- Add the subscription status and database status dashboards.
Grafana dashboards for Redis Cloud
Redis publishes preconfigured dashboards for Redis Cloud and Grafana:
- The subscription status dashboard provides an overview of your Redis Cloud subscriptions.
- The database status dashboard displays specific database metrics, including latency, memory usage, ops/second, and key count.
- The Active-Active dashboard displays metrics specific to Active-Active databases.
These dashboards are open source. For additional dashboard options, or to file an issue, see the Redis Enterprise observability Github repository.
For more information about configuring Grafana dashboards, see the Grafana documentation.