Merge pull request #107 from digitalocean/fix-degraded-misplaced-count

health: fix degraded/misplaced object count
This commit is contained in:
Vaibhav Bhembre 2018-10-23 17:38:12 -04:00 committed by GitHub
commit d0ed675640
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 2 deletions

View File

@ -615,8 +615,8 @@ func (c *ClusterHealthCollector) collect(ch chan<- prometheus.Metric) error {
stuckStaleRegex = regexp.MustCompile(`([\d]+) pgs stuck stale`)
slowRequestRegex = regexp.MustCompile(`([\d]+) requests are blocked`)
slowRequestRegexLuminous = regexp.MustCompile(`([\d]+) slow requests are blocked`)
degradedObjectsRegex = regexp.MustCompile(`recovery ([\d]+)/([\d]+) objects degraded`)
misplacedObjectsRegex = regexp.MustCompile(`recovery ([\d]+)/([\d]+) objects misplaced`)
degradedObjectsRegex = regexp.MustCompile(`([\d]+)/([\d]+) objects degraded`)
misplacedObjectsRegex = regexp.MustCompile(`([\d]+)/([\d]+) objects misplaced`)
)
for _, s := range stats.Health.Summary {
@ -731,6 +731,28 @@ func (c *ClusterHealthCollector) collect(ch chan<- prometheus.Metric) error {
c.SlowRequests.Set(float64(v))
}
}
if k == "PG_DEGRADED" {
matched := degradedObjectsRegex.FindStringSubmatch(check.Summary.Message)
if len(matched) == 3 {
v, err := strconv.Atoi(matched[1])
if err != nil {
return err
}
c.DegradedObjectsCount.Set(float64(v))
}
}
if k == "OBJECT_MISPLACED" {
matched := misplacedObjectsRegex.FindStringSubmatch(check.Summary.Message)
if len(matched) == 3 {
v, err := strconv.Atoi(matched[1])
if err != nil {
return err
}
c.MisplacedObjectsCount.Set(float64(v))
}
}
}
var (

View File

@ -441,6 +441,42 @@ $ sudo ceph -s
},
{
input: `
{
"health": {
"checks": {
"PG_DEGRADED": {
"severity": "HEALTH_WARN",
"summary": {
"message": "Degraded data redundancy: 154443937/17497658377 objects degraded (0.883%), 4886 pgs unclean, 4317 pgs degraded, 516 pgs undersized"
}
}
}
}
}`,
regexes: []*regexp.Regexp{
regexp.MustCompile(`degraded_objects{cluster="ceph"} 1.54443937e\+08`),
},
},
{
input: `
{
"health": {
"checks": {
"OBJECT_MISPLACED": {
"severity": "HEALTH_WARN",
"summary": {
"message": "431295341/17497658377 objects misplaced (2.465%)"
}
}
}
}
}`,
regexes: []*regexp.Regexp{
regexp.MustCompile(`misplaced_objects{cluster="ceph"} 4.31295341e\+08`),
},
},
{
input: `
{
"checks": {
"REQUEST_STUCK": {