@@ -135,51 +135,54 @@ func hpaMetricFamilies(allowAnnotationsList, allowLabelsList []string) []generat
135
135
var metricName string
136
136
137
137
var v [metricTargetTypeCount ]float64
138
+ var ok [metricTargetTypeCount ]bool
138
139
139
140
switch m .Type {
140
141
case autoscaling .ObjectMetricSourceType :
141
142
metricName = m .Object .Metric .Name
142
143
143
144
if m .Object .Target .Value != nil {
144
- v [value ] = float64 (m .Object .Target .Value .MilliValue ()) / 1000
145
+ v [value ], ok [ value ] = float64 (m .Object .Target .Value .MilliValue ())/ 1000 , true
145
146
}
146
147
if m .Object .Target .AverageValue != nil {
147
- v [average ] = float64 (m .Object .Target .AverageValue .MilliValue ()) / 1000
148
+ v [average ], ok [ average ] = float64 (m .Object .Target .AverageValue .MilliValue ())/ 1000 , true
148
149
}
149
150
case autoscaling .PodsMetricSourceType :
150
151
metricName = m .Pods .Metric .Name
151
152
152
- v [average ] = float64 (m .Pods .Target .AverageValue .MilliValue ()) / 1000
153
+ v [average ], ok [ average ] = float64 (m .Pods .Target .AverageValue .MilliValue ())/ 1000 , true
153
154
case autoscaling .ResourceMetricSourceType :
154
155
metricName = string (m .Resource .Name )
155
156
156
157
if m .Resource .Target .AverageUtilization != nil {
157
- v [utilization ] = float64 (* m .Resource .Target .AverageUtilization )
158
+ v [utilization ], ok [ utilization ] = float64 (* m .Resource .Target .AverageUtilization ), true
158
159
}
159
160
160
161
if m .Resource .Target .AverageValue != nil {
161
- v [average ] = float64 (m .Resource .Target .AverageValue .MilliValue ()) / 1000
162
+ v [average ], ok [ average ] = float64 (m .Resource .Target .AverageValue .MilliValue ())/ 1000 , true
162
163
}
163
164
case autoscaling .ExternalMetricSourceType :
164
165
metricName = m .External .Metric .Name
165
166
166
167
if m .External .Target .Value != nil {
167
- v [value ] = float64 (m .External .Target .Value .MilliValue ()) / 1000
168
+ v [value ], ok [ value ] = float64 (m .External .Target .Value .MilliValue ())/ 1000 , true
168
169
}
169
170
if m .External .Target .AverageValue != nil {
170
- v [average ] = float64 (m .External .Target .AverageValue .MilliValue ()) / 1000
171
+ v [average ], ok [ average ] = float64 (m .External .Target .AverageValue .MilliValue ())/ 1000 , true
171
172
}
172
173
default :
173
174
// Skip unsupported metric type
174
175
continue
175
176
}
176
177
177
178
for i := range v {
178
- ms = append (ms , & metric.Metric {
179
- LabelKeys : targetMetricLabels ,
180
- LabelValues : []string {metricName , metricTargetType (i ).String ()},
181
- Value : v [i ],
182
- })
179
+ if ok [i ] {
180
+ ms = append (ms , & metric.Metric {
181
+ LabelKeys : targetMetricLabels ,
182
+ LabelValues : []string {metricName , metricTargetType (i ).String ()},
183
+ Value : v [i ],
184
+ })
185
+ }
183
186
}
184
187
}
185
188
return & metric.Family {Metrics : ms }
0 commit comments