1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
// SPDX-License-Identifier: GPL-3.0-or-later
package hddtemp
import (
"fmt"
"strings"
"github.com/netdata/netdata/go/plugins/plugin/go.d/agent/module"
)
const (
prioDiskTemperature = module.Priority + iota
prioDiskTemperatureSensorStatus
)
var (
diskTemperatureChartsTmpl = module.Chart{
ID: "disk_%s_temperature",
Title: "Disk temperature",
Units: "Celsius",
Fam: "temperature",
Ctx: "hddtemp.disk_temperature",
Type: module.Line,
Priority: prioDiskTemperature,
Dims: module.Dims{
{ID: "disk_%s_temperature", Name: "temperature"},
},
}
diskTemperatureSensorChartsTmpl = module.Chart{
ID: "disk_%s_temperature_sensor_status",
Title: "Disk temperature sensor status",
Units: "status",
Fam: "sensor",
Ctx: "hddtemp.disk_temperature_sensor_status",
Type: module.Line,
Priority: prioDiskTemperatureSensorStatus,
Dims: module.Dims{
{ID: "disk_%s_temp_sensor_status_ok", Name: "ok"},
{ID: "disk_%s_temp_sensor_status_err", Name: "err"},
{ID: "disk_%s_temp_sensor_status_na", Name: "na"},
{ID: "disk_%s_temp_sensor_status_unk", Name: "unk"},
{ID: "disk_%s_temp_sensor_status_nos", Name: "nos"},
{ID: "disk_%s_temp_sensor_status_slp", Name: "slp"},
},
}
)
func (h *HddTemp) addDiskTempSensorStatusChart(id string, disk diskStats) {
h.addDiskChart(id, disk, diskTemperatureSensorChartsTmpl.Copy())
}
func (h *HddTemp) addDiskTempChart(id string, disk diskStats) {
h.addDiskChart(id, disk, diskTemperatureChartsTmpl.Copy())
}
func (h *HddTemp) addDiskChart(id string, disk diskStats, chart *module.Chart) {
chart.ID = fmt.Sprintf(chart.ID, strings.ToLower(id))
chart.Labels = []module.Label{
{Key: "disk_id", Value: id},
{Key: "model", Value: disk.model},
}
for _, dim := range chart.Dims {
dim.ID = fmt.Sprintf(dim.ID, id)
}
if err := h.Charts().Add(chart); err != nil {
h.Warning(err)
}
}
|