To collect metrics data from your databases and Redis Enterprise cluster (REC), you can connect your Prometheus server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the prometheus port (8070) for data collection. A custom resource called ServiceMonitor allows the Prometheus operator to connect to this port and collect data from Redis Enterprise.

Prerequisites

Before connecting Redis Enterprise to Prometheus on your Kubernetes cluster, make sure you’ve done the following:

Create a ServiceMonitor custom resource

Below is an example ServiceMonitor custom resource file. By specifying the service label (app: redis.io/service=prom-metrics) in the selector.matchLabels section, you can point the Prometheus operator to the correct Redis Enterprise service (<rec_name>-prom).

You’ll need to configure the following fields to connect Prometheus to Redis Enterprise:

Section Field Value
spec.endpoints port Name of exposed port (prometheus)
spec.namespaceSelector matchNames Namespace for your REC
spec.selector matchLabels REC service label (app: redis.io/service=prom-metrics)

Apply the file in the same namespace as your Redis Enterprise cluster (REC).

Note:
If Redis Enterprise and Prometheus are deployed in different namespaces, you’ll also need to add the serviceMonitorNamespaceSelector field to your Prometheus resource. See the Prometheus operator documentation for more details on cross-namespace ServiceMonitor configuration.

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: redis-enterprise
spec:
  endpoints:
  - interval: 15s
    port: prometheus
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  namespaceSelector:
    matchNames:
    - <your_REC_namespace>
  selector:
    matchLabels:
      redis.io/service: prom-metrics

For more info about configuring the ServiceMonitor resource, see the ServiceMonitorSpec API documentation.

More info