os: expose MaxNumberOfProcesses, MaxProcessMemorySize
This commit is contained in:
parent
03a1f294ab
commit
3c5adcc5fc
|
@ -1,5 +1,6 @@
|
||||||
// returns data points from Win32_OperatingSystem
|
// returns data points from Win32_OperatingSystem
|
||||||
// https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx
|
// https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx - Win32_OperatingSystem class
|
||||||
|
// https://msdn.microsoft.com/en-us/library/aa387937(v=vs.85).aspx - CIM_OperatingSystem class
|
||||||
|
|
||||||
package collectors
|
package collectors
|
||||||
|
|
||||||
|
@ -15,6 +16,8 @@ type OSCollector struct {
|
||||||
FreePhysicalMemory *prometheus.Desc
|
FreePhysicalMemory *prometheus.Desc
|
||||||
FreeSpaceInPagingFiles *prometheus.Desc
|
FreeSpaceInPagingFiles *prometheus.Desc
|
||||||
FreeVirtualMemory *prometheus.Desc
|
FreeVirtualMemory *prometheus.Desc
|
||||||
|
MaxNumberOfProcesses *prometheus.Desc
|
||||||
|
MaxProcessMemorySize *prometheus.Desc
|
||||||
NumberOfProcesses *prometheus.Desc
|
NumberOfProcesses *prometheus.Desc
|
||||||
NumberOfUsers *prometheus.Desc
|
NumberOfUsers *prometheus.Desc
|
||||||
SizeStoredInPagingFiles *prometheus.Desc
|
SizeStoredInPagingFiles *prometheus.Desc
|
||||||
|
@ -47,6 +50,20 @@ func NewOSCollector() *OSCollector {
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
MaxNumberOfProcesses: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(wmiNamespace, "os", "max_number_of_processes"),
|
||||||
|
"Maximum number of process contexts the operating system can support.",
|
||||||
|
nil,
|
||||||
|
nil,
|
||||||
|
),
|
||||||
|
|
||||||
|
MaxProcessMemorySize: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(wmiNamespace, "os", "max_process_memory_size"),
|
||||||
|
"Maximum number, in kilobytes, of memory that can be allocated to a process.",
|
||||||
|
nil,
|
||||||
|
nil,
|
||||||
|
),
|
||||||
|
|
||||||
NumberOfProcesses: prometheus.NewDesc(
|
NumberOfProcesses: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "os", "number_of_processes"),
|
prometheus.BuildFQName(wmiNamespace, "os", "number_of_processes"),
|
||||||
"Number of process contexts currently loaded or running on the operating system.",
|
"Number of process contexts currently loaded or running on the operating system.",
|
||||||
|
@ -100,6 +117,8 @@ func (c *OSCollector) Describe(ch chan<- *prometheus.Desc) {
|
||||||
ch <- c.FreePhysicalMemory
|
ch <- c.FreePhysicalMemory
|
||||||
ch <- c.FreeSpaceInPagingFiles
|
ch <- c.FreeSpaceInPagingFiles
|
||||||
ch <- c.FreeVirtualMemory
|
ch <- c.FreeVirtualMemory
|
||||||
|
ch <- c.MaxNumberOfProcesses
|
||||||
|
ch <- c.MaxProcessMemorySize
|
||||||
ch <- c.NumberOfProcesses
|
ch <- c.NumberOfProcesses
|
||||||
ch <- c.NumberOfUsers
|
ch <- c.NumberOfUsers
|
||||||
ch <- c.SizeStoredInPagingFiles
|
ch <- c.SizeStoredInPagingFiles
|
||||||
|
@ -111,11 +130,15 @@ type Win32_OperatingSystem struct {
|
||||||
FreePhysicalMemory uint64
|
FreePhysicalMemory uint64
|
||||||
FreeSpaceInPagingFiles uint64
|
FreeSpaceInPagingFiles uint64
|
||||||
FreeVirtualMemory uint64
|
FreeVirtualMemory uint64
|
||||||
|
MaxNumberOfProcesses uint32
|
||||||
|
MaxProcessMemorySize uint64
|
||||||
NumberOfProcesses uint32
|
NumberOfProcesses uint32
|
||||||
NumberOfUsers uint32
|
NumberOfUsers uint32
|
||||||
SizeStoredInPagingFiles uint64
|
SizeStoredInPagingFiles uint64
|
||||||
TotalVirtualMemorySize uint64
|
TotalVirtualMemorySize uint64
|
||||||
TotalVisibleMemorySize uint64
|
TotalVisibleMemorySize uint64
|
||||||
|
//NumberOfLicensedUsers *uint32 // XXX returns 0 on Win7
|
||||||
|
//TotalSwapSpaceSize *uint64 // XXX returns 0 on Win7
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *OSCollector) collect(ch chan<- prometheus.Metric) (*prometheus.Desc, error) {
|
func (c *OSCollector) collect(ch chan<- prometheus.Metric) (*prometheus.Desc, error) {
|
||||||
|
@ -143,6 +166,18 @@ func (c *OSCollector) collect(ch chan<- prometheus.Metric) (*prometheus.Desc, er
|
||||||
float64(dst[0].FreeVirtualMemory),
|
float64(dst[0].FreeVirtualMemory),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ch <- prometheus.MustNewConstMetric(
|
||||||
|
c.MaxNumberOfProcesses,
|
||||||
|
prometheus.GaugeValue,
|
||||||
|
float64(dst[0].MaxNumberOfProcesses),
|
||||||
|
)
|
||||||
|
|
||||||
|
ch <- prometheus.MustNewConstMetric(
|
||||||
|
c.MaxProcessMemorySize,
|
||||||
|
prometheus.GaugeValue,
|
||||||
|
float64(dst[0].MaxProcessMemorySize),
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.NumberOfProcesses,
|
c.NumberOfProcesses,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
|
|
Loading…
Reference in New Issue