Skip to content

go-redis hook to export Prometheus metrics

License

globocom/go-redis-prometheus

Repository files navigation

go-redis-prometheus

go-redis hook that exports Prometheus metrics.

Also check out our lib https://github.com/globocom/go-redis-opentracing.

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"}
  • Pipelined commands:
    • Counter of commands: redis_pipelined_commands{instance="main",command="get"}
    • Counter of errors: redis_pipelined_errors{instance="main",command="get"}

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.

API stability

The API is unstable at this point and it might change before v1.0.0 is released.

About

go-redis hook to export Prometheus metrics

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •