From 4ab15af0dc1e544700d35e2aab564a78a518bcf4 Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Tue, 7 Aug 2018 17:10:30 +0200 Subject: [PATCH] Add process_maximum_virtual_memory_bytes metric Signed-off-by: Simon Pasquier --- prometheus/process_collector.go | 10 +++++++++- prometheus/process_collector_test.go | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/prometheus/process_collector.go b/prometheus/process_collector.go index b80adc6..b10048a 100644 --- a/prometheus/process_collector.go +++ b/prometheus/process_collector.go @@ -20,7 +20,8 @@ type processCollector struct { pidFn func() (int, error) cpuTotal *Desc openFDs, maxFDs *Desc - vsize, rss *Desc + vsize, maxVsize *Desc + rss *Desc startTime *Desc } @@ -72,6 +73,11 @@ func NewProcessCollectorPIDFn( "Virtual memory size in bytes.", nil, nil, ), + maxVsize: NewDesc( + ns+"process_max_virtual_memory_bytes", + "Maximum amount of virtual memory available in bytes.", + nil, nil, + ), rss: NewDesc( ns+"process_resident_memory_bytes", "Resident memory size in bytes.", @@ -98,6 +104,7 @@ func (c *processCollector) Describe(ch chan<- *Desc) { ch <- c.openFDs ch <- c.maxFDs ch <- c.vsize + ch <- c.maxVsize ch <- c.rss ch <- c.startTime } @@ -135,5 +142,6 @@ func (c *processCollector) processCollect(ch chan<- Metric) { if limits, err := p.NewLimits(); err == nil { ch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(limits.OpenFiles)) + ch <- MustNewConstMetric(c.maxVsize, GaugeValue, float64(limits.AddressSpace)) } } diff --git a/prometheus/process_collector_test.go b/prometheus/process_collector_test.go index d59ad77..ddbc9bd 100644 --- a/prometheus/process_collector_test.go +++ b/prometheus/process_collector_test.go @@ -43,12 +43,14 @@ func TestProcessCollector(t *testing.T) { regexp.MustCompile("\nprocess_cpu_seconds_total [0-9]"), regexp.MustCompile("\nprocess_max_fds [1-9]"), regexp.MustCompile("\nprocess_open_fds [1-9]"), + regexp.MustCompile("\nprocess_max_virtual_memory_bytes (-1|[1-9])"), regexp.MustCompile("\nprocess_virtual_memory_bytes [1-9]"), regexp.MustCompile("\nprocess_resident_memory_bytes [1-9]"), regexp.MustCompile("\nprocess_start_time_seconds [0-9.]{10,}"), regexp.MustCompile("\nfoobar_process_cpu_seconds_total [0-9]"), regexp.MustCompile("\nfoobar_process_max_fds [1-9]"), regexp.MustCompile("\nfoobar_process_open_fds [1-9]"), + regexp.MustCompile("\nfoobar_process_max_virtual_memory_bytes (-1|[1-9])"), regexp.MustCompile("\nfoobar_process_virtual_memory_bytes [1-9]"), regexp.MustCompile("\nfoobar_process_resident_memory_bytes [1-9]"), regexp.MustCompile("\nfoobar_process_start_time_seconds [0-9.]{10,}"),