Skip to content

Commit

Permalink
Merge pull request #638 from kminehart/replicaset-labels
Browse files Browse the repository at this point in the history
Add replicaset label metrics
  • Loading branch information
k8s-ci-robot committed Jan 23, 2019
2 parents 00871c1 + d4f7306 commit 491d94d
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Documentation/replicaset-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
| kube_replicaset_status_observed_generation | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; | STABLE |
| kube_replicaset_spec_replicas | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; | STABLE |
| kube_replicaset_metadata_generation | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; | STABLE |
| kube_replicaset_labels | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; | STABLE |
| kube_replicaset_created | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; | STABLE |
| kube_replicaset_owner | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; <br> `owner_kind`=&lt;owner kind&gt; <br> `owner_name`=&lt;owner name&gt; <br> `owner_is_controller`=&lt;whether owner is controller&gt; | STABLE |
| kube_replicaset_owner | Gauge | `replicaset`=&lt;replicaset-name&gt; <br> `namespace`=&lt;replicaset-namespace&gt; <br> `owner_kind`=&lt;owner kind&gt; <br> `owner_name`=&lt;owner name&gt; <br> `owner_is_controller`=&lt;whether owner is controller&gt; | STABLE |
16 changes: 16 additions & 0 deletions pkg/collectors/replicaset.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ import (
)

var (
descReplicaSetLabelsName = "kube_replicaset_labels"
descReplicaSetLabelsHelp = "Kubernetes labels converted to Prometheus labels."
descReplicaSetLabelsDefaultLabels = []string{"namespace", "replicaset"}

replicaSetMetricFamilies = []metrics.FamilyGenerator{
Expand Down Expand Up @@ -157,6 +159,20 @@ var (
return f
}),
},
{
Name: descReplicaSetLabelsName,
Type: metrics.MetricTypeGauge,
Help: descReplicaSetLabelsHelp,
GenerateFunc: wrapReplicaSetFunc(func(d *v1beta1.ReplicaSet) metrics.Family {
labelKeys, labelValues := kubeLabelsToPrometheusLabels(d.Labels)
return metrics.Family{&metrics.Metric{
Name: descReplicaSetLabelsName,
LabelKeys: labelKeys,
LabelValues: labelValues,
Value: 1,
}}
}),
},
}
)

Expand Down
11 changes: 11 additions & 0 deletions pkg/collectors/replicaset_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ func TestReplicaSetCollector(t *testing.T) {
# TYPE kube_replicaset_spec_replicas gauge
# HELP kube_replicaset_owner Information about the ReplicaSet's owner.
# TYPE kube_replicaset_owner gauge
# HELP kube_replicaset_labels Kubernetes labels converted to Prometheus labels.
# TYPE kube_replicaset_labels gauge
`
cases := []generateMetricsTestCase{
{
Expand All @@ -67,6 +69,9 @@ func TestReplicaSetCollector(t *testing.T) {
Controller: &test,
},
},
Labels: map[string]string{
"app": "example1",
},
},
Status: v1beta1.ReplicaSetStatus{
Replicas: 5,
Expand All @@ -79,6 +84,7 @@ func TestReplicaSetCollector(t *testing.T) {
},
},
Want: `
kube_replicaset_labels{replicaset="rs1",namespace="ns1",label_app="example1"} 1
kube_replicaset_created{namespace="ns1",replicaset="rs1"} 1.5e+09
kube_replicaset_metadata_generation{namespace="ns1",replicaset="rs1"} 21
kube_replicaset_status_replicas{namespace="ns1",replicaset="rs1"} 5
Expand All @@ -95,6 +101,10 @@ func TestReplicaSetCollector(t *testing.T) {
Name: "rs2",
Namespace: "ns2",
Generation: 14,
Labels: map[string]string{
"app": "example2",
"env": "ex",
},
},
Status: v1beta1.ReplicaSetStatus{
Replicas: 0,
Expand All @@ -107,6 +117,7 @@ func TestReplicaSetCollector(t *testing.T) {
},
},
Want: `
kube_replicaset_labels{replicaset="rs2",namespace="ns2",label_app="example2",label_env="ex"} 1
kube_replicaset_metadata_generation{namespace="ns2",replicaset="rs2"} 14
kube_replicaset_status_replicas{namespace="ns2",replicaset="rs2"} 0
kube_replicaset_status_observed_generation{namespace="ns2",replicaset="rs2"} 5
Expand Down

0 comments on commit 491d94d

Please sign in to comment.