Skip to content

Commit

Permalink
Merge pull request #148 from oliver006/oh_consider_cluster_when_padding
Browse files Browse the repository at this point in the history
Fix dbCount in cluster mode
  • Loading branch information
oliver006 authored Mar 22, 2018
2 parents ed524c8 + e582e87 commit e0df016
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions exporter/redis.go
Original file line number Diff line number Diff line change
Expand Up @@ -625,23 +625,32 @@ func (e *Exporter) scrapeRedisHost(scrapes chan<- scrapeResult, addr string, idx
log.Debugf("Redis CONFIG err: %s", err)
}

info, err := redis.String(doRedisCmd(c, "INFO", "ALL"))
if err == nil {
e.extractInfoMetrics(info, addr, e.redis.Aliases[idx], scrapes, dbCount, true)
} else {
infoAll, err := redis.String(doRedisCmd(c, "INFO", "ALL"))
if err != nil {
log.Errorf("Redis INFO err: %s", err)
return err
}
isClusterEnabled := strings.Contains(infoAll, "cluster_enabled:1")

if strings.Contains(info, "cluster_enabled:1") {
info, err = redis.String(doRedisCmd(c, "CLUSTER", "INFO"))
if err != nil {
log.Errorf("redis err: %s", err)
if isClusterEnabled {
if clusterInfo, err := redis.String(doRedisCmd(c, "CLUSTER", "INFO")); err == nil {
e.extractInfoMetrics(clusterInfo, addr, e.redis.Aliases[idx], scrapes, dbCount, false)

// in cluster mode Redis only supports one database so no extra padding beyond that needed
dbCount = 1
} else {
e.extractInfoMetrics(info, addr, e.redis.Aliases[idx], scrapes, dbCount, false)
log.Errorf("Redis CLUSTER INFO err: %s", err)
}
} else {
// in non-cluster mode, if dbCount is zero then "CONFIG" failed to retrieve a valid
// number of databases and we use the Redis config default which is 16
if dbCount == 0 {
dbCount = 16
}
}

e.extractInfoMetrics(infoAll, addr, e.redis.Aliases[idx], scrapes, dbCount, true)

if reply, err := doRedisCmd(c, "LATENCY", "LATEST"); err == nil {
var eventName string
var spikeLast, milliseconds, max int64
Expand Down

0 comments on commit e0df016

Please sign in to comment.