in metric/system/host/host.go [71:111]
func ReportInfo(fqdn string) func(_ monitoring.Mode, V monitoring.Visitor) {
return func(_ monitoring.Mode, V monitoring.Visitor) {
V.OnRegistryStart()
defer V.OnRegistryFinished()
h, err := sysinfo.Host()
if err != nil {
return
}
info := h.Info()
hostname := info.Hostname
if fqdn != "" {
hostname = fqdn
}
monitoring.ReportString(V, "hostname", hostname)
monitoring.ReportString(V, "architecture", info.Architecture)
monitoring.ReportNamespace(V, "os", func() {
monitoring.ReportString(V, "platform", info.OS.Platform)
monitoring.ReportString(V, "version", info.OS.Version)
monitoring.ReportString(V, "family", info.OS.Family)
monitoring.ReportString(V, "name", info.OS.Name)
monitoring.ReportString(V, "kernel", info.KernelVersion)
if info.OS.Codename != "" {
monitoring.ReportString(V, "codename", info.OS.Codename)
}
if info.OS.Build != "" {
monitoring.ReportString(V, "build", info.OS.Build)
}
})
if info.UniqueID != "" {
monitoring.ReportString(V, "id", info.UniqueID)
}
if info.Containerized != nil {
monitoring.ReportBool(V, "containerized", *info.Containerized)
}
}
}