From 6aef20f8d8a25928dc017e6c4cf785a1ad44e3e3 Mon Sep 17 00:00:00 2001 From: Johannes 'fish' Ziemke Date: Mon, 9 Jan 2017 18:33:31 +0100 Subject: [PATCH] Use filename as label, move 'label' to own metric This closes #406 --- collector/fixtures/e2e-output.txt | 124 +++++++++++------- .../sys/class/hwmon/hwmon4/temp1_crit | 1 + .../sys/class/hwmon/hwmon4/temp1_crit_alarm | 1 + .../sys/class/hwmon/hwmon4/temp1_input | 1 + .../sys/class/hwmon/hwmon4/temp1_label | 1 + .../fixtures/sys/class/hwmon/hwmon4/temp1_max | 1 + .../sys/class/hwmon/hwmon4/temp2_crit | 1 + .../sys/class/hwmon/hwmon4/temp2_crit_alarm | 1 + .../sys/class/hwmon/hwmon4/temp2_input | 1 + .../sys/class/hwmon/hwmon4/temp2_label | 1 + .../fixtures/sys/class/hwmon/hwmon4/temp2_max | 1 + collector/hwmon_linux.go | 6 +- 12 files changed, 88 insertions(+), 52 deletions(-) create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit_alarm create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp1_input create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp1_label create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp1_max create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit_alarm create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp2_input create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp2_label create mode 100644 collector/fixtures/sys/class/hwmon/hwmon4/temp2_max diff --git a/collector/fixtures/e2e-output.txt b/collector/fixtures/e2e-output.txt index b1e65d5d..83ae9d76 100644 --- a/collector/fixtures/e2e-output.txt +++ b/collector/fixtures/e2e-output.txt @@ -430,29 +430,29 @@ node_hwmon_fan_alarm{chip="nct6779",sensor="fan2"} 0 node_hwmon_fan_beep_enabled{chip="nct6779",sensor="fan2"} 0 # HELP node_hwmon_fan_manual Hardware monitor fan element manual # TYPE node_hwmon_fan_manual gauge -node_hwmon_fan_manual{chip="platform_applesmc_768",sensor="left_side"} 0 -node_hwmon_fan_manual{chip="platform_applesmc_768",sensor="right_side"} 0 +node_hwmon_fan_manual{chip="platform_applesmc_768",sensor="fan1"} 0 +node_hwmon_fan_manual{chip="platform_applesmc_768",sensor="fan2"} 0 # HELP node_hwmon_fan_max_rpm Hardware monitor for fan revolutions per minute (max) # TYPE node_hwmon_fan_max_rpm gauge -node_hwmon_fan_max_rpm{chip="platform_applesmc_768",sensor="left_side"} 6156 -node_hwmon_fan_max_rpm{chip="platform_applesmc_768",sensor="right_side"} 5700 +node_hwmon_fan_max_rpm{chip="platform_applesmc_768",sensor="fan1"} 6156 +node_hwmon_fan_max_rpm{chip="platform_applesmc_768",sensor="fan2"} 5700 # HELP node_hwmon_fan_min_rpm Hardware monitor for fan revolutions per minute (min) # TYPE node_hwmon_fan_min_rpm gauge node_hwmon_fan_min_rpm{chip="nct6779",sensor="fan2"} 0 -node_hwmon_fan_min_rpm{chip="platform_applesmc_768",sensor="left_side"} 2160 -node_hwmon_fan_min_rpm{chip="platform_applesmc_768",sensor="right_side"} 2000 +node_hwmon_fan_min_rpm{chip="platform_applesmc_768",sensor="fan1"} 2160 +node_hwmon_fan_min_rpm{chip="platform_applesmc_768",sensor="fan2"} 2000 # HELP node_hwmon_fan_output Hardware monitor fan element output # TYPE node_hwmon_fan_output gauge -node_hwmon_fan_output{chip="platform_applesmc_768",sensor="left_side"} 2160 -node_hwmon_fan_output{chip="platform_applesmc_768",sensor="right_side"} 2000 +node_hwmon_fan_output{chip="platform_applesmc_768",sensor="fan1"} 2160 +node_hwmon_fan_output{chip="platform_applesmc_768",sensor="fan2"} 2000 # HELP node_hwmon_fan_pulses Hardware monitor fan element pulses # TYPE node_hwmon_fan_pulses gauge node_hwmon_fan_pulses{chip="nct6779",sensor="fan2"} 2 # HELP node_hwmon_fan_rpm Hardware monitor for fan revolutions per minute (input) # TYPE node_hwmon_fan_rpm gauge node_hwmon_fan_rpm{chip="nct6779",sensor="fan2"} 1098 -node_hwmon_fan_rpm{chip="platform_applesmc_768",sensor="left_side"} 0 -node_hwmon_fan_rpm{chip="platform_applesmc_768",sensor="right_side"} 1998 +node_hwmon_fan_rpm{chip="platform_applesmc_768",sensor="fan1"} 0 +node_hwmon_fan_rpm{chip="platform_applesmc_768",sensor="fan2"} 1998 # HELP node_hwmon_fan_target_rpm Hardware monitor for fan revolutions per minute (target) # TYPE node_hwmon_fan_target_rpm gauge node_hwmon_fan_target_rpm{chip="nct6779",sensor="fan2"} 27000 @@ -568,54 +568,78 @@ node_hwmon_pwm_weight_temp_step_base{chip="nct6779",sensor="pwm1"} 0 # HELP node_hwmon_pwm_weight_temp_step_tol Hardware monitor pwm element weight_temp_step_tol # TYPE node_hwmon_pwm_weight_temp_step_tol gauge node_hwmon_pwm_weight_temp_step_tol{chip="nct6779",sensor="pwm1"} 0 +# HELP node_hwmon_sensor_label Label for given chip and sensor +# TYPE node_hwmon_sensor_label gauge +node_hwmon_sensor_label{chip="hwmon4",label="foosensor",sensor="temp1"} 1 +node_hwmon_sensor_label{chip="hwmon4",label="foosensor",sensor="temp2"} 1 +node_hwmon_sensor_label{chip="platform_applesmc_768",label="left_side",sensor="fan1"} 1 +node_hwmon_sensor_label{chip="platform_applesmc_768",label="right_side",sensor="fan2"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_0",label="core_0",sensor="temp2"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_0",label="core_1",sensor="temp3"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_0",label="core_2",sensor="temp4"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_0",label="core_3",sensor="temp5"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_0",label="physical_id_0",sensor="temp1"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_1",label="core_0",sensor="temp2"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_1",label="core_1",sensor="temp3"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_1",label="core_2",sensor="temp4"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_1",label="core_3",sensor="temp5"} 1 +node_hwmon_sensor_label{chip="platform_coretemp_1",label="physical_id_0",sensor="temp1"} 1 # HELP node_hwmon_temp_celsius Hardware monitor for temperature (input) # TYPE node_hwmon_temp_celsius gauge -node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="core_0"} 54 -node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="core_1"} 52 -node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="core_2"} 53 -node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="core_3"} 50 -node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="physical_id_0"} 55 -node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="core_0"} 54 -node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="core_1"} 52 -node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="core_2"} 53 -node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="core_3"} 50 -node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="physical_id_0"} 55 +node_hwmon_temp_celsius{chip="hwmon4",sensor="temp1"} 55 +node_hwmon_temp_celsius{chip="hwmon4",sensor="temp2"} 54 +node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="temp1"} 55 +node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="temp2"} 54 +node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="temp3"} 52 +node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="temp4"} 53 +node_hwmon_temp_celsius{chip="platform_coretemp_0",sensor="temp5"} 50 +node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="temp1"} 55 +node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="temp2"} 54 +node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="temp3"} 52 +node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="temp4"} 53 +node_hwmon_temp_celsius{chip="platform_coretemp_1",sensor="temp5"} 50 # HELP node_hwmon_temp_crit_alarm_celsius Hardware monitor for temperature (crit_alarm) # TYPE node_hwmon_temp_crit_alarm_celsius gauge -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="core_0"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="core_1"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="core_2"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="core_3"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="physical_id_0"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="core_0"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="core_1"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="core_2"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="core_3"} 0 -node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="physical_id_0"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="hwmon4",sensor="temp1"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="hwmon4",sensor="temp2"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="temp1"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="temp2"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="temp3"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="temp4"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_0",sensor="temp5"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="temp1"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="temp2"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="temp3"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="temp4"} 0 +node_hwmon_temp_crit_alarm_celsius{chip="platform_coretemp_1",sensor="temp5"} 0 # HELP node_hwmon_temp_crit_celsius Hardware monitor for temperature (crit) # TYPE node_hwmon_temp_crit_celsius gauge -node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="core_0"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="core_1"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="core_2"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="core_3"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="physical_id_0"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="core_0"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="core_1"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="core_2"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="core_3"} 100 -node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="physical_id_0"} 100 +node_hwmon_temp_crit_celsius{chip="hwmon4",sensor="temp1"} 100 +node_hwmon_temp_crit_celsius{chip="hwmon4",sensor="temp2"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="temp1"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="temp2"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="temp3"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="temp4"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_0",sensor="temp5"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="temp1"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="temp2"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="temp3"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="temp4"} 100 +node_hwmon_temp_crit_celsius{chip="platform_coretemp_1",sensor="temp5"} 100 # HELP node_hwmon_temp_max_celsius Hardware monitor for temperature (max) # TYPE node_hwmon_temp_max_celsius gauge -node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="core_0"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="core_1"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="core_2"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="core_3"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="physical_id_0"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="core_0"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="core_1"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="core_2"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="core_3"} 84 -node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="physical_id_0"} 84 +node_hwmon_temp_max_celsius{chip="hwmon4",sensor="temp1"} 100 +node_hwmon_temp_max_celsius{chip="hwmon4",sensor="temp2"} 100 +node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="temp1"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="temp2"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="temp3"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="temp4"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_0",sensor="temp5"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="temp1"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="temp2"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="temp3"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="temp4"} 84 +node_hwmon_temp_max_celsius{chip="platform_coretemp_1",sensor="temp5"} 84 # HELP node_intr Total number of interrupts serviced. # TYPE node_intr counter node_intr 8.885917e+06 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit new file mode 100644 index 00000000..f7393e84 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit @@ -0,0 +1 @@ +100000 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit_alarm b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit_alarm new file mode 100644 index 00000000..573541ac --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_crit_alarm @@ -0,0 +1 @@ +0 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp1_input b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_input new file mode 100644 index 00000000..2ef4768d --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_input @@ -0,0 +1 @@ +55000 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp1_label b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_label new file mode 100644 index 00000000..cfcdc3f7 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_label @@ -0,0 +1 @@ +foosensor diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp1_max b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_max new file mode 100644 index 00000000..f7393e84 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp1_max @@ -0,0 +1 @@ +100000 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit new file mode 100644 index 00000000..f7393e84 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit @@ -0,0 +1 @@ +100000 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit_alarm b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit_alarm new file mode 100644 index 00000000..573541ac --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_crit_alarm @@ -0,0 +1 @@ +0 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp2_input b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_input new file mode 100644 index 00000000..627c5c79 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_input @@ -0,0 +1 @@ +54000 diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp2_label b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_label new file mode 100644 index 00000000..cfcdc3f7 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_label @@ -0,0 +1 @@ +foosensor diff --git a/collector/fixtures/sys/class/hwmon/hwmon4/temp2_max b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_max new file mode 100644 index 00000000..f7393e84 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon4/temp2_max @@ -0,0 +1 @@ +100000 diff --git a/collector/hwmon_linux.go b/collector/hwmon_linux.go index 51bcb74e..1f13b459 100644 --- a/collector/hwmon_linux.go +++ b/collector/hwmon_linux.go @@ -168,13 +168,15 @@ func (c *hwMonCollector) updateHwmon(ch chan<- prometheus.Metric, dir string) (e _, sensorType, _, _ := explodeSensorFilename(sensor) + labels := []string{hwmonName, sensor} if labelText, ok := sensorData["label"]; ok { label := cleanMetricName(labelText) if label != "" { - sensor = label + desc := prometheus.NewDesc("node_hwmon_sensor_label", "Label for given chip and sensor", + []string{"chip", "sensor", "label"}, nil) + ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, 1.0, hwmonName, sensor, label) } } - labels := []string{hwmonName, sensor} if sensorType == "beep_enable" { value := 0.0