# README
go-redis-prometheus
go-redis hook that exports Prometheus metrics.
Installation
go get github.com/globocom/go-redis-prometheus
Usage
package main
import (
"github.com/go-redis/redis/v8"
"github.com/globocom/go-redis-prometheus"
)
func main() {
hook := redisprom.NewHook(
redisprom.WithInstanceName("cache"),
redisprom.WithNamespace("my_namespace"),
redisprom.WithDurationBuckets([]float64{.001, .005, .01}),
)
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
})
client.AddHook(hook)
// run redis commands...
}
Exported metrics
The hook exports the following metrics:
- Single commands (not pipelined):
- Histogram of commands:
redis_single_commands_bucket{instance="main",command="get"}
- Counter of errors:
redis_single_errors{instance="main",command="get"}
- Histogram of commands:
- Pipelined commands:
- Counter of commands:
redis_pipelined_commands{instance="main",command="get"}
- Counter of errors:
redis_pipelined_errors{instance="main",command="get"}
- Counter of commands:
Note on pipelines
It isn't possible to measure the duration of individual pipelined commands, but the duration of the pipeline itself is calculated and exported as a pseudo-command called "pipeline" under the single command metric.
# Functions
DefaultOptions returns the default options.
NewHook creates a new go-redis hook instance and registers Prometheus collectors.
WithDurationBuckets sets the duration buckets of single commands metrics.
WithInstanceName sets the name of the Redis instance.
WithNamespace sets the namespace of all metrics.
# Type aliases
No description provided by the author