@@ -55,6 +55,7 @@ func nodeMetricFamilies(allowAnnotationsList, allowLabelsList []string) []genera
5555 createNodeStatusAllocatableFamilyGenerator (),
5656 createNodeStatusCapacityFamilyGenerator (),
5757 createNodeStatusConditionFamilyGenerator (),
58+ createNodeStateAddressFamilyGenerator (),
5859 }
5960}
6061
@@ -105,6 +106,29 @@ func createNodeCreatedFamilyGenerator() generator.FamilyGenerator {
105106 )
106107}
107108
109+ func createNodeStateAddressFamilyGenerator () generator.FamilyGenerator {
110+ return * generator .NewFamilyGeneratorWithStability (
111+ "kube_node_status_addresses" ,
112+ "Node address information." ,
113+ metric .Gauge ,
114+ basemetrics .ALPHA ,
115+ "" ,
116+ wrapNodeFunc (func (n * v1.Node ) * metric.Family {
117+ ms := []* metric.Metric {}
118+ for _ , address := range n .Status .Addresses {
119+ ms = append (ms , & metric.Metric {
120+ LabelKeys : []string {"type" , "address" },
121+ LabelValues : []string {string (address .Type ), address .Address },
122+ Value : 1 ,
123+ })
124+ }
125+ return & metric.Family {
126+ Metrics : ms ,
127+ }
128+ }),
129+ )
130+ }
131+
108132func createNodeInfoFamilyGenerator () generator.FamilyGenerator {
109133 return * generator .NewFamilyGeneratorWithStability (
110134 "kube_node_info" ,
@@ -134,6 +158,7 @@ func createNodeInfoFamilyGenerator() generator.FamilyGenerator {
134158 n .Status .NodeInfo .SystemUUID ,
135159 }
136160
161+ // TODO: remove internal_ip in v3, replaced by kube_node_status_addresses
137162 internalIP := ""
138163 for _ , address := range n .Status .Addresses {
139164 if address .Type == "InternalIP" {
0 commit comments