Skip to content
This repository was archived by the owner on Jan 11, 2026. It is now read-only.

Commit fe6d09d

Browse files
committed
correctly read floats
1 parent 2029d87 commit fe6d09d

File tree

3 files changed

+37
-36
lines changed

3 files changed

+37
-36
lines changed

metrics.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,21 +64,21 @@ func getMetrics() (Status, error) {
6464

6565
// stuff from realInfo.cgi
6666
OperatingMode: splitRealInfo[2],
67-
UPSTemperature: getInt(splitRealInfo[3]) / 10,
67+
UPSTemperature: float64(getInt(splitRealInfo[3])) / 10,
6868
AutoReboot: getBool(splitRealInfo[4]),
6969
ConverterMode: getBool(splitRealInfo[5]),
7070
EcoMode: getBool(splitRealInfo[6]),
7171
BypassWhenOff: getBool(splitRealInfo[7]),
7272
BypassDisabled: getBool(splitRealInfo[8]),
73-
BatteryVoltage: getInt(splitRealInfo[11]) / 10,
73+
BatteryVoltage: float64(getInt(splitRealInfo[11])) / 10,
7474
BatteryCapacityPercent: getInt(splitRealInfo[12]),
7575
BatteryRemainingBackupTime: getInt(splitRealInfo[13]),
76-
InputFrequency: getInt(splitRealInfo[14]),
77-
InputVoltage: getInt(splitRealInfo[15]) / 10,
78-
OutputFrequency: getInt(splitRealInfo[17]) / 10,
79-
OutputVoltage: getInt(splitRealInfo[18]) / 10,
76+
InputFrequency: float64(getInt(splitRealInfo[14])) / 10,
77+
InputVoltage: float64(getInt(splitRealInfo[15])) / 10,
78+
OutputFrequency: float64(getInt(splitRealInfo[17])) / 10,
79+
OutputVoltage: float64(getInt(splitRealInfo[18])) / 10,
8080
OutputLoadPercent: getInt(splitRealInfo[20]),
81-
OutputCurrent: getInt(splitRealInfo[38]) / 10,
81+
OutputCurrent: float64(getInt(splitRealInfo[38])) / 10,
8282

8383
// stuff from baseInfo.cgi
8484
UPSType: splitBaseInfo[3],
@@ -87,11 +87,11 @@ func getMetrics() (Status, error) {
8787
UPSSerial: splitBaseInfo[6],
8888
UPSFirmware: splitBaseInfo[7],
8989
BatteryGroupNumber: getInt(splitBaseInfo[8]),
90-
RatedVA: getInt(splitBaseInfo[9]) / 10,
91-
RatedOutputVoltage: getInt(splitBaseInfo[10]) / 10,
92-
RatedOutputFrequency: getInt(splitBaseInfo[11]) / 10,
93-
RatedOutputCurrent: getInt(splitBaseInfo[12]) / 10,
94-
RatedBatteryVoltage: getInt(splitBaseInfo[13]) / 10,
90+
RatedVA: float64(getInt(splitBaseInfo[9])) / 10,
91+
RatedOutputVoltage: float64(getInt(splitBaseInfo[10])) / 10,
92+
RatedOutputFrequency: float64(getInt(splitBaseInfo[11])) / 10,
93+
RatedOutputCurrent: float64(getInt(splitBaseInfo[12])) / 10,
94+
RatedBatteryVoltage: float64(getInt(splitBaseInfo[13])) / 10,
9595
SNMPFirmware: splitBaseInfo[14],
9696
EquipmentAttached: splitBaseInfo[15],
9797
}

strings.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"fmt"
45
"strconv"
56
)
67

