From b2f520b9aa8ad79d23be0a4f72d232d37785dddd Mon Sep 17 00:00:00 2001 From: Mathias Nohr Date: Wed, 23 Aug 2017 15:22:26 +0200 Subject: [PATCH] health: expose client io and recovery io for luminous An update to ceph luminous breaks the metrics for recovery and client io, because of the new output format for ceph status. The updates are still compatible to older versions of ceph. --- collectors/health.go | 8 ++++++++ collectors/health_test.go | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/collectors/health.go b/collectors/health.go index cd43f51..21f0112 100644 --- a/collectors/health.go +++ b/collectors/health.go @@ -742,10 +742,18 @@ func (c *ClusterHealthCollector) collectRecoveryClientIO() error { if err := c.collectRecoveryIO(line); err != nil { return err } + case strings.HasPrefix(line, "recovery:"): + if err := c.collectRecoveryIO(line); err != nil { + return err + } case strings.HasPrefix(line, "client io"): if err := c.collectClientIO(line); err != nil { return err } + case strings.HasPrefix(line, "client:"): + if err := c.collectClientIO(line); err != nil { + return err + } case strings.HasPrefix(line, "cache io"): if err := c.collectCacheIO(line); err != nil { return err diff --git a/collectors/health_test.go b/collectors/health_test.go index 915f339..44f1f4f 100644 --- a/collectors/health_test.go +++ b/collectors/health_test.go @@ -303,6 +303,41 @@ $ sudo ceph -s }, { input: ` +$ sudo ceph -s + cluster: + id: eff51be8-938a-4afa-b0d1-7a580b4ceb37 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum mon01,mon02,mon03 + mgr: mgr01 (active), standbys: mgr02, mgr03 + osd: 84 osds: 83 up, 83 in + rbd-mirror: 1 daemon active + rgw: 2 daemons active + + data: + pools: 19 pools, 3392 pgs + objects: 845k objects, 3285 GB + usage: 8271 GB used, 294 TB / 302 TB avail + pgs: 3392 active+clean + + io: + client: 4273 kB/s rd, 2740 MB/s wr, 2863 op/s rd, 1318 op/s wr + recovery: 5779 MB/s, 4 keys/s, 1522 objects/s +`, + regexes: []*regexp.Regexp{ + regexp.MustCompile(`recovery_io_bytes{cluster="ceph"} 5.779e`), + regexp.MustCompile(`recovery_io_keys{cluster="ceph"} 4`), + regexp.MustCompile(`recovery_io_objects{cluster="ceph"} 1522`), + regexp.MustCompile(`client_io_read_ops{cluster="ceph"} 2863`), + regexp.MustCompile(`client_io_write_ops{cluster="ceph"} 1318`), + regexp.MustCompile(`client_io_ops{cluster="ceph"} 4181`), + regexp.MustCompile(`client_io_read_bytes{cluster="ceph"} 4.273e`), + regexp.MustCompile(`client_io_write_bytes{cluster="ceph"} 2.74e`), + }, + }, + { + input: ` $ sudo ceph -s cluster eff51be8-938a-4afa-b0d1-7a580b4ceb37 health HEALTH_OK