Skip to content

Commit 2524d4d

Browse files
committed
update internal_ip and external_ip node label for multi-value
1 parent 25bdd67 commit 2524d4d

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

internal/store/node.go

+24-11
Original file line numberDiff line numberDiff line change
@@ -134,23 +134,36 @@ func createNodeInfoFamilyGenerator() generator.FamilyGenerator {
134134
n.Status.NodeInfo.SystemUUID,
135135
}
136136

137-
internalIP := ""
137+
internalIPs := []string{}
138+
externalIPs := []string{}
138139
for _, address := range n.Status.Addresses {
139-
if address.Type == "InternalIP" {
140-
internalIP = address.Address
140+
switch address.Type {
141+
case "InternalIP":
142+
internalIPs = append(internalIPs, address.Address)
143+
case "ExternalIP":
144+
externalIPs = append(externalIPs, address.Address)
141145
}
142146
}
143-
labelKeys = append(labelKeys, "internal_ip")
144-
labelValues = append(labelValues, internalIP)
145147

146-
externalIP := ""
147-
for _, address := range n.Status.Addresses {
148-
if address.Type == "ExternalIP" {
149-
externalIP = address.Address
148+
if len(internalIPs) > 0 {
149+
for _, ip := range internalIPs {
150+
labelKeys = append(labelKeys, "internal_ip")
151+
labelValues = append(labelValues, ip)
152+
}
153+
} else {
154+
labelKeys = append(labelKeys, "internal_ip")
155+
labelValues = append(labelValues, "")
156+
}
157+
158+
if len(externalIPs) > 0 {
159+
for _, ip := range externalIPs {
160+
labelKeys = append(labelKeys, "external_ip")
161+
labelValues = append(labelValues, ip)
150162
}
163+
} else {
164+
labelKeys = append(labelKeys, "external_ip")
165+
labelValues = append(labelValues, "")
151166
}
152-
labelKeys = append(labelKeys, "external_ip")
153-
labelValues = append(labelValues, externalIP)
154167

155168
return &metric.Family{
156169
Metrics: []*metric.Metric{

internal/store/node_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ func TestNodeStore(t *testing.T) {
106106
},
107107
Addresses: []v1.NodeAddress{
108108
{Type: "InternalIP", Address: "1.2.3.4"},
109+
{Type: "InternalIP", Address: "fc00::"},
109110
{Type: "ExternalIP", Address: "5.6.7.8"},
110111
},
111112
Capacity: v1.ResourceList{
@@ -142,7 +143,7 @@ func TestNodeStore(t *testing.T) {
142143
# TYPE kube_node_status_allocatable gauge
143144
# TYPE kube_node_status_capacity gauge
144145
kube_node_created{node="127.0.0.1"} 1.5e+09
145-
kube_node_info{container_runtime_version="rkt",kernel_version="kernel",kubelet_version="kubelet",kubeproxy_version="kubeproxy",node="127.0.0.1",os_image="osimage",pod_cidr="172.24.10.0/24",provider_id="provider://i-randomidentifier",internal_ip="1.2.3.4",external_ip="5.6.7.8",system_uuid="6a934e21-5207-4a84-baea-3a952d926c80"} 1
146+
kube_node_info{container_runtime_version="rkt",kernel_version="kernel",kubelet_version="kubelet",kubeproxy_version="kubeproxy",node="127.0.0.1",os_image="osimage",pod_cidr="172.24.10.0/24",provider_id="provider://i-randomidentifier",internal_ip="1.2.3.4",internal_ip="fc00::",external_ip="5.6.7.8",system_uuid="6a934e21-5207-4a84-baea-3a952d926c80"} 1
146147
kube_node_role{node="127.0.0.1",role="master"} 1
147148
kube_node_spec_unschedulable{node="127.0.0.1"} 1
148149
kube_node_status_allocatable{node="127.0.0.1",resource="cpu",unit="core"} 3

0 commit comments

Comments
 (0)