mirror of
				https://github.com/ClusterCockpit/cc-metric-collector.git
				synced 2025-11-04 02:35:07 +01:00 
			
		
		
		
	Format fixes
This commit is contained in:
		@@ -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)
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user