Format fixes

This commit is contained in:
Thomas Roehl
2021-11-29 15:32:58 +01:00
parent 6d14e66505
commit 28163f5d2e
5 changed files with 45 additions and 46 deletions

View File

@@ -1,31 +1,31 @@
package collectors
import (
"encoding/json"
"errors"
lp "github.com/influxdata/line-protocol"
"log"
"os"
"os/exec"
"strconv"
"strings"
"time"
"os"
"os/exec"
"encoding/json"
)
const IPMITOOL_PATH = `/usr/bin/ipmitool`
const IPMISENSORS_PATH = `/usr/sbin/ipmi-sensors`
type IpmiCollectorConfig struct {
ExcludeDevices []string `json:"exclude_devices"`
IpmitoolPath string `json:"ipmitool_path"`
IpmisensorsPath string `json:"ipmisensors_path"`
ExcludeDevices []string `json:"exclude_devices"`
IpmitoolPath string `json:"ipmitool_path"`
IpmisensorsPath string `json:"ipmisensors_path"`
}
type IpmiCollector struct {
MetricCollector
tags map[string]string
matches map[string]string
config IpmiCollectorConfig
config IpmiCollectorConfig
}
func (m *IpmiCollector) Init(config []byte) error {
@@ -40,13 +40,13 @@ func (m *IpmiCollector) Init(config []byte) error {
_, err1 := os.Stat(m.config.IpmitoolPath)
_, err2 := os.Stat(m.config.IpmisensorsPath)
if err1 != nil {
m.config.IpmitoolPath = ""
m.config.IpmitoolPath = ""
}
if err2 != nil {
m.config.IpmisensorsPath = ""
m.config.IpmisensorsPath = ""
}
if err1 != nil && err2 != nil {
return errors.New("No IPMI reader found")
return errors.New("No IPMI reader found")
}
m.init = true
return nil
@@ -66,23 +66,23 @@ func ReadIpmiTool(cmd string, out *[]lp.MutableMetric) {
for _, line := range ll {
lv := strings.Split(line, "|")
if len(lv) < 3 {
continue
}
continue
}
v, err := strconv.ParseFloat(strings.Trim(lv[1], " "), 64)
if err == nil {
name := strings.ToLower(strings.Replace(strings.Trim(lv[0], " "), " ", "_", -1))
unit := strings.Trim(lv[2], " ")
if unit == "Volts" {
unit = "V"
unit = "V"
} else if unit == "degrees C" {
unit = "C"
unit = "C"
} else if unit == "degrees F" {
unit = "F"
unit = "F"
} else if unit == "Watts" {
unit = "W"
unit = "W"
}
y, err := lp.New(name, map[string]string{"unit": unit, "type" : "node"}, map[string]interface{}{"value": v}, time.Now())
y, err := lp.New(name, map[string]string{"unit": unit, "type": "node"}, map[string]interface{}{"value": v}, time.Now())
if err == nil {
*out = append(*out, y)
}
@@ -105,26 +105,26 @@ func ReadIpmiSensors(cmd string, out *[]lp.MutableMetric) {
for _, line := range ll {
lv := strings.Split(line, ",")
if len(lv) > 3 {
v, err := strconv.ParseFloat(lv[3], 64)
if err == nil {
name := strings.ToLower(strings.Replace(lv[1], " ", "_", -1))
y, err := lp.New(name, map[string]string{"unit": lv[4], "type" : "node"}, map[string]interface{}{"value": v}, time.Now())
if err == nil {
*out = append(*out, y)
}
}
v, err := strconv.ParseFloat(lv[3], 64)
if err == nil {
name := strings.ToLower(strings.Replace(lv[1], " ", "_", -1))
y, err := lp.New(name, map[string]string{"unit": lv[4], "type": "node"}, map[string]interface{}{"value": v}, time.Now())
if err == nil {
*out = append(*out, y)
}
}
}
}
}
func (m *IpmiCollector) Read(interval time.Duration, out *[]lp.MutableMetric) {
if len(m.config.IpmitoolPath) > 0 {
_, err := os.Stat(m.config.IpmitoolPath)
if err == nil {
ReadIpmiTool(m.config.IpmitoolPath, out)
if len(m.config.IpmitoolPath) > 0 {
_, err := os.Stat(m.config.IpmitoolPath)
if err == nil {
ReadIpmiTool(m.config.IpmitoolPath, out)
}
} else if len(m.config.IpmisensorsPath) > 0 {
_, err := os.Stat(m.config.IpmisensorsPath)
_, err := os.Stat(m.config.IpmisensorsPath)
if err == nil {
ReadIpmiSensors(m.config.IpmisensorsPath, out)
}