Merge pull request #107 from digitalocean/fix-degraded-misplaced-count
health: fix degraded/misplaced object count
This commit is contained in:
commit
d0ed675640
|
@ -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 (
|
||||
|
|
|
@ -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": {
|
||||
|
|
Loading…
Reference in New Issue