func ReportInfo()

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)
		}
	}
}