stable/prometheus-redis-exporter/README.md
DEPRECATED and moved to https://github.com/prometheus-community/helm-charts
redis_exporter is a Prometheus exporter for Redis metrics.
$ helm install stable/prometheus-redis-exporter
This chart bootstraps a redis_exporter deployment on a Kubernetes cluster using the Helm package manager.
To install the chart with the release name my-release:
$ helm install --name my-release stable/prometheus-redis-exporter
The command deploys prometheus-redis-exporter on the Kubernetes cluster in the default configuration.
To uninstall/delete the my-release deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
The following table lists the configurable parameters and their default values.
| Parameter | Description | Default |
|---|---|---|
replicaCount | desired number of prometheus-redis-exporter pods | 1 |
image.repository | prometheus-redis-exporter image repository | oliver006/redis_exporter |
image.tag | prometheus-redis-exporter image tag | v1.3.4 |
image.pullPolicy | image pull policy | IfNotPresent |
image.pullSecrets | image pull secrets | {} |
extraArgs | extra arguments for the binary; possible values here | {} |
env | additional environment variables in YAML format. Can be used to pass credentials as env variables (via secret) as per the image readme here | {} |
resources | cpu/memory resource requests/limits | {} |
tolerations | toleration labels for pod assignment | {} |
affinity | affinity settings for pod assignment | {} |
service.type | desired service type | ClusterIP |
service.port | service external port | 9121 |
service.annotations | Custom annotations for service | {} |
service.labels | Additional custom labels for the service | {} |
redisAddress | Address of the Redis instance to scrape. Use rediss:// for SSL. | redis://myredis:6379 |
annotations | pod annotations for easier discovery | {} |
rbac.create | Specifies whether RBAC resources should be created. | true |
rbac.pspEnabled | Specifies whether a PodSecurityPolicy should be created. | true |
serviceAccount.create | Specifies whether a service account should be created. | true |
serviceAccount.name | Name of the service account. | |
serviceMonitor.enabled | Use servicemonitor from prometheus operator | false |
serviceMonitor.namespace | Namespace this servicemonitor is installed in | |
serviceMonitor.interval | How frequently Prometheus should scrape | |
serviceMonitor.telemetryPath | Path to redis-exporter telemtery-path | |
serviceMonitor.labels | Labels for the servicemonitor passed to Prometheus Operator | {} |
serviceMonitor.timeout | Timeout after which the scrape is ended | |
serviceMonitor.targetLabels | Set of labels to transfer on the Kubernetes Service onto the target. | |
serviceMonitor.metricRelabelings | MetricRelabelConfigs to apply to samples before ingestion. | |
prometheusRule.enabled | Set this to true to create prometheusRules for Prometheus operator | false |
prometheusRule.additionalLabels | Additional labels that can be used so prometheusRules will be discovered by Prometheus | {} |
prometheusRule.namespace | namespace where prometheusRules resource should be created | |
prometheusRule.rules | rules to be created, check values for an example. | [] |
script.configmap | Let you run a custom lua script from a configmap. The corresponding environment variable REDIS_EXPORTER_SCRIPT will be set automatically | |
script.keyname | Name of the key inside configmap which contains your script | |
auth.enabled | Specifies whether redis uses authentication | false |
auth.secret.name | Name of existing redis secret (ignores redisPassword) | |
auth.secret.key | Name of key containing password to be retrieved from the existing secret | |
auth.redisPassword | Redis password (when not stored in a secret) |
For more information please refer to the redis_exporter documentation.
Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,
$ helm install --name my-release \
--set "redisAddress=redis://myredis:6379" \
stable/prometheus-redis-exporter
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
$ helm install --name my-release -f values.yaml stable/prometheus-redis-exporter
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.
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.