@@ -14,31 +15,31 @@ func getMetricsString(s Status) string {
1415
return "" +
1516
// temperature
1617
generateHelpTypeString("ups_temperature", "UPS Temperature.") +
17-
`ups_temperature{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.UPSTemperature) + "\n" +
18+
`ups_temperature{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.UPSTemperature) + "\n" +
1819

1920
// input
2021
generateHelpTypeString("ups_input_voltage", "Input voltage.") +
21-
`ups_input_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.InputVoltage) + "\n" +
22+
`ups_input_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.InputVoltage) + "\n" +
2223
generateHelpTypeString("ups_input_frequency", "Input frequency.") +
23-
`ups_input_frequency{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.InputFrequency) + "\n" +
24+
`ups_input_frequency{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.InputFrequency) + "\n" +
2425
generateHelpTypeString("ups_input_phases", "Number of input phases.") +
2526
`ups_input_phases{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.InputPhase) + "\n" +
2627

2728
// output
2829
generateHelpTypeString("ups_output_phases", "Number of output phases.") +
2930
`ups_output_phases{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.OutputPhase) + "\n" +
3031
generateHelpTypeString("ups_output_voltage", "Output voltage.") +
31-
`ups_output_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.OutputVoltage) + "\n" +
32+
`ups_output_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.OutputVoltage) + "\n" +
3233
generateHelpTypeString("ups_output_frequency", "Output frequency.") +
33-
`ups_output_frequency{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.OutputFrequency) + "\n" +
34+
`ups_output_frequency{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.OutputFrequency) + "\n" +
3435
generateHelpTypeString("ups_output_current", "Output current.") +
35-
`ups_output_current{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.OutputCurrent) + "\n" +
36+
`ups_output_current{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.OutputCurrent) + "\n" +
3637
generateHelpTypeString("ups_output_load_percent", "Output load in percent.") +
3738
`ups_output_load_percent{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.OutputLoadPercent) + "\n" +
3839

3940
// battery
4041
generateHelpTypeString("ups_battery_voltage", "Battery voltage.") +
41-
`ups_battery_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.BatteryVoltage) + "\n" +
42+
`ups_battery_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.BatteryVoltage) + "\n" +
4243
generateHelpTypeString("ups_battery_capacity_percent", "Battery capacity in percent.") +
4344
`ups_battery_capacity_percent{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.BatteryCapacityPercent) + "\n" +
4445
generateHelpTypeString("ups_battery_remaining_backup_time", "Battery remaining backup time.") +
@@ -48,15 +49,15 @@ func getMetricsString(s Status) string {
4849

4950
// rated values
5051
generateHelpTypeString("ups_rated_va", "Rated VA of the UPS.") +
51-
`ups_rated_va{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.RatedVA) + "\n" +
52+
`ups_rated_va{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.RatedVA) + "\n" +
5253
generateHelpTypeString("ups_rated_output_frequency", "Rated output frequency of the UPS.") +
53-
`ups_rated_output_frequency{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.RatedOutputFrequency) + "\n" +
54+
`ups_rated_output_frequency{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.RatedOutputFrequency) + "\n" +
5455
generateHelpTypeString("ups_rated_output_voltage", "Rated output voltage of the UPS.") +
55-
`ups_rated_output_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.RatedOutputVoltage) + "\n" +
56+
`ups_rated_output_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.RatedOutputVoltage) + "\n" +
5657
generateHelpTypeString("ups_rated_output_current", "Rated output current of the UPS.") +
57-
`ups_rated_output_current{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.RatedOutputCurrent) + "\n" +
58+
`ups_rated_output_current{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.RatedOutputCurrent) + "\n" +
5859
generateHelpTypeString("ups_rated_battery_voltage", "Rated battery voltage of the UPS.") +
59-
`ups_rated_battery_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + strconv.Itoa(s.RatedBatteryVoltage) + "\n" +
60+
`ups_rated_battery_voltage{type="` + s.UPSType + `",serial="` + s.UPSSerial + `"} ` + fmt.Sprintf("%.2f", s.RatedBatteryVoltage) + "\n" +
6061

6162
// state
6263
generateHelpTypeString("ups_auto_reboot", "Auto reboot enabled.") +

types.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@ package main
22

33
type Status struct {
44
OperatingMode string
5-
UPSTemperature int
6-
InputVoltage int
7-
InputFrequency int
5+
UPSTemperature float64
6+
InputVoltage float64
7+
InputFrequency float64
88
InputPhase int
99
OutputPhase int
10-
OutputVoltage int
11-
OutputFrequency int
12-
OutputCurrent int
10+
OutputVoltage float64
11+
OutputFrequency float64
12+
OutputCurrent float64
1313
OutputLoadPercent int
14-
BatteryVoltage int
14+
BatteryVoltage float64
1515
BatteryCapacityPercent int
1616
BatteryRemainingBackupTime int
1717
BatteryGroupNumber int
18-
RatedVA int
19-
RatedOutputFrequency int
20-
RatedOutputVoltage int
21-
RatedOutputCurrent int
22-
RatedBatteryVoltage int
18+
RatedVA float64
19+
RatedOutputFrequency float64
20+
RatedOutputVoltage float64
21+
RatedOutputCurrent float64
22+
RatedBatteryVoltage float64
2323
AutoReboot bool
2424
EcoMode bool
2525
BypassDisabled bool

0 commit comments

Comments
 (0)