Skip to content

Commit 6082c03

Browse files
committed
kube_endpoint_address now has a ready label
Signed-off-by: Mario Constanti <[email protected]>
1 parent 997b5ce commit 6082c03

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

docs/endpoint-metrics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
| kube_endpoint_labels | Gauge | `endpoint`=&lt;endpoint-name&gt; <br> `namespace`=&lt;endpoint-namespace&gt; <br> `label_ENDPOINT_LABEL`=&lt;ENDPOINT_LABEL&gt; | STABLE |
1010
| kube_endpoint_created | Gauge | `endpoint`=&lt;endpoint-name&gt; <br> `namespace`=&lt;endpoint-namespace&gt; | STABLE |
1111
| kube_endpoint_ports | Gauge | `endpoint`=&lt;endpoint-name&gt; <br> `namespace`=&lt;endpoint-namespace&gt; <br> `port_name`=&lt;endpoint-port-name&gt; <br> `port_protocol`=&lt;endpoint-port-protocol&gt; <br> `port_number`=&lt;endpoint-port-number&gt; | EXPERIMENTAL |
12-
| kube_endpoint_address | Gauge | `endpoint`=&lt;endpoint-name&gt; <br> `namespace`=&lt;endpoint-namespace&gt; <br> `available_ip`=&lt;endpoint-available-ip&gt; <br> `unavailable_ip`=&lt;endpoint-unavailable_ip&gt; | EXPERIMENTAL |
12+
| kube_endpoint_address | Gauge | `endpoint`=&lt;endpoint-name&gt; <br> `namespace`=&lt;endpoint-namespace&gt; <br> `ip`=&lt;endpoint-ip&gt; <br> `ready`=&lt;true if available, false if unavailalbe&gt; | EXPERIMENTAL |

internal/store/endpoint.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,15 +161,15 @@ func endpointMetricFamilies(allowAnnotationsList, allowLabelsList []string) []ge
161161
for _, s := range e.Subsets {
162162
for _, available := range s.Addresses {
163163
ms = append(ms, &metric.Metric{
164-
LabelValues: []string{available.IP},
165-
LabelKeys: []string{"available_ip"},
164+
LabelValues: []string{available.IP, "true"},
165+
LabelKeys: []string{"ip", "ready"},
166166
Value: 1,
167167
})
168168
}
169169
for _, notReadyAddresses := range s.NotReadyAddresses {
170170
ms = append(ms, &metric.Metric{
171-
LabelValues: []string{notReadyAddresses.IP},
172-
LabelKeys: []string{"unavailable_ip"},
171+
LabelValues: []string{notReadyAddresses.IP, "false"},
172+
LabelKeys: []string{"ip", "ready"},
173173
Value: 1,
174174
})
175175
}

internal/store/endpoint_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,12 @@ func TestEndpointStore(t *testing.T) {
101101
kube_endpoint_ports{endpoint="test-endpoint",namespace="default",port_name="prometheus",port_protocol="TCP",port_number="9090"} 1
102102
kube_endpoint_ports{endpoint="test-endpoint",namespace="default",port_name="syslog",port_protocol="UDP",port_number="1234"} 1
103103
kube_endpoint_ports{endpoint="test-endpoint",namespace="default",port_name="syslog-tcp",port_protocol="TCP",port_number="5678"} 1
104-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",available_ip="127.0.0.1"} 1
105-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",available_ip="10.0.0.1"} 1
106-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",available_ip="172.22.23.202"} 1
107-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",unavailable_ip="192.168.1.3"} 1
108-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",unavailable_ip="192.168.2.2"} 1
109-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",unavailable_ip="10.0.0.10"} 1
104+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="127.0.0.1",ready="true"} 1
105+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="10.0.0.1",ready="true"} 1
106+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="172.22.23.202",ready="true"} 1
107+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="192.168.1.3",ready="false"} 1
108+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="192.168.2.2",ready="false"} 1
109+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="10.0.0.10",ready="false"} 1
110110
`,
111111
},
112112
{
@@ -141,9 +141,9 @@ func TestEndpointStore(t *testing.T) {
141141
kube_endpoint_info{endpoint="single-port-endpoint",namespace="default"} 1
142142
kube_endpoint_labels{endpoint="single-port-endpoint",namespace="default"} 1
143143
kube_endpoint_ports{endpoint="single-port-endpoint",namespace="default",port_name="",port_number="8080",port_protocol="TCP"} 1
144-
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",available_ip="127.0.0.1"} 1
145-
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",available_ip="10.0.0.1"} 1
146-
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",unavailable_ip="10.0.0.10"} 1
144+
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",ip="127.0.0.1",ready="true"} 1
145+
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",ip="10.0.0.1",ready="true"} 1
146+
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",ip="10.0.0.10",ready="false"} 1
147147
`,
148148
},
149149
}
@@ -234,12 +234,12 @@ func TestEndpointStoreWithLabels(t *testing.T) {
234234
kube_endpoint_ports{endpoint="test-endpoint",namespace="default",port_name="prometheus",port_protocol="TCP",port_number="9090"} 1
235235
kube_endpoint_ports{endpoint="test-endpoint",namespace="default",port_name="syslog",port_protocol="UDP",port_number="1234"} 1
236236
kube_endpoint_ports{endpoint="test-endpoint",namespace="default",port_name="syslog-tcp",port_protocol="TCP",port_number="5678"} 1
237-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",available_ip="127.0.0.1"} 1
238-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",available_ip="10.0.0.1"} 1
239-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",available_ip="172.22.23.202"} 1
240-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",unavailable_ip="192.168.1.3"} 1
241-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",unavailable_ip="192.168.2.2"} 1
242-
kube_endpoint_address{endpoint="test-endpoint",namespace="default",unavailable_ip="10.0.0.10"} 1
237+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="127.0.0.1",ready="true"} 1
238+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="10.0.0.1",ready="true"} 1
239+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="172.22.23.202",ready="true"} 1
240+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="192.168.1.3",ready="false"} 1
241+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="192.168.2.2",ready="false"} 1
242+
kube_endpoint_address{endpoint="test-endpoint",namespace="default",ip="10.0.0.10",ready="false"} 1
243243
`,
244244
},
245245
{
@@ -277,9 +277,9 @@ func TestEndpointStoreWithLabels(t *testing.T) {
277277
kube_endpoint_info{endpoint="single-port-endpoint",namespace="default"} 1
278278
kube_endpoint_labels{endpoint="single-port-endpoint",label_app="single-foobar",namespace="default"} 1
279279
kube_endpoint_ports{endpoint="single-port-endpoint",namespace="default",port_name="",port_number="8080",port_protocol="TCP"} 1
280-
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",available_ip="127.0.0.1"} 1
281-
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",available_ip="10.0.0.1"} 1
282-
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",unavailable_ip="10.0.0.10"} 1
280+
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",ip="127.0.0.1",ready="true"} 1
281+
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",ip="10.0.0.1",ready="true"} 1
282+
kube_endpoint_address{endpoint="single-port-endpoint",namespace="default",ip="10.0.0.10",ready="false"} 1
283283
`,
284284
},
285285
}

0 commit comments

Comments
 (0)