prometheus-redis-exporter¶
Prometheus exporter for Redis metrics.
This chart bootstraps a Redis exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites¶
- Kubernetes 1.10+ with Beta APIs enabled
- Helm 3+
Get Repository Info¶
helm repo add prometheus-community https://helm-charts.itboon.top/prometheus-community
helm repo update
See helm repo
for command documentation.
Install Chart¶
See configuration below.
See helm install for command documentation.
Uninstall Chart¶
This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart¶
See helm upgrade for command documentation.
To 5.0.0¶
From 5.0.0 redis exporter is using the Kubernetes recommended labels. Therefore you have to delete the deployment before you upgrade.
kubectl delete deployment -l app=prometheus-redis-exporter
helm upgrade -i prometheus-redis-exporter prometheus-community/prometheus-redis-exporter
From 5.0.0 redis exporter helm chart supports multiple targets.
By enabling serviceMonitor.multipleTarget
and settings the targets in serviceMonitor.targets
, multiple redis instance can be scraped.
serviceMonitor:
enabled: true
multipleTarget: true
telemetryPath: /scrape
targets:
- url: redis://my-redis:6379
name: foo
- url: redis://my-redis-cluster:6379
name: bar
additionalRelabeling:
- sourceLabels: [type]
targetLabel: type
replacement: cluster
To 3.0.1¶
The default tag for the exporter image is now v1.x.x
. This major release includes changes to the names of various metrics and no longer directly supports the configuration (and scraping) of multiple redis instances; that is now the Prometheus server's responsibility. You'll want to use this dashboard now. Please see the redis_exporter GitHub page for more details.
Configuring¶
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
For more information please refer to the redis_exporter documentation.
Redis Connection¶
- To configure Redis connection by value set
redisAddress
string (example format:redis://myredis:6379
) - To configure Redis connection by configmap set
redisAddressConfig.enabled
totrue
, setredisAddressConfig.configmap.name
andredisAddressConfig.configmap.key
values - To configure auth by value, set
auth.enabled
totrue
, andauth.redisPassword
value - To configure auth by secret, set
auth.secret.name
andauth.secret.key
values
Using a custom LUA-Script¶
First, you need to deploy the script with a configmap. This is an example script from mentioned in the redis_exporter-image repository
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-redis-exporter-script
data:
script: |-
-- Example collect script for -script option
-- This returns a Lua table with alternating keys and values.
-- Both keys and values must be strings, similar to a HGETALL result.
-- More info about Redis Lua scripting: https://redis.io/commands/eval
local result = {}
-- Add all keys and values from some hash in db 5
redis.call("SELECT", 5)
local r = redis.call("HGETALL", "some-hash-with-stats")
if r ~= nil then
for _,v in ipairs(r) do
table.insert(result, v) -- alternating keys and values
end
end
-- Set foo to 42
table.insert(result, "foo")
table.insert(result, "42") -- note the string, use tostring() if needed
return result
If you want to use this script for collecting metrics, you could do this by just set script.configmap
to the name of the configmap (e.g. prometheus-redis-exporter-script
) and script.keyname
to the configmap-key holding the script (eg. script
). The required variables inside the container will be set automatically.