From e6e0d512385e5084731a7e8781d8317a302f58df Mon Sep 17 00:00:00 2001 From: Kyle Brandt Date: Mon, 5 Oct 2015 23:19:27 +0000 Subject: [PATCH] cmd/scollector: Collect controller and ps hardware metadata --- cmd/scollector/collectors/dell_hw.go | 46 ++++++++++++++++++++++++++-- metadata/shared.go | 13 ++++++++ 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/cmd/scollector/collectors/dell_hw.go b/cmd/scollector/collectors/dell_hw.go index b543a57b66..263ee3bb3a 100644 --- a/cmd/scollector/collectors/dell_hw.go +++ b/cmd/scollector/collectors/dell_hw.go @@ -87,7 +87,23 @@ func c_omreport_ps() (opentsdb.MultiDataPoint, error) { return } id := strings.Replace(fields[0], ":", "_", -1) - Add(&md, "hw.ps", severity(fields[1]), opentsdb.TagSet{"id": id}, metadata.Gauge, metadata.Ok, descDellHWPS) + ts := opentsdb.TagSet{"id": id} + Add(&md, "hw.ps", severity(fields[1]), ts, metadata.Gauge, metadata.Ok, descDellHWPS) + pm := &metadata.HWPowerSupply{} + if len(fields) < 6 { + return + } + if fields[4] != "" { + pm.RatedInputWattage = fields[4] + } + if fields[5] != "" { + pm.RatedOutputWattage = fields[5] + } + if j, err := json.Marshal(&pm); err == nil { + metadata.AddMeta("", ts, "psMeta", string(j), true) + } else { + slog.Error(err) + } }, "chassis", "pwrsupplies") return md, nil } @@ -138,7 +154,32 @@ func c_omreport_storage_controller() (opentsdb.MultiDataPoint, error) { } c_omreport_storage_pdisk(fields[0], &md) id := strings.Replace(fields[0], ":", "_", -1) - Add(&md, "hw.storage.controller", severity(fields[1]), opentsdb.TagSet{"id": id}, metadata.Gauge, metadata.Ok, descDellHWStorageCtl) + ts := opentsdb.TagSet{"id": id} + Add(&md, "hw.storage.controller", severity(fields[1]), ts, metadata.Gauge, metadata.Ok, descDellHWStorageCtl) + cm := &metadata.HWControllerMeta{} + if len(fields) < 8 { + return + } + if fields[2] != "" { + cm.Name = fields[2] + } + if fields[3] != "" { + cm.SlotId = fields[3] + } + if fields[4] != "" { + cm.State = fields[4] + } + if fields[5] != "" { + cm.FirmwareVersion = fields[5] + } + if fields[7] != "" { + cm.DriverVersion = fields[7] + } + if j, err := json.Marshal(&cm); err == nil { + metadata.AddMeta("", ts, "controllerMeta", string(j), true) + } else { + slog.Error(err) + } }, "storage", "controller") return md, nil } @@ -193,7 +234,6 @@ func c_omreport_storage_pdisk(id string, md *opentsdb.MultiDataPoint) { } else { slog.Error(err) } - }, "storage", "pdisk", "controller="+id) } diff --git a/metadata/shared.go b/metadata/shared.go index 756e61f936..52c7f7dcc7 100644 --- a/metadata/shared.go +++ b/metadata/shared.go @@ -12,3 +12,16 @@ type HWDiskMeta struct { CapableSpeed string SectorSize string } + +type HWControllerMeta struct { + Name string + SlotId string + State string + FirmwareVersion string + DriverVersion string +} + +type HWPowerSupply struct { + RatedInputWattage string + RatedOutputWattage string +}