Skip to content

Commit 17204a5

Browse files
authored
Merge pull request #1535 from sumitk23/master
Added additional attributes for Cronjob and Node entities : Fixes issue and #1509
2 parents 8cb2651 + e34921c commit 17204a5

6 files changed

Lines changed: 93 additions & 19 deletions

File tree

docs/cronjob-metrics.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
| kube_cronjob_spec_suspend | Gauge | `cronjob`=&lt;cronjob-name&gt; <br> `namespace`=&lt;cronjob-namespace&gt; | STABLE
1212
| kube_cronjob_spec_starting_deadline_seconds | Gauge | `cronjob`=&lt;cronjob-name&gt; <br> `namespace`=&lt;cronjob-namespace&gt; | STABLE
1313
| kube_cronjob_metadata_resource_version| Gauge | `cronjob`=&lt;cronjob-name&gt; <br> `namespace`=&lt;cronjob-namespace&gt; | STABLE
14+
| kube_cronjob_spec_successful_job_history_limit | Gauge | `cronjob`=&lt;cronjob-name&gt; <br> `namespace`=&lt;cronjob-namespace&gt; | EXPERIMENTAL
15+
| kube_cronjob_spec_failed_job_history_limit | Gauge | `cronjob`=&lt;cronjob-name&gt; <br> `namespace`=&lt;cronjob-namespace&gt; | EXPERIMENTAL

docs/node-metrics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
| Metric name| Metric type | Description | Unit (where applicable) | Labels/tags | Status |
44
| ---------- | ----------- | ----------- | ----------------------- | ----------- | ------ |
5-
| kube_node_info | Gauge | Information about a cluster node| |`node`=&lt;node-address&gt; <br> `kernel_version`=&lt;kernel-version&gt; <br> `os_image`=&lt;os-image-name&gt; <br> `container_runtime_version`=&lt;container-runtime-and-version-combination&gt; <br> `kubelet_version`=&lt;kubelet-version&gt; <br> `kubeproxy_version`=&lt;kubeproxy-version&gt; <br> `pod_cidr`=&lt;pod-cidr&gt; <br> `provider_id`=&lt;provider-id&gt; <br> `internal_ip`=&lt;internal-ip&gt; | STABLE |
5+
| kube_node_info | Gauge | Information about a cluster node| |`node`=&lt;node-address&gt; <br> `kernel_version`=&lt;kernel-version&gt; <br> `os_image`=&lt;os-image-name&gt; <br> `container_runtime_version`=&lt;container-runtime-and-version-combination&gt; <br> `kubelet_version`=&lt;kubelet-version&gt; <br> `kubeproxy_version`=&lt;kubeproxy-version&gt; <br> `pod_cidr`=&lt;pod-cidr&gt; <br> `provider_id`=&lt;provider-id&gt; <br> `system_uuid`=&lt;system-uuid&gt; <br> `internal_ip`=&lt;internal-ip&gt; | STABLE |
66
| kube_node_labels | Gauge | Kubernetes labels converted to Prometheus labels | | `node`=&lt;node-address&gt; <br> `label_NODE_LABEL`=&lt;NODE_LABEL&gt; | STABLE |
77
| kube_node_role | Gauge | The role of a cluster node | | `node`=&lt;node-address&gt; <br> `role`=&lt;NODE_ROLE&gt; | EXPERIMENTAL |
88
| kube_node_spec_unschedulable | Gauge | Whether a node can schedule new pods | | `node`=&lt;node-address&gt;| STABLE |

internal/store/cronjob.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,48 @@ func cronJobMetricFamilies(allowLabelsList []string) []generator.FamilyGenerator
213213
}
214214
}),
215215
),
216+
*generator.NewFamilyGenerator(
217+
"kube_cronjob_spec_successful_job_history_limit",
218+
"Successful job history limit tells the controller how many completed jobs should be preserved.",
219+
metric.Gauge,
220+
"",
221+
wrapCronJobFunc(func(j *batchv1beta1.CronJob) *metric.Family {
222+
ms := []*metric.Metric{}
223+
224+
if j.Spec.SuccessfulJobsHistoryLimit != nil {
225+
ms = append(ms, &metric.Metric{
226+
LabelKeys: []string{},
227+
LabelValues: []string{},
228+
Value: float64(*j.Spec.SuccessfulJobsHistoryLimit),
229+
})
230+
}
231+
232+
return &metric.Family{
233+
Metrics: ms,
234+
}
235+
}),
236+
),
237+
*generator.NewFamilyGenerator(
238+
"kube_cronjob_spec_failed_job_history_limit",
239+
"Failed job history limit tells the controller how many failed jobs should be preserved.",
240+
metric.Gauge,
241+
"",
242+
wrapCronJobFunc(func(j *batchv1beta1.CronJob) *metric.Family {
243+
ms := []*metric.Metric{}
244+
245+
if j.Spec.FailedJobsHistoryLimit != nil {
246+
ms = append(ms, &metric.Metric{
247+
LabelKeys: []string{},
248+
LabelValues: []string{},
249+
Value: float64(*j.Spec.FailedJobsHistoryLimit),
250+
})
251+
}
252+
253+
return &metric.Family{
254+
Metrics: ms,
255+
}
256+
}),
257+
),
216258
}
217259
}
218260

