add SENSORS env var

This commit is contained in:
Henry Dollman
2024-09-29 16:36:32 -04:00
parent 5447ccad47
commit 9ab359d3cf
2 changed files with 18 additions and 0 deletions

View File

@@ -30,6 +30,7 @@ type Agent struct {
dockerClient *http.Client // HTTP client to query docker api dockerClient *http.Client // HTTP client to query docker api
apiContainerList *[]container.ApiInfo // List of containers from docker host apiContainerList *[]container.ApiInfo // List of containers from docker host
sensorsContext context.Context // Sensors context to override sys location sensorsContext context.Context // Sensors context to override sys location
sensorsWhitelist map[string]struct{} // List of sensors to monitor
} }
func NewAgent() *Agent { func NewAgent() *Agent {
@@ -64,6 +65,14 @@ func (a *Agent) Run(pubKey []byte, addr string) {
) )
} }
// Set sensors whitelist
if sensors, exists := os.LookupEnv("SENSORS"); exists {
a.sensorsWhitelist = make(map[string]struct{})
for _, sensor := range strings.Split(sensors, ",") {
a.sensorsWhitelist[sensor] = struct{}{}
}
}
a.initializeSystemInfo() a.initializeSystemInfo()
a.initializeDiskInfo() a.initializeDiskInfo()
a.initializeNetIoStats() a.initializeNetIoStats()

View File

@@ -162,6 +162,15 @@ func (a *Agent) getSystemStats() (system.Info, system.Stats) {
systemStats.Temperatures[sensor.SensorKey] = twoDecimals(sensor.Temperature) systemStats.Temperatures[sensor.SensorKey] = twoDecimals(sensor.Temperature)
} }
} }
// remove sensors from systemStats if whitelist exists and sensor is not in whitelist
// (do this here instead of in initial loop so we have correct keys if int was appended)
if a.sensorsWhitelist != nil {
for key := range systemStats.Temperatures {
if _, nameInWhitelist := a.sensorsWhitelist[key]; !nameInWhitelist {
delete(systemStats.Temperatures, key)
}
}
}
} }
systemInfo := system.Info{ systemInfo := system.Info{