@@ -11,6 +11,7 @@ func DefaultMatchRules() metrics.MatchRules {
1111 metrics .NewMetricMatcher ("secret" ).AddLabel ("namespace" ).AddLabel ("secret" ),
1212
1313 metrics .NewMetricMatcher ("node" ).AddLabel ("node" ).AddLabel ("kernel_version" ).
14+ AddLabel ("kubelet_version" ).AddLabel ("kubeproxy_version" ).
1415 AddLabel ("os_image" ).AddLabel ("container_runtime_version" ).
1516 AddLabel ("provider_id" ).AddLabel ("internal_ip" ),
1617 metrics .NewMetricMatcher ("node_role" ).SetHeader ("kube_node_role" ).
@@ -36,23 +37,25 @@ func DefaultMatchRules() metrics.MatchRules {
3637
3738 metrics .NewMetricMatcher ("service" ).AddLabel ("namespace" ).AddLabel ("service" ).
3839 AddLabel ("cluster_ip" ).AddLabel ("external_name" ).AddLabel ("load_balancer_ip" ),
39- metrics .NewMetricMatcher ("endpoint_address" ).SetHeader ("kube_endpoint_address" ).
40+ metrics .NewMetricMatcher ("endpoint_address" ).SetHeader ("kube_endpoint_address" ).SetNameLabel ( "endpoint" ).
4041 AddLabel ("namespace" ).AddLabel ("endpoint" ).AddLabel ("ip" ),
41- metrics .NewMetricMatcher ("endpoint_port" ).SetHeader ("kube_endpoint_ports" ).
42+ metrics .NewMetricMatcher ("endpoint_port" ).SetHeader ("kube_endpoint_ports" ).SetNameLabel ( "endpoint" ).
4243 AddLabel ("namespace" ).AddLabel ("endpoint" ).AddLabel ("port_number" ),
4344
4445 metrics .NewMetricMatcher ("persistentvolume" ).AddLabel ("persistentvolume" ).AddLabel ("storageclass" ).
4546 AddLabel ("gce_persistent_disk_name" ).AddLabel ("ebs_volume_id" ).AddLabel ("azure_disk_name" ).
4647 AddLabel ("nfs_server" ).AddLabel ("nfs_path" ).AddLabel ("csi_driver" ).AddLabel ("csi_volume_handle" ).
4748 AddLabel ("local_path" ).AddLabel ("local_fs" ).AddLabel ("host_path" ).AddLabel ("host_path_type" ),
4849
49- metrics .NewMetricMatcher ("validating_webhook" ).SetNameLabel ( "service_name" ).
50+ metrics .NewMetricMatcher ("validating_webhook" ).
5051 SetHeader ("kube_validatingwebhookconfiguration_webhook_clientconfig_service" ).
52+ AddLabel ("validatingwebhookconfiguration" ).SetNameLabel ("validatingwebhookconfiguration" ).
5153 AddLabel ("namespace" ).AddLabel ("webhook_name" ).
5254 AddLabel ("service_name" ).AddLabel ("service_namespace" ),
5355
54- metrics .NewMetricMatcher ("mutating_webhook" ).SetNameLabel ( "service_name" ).
56+ metrics .NewMetricMatcher ("mutating_webhook" ).
5557 SetHeader ("kube_mutatingwebhookconfiguration_webhook_clientconfig_service" ).
58+ AddLabel ("mutatingwebhookconfiguration" ).SetNameLabel ("mutatingwebhookconfiguration" ).
5659 AddLabel ("namespace" ).AddLabel ("webhook_name" ).
5760 AddLabel ("service_name" ).AddLabel ("service_namespace" ),
5861 }
@@ -62,6 +65,9 @@ var NodeMergeHook metrics.ResourceMergeHook = func(m *metrics.MetricMatcher, res
6265 if m .Type == "node" || m .Type == "node_role" {
6366 for i := len (res ) - 1 ; i >= 0 ; i -- {
6467 c := res [i ]
68+ if c .Type != "node" {
69+ continue
70+ }
6571 if m .FindLabel ("node" ) == c .Name {
6672 r = res [i ]
6773 return r , false
@@ -76,6 +82,9 @@ var EndpointMergeHook metrics.ResourceMergeHook = func(m *metrics.MetricMatcher,
7682 if m .Type == "endpoint_address" || m .Type == "endpoint_port" {
7783 for i := len (res ) - 1 ; i >= 0 ; i -- {
7884 c := res [i ]
85+ if c .Type != "endpoint" {
86+ continue
87+ }
7988 if m .FindLabel ("namespace" ) == c .Namespace && m .FindLabel ("endpoint" ) == c .Name {
8089 r = res [i ]
8190 return r , false
@@ -95,6 +104,33 @@ var EndpointMergeHook metrics.ResourceMergeHook = func(m *metrics.MetricMatcher,
95104 return nil , true
96105}
97106
107+ var WebhookMergeHook metrics.ResourceMergeHook = func (m * metrics.MetricMatcher , res define.ResourceList ) (r * define.Resource , addFlag bool ) {
108+ if m .Type == "mutating_webhook" {
109+ for i := len (res ) - 1 ; i >= 0 ; i -- {
110+ if res [i ].Type != "mutating_webhook" {
111+ continue
112+ }
113+ if m .FindLabel (m .LabelNameOfName ()) == res [i ].Name {
114+ r = res [i ]
115+ return r , false
116+ }
117+ }
118+ return define .NewResource ("mutating_webhook" ), true
119+ } else if m .Type == "validating_webhook" {
120+ for i := len (res ) - 1 ; i >= 0 ; i -- {
121+ if res [i ].Type != "validating_webhook" {
122+ continue
123+ }
124+ if m .FindLabel (m .LabelNameOfName ()) == res [i ].Name {
125+ r = res [i ]
126+ return r , false
127+ }
128+ }
129+ return define .NewResource ("validating_webhook" ), true
130+ }
131+ return nil , true
132+ }
133+
98134func init () {
99- metrics .HookList = append (metrics .HookList , NodeMergeHook , EndpointMergeHook )
135+ metrics .HookList = append (metrics .HookList , NodeMergeHook , EndpointMergeHook , WebhookMergeHook )
100136}
0 commit comments