diff --git a/collector/cs.go b/collector/cs.go index a07a24c73..352ac3653 100644 --- a/collector/cs.go +++ b/collector/cs.go @@ -18,6 +18,7 @@ func init() { type CSCollector struct { PhysicalMemoryBytes *prometheus.Desc LogicalProcessors *prometheus.Desc + Hostname *prometheus.Desc } // NewCSCollector ... @@ -37,6 +38,15 @@ func NewCSCollector() (Collector, error) { nil, nil, ), + Hostname: prometheus.NewDesc( + prometheus.BuildFQName(Namespace, subsystem, "hostname"), + "Labeled system hostname information as provided by ComputerSystem.DNSHostName and ComputerSystem.Domain", + []string{ + "hostname", + "domain", + "fqdn"}, + nil, + ), }, nil } @@ -55,6 +65,9 @@ func (c *CSCollector) Collect(ctx *ScrapeContext, ch chan<- prometheus.Metric) e type Win32_ComputerSystem struct { NumberOfLogicalProcessors uint32 TotalPhysicalMemory uint64 + DNSHostname string + Domain string + Workgroup string } func (c *CSCollector) collect(ch chan<- prometheus.Metric) (*prometheus.Desc, error) { @@ -79,5 +92,21 @@ func (c *CSCollector) collect(ch chan<- prometheus.Metric) (*prometheus.Desc, er float64(dst[0].TotalPhysicalMemory), ) + var fqdn string + if dst[0].Domain != dst[0].Workgroup { + fqdn = dst[0].DNSHostname + "." + dst[0].Domain + } else { + fqdn = dst[0].DNSHostname + } + + ch <- prometheus.MustNewConstMetric( + c.Hostname, + prometheus.GaugeValue, + 1.0, + dst[0].DNSHostname, + dst[0].Domain, + fqdn, + ) + return nil, nil } diff --git a/docs/collector.cs.md b/docs/collector.cs.md index 8acd1a4b0..8a914e8eb 100644 --- a/docs/collector.cs.md +++ b/docs/collector.cs.md @@ -18,6 +18,7 @@ Name | Description | Type | Labels -----|-------------|------|------- `wmi_cs_logical_processors` | Number of installed logical processors | gauge | None `wmi_cs_physical_memory_bytes` | Total installed physical memory | gauge | None +`wmi_cs_hostname` | Labeled system hostname information | gauge | `hostname`, `domain`, `fqdn` ### Example metric _This collector does not yet have explained examples, we would appreciate your help adding them!_