@@ -95,3 +95,65 @@ func TestLabels(t *testing.T) {
95
95
require .Equal (t , labelValue .Value , "myval" )
96
96
require .True (t , labelValue .HasValue )
97
97
}
98
+
99
+ func TestWorkingSetMem (t * testing.T ) {
100
+ metrics := indexedFakeMetrics ()
101
+ nodeWsMetrics := metrics ["k8s.node.memory.working_set" ]
102
+ wsMetric := nodeWsMetrics [0 ]
103
+ value := wsMetric .Timeseries [0 ].Points [0 ].Value
104
+ ptv := value .(* metricspb.Point_Int64Value )
105
+ require .Equal (t , int64 (1234567890 ), ptv .Int64Value )
106
+ requireContains (t , metrics , "k8s.pod.memory.working_set" )
107
+ requireContains (t , metrics , "container.memory.working_set" )
108
+ }
109
+
110
+ func TestPageFaults (t * testing.T ) {
111
+ metrics := indexedFakeMetrics ()
112
+ nodePageFaults := metrics ["k8s.node.memory.page_faults" ]
113
+ value := nodePageFaults [0 ].Timeseries [0 ].Points [0 ].Value
114
+ ptv := value .(* metricspb.Point_Int64Value )
115
+ require .Equal (t , int64 (12345 ), ptv .Int64Value )
116
+ requireContains (t , metrics , "k8s.pod.memory.page_faults" )
117
+ requireContains (t , metrics , "container.memory.page_faults" )
118
+ }
119
+
120
+ func TestMajorPageFaults (t * testing.T ) {
121
+ metrics := indexedFakeMetrics ()
122
+ nodePageFaults := metrics ["k8s.node.memory.major_page_faults" ]
123
+ value := nodePageFaults [0 ].Timeseries [0 ].Points [0 ].Value
124
+ ptv := value .(* metricspb.Point_Int64Value )
125
+ require .Equal (t , int64 (12 ), ptv .Int64Value )
126
+ requireContains (t , metrics , "k8s.pod.memory.major_page_faults" )
127
+ requireContains (t , metrics , "container.memory.major_page_faults" )
128
+ }
129
+
130
+ func requireContains (t * testing.T , metrics map [string ][]* metricspb.Metric , metricName string ) {
131
+ _ , found := metrics [metricName ]
132
+ require .True (t , found )
133
+ }
134
+
135
+ func indexedFakeMetrics () map [string ][]* metricspb.Metric {
136
+ mds := fakeMetrics ()
137
+ metrics := make (map [string ][]* metricspb.Metric )
138
+ for _ , md := range mds {
139
+ for _ , metric := range md .Metrics {
140
+ metricName := metric .MetricDescriptor .Name
141
+ list := metrics [metricName ]
142
+ list = append (list , metric )
143
+ metrics [metricName ] = list
144
+ }
145
+ }
146
+ return metrics
147
+ }
148
+
149
+ func fakeMetrics () []* consumerdata.MetricsData {
150
+ rc := & fakeRestClient {}
151
+ statsProvider := NewStatsProvider (rc )
152
+ summary , _ := statsProvider .StatsSummary ()
153
+ mgs := map [MetricGroup ]bool {
154
+ ContainerMetricGroup : true ,
155
+ PodMetricGroup : true ,
156
+ NodeMetricGroup : true ,
157
+ }
158
+ return MetricsData (zap .NewNop (), summary , Metadata {}, "foo" , mgs )
159
+ }
0 commit comments