Thursday, 25 September 2025

Enable Prometheus Data Scraping for Bitnami Redis Standalone Deployed on AKS with Managed Prometheus

 We have discussed "Enable Prometheus Data Scraping for Bitnami Redis Cluster Deployed on AKS with Managed Prometheus" in the previous post. Similar way we can setup Prometheus data scraping for standalone redis deployments on AKS as well. Here are the steps.

The expectaion is to have the metrics sidecar run with the standalone redis master and replica pods as shown below and setup a service monitor so that redis metrics data is made available in Azure managed grafana via managed prometheus on AKS. 



We need to update bitnami redis standalone deployemnt helm command with below parameters. Again we have to ensure service monitor is not deployed with helm as it would try to deploy monitoring.coreos.com/v1 while we have servicemonitors.azmonitoring.coreos.com with Azure managed promentheus on AKS.

--set metrics.enabled=true \
--set metrics.serviceMonitor.enabled=false \
--set metrics.resources.requests.cpu=300m \
--set metrics.resources.requests.memory=1Gi \
--set metrics.resources.limits.memory=1Gi

The full hlm command is below.

helm upgrade redis-standalone bitnami/redis --install \
    --namespace redis \
    --version 21.2.12 \
    --set master.nodeSelector."kubernetes\.io/os"=linux \
    --set replica.nodeSelector."kubernetes\.io/os"=linux \
    --set global.defaultStorageClass=redis-storage \
    --set master.persistence.enabled=true \
    --set replica.persistence.enabled=true \
    --set master.persistentVolumeClaimRetentionPolicy.enabled=true \
    --set replica.persistentVolumeClaimRetentionPolicy.enabled=true \
    --set master.persistentVolumeClaimRetentionPolicy.whenDeleted=Delete \
    --set replica.persistentVolumeClaimRetentionPolicy.whenDeleted=Delete \
    --set replica.replicaCount=2 \
    --set auth.existingSecret=redis-service-credentials \
    --set auth.existingSecretPasswordKey=password \
    --set master.extraFlags="{--loadmodule\ /opt/redis/modules/redisbloom.so,--loadmodule\ /opt/redis/modules/redisearch.so,--loadmodule\ /opt/redis/modules/redistimeseries.so,--loadmodule\ /opt/redis/modules/rejson.so}" \
    --set replica.extraFlags="{--loadmodule\ /opt/redis/modules/redisbloom.so,--loadmodule\ /opt/redis/modules/redisearch.so,--loadmodule\ /opt/redis/modules/redistimeseries.so,--loadmodule\ /opt/redis/modules/rejson.so}" \
    --set metrics.enabled=true \
    --set metrics.serviceMonitor.enabled=false \
    --set metrics.resources.requests.cpu=300m \
    --set metrics.resources.requests.memory=1Gi \
    --set metrics.resources.limits.memory=1Gi \
    --set master.persistence.size=16Gi \
    --set replica.persistence.size=16Gi \
    --set master.resources.requests.memory=4Gi \
    --set master.resources.limits.memory=4Gi \
    --set master.resources.requests.cpu=500m \
    --set replica.resources.requests.memory=4Gi \
    --set replica.resources.limits.memory=4Gi \
    --set replica.resources.requests.cpu=500m \
    --set global.security.allowInsecureImages=true \
    --set image.registry=chdemoacr.azurecr.io \
    --set image.repository=ch/redis/ch_redis_standalone \
    --set image.tag=8.0.2-debian-12-r3

Then we have to setup service monitor with servicemonitors.azmonitoring.coreos.com for the standalone redis as shown below.

apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: redis-standalone
  namespace: redis
  labels:
    release: redis-standalone
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: redis
      app.kubernetes.io/instance: redis-standalone
      app.kubernetes.io/component: metrics
  endpoints:
    - port: http-metrics
      interval: 1m
  namespaceSelector:
    matchNames:
      - redis

Then we can see the redis standalone master and replica pods run metrics sidecar container.







Service monitor is setup as below.

Refer to "Setup Managed Prometheus for AKS via Terraform" to see how to allow selecting prometheus datasource dynamically in an Azure managed grafana dashboard.


No comments:

Popular Posts