Expose memory.max_usage_in_bytes in container stats

This commit is contained in:
Derek Carr 2017-10-10 16:26:47 -04:00
parent 3e659ec0d1
commit 9ea61176bf
5 changed files with 17 additions and 0 deletions

View File

@ -509,6 +509,7 @@ func setDiskIoStats(s *cgroups.Stats, ret *info.ContainerStats) {
func setMemoryStats(s *cgroups.Stats, ret *info.ContainerStats) { func setMemoryStats(s *cgroups.Stats, ret *info.ContainerStats) {
ret.Memory.Usage = s.MemoryStats.Usage.Usage ret.Memory.Usage = s.MemoryStats.Usage.Usage
ret.Memory.MaxUsage = s.MemoryStats.Usage.MaxUsage
ret.Memory.Failcnt = s.MemoryStats.Usage.Failcnt ret.Memory.Failcnt = s.MemoryStats.Usage.Failcnt
ret.Memory.Cache = s.MemoryStats.Stats["cache"] ret.Memory.Cache = s.MemoryStats.Stats["cache"]

View File

@ -330,6 +330,10 @@ type MemoryStats struct {
// Units: Bytes. // Units: Bytes.
Usage uint64 `json:"usage"` Usage uint64 `json:"usage"`
// Maximum memory usage recorded.
// Units: Bytes.
MaxUsage uint64 `json:"max_usage"`
// Number of bytes of page cache memory. // Number of bytes of page cache memory.
// Units: Bytes. // Units: Bytes.
Cache uint64 `json:"cache"` Cache uint64 `json:"cache"`

View File

@ -231,6 +231,14 @@ func NewPrometheusCollector(i infoProvider, f ContainerLabelsFunc) *PrometheusCo
getValues: func(s *info.ContainerStats) metricValues { getValues: func(s *info.ContainerStats) metricValues {
return metricValues{{value: float64(s.Memory.Usage)}} return metricValues{{value: float64(s.Memory.Usage)}}
}, },
},
{
name: "container_memory_max_usage_bytes",
help: "Maximum memory usage recorded in bytes",
valueType: prometheus.GaugeValue,
getValues: func(s *info.ContainerStats) metricValues {
return metricValues{{value: float64(s.Memory.MaxUsage)}}
},
}, { }, {
name: "container_memory_working_set_bytes", name: "container_memory_working_set_bytes",
help: "Current working set in bytes.", help: "Current working set in bytes.",

View File

@ -94,6 +94,7 @@ func (p testSubcontainersInfoProvider) SubcontainersInfo(string, *info.Container
}, },
Memory: info.MemoryStats{ Memory: info.MemoryStats{
Usage: 8, Usage: 8,
MaxUsage: 8,
WorkingSet: 9, WorkingSet: 9,
ContainerData: info.MemoryStatsMemoryData{ ContainerData: info.MemoryStatsMemoryData{
Pgfault: 10, Pgfault: 10,

View File

@ -100,6 +100,9 @@ container_memory_failures_total{container_env_foo_env="prod",container_label_foo
container_memory_failures_total{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="container",type="pgmajfault",zone_name="hello"} 11 container_memory_failures_total{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="container",type="pgmajfault",zone_name="hello"} 11
container_memory_failures_total{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgfault",zone_name="hello"} 12 container_memory_failures_total{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgfault",zone_name="hello"} 12
container_memory_failures_total{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgmajfault",zone_name="hello"} 13 container_memory_failures_total{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgmajfault",zone_name="hello"} 13
# HELP container_memory_max_usage_bytes Maximum memory usage recorded in bytes
# TYPE container_memory_max_usage_bytes gauge
container_memory_max_usage_bytes{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 8
# HELP container_memory_rss Size of RSS in bytes. # HELP container_memory_rss Size of RSS in bytes.
# TYPE container_memory_rss gauge # TYPE container_memory_rss gauge
container_memory_rss{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 15 container_memory_rss{container_env_foo_env="prod",container_label_foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 15