From 5da14042f70711ea5cf66e034699730335462f66 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 5 May 2024 14:08:03 +0200 Subject: Merging upstream version 1.45.3+dfsg. Signed-off-by: Daniel Baumann --- .../modules/windows/collect_thermalzone.go | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/go/collectors/go.d.plugin/modules/windows/collect_thermalzone.go (limited to 'src/go/collectors/go.d.plugin/modules/windows/collect_thermalzone.go') diff --git a/src/go/collectors/go.d.plugin/modules/windows/collect_thermalzone.go b/src/go/collectors/go.d.plugin/modules/windows/collect_thermalzone.go new file mode 100644 index 000000000..578ebef9f --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/windows/collect_thermalzone.go @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package windows + +import ( + "strings" + + "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus" +) + +const ( + metricThermalzoneTemperatureCelsius = "windows_thermalzone_temperature_celsius" +) + +func (w *Windows) collectThermalzone(mx map[string]int64, pms prometheus.Series) { + seen := make(map[string]bool) + for _, pm := range pms.FindByName(metricThermalzoneTemperatureCelsius) { + if name := cleanZoneName(pm.Labels.Get("name")); name != "" { + seen[name] = true + mx["thermalzone_"+name+"_temperature"] = int64(pm.Value) + } + } + + for zone := range seen { + if !w.cache.thermalZones[zone] { + w.cache.thermalZones[zone] = true + w.addThermalZoneCharts(zone) + } + } + for zone := range w.cache.thermalZones { + if !seen[zone] { + delete(w.cache.thermalZones, zone) + w.removeThermalZoneCharts(zone) + } + } +} + +func cleanZoneName(name string) string { + // "\\_TZ.TZ10", "\\_TZ.X570" => TZ10, X570 + i := strings.Index(name, ".") + if i == -1 || len(name) == i+1 { + return "" + } + return name[i+1:] +} -- cgit v1.2.3