Skip to content

Commit b2d282e

Browse files
add ds
1 parent 5bdfb98 commit b2d282e

File tree

3 files changed

+61
-14
lines changed

3 files changed

+61
-14
lines changed
Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
# DaemonSet Metrics
2-
3-
| Metric name | Metric type | Description | Labels/tags | Status |
4-
| ---------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
1+
| Metric name | Metric type | Description | Labels/tags | Status |
2+
|------------------------------------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
53
| kube_daemonset_annotations | Gauge | Kubernetes annotations converted to Prometheus labels controlled via [--metric-annotations-allowlist](../../developer/cli-arguments.md) | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; <br> `annotation_DAEMONSET_ANNOTATION`=&lt;DAEMONSET_ANNOTATION&gt; | EXPERIMENTAL |
6-
| kube_daemonset_created | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
7-
| kube_daemonset_status_current_number_scheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
8-
| kube_daemonset_status_desired_number_scheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
9-
| kube_daemonset_status_number_available | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
10-
| kube_daemonset_status_number_misscheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
11-
| kube_daemonset_status_number_ready | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
12-
| kube_daemonset_status_number_unavailable | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
13-
| kube_daemonset_status_observed_generation | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
14-
| kube_daemonset_status_updated_number_scheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
15-
| kube_daemonset_metadata_generation | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
4+
| kube_daemonset_created | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
5+
| kube_daemonset_status_current_number_scheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
6+
| kube_daemonset_status_desired_number_scheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
7+
| kube_daemonset_status_number_available | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
8+
| kube_daemonset_status_number_misscheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
9+
| kube_daemonset_status_number_ready | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
10+
| kube_daemonset_status_number_unavailable | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
11+
| kube_daemonset_status_observed_generation | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
12+
| kube_daemonset_status_updated_number_scheduled | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
13+
| kube_daemonset_metadata_generation | Gauge | | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | STABLE |
1614
| kube_daemonset_labels | Gauge | Kubernetes labels converted to Prometheus labels controlled via [--metric-labels-allowlist](../../developer/cli-arguments.md) | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; <br> `label_DAEMONSET_LABEL`=&lt;DAEMONSET_LABEL&gt; | STABLE |
15+
| kube_daemonset_deletion_timestamp | Gauge | Unix deletion timestamp | `daemonset`=&lt;daemonset-name&gt; <br> `namespace`=&lt;daemonset-namespace&gt; | EXPERIMENTAL |

internal/store/daemonset.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,26 @@ func daemonSetMetricFamilies(allowAnnotationsList, allowLabelsList []string) []g
223223
}
224224
}),
225225
),
226+
*generator.NewFamilyGeneratorWithStability(
227+
"kube_daemonset_deletion_timestamp",
228+
"Unix deletion timestamp",
229+
metric.Gauge,
230+
basemetrics.ALPHA,
231+
"",
232+
wrapDaemonSetFunc(func(d *v1.DaemonSet) *metric.Family {
233+
ms := []*metric.Metric{}
234+
235+
if !d.DeletionTimestamp.IsZero() {
236+
ms = append(ms, &metric.Metric{
237+
Value: float64(d.DeletionTimestamp.Unix()),
238+
})
239+
}
240+
241+
return &metric.Family{
242+
Metrics: ms,
243+
}
244+
}),
245+
),
226246
*generator.NewFamilyGeneratorWithStability(
227247
descDaemonSetAnnotationsName,
228248
descDaemonSetAnnotationsHelp,

internal/store/daemonset_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,34 @@ func TestDaemonSetStore(t *testing.T) {
228228
"kube_daemonset_status_updated_number_scheduled",
229229
},
230230
},
231+
{
232+
Obj: &v1.DaemonSet{
233+
ObjectMeta: metav1.ObjectMeta{
234+
Name: "ds4",
235+
CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)},
236+
DeletionTimestamp: &metav1.Time{Time: time.Unix(1800000000, 0)},
237+
Namespace: "ns4",
238+
Labels: map[string]string{
239+
"app": "example4",
240+
},
241+
Generation: 14,
242+
},
243+
Status: v1.DaemonSetStatus{
244+
CurrentNumberScheduled: 10,
245+
NumberMisscheduled: 5,
246+
DesiredNumberScheduled: 0,
247+
NumberReady: 0,
248+
},
249+
},
250+
Want: `
251+
# HELP kube_daemonset_deletion_timestamp Unix deletion timestamp
252+
# TYPE kube_daemonset_deletion_timestamp gauge
253+
kube_daemonset_deletion_timestamp{daemonset="ds4",namespace="ns4"} 1.8e+09
254+
`,
255+
MetricNames: []string{
256+
"kube_daemonset_deletion_timestamp",
257+
},
258+
},
231259
}
232260
for i, c := range cases {
233261
c.Func = generator.ComposeMetricGenFuncs(daemonSetMetricFamilies(c.AllowAnnotationsList, c.AllowLabelsList))

0 commit comments

Comments
 (0)