blob: 69377e4c1009a1579728dcce1f6567d558b0bc7c [file] [log] [blame]
package main
import (
"os"
"time"
"go.skia.org/infra/go/metadata"
"go.skia.org/infra/go/metrics2"
"go.skia.org/infra/go/sklog"
)
// rebootMonitoringInit checks once a minute if the machine needs to be
// rebooted and stuffs that information into metrics.
func rebootMonitoringInit() {
name, err := os.Hostname()
if err != nil {
sklog.Errorf("Failed to get hostname: %s", err)
return
}
primary := metadata.GetWithDefault("owner_primary", "UNKNOWN_OWNER")
secondary := metadata.GetWithDefault("owner_secondary", "")
owners := primary
if secondary != "" {
owners += ", " + secondary
}
reboot := metrics2.GetInt64Metric("reboot_required_i", map[string]string{
"host": name,
"owners": owners,
})
go func() {
for range time.Tick(time.Minute) {
_, err := os.Stat("/var/run/reboot-required")
if err == nil {
reboot.Update(1)
} else {
reboot.Update(0)
}
}
}()
}