Skip to content
This repository has been archived by the owner on Dec 1, 2018. It is now read-only.

Commit

Permalink
Merge pull request #1822 from loburm/fix_memory_metrics
Browse files Browse the repository at this point in the history
Fix an issue when memory/bytes_used is not reported.
  • Loading branch information
loburm committed Sep 29, 2017
2 parents 5f8a3ac + 8db6dd9 commit 600e70b
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 9 deletions.
13 changes: 12 additions & 1 deletion metrics/sinks/stackdriver/stackdriver.go
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,18 @@ func (sink *StackdriverSink) TranslateMetric(timestamp time.Time, labels map[str
return ts
case "memory/bytes_used":
point := sink.intPoint(timestamp, timestamp, value.IntValue)
return createTimeSeries(resourceLabels, memoryBytesUsedMD, point)
ts := createTimeSeries(resourceLabels, memoryBytesUsedMD, point)
ts.Metric.Labels = map[string]string{
"memory_type": "evictable",
}
return ts
case core.MetricMemoryWorkingSet.MetricDescriptor.Name:
point := sink.intPoint(timestamp, timestamp, value.IntValue)
ts := createTimeSeries(resourceLabels, memoryBytesUsedMD, point)
ts.Metric.Labels = map[string]string{
"memory_type": "non-evictable",
}
return ts
case "memory/minor_page_faults":
point := sink.intPoint(timestamp, createTime, value.IntValue)
ts := createTimeSeries(resourceLabels, memoryPageFaultsMD, point)
Expand Down
38 changes: 30 additions & 8 deletions metrics/sinks/stackdriver/stackdriver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,36 @@ func TestTranslateMemoryNodeAllocatable(t *testing.T) {
as.Equal(int64(2048), *value.Int64Value)
}

func TestTranslateMemoryUsedEvictable(t *testing.T) {
metricValue := generateIntMetric(100)
name := "memory/bytes_used"
timestamp := time.Now()
createTime := timestamp.Add(-time.Second)

ts := sink.TranslateMetric(timestamp, commonLabels, name, metricValue, createTime)

as := assert.New(t)
as.Equal(ts.Metric.Type, "container.googleapis.com/container/memory/bytes_used")
as.Equal(len(ts.Points), 1)
as.Equal(*ts.Points[0].Value.Int64Value, int64(100))
as.Equal(ts.Metric.Labels["memory_type"], "evictable")
}

func TestTranslateMemoryUsedNonEvictable(t *testing.T) {
metricValue := generateIntMetric(200)
name := core.MetricMemoryWorkingSet.MetricDescriptor.Name
timestamp := time.Now()
createTime := timestamp.Add(-time.Second)

ts := sink.TranslateMetric(timestamp, commonLabels, name, metricValue, createTime)

as := assert.New(t)
as.Equal(ts.Metric.Type, "container.googleapis.com/container/memory/bytes_used")
as.Equal(len(ts.Points), 1)
as.Equal(*ts.Points[0].Value.Int64Value, int64(200))
as.Equal(ts.Metric.Labels["memory_type"], "non-evictable")
}

func TestTranslateMemoryMajorPageFaults(t *testing.T) {
metricValue := generateIntMetric(20)
name := "memory/major_page_faults"
Expand Down Expand Up @@ -160,14 +190,6 @@ func TestTranslateMemoryMinorPageFaults(t *testing.T) {
as.Equal(ts.Metric.Labels["fault_type"], "minor")
}

func TestTranslateMemoryBytesUsed(t *testing.T) {
as := assert.New(t)
value := testTranslateMetric(as, 987, "memory/bytes_used", commonLabels,
"container.googleapis.com/container/memory/bytes_used")

as.Equal(int64(987), *value.Int64Value)
}

// Test TranslateLabeledMetric

func TestTranslateFilesystemUsage(t *testing.T) {
Expand Down

0 comments on commit 600e70b

Please sign in to comment.