Add Equal funtion to metrics

This commit is contained in:
gmarek 2016-01-14 10:54:01 +01:00
parent bf315d4563
commit 257e964537
5 changed files with 37 additions and 0 deletions

View File

@ -50,6 +50,10 @@ var KnownApiServerMetrics = map[string][]string{
type ApiServerMetrics Metrics
func (m *ApiServerMetrics) Equal(o ApiServerMetrics) bool {
return (*Metrics)(m).Equal(Metrics(o))
}
func NewApiServerMetrics() ApiServerMetrics {
result := NewMetrics()
for metric := range KnownApiServerMetrics {

View File

@ -42,6 +42,10 @@ var KnownControllerManagerMetrics = map[string][]string{
type ControllerManagerMetrics Metrics
func (m *ControllerManagerMetrics) Equal(o ControllerManagerMetrics) bool {
return (*Metrics)(m).Equal(Metrics(o))
}
func NewControllerManagerMetrics() ControllerManagerMetrics {
result := NewMetrics()
for metric := range KnownControllerManagerMetrics {

View File

@ -19,6 +19,7 @@ package metrics
import (
"fmt"
"io"
"reflect"
"strings"
"k8s.io/kubernetes/pkg/util/sets"
@ -58,6 +59,26 @@ var CommonMetrics = map[string][]string{
type Metrics map[string]model.Samples
func (m *Metrics) Equal(o Metrics) bool {
leftKeySet := []string{}
rightKeySet := []string{}
for k := range *m {
leftKeySet = append(leftKeySet, k)
}
for k := range o {
rightKeySet = append(rightKeySet, k)
}
if !reflect.DeepEqual(leftKeySet, rightKeySet) {
return false
}
for _, k := range leftKeySet {
if !(*m)[k].Equal(o[k]) {
return false
}
}
return true
}
func PrintSample(sample *model.Sample) string {
buf := make([]string, 0)
// Id is a VERY special label. For 'normal' container it's usless, but it's necessary

View File

@ -110,6 +110,10 @@ var KubeletMetricsLabelsToSkip = sets.NewString(
type KubeletMetrics Metrics
func (m *KubeletMetrics) Equal(o KubeletMetrics) bool {
return (*Metrics)(m).Equal(Metrics(o))
}
func NewKubeletMetrics() KubeletMetrics {
result := NewMetrics()
for metric := range KnownKubeletMetrics {

View File

@ -41,6 +41,10 @@ var KnownSchedulerMetrics = map[string][]string{
type SchedulerMetrics Metrics
func (m *SchedulerMetrics) Equal(o SchedulerMetrics) bool {
return (*Metrics)(m).Equal(Metrics(o))
}
func NewSchedulerMetrics() SchedulerMetrics {
result := NewMetrics()
for metric := range KnownSchedulerMetrics {