internal/store/cronjob_test.go

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ var (
3333
SuspendTrue = true
3434
SuspendFalse = false
3535
StartingDeadlineSeconds300 int64 = 300
36+
SuccessfulJobHistoryLimit3 int32 = 3
37+
FailedJobHistoryLimit1 int32 = 1
3638

3739
// "1520742896" is "2018/3/11 12:34:56" in "Asia/Shanghai".
3840
ActiveRunningCronJob1LastScheduleTime = time.Unix(1520742896, 0)
@@ -116,18 +118,22 @@ func TestCronJobStore(t *testing.T) {
116118
LastScheduleTime: &metav1.Time{Time: ActiveRunningCronJob1LastScheduleTime},
117119
},
118120
Spec: batchv1beta1.CronJobSpec{
119-
StartingDeadlineSeconds: &StartingDeadlineSeconds300,
120-
ConcurrencyPolicy: "Forbid",
121-
Suspend: &SuspendFalse,
122-
Schedule: "0 */6 * * *",
121+
StartingDeadlineSeconds: &StartingDeadlineSeconds300,
122+
ConcurrencyPolicy: "Forbid",
123+
Suspend: &SuspendFalse,
124+
Schedule: "0 */6 * * *",
125+
SuccessfulJobsHistoryLimit: &SuccessfulJobHistoryLimit3,
126+
FailedJobsHistoryLimit: &FailedJobHistoryLimit1,
123127
},
124128
},
125129
Want: `
126130
# HELP kube_cronjob_created Unix creation timestamp
127131
# HELP kube_cronjob_info Info about cronjob.
128132
# HELP kube_cronjob_labels Kubernetes labels converted to Prometheus labels.
129133
# HELP kube_cronjob_next_schedule_time Next time the cronjob should be scheduled. The time after lastScheduleTime, or after the cron job's creation time if it's never been scheduled. Use this to determine if the job is delayed.
134+
# HELP kube_cronjob_spec_failed_job_history_limit Failed job history limit tells the controller how many failed jobs should be preserved.
130135
# HELP kube_cronjob_spec_starting_deadline_seconds Deadline in seconds for starting the job if it misses scheduled time for any reason.
136+
# HELP kube_cronjob_spec_successful_job_history_limit Successful job history limit tells the controller how many completed jobs should be preserved.
131137
# HELP kube_cronjob_spec_suspend Suspend flag tells the controller to suspend subsequent executions.
132138
# HELP kube_cronjob_status_active Active holds pointers to currently running jobs.
133139
# HELP kube_cronjob_metadata_resource_version Resource version representing a specific version of the cronjob.
@@ -136,21 +142,25 @@ func TestCronJobStore(t *testing.T) {
136142
# TYPE kube_cronjob_info gauge
137143
# TYPE kube_cronjob_labels gauge
138144
# TYPE kube_cronjob_next_schedule_time gauge
145+
# TYPE kube_cronjob_spec_failed_job_history_limit gauge
139146
# TYPE kube_cronjob_spec_starting_deadline_seconds gauge
147+
# TYPE kube_cronjob_spec_successful_job_history_limit gauge
140148
# TYPE kube_cronjob_spec_suspend gauge
141149
# TYPE kube_cronjob_status_active gauge
142150
# TYPE kube_cronjob_metadata_resource_version gauge
143151
# TYPE kube_cronjob_status_last_schedule_time gauge
144152
kube_cronjob_info{concurrency_policy="Forbid",cronjob="ActiveRunningCronJob1",namespace="ns1",schedule="0 */6 * * *"} 1
145153
kube_cronjob_labels{cronjob="ActiveRunningCronJob1",namespace="ns1"} 1
154+
kube_cronjob_spec_failed_job_history_limit{cronjob="ActiveRunningCronJob1",namespace="ns1"} 1
146155
kube_cronjob_spec_starting_deadline_seconds{cronjob="ActiveRunningCronJob1",namespace="ns1"} 300
156+
kube_cronjob_spec_successful_job_history_limit{cronjob="ActiveRunningCronJob1",namespace="ns1"} 3
147157
kube_cronjob_spec_suspend{cronjob="ActiveRunningCronJob1",namespace="ns1"} 0
148158
kube_cronjob_status_active{cronjob="ActiveRunningCronJob1",namespace="ns1"} 2
149159
kube_cronjob_metadata_resource_version{cronjob="ActiveRunningCronJob1",namespace="ns1"} 11111
150160
kube_cronjob_status_last_schedule_time{cronjob="ActiveRunningCronJob1",namespace="ns1"} 1.520742896e+09
151161
` + fmt.Sprintf("kube_cronjob_next_schedule_time{cronjob=\"ActiveRunningCronJob1\",namespace=\"ns1\"} %ve+09\n",
152162
float64(ActiveRunningCronJob1NextScheduleTime.Unix())/math.Pow10(9)),
153-
MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_metadata_resource_version", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time"},
163+
MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_metadata_resource_version", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time", "kube_cronjob_spec_successful_job_history_limit", "kube_cronjob_spec_failed_job_history_limit"},
154164
},
155165
{
156166
Obj: &batchv1beta1.CronJob{
@@ -168,38 +178,46 @@ func TestCronJobStore(t *testing.T) {
168178
LastScheduleTime: &metav1.Time{Time: SuspendedCronJob1LastScheduleTime},
169179
},
170180
Spec: batchv1beta1.CronJobSpec{
171-
StartingDeadlineSeconds: &StartingDeadlineSeconds300,
172-
ConcurrencyPolicy: "Forbid",
173-
Suspend: &SuspendTrue,
174-
Schedule: "0 */3 * * *",
181+
StartingDeadlineSeconds: &StartingDeadlineSeconds300,
182+
ConcurrencyPolicy: "Forbid",
183+
Suspend: &SuspendTrue,
184+
Schedule: "0 */3 * * *",
185+
SuccessfulJobsHistoryLimit: &SuccessfulJobHistoryLimit3,
186+
FailedJobsHistoryLimit: &FailedJobHistoryLimit1,
175187
},
176188
},
177189
Want: `
178190
# HELP kube_cronjob_created Unix creation timestamp
179191
# HELP kube_cronjob_info Info about cronjob.
180192
# HELP kube_cronjob_labels Kubernetes labels converted to Prometheus labels.
193+
# HELP kube_cronjob_spec_failed_job_history_limit Failed job history limit tells the controller how many failed jobs should be preserved.
181194
# HELP kube_cronjob_spec_starting_deadline_seconds Deadline in seconds for starting the job if it misses scheduled time for any reason.
195+
# HELP kube_cronjob_spec_successful_job_history_limit Successful job history limit tells the controller how many completed jobs should be preserved.
182196
# HELP kube_cronjob_spec_suspend Suspend flag tells the controller to suspend subsequent executions.
183197
# HELP kube_cronjob_status_active Active holds pointers to currently running jobs.
184198
# HELP kube_cronjob_metadata_resource_version Resource version representing a specific version of the cronjob.
185199
# HELP kube_cronjob_status_last_schedule_time LastScheduleTime keeps information of when was the last time the job was successfully scheduled.
186200
# TYPE kube_cronjob_created gauge
187201
# TYPE kube_cronjob_info gauge
188202
# TYPE kube_cronjob_labels gauge
203+
# TYPE kube_cronjob_spec_failed_job_history_limit gauge
189204
# TYPE kube_cronjob_spec_starting_deadline_seconds gauge
205+
# TYPE kube_cronjob_spec_successful_job_history_limit gauge
190206
# TYPE kube_cronjob_spec_suspend gauge
191207
# TYPE kube_cronjob_status_active gauge
192208
# TYPE kube_cronjob_metadata_resource_version gauge
193209
# TYPE kube_cronjob_status_last_schedule_time gauge
194210
kube_cronjob_info{concurrency_policy="Forbid",cronjob="SuspendedCronJob1",namespace="ns1",schedule="0 */3 * * *"} 1
195211
kube_cronjob_labels{cronjob="SuspendedCronJob1",namespace="ns1"} 1
212+
kube_cronjob_spec_failed_job_history_limit{cronjob="SuspendedCronJob1",namespace="ns1"} 1
196213
kube_cronjob_spec_starting_deadline_seconds{cronjob="SuspendedCronJob1",namespace="ns1"} 300
214+
kube_cronjob_spec_successful_job_history_limit{cronjob="SuspendedCronJob1",namespace="ns1"} 3
197215
kube_cronjob_spec_suspend{cronjob="SuspendedCronJob1",namespace="ns1"} 1
198216
kube_cronjob_status_active{cronjob="SuspendedCronJob1",namespace="ns1"} 0
199217
kube_cronjob_metadata_resource_version{cronjob="SuspendedCronJob1",namespace="ns1"} 22222
200218
kube_cronjob_status_last_schedule_time{cronjob="SuspendedCronJob1",namespace="ns1"} 1.520762696e+09
201219
`,
202-
MetricNames: []string{"kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_metadata_resource_version", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time"},
220+
MetricNames: []string{"kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_metadata_resource_version", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time", "kube_cronjob_spec_successful_job_history_limit", "kube_cronjob_spec_failed_job_history_limit"},
203221
},
204222
{
205223
Obj: &batchv1beta1.CronJob{
@@ -218,40 +236,48 @@ func TestCronJobStore(t *testing.T) {
218236
LastScheduleTime: nil,
219237
},
220238
Spec: batchv1beta1.CronJobSpec{
221-
StartingDeadlineSeconds: &StartingDeadlineSeconds300,
222-
ConcurrencyPolicy: "Forbid",
223-
Suspend: &SuspendFalse,
224-
Schedule: "25 * * * *",
239+
StartingDeadlineSeconds: &StartingDeadlineSeconds300,
240+
ConcurrencyPolicy: "Forbid",
241+
Suspend: &SuspendFalse,
242+
Schedule: "25 * * * *",
243+
SuccessfulJobsHistoryLimit: &SuccessfulJobHistoryLimit3,
244+
FailedJobsHistoryLimit: &FailedJobHistoryLimit1,
225245
},
226246
},
227247
Want: `
228248
# HELP kube_cronjob_created Unix creation timestamp
229249
# HELP kube_cronjob_info Info about cronjob.
230250
# HELP kube_cronjob_labels Kubernetes labels converted to Prometheus labels.
231251
# HELP kube_cronjob_next_schedule_time Next time the cronjob should be scheduled. The time after lastScheduleTime, or after the cron job's creation time if it's never been scheduled. Use this to determine if the job is delayed.
252+
# HELP kube_cronjob_spec_failed_job_history_limit Failed job history limit tells the controller how many failed jobs should be preserved.
232253
# HELP kube_cronjob_spec_starting_deadline_seconds Deadline in seconds for starting the job if it misses scheduled time for any reason.
254+
# HELP kube_cronjob_spec_successful_job_history_limit Successful job history limit tells the controller how many completed jobs should be preserved.
233255
# HELP kube_cronjob_spec_suspend Suspend flag tells the controller to suspend subsequent executions.
234256
# HELP kube_cronjob_status_active Active holds pointers to currently running jobs.
235257
# HELP kube_cronjob_metadata_resource_version Resource version representing a specific version of the cronjob.
236258
# TYPE kube_cronjob_created gauge
237259
# TYPE kube_cronjob_info gauge
238260
# TYPE kube_cronjob_labels gauge
239261
# TYPE kube_cronjob_next_schedule_time gauge
262+
# TYPE kube_cronjob_spec_failed_job_history_limit gauge
240263
# TYPE kube_cronjob_spec_starting_deadline_seconds gauge
264+
# TYPE kube_cronjob_spec_successful_job_history_limit gauge
241265
# TYPE kube_cronjob_spec_suspend gauge
242266
# TYPE kube_cronjob_status_active gauge
243267
# TYPE kube_cronjob_metadata_resource_version gauge
244268
kube_cronjob_spec_starting_deadline_seconds{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 300
245269
kube_cronjob_status_active{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 0
246270
kube_cronjob_metadata_resource_version{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 33333
271+
kube_cronjob_spec_failed_job_history_limit{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 1
272+
kube_cronjob_spec_successful_job_history_limit{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 3
247273
kube_cronjob_spec_suspend{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 0
248274
kube_cronjob_info{concurrency_policy="Forbid",cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1",schedule="25 * * * *"} 1
249275
kube_cronjob_created{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 1.520766296e+09
250276
kube_cronjob_labels{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 1
251277
` +
252278
fmt.Sprintf("kube_cronjob_next_schedule_time{cronjob=\"ActiveCronJob1NoLastScheduled\",namespace=\"ns1\"} %ve+09\n",
253279
float64(ActiveCronJob1NoLastScheduledNextScheduleTime.Unix())/math.Pow10(9)),
254-
MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_metadata_resource_version", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels"},
280+
MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_metadata_resource_version", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_spec_successful_job_history_limit", "kube_cronjob_spec_failed_job_history_limit"},
255281
},
256282
}
257283
for i, c := range cases {

internal/store/node.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ func createNodeInfoFamilyGenerator() generator.FamilyGenerator {
9090
"kubeproxy_version",
9191
"provider_id",
9292
"pod_cidr",
93+
"system_uuid",
9394
}
9495
labelValues := []string{
9596
n.Status.NodeInfo.KernelVersion,
@@ -99,6 +100,7 @@ func createNodeInfoFamilyGenerator() generator.FamilyGenerator {
99100
n.Status.NodeInfo.KubeProxyVersion,
100101
n.Spec.ProviderID,
101102
n.Spec.PodCIDR,
103+
n.Status.NodeInfo.SystemUUID,
102104
}
103105

104106
internalIP := ""

internal/store/node_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ func TestNodeStore(t *testing.T) {
4242
KubeProxyVersion: "kubeproxy",
4343
OSImage: "osimage",
4444
ContainerRuntimeVersion: "rkt",
45+
SystemUUID: "6a934e21-5207-4a84-baea-3a952d926c80",
4546
},
4647
Addresses: []v1.NodeAddress{
4748
{Type: "InternalIP", Address: "1.2.3.4"},
@@ -59,7 +60,7 @@ func TestNodeStore(t *testing.T) {
5960
# TYPE kube_node_info gauge
6061
# TYPE kube_node_labels gauge
6162
# TYPE kube_node_spec_unschedulable gauge
62-
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-uniqueid",internal_ip="1.2.3.4"} 1
63+
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-uniqueid",internal_ip="1.2.3.4",system_uuid="6a934e21-5207-4a84-baea-3a952d926c80"} 1
6364
kube_node_labels{node="127.0.0.1"} 1
6465
kube_node_spec_unschedulable{node="127.0.0.1"} 0
6566
`,
@@ -75,7 +76,7 @@ func TestNodeStore(t *testing.T) {
7576
Want: `
7677
# HELP kube_node_info Information about a cluster node.
7778
# TYPE kube_node_info gauge
78-
kube_node_info{container_runtime_version="",kernel_version="",kubelet_version="",kubeproxy_version="",node="",os_image="",pod_cidr="",provider_id="",internal_ip=""} 1
79+
kube_node_info{container_runtime_version="",kernel_version="",kubelet_version="",kubeproxy_version="",node="",os_image="",pod_cidr="",provider_id="",internal_ip="",system_uuid=""} 1
7980
`,
8081
MetricNames: []string{"kube_node_info"},
8182
},
@@ -101,6 +102,7 @@ func TestNodeStore(t *testing.T) {
101102
KubeProxyVersion: "kubeproxy",
102103
OSImage: "osimage",
103104
ContainerRuntimeVersion: "rkt",
105+
SystemUUID: "6a934e21-5207-4a84-baea-3a952d926c80",
104106
},
105107
Addresses: []v1.NodeAddress{
106108
{Type: "InternalIP", Address: "1.2.3.4"},
@@ -139,7 +141,7 @@ func TestNodeStore(t *testing.T) {
139141
# TYPE kube_node_status_allocatable gauge
140142
# TYPE kube_node_status_capacity gauge
141143
kube_node_created{node="127.0.0.1"} 1.5e+09
142-
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"} 1
144+
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",system_uuid="6a934e21-5207-4a84-baea-3a952d926c80"} 1
143145
kube_node_labels{node="127.0.0.1"} 1
144146
kube_node_role{node="127.0.0.1",role="master"} 1
145147
kube_node_spec_unschedulable{node="127.0.0.1"} 1

0 commit comments

Comments
 (0)