Skip to content

Commit

Permalink
fixup! collector/mdadm: Support RAID metrics
Browse files Browse the repository at this point in the history
Signed-off-by: Pranshu Srivastava <[email protected]>
  • Loading branch information
rexagod committed Oct 14, 2024
1 parent b58e5ac commit f029912
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 6 deletions.
16 changes: 16 additions & 0 deletions collector/fixtures/e2e-64k-page-output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1579,6 +1579,14 @@ node_md_blocks_synced{device="md6"} 1.6775552e+07
node_md_blocks_synced{device="md7"} 7.813735424e+09
node_md_blocks_synced{device="md8"} 1.6775552e+07
node_md_blocks_synced{device="md9"} 0
# HELP node_md_degraded Number of degraded disks on device.
# TYPE node_md_degraded gauge
node_md_degraded{device="md0"} 0
node_md_degraded{device="md1"} 0
node_md_degraded{device="md10"} 0
node_md_degraded{device="md4"} 0
node_md_degraded{device="md5"} 1
node_md_degraded{device="md6"} 1
# HELP node_md_disks Number of active/failed/spare disks of device.
# TYPE node_md_disks gauge
node_md_disks{device="md0",state="active"} 2
Expand Down Expand Up @@ -1651,6 +1659,14 @@ node_md_disks_required{device="md6"} 2
node_md_disks_required{device="md7"} 4
node_md_disks_required{device="md8"} 2
node_md_disks_required{device="md9"} 4
# HELP node_md_raid_disks Number of raid disks on device.
# TYPE node_md_raid_disks gauge
node_md_raid_disks{device="md0"} 2
node_md_raid_disks{device="md1"} 2
node_md_raid_disks{device="md10"} 4
node_md_raid_disks{device="md4"} 3
node_md_raid_disks{device="md5"} 3
node_md_raid_disks{device="md6"} 4
# HELP node_md_state Indicates the state of md-device.
# TYPE node_md_state gauge
node_md_state{device="md0",state="active"} 1
Expand Down
16 changes: 16 additions & 0 deletions collector/fixtures/e2e-output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1601,6 +1601,14 @@ node_md_blocks_synced{device="md6"} 1.6775552e+07
node_md_blocks_synced{device="md7"} 7.813735424e+09
node_md_blocks_synced{device="md8"} 1.6775552e+07
node_md_blocks_synced{device="md9"} 0
# HELP node_md_degraded Number of degraded disks on device.
# TYPE node_md_degraded gauge
node_md_degraded{device="md0"} 0
node_md_degraded{device="md1"} 0
node_md_degraded{device="md10"} 0
node_md_degraded{device="md4"} 0
node_md_degraded{device="md5"} 1
node_md_degraded{device="md6"} 1
# HELP node_md_disks Number of active/failed/spare disks of device.
# TYPE node_md_disks gauge
node_md_disks{device="md0",state="active"} 2
Expand Down Expand Up @@ -1673,6 +1681,14 @@ node_md_disks_required{device="md6"} 2
node_md_disks_required{device="md7"} 4
node_md_disks_required{device="md8"} 2
node_md_disks_required{device="md9"} 4
# HELP node_md_raid_disks Number of raid disks on device.
# TYPE node_md_raid_disks gauge
node_md_raid_disks{device="md0"} 2
node_md_raid_disks{device="md1"} 2
node_md_raid_disks{device="md10"} 4
node_md_raid_disks{device="md4"} 3
node_md_raid_disks{device="md5"} 3
node_md_raid_disks{device="md6"} 4
# HELP node_md_state Indicates the state of md-device.
# TYPE node_md_state gauge
node_md_state{device="md0",state="active"} 1
Expand Down
2 changes: 1 addition & 1 deletion collector/mdadm_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ func (c *mdadmCollector) Update(ch chan<- prometheus.Metric) error {
mdraids, err := sysFS.Mdraids()
if err != nil {
if errors.Is(err, os.ErrNotExist) {
level.Debug(c.logger).Log("msg", "Not collecting mdraids, file does not exist", "file", *sysPath)
c.logger.Debug("msg", "Not collecting mdraids, file does not exist", "file", *sysPath)

Check failure on line 226 in collector/mdadm_linux.go

View workflow job for this annotation

GitHub Actions / lint

slog: call to slog.Logger.Debug missing a final value (govet)
return ErrNoData
}

Expand Down
14 changes: 9 additions & 5 deletions collector/mdadm_linux_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@
package collector

import (
"github.com/go-kit/log"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/testutil"
"log/slog"
"os"
"strings"
"testing"

"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/testutil"
)

type testMdadmCollector struct {
Expand All @@ -37,7 +38,7 @@ func (c testMdadmCollector) Describe(ch chan<- *prometheus.Desc) {
prometheus.DescribeByCollect(c, ch)
}

func NewTestMdadmCollector(logger log.Logger) (prometheus.Collector, error) {
func NewTestMdadmCollector(logger *slog.Logger) (prometheus.Collector, error) {
mc, err := NewMdadmCollector(logger)
if err != nil {
return testMdadmCollector{}, err
Expand Down Expand Up @@ -262,7 +263,10 @@ func TestMdadmStats(t *testing.T) {
node_md_state{device="md9",state="recovering"} 0
node_md_state{device="md9",state="resync"} 1
`
logger := log.NewLogfmtLogger(os.Stderr)
logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
Level: slog.LevelError,
AddSource: true,
}))
collector, err := NewMdadmCollector(logger)
if err != nil {
panic(err)
Expand Down

0 comments on commit f029912

Please sign in to comment.