diff --git a/CHANGELOG.md b/CHANGELOG.md index d5242aacc8..bb00587284 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## v1.7.2 / 2019-08-05 + +* [CHANGE] Revert "add `kube_*_annotations metrics` for all objects" #859 +* [CHANGE] Remove `kube_namespace_annotations` metric #859 + ## v1.7.1 / 2019-07-18 * [BUGFIX] Fix crash due to missing ingress http block. #831 diff --git a/README.md b/README.md index f5b5f4d328..644e34fd32 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ At most, 5 kube-state-metrics and 5 [kubernetes releases](https://github.com/kub | **v1.4.0** | v8.0.0 | ✓ | ✓ | - | - | - | | **v1.5.0** | v8.0.0 | ✓ | ✓ | - | - | - | | **v1.6.0** | v11.0.0 | ✓ | ✓ | ✓ | ✓ | - | -| **v1.7.1** | v12.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | +| **v1.7.2** | v12.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | | **master** | v12.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | - `✓` Fully supported version range. - `-` The Kubernetes cluster has features the client-go library can't use (additional API objects, etc). @@ -74,8 +74,8 @@ release. #### Container Image The latest container image can be found at: -* `quay.io/coreos/kube-state-metrics:v1.7.1` -* `k8s.gcr.io/kube-state-metrics:v1.7.1` +* `quay.io/coreos/kube-state-metrics:v1.7.2` +* `k8s.gcr.io/kube-state-metrics:v1.7.2` **Note**: The recommended docker registry for kube-state-metrics is `quay.io`. kube-state-metrics on diff --git a/VERSION b/VERSION index 943f9cbc4e..f8a696c8dc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.7.1 +1.7.2 diff --git a/docs/certificatessigningrequest-metrics.md b/docs/certificatessigningrequest-metrics.md index ff2b928be8..52548ab535 100644 --- a/docs/certificatessigningrequest-metrics.md +++ b/docs/certificatessigningrequest-metrics.md @@ -6,4 +6,3 @@ | kube_certificatesigningrequest_condition | Gauge | `certificatesigningrequest`=<certificatesigningrequest-name>
`condition`=<approved\|denied> | STABLE | | kube_certificatesigningrequest_labels | Gauge | `certificatesigningrequest`=<certificatesigningrequest-name>| STABLE | | kube_certificatesigningrequest_cert_length | Gauge | `certificatesigningrequest`=<certificatesigningrequest-name>| STABLE | -| kube_certificatesigningrequest_annotations | Gauge | `annotation_CSR_ANNOTATION`=<CSR_ANNOTATION>
`certificatesigningrequest`=<certificatesigningrequest-name> | EXPERIMENTAL | diff --git a/docs/configmap-metrics.md b/docs/configmap-metrics.md index c219e175b9..9dce5f2019 100644 --- a/docs/configmap-metrics.md +++ b/docs/configmap-metrics.md @@ -5,4 +5,3 @@ | kube_configmap_info | Gauge | `configmap`=<configmap-name>
`namespace`=<configmap-namespace> | STABLE | | kube_configmap_created | Gauge | `configmap`=<configmap-name>
`namespace`=<configmap-namespace> | STABLE | | kube_configmap_metadata_resource_version | Gauge | `configmap`=<configmap-name>
`namespace`=<configmap-namespace>
`resource_version`=<configmap-resource-version> | STABLE | -| kube_configmap_annotations | Gauge | `annotation_CONFIGMAP_ANNOTATION`=<CONFIGMAP_ANNOTATION>
`configmap`=<configmap-name>
`namespace`=<configmap-namespace> | EXPERIMENTAL | diff --git a/docs/cronjob-metrics.md b/docs/cronjob-metrics.md index e917cb676d..2ae5d0ca3c 100644 --- a/docs/cronjob-metrics.md +++ b/docs/cronjob-metrics.md @@ -10,4 +10,3 @@ | kube_cronjob_status_last_schedule_time | Gauge | `cronjob`=<cronjob-name>
`namespace`=<cronjob-namespace> | STABLE | kube_cronjob_spec_suspend | Gauge | `cronjob`=<cronjob-name>
`namespace`=<cronjob-namespace> | STABLE | kube_cronjob_spec_starting_deadline_seconds | Gauge | `cronjob`=<cronjob-name>
`namespace`=<cronjob-namespace> | STABLE -| kube_cronjob_annotations | Gauge | `annotation_CRONJOB_ANNOTATION`=<CRONJOB_ANNOTATION>
`cronjob`=<cronjob-name>
`namespace`=<cronjob-namespace> | EXPERIMENTAL | diff --git a/docs/daemonset-metrics.md b/docs/daemonset-metrics.md index 38db311100..d974d22f1b 100644 --- a/docs/daemonset-metrics.md +++ b/docs/daemonset-metrics.md @@ -12,4 +12,3 @@ | kube_daemonset_updated_number_scheduled | Gauge | `daemonset`=<daemonset-name>
`namespace`=<daemonset-namespace> | STABLE | | kube_daemonset_metadata_generation | Gauge | `daemonset`=<daemonset-name>
`namespace`=<daemonset-namespace> | STABLE | | kube_daemonset_labels | Gauge | `daemonset`=<daemonset-name>
`namespace`=<daemonset-namespace>
`label_DAEMONSET_LABEL`=<DAEMONSET_LABEL> | STABLE | -| kube_daemonset_annotations | Gauge | `annotation_DAEMONSET_ANNOTATION`=<DAEMONSET_ANNOTATION>
`daemonset`=<daemonset-name>
`namespace`=<daemonset-namespace> | EXPERIMENTAL | diff --git a/docs/deployment-metrics.md b/docs/deployment-metrics.md index 56148d533e..a9204739a5 100644 --- a/docs/deployment-metrics.md +++ b/docs/deployment-metrics.md @@ -14,4 +14,3 @@ | kube_deployment_metadata_generation | Gauge | `deployment`=<deployment-name>
`namespace`=<deployment-namespace> | STABLE | | kube_deployment_labels | Gauge | `deployment`=<deployment-name>
`namespace`=<deployment-namespace> | STABLE | | kube_deployment_created | Gauge | `deployment`=<deployment-name>
`namespace`=<deployment-namespace> | STABLE | -| kube_deployment_annotations | Gauge | `annotation_DEPLOYMENT_ANNOTATION`=<DEPLOYMENT_ANNOTATION>
`deployment`=<deployment-name>
`namespace`=<deployment-namespace> | EXPERIMENTAL | diff --git a/docs/endpoint-metrics.md b/docs/endpoint-metrics.md index 1a7e06dc44..2e0b416030 100644 --- a/docs/endpoint-metrics.md +++ b/docs/endpoint-metrics.md @@ -7,4 +7,3 @@ | kube_endpoint_info | Gauge | `endpoint`=<endpoint-name>
`namespace`=<endpoint-namespace> | STABLE | | kube_endpoint_labels | Gauge | `endpoint`=<endpoint-name>
`namespace`=<endpoint-namespace>
`label_ENDPOINT_LABEL`=<ENDPOINT_LABEL> | STABLE | | kube_endpoint_created | Gauge | `endpoint`=<endpoint-name>
`namespace`=<endpoint-namespace> | STABLE | -| kube_endpoint_annotations | Gauge | `annotation_ENDPOINT_ANNOTATION`=<ENDPOINT_ANNOTATION>
`endpoint`=<endpoint-name>
`namespace`=<endpoint-namespace> | EXPERIMENTAL | diff --git a/docs/horizontalpodautoscaler-metrics.md b/docs/horizontalpodautoscaler-metrics.md index dd747be671..3c77ebd178 100644 --- a/docs/horizontalpodautoscaler-metrics.md +++ b/docs/horizontalpodautoscaler-metrics.md @@ -9,4 +9,3 @@ | kube_hpa_status_desired_replicas | Gauge | `hpa`=<hpa-name>
`namespace`=<hpa-namespace> | STABLE | | kube_hpa_status_condition | Gauge | `hpa`=<hpa-name>
`namespace`=<hpa-namespace> | STABLE | | kube_hpa_labels | Gauge | `hpa`=<hpa-name>
`namespace`=<hpa-namespace> | STABLE | -| kube_hpa_annotations | Gauge | `annotation_HPA_ANNOTATION`=<HPA_ANNOTATION>
`hpa`=<hpa-name>
`namespace`=<hpa-namespace> | EXPERIMENTAL | diff --git a/docs/ingress-metrics.md b/docs/ingress-metrics.md index 0d21964906..4eccf644b5 100644 --- a/docs/ingress-metrics.md +++ b/docs/ingress-metrics.md @@ -7,5 +7,4 @@ | kube_ingress_created | Gauge | `ingress`=<ingress-name>
`namespace`=<ingress-namespace> | STABLE | | kube_ingress_metadata_resource_version | Gauge | `ingress`=<ingress-name>
`namespace`=<ingress-namespace>
`resource_version`=<ingress-resource-version> | STABLE | | kube_ingress_path | Gauge | `ingress`=<ingress-name>
`namespace`=<ingress-namespace>
`host`=<ingress-host>
`path`=<ingress-path>
`service_name`=<service name for the path>
`service_port`=<service port for hte path> | STABLE | -| kube_ingress_annotations | Gauge | `annotation_INGRESS_ANNOTATION`=<INGRESS_ANNOTATION>
`ingress`=<ingress-name>
`namespace`=<ingress-namespace> | EXPERIMENTAL | | kube_ingress_tls | Gauge | `ingress`=<ingress-name>
`namespace`=<ingress-namespace>
`tls_host`=<tls hostname>
`secret`=<tls secret name>| STABLE | diff --git a/docs/job-metrics.md b/docs/job-metrics.md index b15c31dc39..3386a81033 100644 --- a/docs/job-metrics.md +++ b/docs/job-metrics.md @@ -16,4 +16,3 @@ | kube_job_complete | Gauge | `job_name`=<job-name>
`namespace`=<job-namespace> | STABLE | | kube_job_failed | Gauge | `job_name`=<job-name>
`namespace`=<job-namespace> | STABLE | | kube_job_created | Gauge | `job_name`=<job-name>
`namespace`=<job-namespace> | STABLE | -| kube_job_annotations | Gauge | `annotation_JOB_ANNOTATION`=<JOB_ANNOTATION>
`job_name`=<job-name>
`namespace`=<job-namespace> | EXPERIMENTAL | diff --git a/docs/limitrange-metrics.md b/docs/limitrange-metrics.md index 13ddb32822..78ba1a844f 100644 --- a/docs/limitrange-metrics.md +++ b/docs/limitrange-metrics.md @@ -4,4 +4,3 @@ | ---------- | ----------- | ----------- | ----------- | | kube_limitrange | Gauge | `limitrange`=<limitrange-name>
`namespace`=<namespace>
`resource`=<ResourceName>
`type`=<Pod\|Container\|PersistentVolumeClaim>
`constraint`=<constraint>| STABLE | | kube_limitrange_created | Gauge | `limitrange`=<limitrange-name>
`namespace`=<namespace> | STABLE | -| kube_limitrange_annotations | Gauge | `annotation_LIMITRANGE_ANNOTATION`=<LIMITRANGE_ANNOTATION>
`limitrange`=<limitrange-name>
`namespace`=<limitrange-namespace> | EXPERIMENTAL | diff --git a/docs/namespace-metrics.md b/docs/namespace-metrics.md index 2094b15ab5..90da7c5e50 100644 --- a/docs/namespace-metrics.md +++ b/docs/namespace-metrics.md @@ -4,5 +4,4 @@ | ---------- | ----------- | ----------- | ----------- | | kube_namespace_status_phase| Gauge | `namespace`=<namespace-name>
`status`=<Active\|Terminating> | STABLE | | kube_namespace_labels | Gauge | `namespace`=<namespace-name>
`label_NS_LABEL`=<NS_LABEL> | STABLE | -| kube_namespace_annotations | Gauge | `namespace`=<namespace-name>
`annotation_NS_ANNOTATION`=<NS_ANNOTATION> | STABLE | | kube_namespace_created | Gauge | `namespace`=<namespace-name> | STABLE | diff --git a/docs/node-metrics.md b/docs/node-metrics.md index 30310594e8..7b1d448c50 100644 --- a/docs/node-metrics.md +++ b/docs/node-metrics.md @@ -17,4 +17,3 @@ | kube_node_status_allocatable_pods | Gauge | `node`=<node-address>| DEPRECATED | | kube_node_status_condition | Gauge | `node`=<node-address>
`condition`=<node-condition>
`status`=<true\|false\|unknown> | STABLE | | kube_node_created | Gauge | `node`=<node-address>| STABLE | -| kube_node_annotations | Gauge | `annotation_NODE_ANNOTATION`=<NODE_ANNOTATION>
`node`=<endpoint-name> | EXPERIMENTAL | diff --git a/docs/persistentvolume-metrics.md b/docs/persistentvolume-metrics.md index c2d5cee70e..28a9e7aea1 100644 --- a/docs/persistentvolume-metrics.md +++ b/docs/persistentvolume-metrics.md @@ -6,5 +6,4 @@ | kube_persistentvolume_status_phase | Gauge | `persistentvolume`=<pv-name>
`phase`=<Bound\|Failed\|Pending\|Available\|Released>| STABLE | | kube_persistentvolume_labels | Gauge | `persistentvolume`=<persistentvolume-name>
`label_PERSISTENTVOLUME_LABEL`=<PERSISTENTVOLUME_LABEL> | STABLE | | kube_persistentvolume_info | Gauge | `persistentvolume`=<pv-name>
`storageclass`=<storageclass-name> | STABLE | -| kube_persistentvolume_annotations | Gauge | `annotation_PERSISTENTVOLUME_ANNOTATION`=<PERSISTENTVOLUME_ANNOTATION>
`persistentvolume`=<persistentvolume-name> | EXPERIMENTAL | diff --git a/docs/persistentvolumeclaim-metrics.md b/docs/persistentvolumeclaim-metrics.md index 1eeaaa76ed..15128aae63 100644 --- a/docs/persistentvolumeclaim-metrics.md +++ b/docs/persistentvolumeclaim-metrics.md @@ -7,7 +7,6 @@ | kube_persistentvolumeclaim_labels | Gauge | `persistentvolumeclaim`=<persistentvolumeclaim-name>
`namespace`=<persistentvolumeclaim-namespace>
`label_PERSISTENTVOLUMECLAIM_LABEL`=<PERSISTENTVOLUMECLAIM_LABEL> | STABLE | | kube_persistentvolumeclaim_status_phase | Gauge | `namespace`=<persistentvolumeclaim-namespace>
`persistentvolumeclaim`=<persistentvolumeclaim-name>
`phase`=<Pending\|Bound\|Lost> | STABLE | | kube_persistentvolumeclaim_resource_requests_storage_bytes | Gauge | `namespace`=<persistentvolumeclaim-namespace>
`persistentvolumeclaim`=<persistentvolumeclaim-name> | STABLE | -| kube_persistentvolumeclaim_annotations | Gauge | `annotation_PERSISTENTVOLUMECLAIM_ANNOTATION`=<PERSISTENTVOLUMECLAIM_ANNOTATION>
`persistentvolumeclaim`=<persistentvolumeclaim-name>
`namespace`=<persistentvolumeclaim-namespace> | EXPERIMENTAL | Note: diff --git a/docs/poddisruptionbudget-metrics.md b/docs/poddisruptionbudget-metrics.md index a220478586..ae5668f968 100644 --- a/docs/poddisruptionbudget-metrics.md +++ b/docs/poddisruptionbudget-metrics.md @@ -8,4 +8,3 @@ | kube_poddisruptionbudget_status_pod_disruptions_allowed | Gauge | `poddisruptionbudget`=<pdb-name>
`namespace`=<pdb-namespace> | STABLE | kube_poddisruptionbudget_status_expected_pods | Gauge | `poddisruptionbudget`=<pdb-name>
`namespace`=<pdb-namespace> | STABLE | kube_poddisruptionbudget_status_observed_generation | Gauge | `poddisruptionbudget`=<pdb-name>
`namespace`=<pdb-namespace> | STABLE -| kube_poddisruptionbudget_annotations | Gauge | `annotation_PODDISRUPTIONBUDGET_ANNOTATION`=<PODDISRUPTIONBUDGET_ANNOTATION>
`poddisruptionbudget`=<poddisruptionbudget-name>
`namespace`=<poddisruptionbudget-namespace> | EXPERIMENTAL | diff --git a/docs/replicaset-metrics.md b/docs/replicaset-metrics.md index 7e9c98428b..611eac87bd 100644 --- a/docs/replicaset-metrics.md +++ b/docs/replicaset-metrics.md @@ -11,4 +11,3 @@ | kube_replicaset_labels | Gauge | `replicaset`=<replicaset-name>
`namespace`=<replicaset-namespace> | STABLE | | kube_replicaset_created | Gauge | `replicaset`=<replicaset-name>
`namespace`=<replicaset-namespace> | STABLE | | kube_replicaset_owner | Gauge | `replicaset`=<replicaset-name>
`namespace`=<replicaset-namespace>
`owner_kind`=<owner kind>
`owner_name`=<owner name>
`owner_is_controller`=<whether owner is controller> | STABLE | -| kube_replicaset_annotations | Gauge | `annotation_REPLICASET_ANNOTATION`=<REPLICASET_ANNOTATION>
`replicaset`=<replicaset-name>
`namespace`=<replicaset-namespace> | EXPERIMENTAL | diff --git a/docs/replicationcontroller-metrics.md b/docs/replicationcontroller-metrics.md index 1e4b5abb26..2000245c4d 100644 --- a/docs/replicationcontroller-metrics.md +++ b/docs/replicationcontroller-metrics.md @@ -10,4 +10,3 @@ | kube_replicationcontroller_spec_replicas | Gauge | `replicationcontroller`=<replicationcontroller-name>
`namespace`=<replicationcontroller-namespace> | STABLE | | kube_replicationcontroller_metadata_generation | Gauge | `replicationcontroller`=<replicationcontroller-name>
`namespace`=<replicationcontroller-namespace> | STABLE | | kube_replicationcontroller_created | Gauge | `replicationcontroller`=<replicationcontroller-name>
`namespace`=<replicationcontroller-namespace> | STABLE | -| kube_replicationcontroller_annotations | Gauge | `annotation_REPLICATIONCONTROLLER_ANNOTATION`=<REPLICATIONCONTROLLER_ANNOTATION>
`replicationcontroller`=<replicationcontroller-name>
`namespace`=<replicationcontroller-namespace> | EXPERIMENTAL | diff --git a/docs/resourcequota-metrics.md b/docs/resourcequota-metrics.md index 9b30c86824..e98eb4158a 100644 --- a/docs/resourcequota-metrics.md +++ b/docs/resourcequota-metrics.md @@ -4,4 +4,3 @@ | ---------- | ----------- | ----------- | ----------- | | kube_resourcequota | Gauge | `resourcequota`=<quota-name>
`namespace`=<namespace>
`resource`=<ResourceName>
`type`=<quota-type> | STABLE | | kube_resourcequota_created | Gauge | `resourcequota`=<quota-name>
`namespace`=<namespace> | STABLE | -| kube_resourcequota_annotations | Gauge | `annotation_RESOURCEQUOTA_ANNOTATION`=<RESOURCEQUOTA_ANNOTATION>
`resourcequota`=<resourcequota-name>
`namespace`=<resourcequota-namespace> | EXPERIMENTAL | diff --git a/docs/secret-metrics.md b/docs/secret-metrics.md index ed5d4cbd65..83c4a0677f 100644 --- a/docs/secret-metrics.md +++ b/docs/secret-metrics.md @@ -7,4 +7,3 @@ | kube_secret_labels | Gauge | `secret`=<secret-name>
`namespace`=<secret-namespace>
`label_SECRET_LABEL`=<SECRET_LABEL> | STABLE | | kube_secret_created | Gauge | `secret`=<secret-name>
`namespace`=<secret-namespace> | STABLE | | kube_secret_metadata_resource_version | Gauge | `secret`=<secret-name>
`namespace`=<secret-namespace>
`resource_version`=<secret-resource-version> | STABLE | -| kube_secret_annotations | Gauge | `annotation_SECRET_ANNOTATION`=<SECRET_ANNOTATION>
`secret`=<secret-name>
`namespace`=<secret-namespace> | EXPERIMENTAL | diff --git a/docs/service-metrics.md b/docs/service-metrics.md index 23df192cf7..822144113f 100644 --- a/docs/service-metrics.md +++ b/docs/service-metrics.md @@ -8,4 +8,3 @@ | kube_service_spec_type | Gauge | `service`=<service-name>
`namespace`=<service-namespace>
`type`=<ClusterIP\|NodePort\|LoadBalancer\|ExternalName> | STABLE | | kube_service_spec_external_ip | Gauge | `service`=<service-name>
`namespace`=<service-namespace>
`external_ip`=<external-ip> | STABLE | | kube_service_status_load_balancer_ingress | Gauge | `service`=<service-name>
`namespace`=<service-namespace>
`ip`=<load-balancer-ingress-ip>
`hostname`=<load-balancer-ingress-hostname> | STABLE | -| kube_service_annotations | Gauge | `annotation_SERVICE_ANNOTATION`=<SERVICE_ANNOTATION>
`service`=<service-name>
`namespace`=<service-namespace> | EXPERIMENTAL | diff --git a/docs/statefulset-metrics.md b/docs/statefulset-metrics.md index 54e9d82f5c..175bafe729 100644 --- a/docs/statefulset-metrics.md +++ b/docs/statefulset-metrics.md @@ -13,4 +13,3 @@ | kube_statefulset_labels | Gauge | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`label_STATEFULSET_LABEL`=<STATEFULSET_LABEL> | STABLE | | kube_statefulset_status_current_revision | Gauge | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`revision`=<statefulset-current-revision> | STABLE | | kube_statefulset_status_update_revision | Gauge | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`revision`=<statefulset-update-revision> | STABLE | -| kube_statefulset_annotations | Gauge | `annotation_STATEFULSET_ANNOTATION`=<STATEFULSET_ANNOTATION>
`statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | EXPERIMENTAL | diff --git a/internal/store/certificatesigningrequest.go b/internal/store/certificatesigningrequest.go index 187e282f16..7c5ab5ee61 100644 --- a/internal/store/certificatesigningrequest.go +++ b/internal/store/certificatesigningrequest.go @@ -95,23 +95,6 @@ var ( } }), }, - { - Name: "kube_certificatesigningrequest_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapCSRFunc(func(j *certv1beta1.CertificateSigningRequest) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(j.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/certificatesigningrequest_test.go b/internal/store/certificatesigningrequest_test.go index 604cd6574f..e932a82817 100644 --- a/internal/store/certificatesigningrequest_test.go +++ b/internal/store/certificatesigningrequest_test.go @@ -36,8 +36,6 @@ func TestCsrStore(t *testing.T) { # TYPE kube_certificatesigningrequest_condition gauge # HELP kube_certificatesigningrequest_cert_length Length of the issued cert # TYPE kube_certificatesigningrequest_cert_length gauge - # HELP kube_certificatesigningrequest_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_certificatesigningrequest_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -48,9 +46,6 @@ func TestCsrStore(t *testing.T) { Labels: map[string]string{ "cert": "test", }, - Annotations: map[string]string{ - "cert": "test", - }, CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, }, Status: certv1beta1.CertificateSigningRequestStatus{}, @@ -62,9 +57,8 @@ func TestCsrStore(t *testing.T) { kube_certificatesigningrequest_condition{certificatesigningrequest="certificate-test",condition="denied"} 0 kube_certificatesigningrequest_labels{certificatesigningrequest="certificate-test",label_cert="test"} 1 kube_certificatesigningrequest_cert_length{certificatesigningrequest="certificate-test"} 0 - kube_certificatesigningrequest_annotations{certificatesigningrequest="certificate-test",annotation_cert="test"} 1 `, - MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length", "kube_certificatesigningrequest_annotations"}, + MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length"}, }, { Obj: &certv1beta1.CertificateSigningRequest{ @@ -74,9 +68,6 @@ func TestCsrStore(t *testing.T) { Labels: map[string]string{ "cert": "test", }, - Annotations: map[string]string{ - "cert": "test", - }, CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, }, Status: certv1beta1.CertificateSigningRequestStatus{ @@ -94,9 +85,8 @@ func TestCsrStore(t *testing.T) { kube_certificatesigningrequest_condition{certificatesigningrequest="certificate-test",condition="denied"} 1 kube_certificatesigningrequest_labels{certificatesigningrequest="certificate-test",label_cert="test"} 1 kube_certificatesigningrequest_cert_length{certificatesigningrequest="certificate-test"} 0 - kube_certificatesigningrequest_annotations{certificatesigningrequest="certificate-test",annotation_cert="test"} 1 `, - MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length", "kube_certificatesigningrequest_annotations"}, + MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length"}, }, { Obj: &certv1beta1.CertificateSigningRequest{ @@ -106,9 +96,6 @@ func TestCsrStore(t *testing.T) { Labels: map[string]string{ "cert": "test", }, - Annotations: map[string]string{ - "cert": "test", - }, CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, }, Status: certv1beta1.CertificateSigningRequestStatus{ @@ -126,9 +113,8 @@ func TestCsrStore(t *testing.T) { kube_certificatesigningrequest_condition{certificatesigningrequest="certificate-test",condition="denied"} 0 kube_certificatesigningrequest_labels{certificatesigningrequest="certificate-test",label_cert="test"} 1 kube_certificatesigningrequest_cert_length{certificatesigningrequest="certificate-test"} 0 - kube_certificatesigningrequest_annotations{certificatesigningrequest="certificate-test",annotation_cert="test"} 1 `, - MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length", "kube_certificatesigningrequest_annotations"}, + MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length"}, }, { Obj: &certv1beta1.CertificateSigningRequest{ @@ -138,9 +124,6 @@ func TestCsrStore(t *testing.T) { Labels: map[string]string{ "cert": "test", }, - Annotations: map[string]string{ - "cert": "test", - }, CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, }, Status: certv1beta1.CertificateSigningRequestStatus{ @@ -158,9 +141,8 @@ func TestCsrStore(t *testing.T) { kube_certificatesigningrequest_condition{certificatesigningrequest="certificate-test",condition="denied"} 0 kube_certificatesigningrequest_labels{certificatesigningrequest="certificate-test",label_cert="test"} 1 kube_certificatesigningrequest_cert_length{certificatesigningrequest="certificate-test"} 13 - kube_certificatesigningrequest_annotations{certificatesigningrequest="certificate-test",annotation_cert="test"} 1 `, - MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length", "kube_certificatesigningrequest_annotations"}, + MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length"}, }, { Obj: &certv1beta1.CertificateSigningRequest{ @@ -170,9 +152,6 @@ func TestCsrStore(t *testing.T) { Labels: map[string]string{ "cert": "test", }, - Annotations: map[string]string{ - "cert": "test", - }, CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, }, Status: certv1beta1.CertificateSigningRequestStatus{ @@ -192,9 +171,8 @@ func TestCsrStore(t *testing.T) { kube_certificatesigningrequest_condition{certificatesigningrequest="certificate-test",condition="denied"} 1 kube_certificatesigningrequest_labels{certificatesigningrequest="certificate-test",label_cert="test"} 1 kube_certificatesigningrequest_cert_length{certificatesigningrequest="certificate-test"} 0 - kube_certificatesigningrequest_annotations{certificatesigningrequest="certificate-test",annotation_cert="test"} 1 `, - MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length", "kube_certificatesigningrequest_annotations"}, + MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length"}, }, { Obj: &certv1beta1.CertificateSigningRequest{ @@ -204,9 +182,6 @@ func TestCsrStore(t *testing.T) { Labels: map[string]string{ "cert": "test", }, - Annotations: map[string]string{ - "cert": "test", - }, CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, }, Status: certv1beta1.CertificateSigningRequestStatus{ @@ -232,9 +207,8 @@ func TestCsrStore(t *testing.T) { kube_certificatesigningrequest_condition{certificatesigningrequest="certificate-test",condition="denied"} 2 kube_certificatesigningrequest_labels{certificatesigningrequest="certificate-test",label_cert="test"} 1 kube_certificatesigningrequest_cert_length{certificatesigningrequest="certificate-test"} 0 - kube_certificatesigningrequest_annotations{certificatesigningrequest="certificate-test",annotation_cert="test"} 1 `, - MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length", "kube_certificatesigningrequest_annotations"}, + MetricNames: []string{"kube_certificatesigningrequest_created", "kube_certificatesigningrequest_condition", "kube_certificatesigningrequest_labels", "kube_certificatesigningrequest_cert_length"}, }, } for i, c := range cases { diff --git a/internal/store/configmap.go b/internal/store/configmap.go index b2a088c821..164d786be6 100644 --- a/internal/store/configmap.go +++ b/internal/store/configmap.go @@ -81,23 +81,6 @@ var ( } }), }, - { - Name: "kube_configmap_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapConfigMapFunc(func(c *v1.ConfigMap) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(c.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/configmap_test.go b/internal/store/configmap_test.go index d2526b0f8c..b31e1375fd 100644 --- a/internal/store/configmap_test.go +++ b/internal/store/configmap_test.go @@ -35,23 +35,17 @@ func TestConfigMapStore(t *testing.T) { Name: "configmap1", Namespace: "ns1", ResourceVersion: "123456", - Annotations: map[string]string{ - "configmap": "test", - }, }, }, Want: ` - # HELP kube_configmap_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_configmap_info Information about configmap. # HELP kube_configmap_metadata_resource_version Resource version representing a specific version of the configmap. - # TYPE kube_configmap_annotations gauge # TYPE kube_configmap_info gauge # TYPE kube_configmap_metadata_resource_version gauge kube_configmap_info{configmap="configmap1",namespace="ns1"} 1 kube_configmap_metadata_resource_version{configmap="configmap1",namespace="ns1",resource_version="123456"} 1 - kube_configmap_annotations{configmap="configmap1",namespace="ns1",annotation_configmap="test"} 1 `, - MetricNames: []string{"kube_configmap_info", "kube_configmap_metadata_resource_version", "kube_configmap_annotations"}, + MetricNames: []string{"kube_configmap_info", "kube_configmap_metadata_resource_version"}, }, { Obj: &v1.ConfigMap{ @@ -60,26 +54,20 @@ func TestConfigMapStore(t *testing.T) { Namespace: "ns2", CreationTimestamp: metav1StartTime, ResourceVersion: "abcdef", - Annotations: map[string]string{ - "configmap": "test2", - }, }, }, Want: ` - # HELP kube_configmap_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_configmap_created Unix creation timestamp # HELP kube_configmap_info Information about configmap. # HELP kube_configmap_metadata_resource_version Resource version representing a specific version of the configmap. - # TYPE kube_configmap_annotations gauge # TYPE kube_configmap_created gauge # TYPE kube_configmap_info gauge # TYPE kube_configmap_metadata_resource_version gauge kube_configmap_info{configmap="configmap2",namespace="ns2"} 1 kube_configmap_created{configmap="configmap2",namespace="ns2"} 1.501569018e+09 kube_configmap_metadata_resource_version{configmap="configmap2",namespace="ns2",resource_version="abcdef"} 1 - kube_configmap_annotations{configmap="configmap2",namespace="ns2",annotation_configmap="test2"} 1 `, - MetricNames: []string{"kube_configmap_info", "kube_configmap_created", "kube_configmap_metadata_resource_version", "kube_configmap_annotations"}, + MetricNames: []string{"kube_configmap_info", "kube_configmap_created", "kube_configmap_metadata_resource_version"}, }, } for i, c := range cases { diff --git a/internal/store/cronjob.go b/internal/store/cronjob.go index e3c985024a..f87b11d5d5 100644 --- a/internal/store/cronjob.go +++ b/internal/store/cronjob.go @@ -190,23 +190,6 @@ var ( } }), }, - { - Name: "kube_cronjob_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapCronJobFunc(func(j *batchv1beta1.CronJob) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(j.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/cronjob_test.go b/internal/store/cronjob_test.go index 3c1b8ece4a..f0dd8907b6 100644 --- a/internal/store/cronjob_test.go +++ b/internal/store/cronjob_test.go @@ -108,9 +108,6 @@ func TestCronJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-active-running-1", }, - Annotations: map[string]string{ - "app": "example-active-running-1", - }, }, Status: batchv1beta1.CronJobStatus{ Active: []v1.ObjectReference{{Name: "FakeJob1"}, {Name: "FakeJob2"}}, @@ -124,7 +121,6 @@ func TestCronJobStore(t *testing.T) { }, }, Want: ` - # HELP kube_cronjob_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_cronjob_created Unix creation timestamp # HELP kube_cronjob_info Info about cronjob. # HELP kube_cronjob_labels Kubernetes labels converted to Prometheus labels. @@ -133,7 +129,6 @@ func TestCronJobStore(t *testing.T) { # HELP kube_cronjob_spec_suspend Suspend flag tells the controller to suspend subsequent executions. # HELP kube_cronjob_status_active Active holds pointers to currently running jobs. # HELP kube_cronjob_status_last_schedule_time LastScheduleTime keeps information of when was the last time the job was successfully scheduled. - # TYPE kube_cronjob_annotations gauge # TYPE kube_cronjob_created gauge # TYPE kube_cronjob_info gauge # TYPE kube_cronjob_labels gauge @@ -148,10 +143,9 @@ func TestCronJobStore(t *testing.T) { kube_cronjob_spec_suspend{cronjob="ActiveRunningCronJob1",namespace="ns1"} 0 kube_cronjob_status_active{cronjob="ActiveRunningCronJob1",namespace="ns1"} 2 kube_cronjob_status_last_schedule_time{cronjob="ActiveRunningCronJob1",namespace="ns1"} 1.520742896e+09 - kube_cronjob_annotations{cronjob="ActiveRunningCronJob1",namespace="ns1",annotation_app="example-active-running-1"} 1 ` + fmt.Sprintf("kube_cronjob_next_schedule_time{cronjob=\"ActiveRunningCronJob1\",namespace=\"ns1\"} %ve+09\n", float64(ActiveRunningCronJob1NextScheduleTime.Unix())/math.Pow10(9)), - MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time", "kube_cronjob_annotations"}, + MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time"}, }, { Obj: &batchv1beta1.CronJob{ @@ -162,9 +156,6 @@ func TestCronJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-suspended-1", }, - Annotations: map[string]string{ - "app": "example-suspended-1", - }, }, Status: batchv1beta1.CronJobStatus{ Active: []v1.ObjectReference{}, @@ -178,7 +169,6 @@ func TestCronJobStore(t *testing.T) { }, }, Want: ` - # HELP kube_cronjob_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_cronjob_created Unix creation timestamp # HELP kube_cronjob_info Info about cronjob. # HELP kube_cronjob_labels Kubernetes labels converted to Prometheus labels. @@ -186,7 +176,6 @@ func TestCronJobStore(t *testing.T) { # HELP kube_cronjob_spec_suspend Suspend flag tells the controller to suspend subsequent executions. # HELP kube_cronjob_status_active Active holds pointers to currently running jobs. # HELP kube_cronjob_status_last_schedule_time LastScheduleTime keeps information of when was the last time the job was successfully scheduled. - # TYPE kube_cronjob_annotations gauge # TYPE kube_cronjob_created gauge # TYPE kube_cronjob_info gauge # TYPE kube_cronjob_labels gauge @@ -200,9 +189,8 @@ func TestCronJobStore(t *testing.T) { kube_cronjob_spec_suspend{cronjob="SuspendedCronJob1",namespace="ns1"} 1 kube_cronjob_status_active{cronjob="SuspendedCronJob1",namespace="ns1"} 0 kube_cronjob_status_last_schedule_time{cronjob="SuspendedCronJob1",namespace="ns1"} 1.520762696e+09 - kube_cronjob_annotations{cronjob="SuspendedCronJob1",namespace="ns1",annotation_app="example-suspended-1"} 1 `, - MetricNames: []string{"kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time", "kube_cronjob_annotations"}, + MetricNames: []string{"kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_status_last_schedule_time"}, }, { Obj: &batchv1beta1.CronJob{ @@ -214,9 +202,6 @@ func TestCronJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-active-no-last-scheduled-1", }, - Annotations: map[string]string{ - "app": "example-active-no-last-scheduled-1", - }, }, Status: batchv1beta1.CronJobStatus{ Active: []v1.ObjectReference{}, @@ -230,7 +215,6 @@ func TestCronJobStore(t *testing.T) { }, }, Want: ` - # HELP kube_cronjob_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_cronjob_created Unix creation timestamp # HELP kube_cronjob_info Info about cronjob. # HELP kube_cronjob_labels Kubernetes labels converted to Prometheus labels. @@ -238,7 +222,6 @@ func TestCronJobStore(t *testing.T) { # HELP kube_cronjob_spec_starting_deadline_seconds Deadline in seconds for starting the job if it misses scheduled time for any reason. # HELP kube_cronjob_spec_suspend Suspend flag tells the controller to suspend subsequent executions. # HELP kube_cronjob_status_active Active holds pointers to currently running jobs. - # TYPE kube_cronjob_annotations gauge # TYPE kube_cronjob_created gauge # TYPE kube_cronjob_info gauge # TYPE kube_cronjob_labels gauge @@ -252,11 +235,10 @@ func TestCronJobStore(t *testing.T) { kube_cronjob_info{concurrency_policy="Forbid",cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1",schedule="25 * * * *"} 1 kube_cronjob_created{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1"} 1.520766296e+09 kube_cronjob_labels{cronjob="ActiveCronJob1NoLastScheduled",label_app="example-active-no-last-scheduled-1",namespace="ns1"} 1 - kube_cronjob_annotations{cronjob="ActiveCronJob1NoLastScheduled",namespace="ns1",annotation_app="example-active-no-last-scheduled-1"} 1 ` + fmt.Sprintf("kube_cronjob_next_schedule_time{cronjob=\"ActiveCronJob1NoLastScheduled\",namespace=\"ns1\"} %ve+09\n", float64(ActiveCronJob1NoLastScheduledNextScheduleTime.Unix())/math.Pow10(9)), - MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels", "kube_cronjob_annotations"}, + MetricNames: []string{"kube_cronjob_next_schedule_time", "kube_cronjob_spec_starting_deadline_seconds", "kube_cronjob_status_active", "kube_cronjob_spec_suspend", "kube_cronjob_info", "kube_cronjob_created", "kube_cronjob_labels"}, }, } for i, c := range cases { diff --git a/internal/store/daemonset.go b/internal/store/daemonset.go index 42abe7e658..f5315b4da8 100644 --- a/internal/store/daemonset.go +++ b/internal/store/daemonset.go @@ -195,23 +195,6 @@ var ( } }), }, - { - Name: "kube_daemonset_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapDaemonSetFunc(func(d *v1.DaemonSet) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(d.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/daemonset_test.go b/internal/store/daemonset_test.go index 8f92d7bcbd..e76c02872a 100644 --- a/internal/store/daemonset_test.go +++ b/internal/store/daemonset_test.go @@ -35,9 +35,6 @@ func TestDaemonSetStore(t *testing.T) { Labels: map[string]string{ "app": "example1", }, - Annotations: map[string]string{ - "app": "example1", - }, Generation: 21, }, Status: v1.DaemonSetStatus{ @@ -48,7 +45,6 @@ func TestDaemonSetStore(t *testing.T) { }, }, Want: ` - # HELP kube_daemonset_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_daemonset_labels Kubernetes labels converted to Prometheus labels. # HELP kube_daemonset_metadata_generation Sequence number representing a specific generation of the desired state. # HELP kube_daemonset_status_current_number_scheduled The number of nodes running at least one daemon pod and are supposed to. @@ -58,7 +54,6 @@ func TestDaemonSetStore(t *testing.T) { # HELP kube_daemonset_status_number_ready The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. # HELP kube_daemonset_status_number_unavailable The number of nodes that should be running the daemon pod and have none of the daemon pod running and available # HELP kube_daemonset_updated_number_scheduled The total number of nodes that are running updated daemon pod - # TYPE kube_daemonset_annotations gauge # TYPE kube_daemonset_labels gauge # TYPE kube_daemonset_metadata_generation gauge # TYPE kube_daemonset_status_current_number_scheduled gauge @@ -77,7 +72,6 @@ func TestDaemonSetStore(t *testing.T) { kube_daemonset_status_number_unavailable{daemonset="ds1",namespace="ns1"} 0 kube_daemonset_updated_number_scheduled{daemonset="ds1",namespace="ns1"} 0 kube_daemonset_labels{daemonset="ds1",label_app="example1",namespace="ns1"} 1 - kube_daemonset_annotations{daemonset="ds1",namespace="ns1",annotation_app="example1"} 1 `, MetricNames: []string{ "kube_daemonset_labels", @@ -89,7 +83,6 @@ func TestDaemonSetStore(t *testing.T) { "kube_daemonset_status_number_ready", "kube_daemonset_status_number_unavailable", "kube_daemonset_updated_number_scheduled", - "kube_daemonset_annotations", }, }, { @@ -101,9 +94,6 @@ func TestDaemonSetStore(t *testing.T) { Labels: map[string]string{ "app": "example2", }, - Annotations: map[string]string{ - "app": "example2", - }, Generation: 14, }, Status: v1.DaemonSetStatus{ @@ -134,8 +124,6 @@ func TestDaemonSetStore(t *testing.T) { # TYPE kube_daemonset_metadata_generation gauge # HELP kube_daemonset_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_daemonset_labels gauge - # HELP kube_daemonset_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_daemonset_annotations gauge kube_daemonset_metadata_generation{daemonset="ds2",namespace="ns2"} 14 kube_daemonset_status_current_number_scheduled{daemonset="ds2",namespace="ns2"} 10 kube_daemonset_status_desired_number_scheduled{daemonset="ds2",namespace="ns2"} 0 @@ -145,7 +133,6 @@ func TestDaemonSetStore(t *testing.T) { kube_daemonset_status_number_unavailable{daemonset="ds2",namespace="ns2"} 0 kube_daemonset_updated_number_scheduled{daemonset="ds2",namespace="ns2"} 0 kube_daemonset_labels{daemonset="ds2",label_app="example2",namespace="ns2"} 1 - kube_daemonset_annotations{daemonset="ds2",namespace="ns2",annotation_app="example2"} 1 kube_daemonset_created{namespace="ns2",daemonset="ds2"} 1.5e+09 `, MetricNames: []string{ @@ -159,7 +146,6 @@ func TestDaemonSetStore(t *testing.T) { "kube_daemonset_status_number_ready", "kube_daemonset_status_number_unavailable", "kube_daemonset_updated_number_scheduled", - "kube_daemonset_annotations", }, }, { @@ -171,9 +157,6 @@ func TestDaemonSetStore(t *testing.T) { Labels: map[string]string{ "app": "example3", }, - Annotations: map[string]string{ - "app": "example3", - }, Generation: 15, }, Status: v1.DaemonSetStatus{ @@ -207,8 +190,6 @@ func TestDaemonSetStore(t *testing.T) { # TYPE kube_daemonset_metadata_generation gauge # HELP kube_daemonset_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_daemonset_labels gauge - # HELP kube_daemonset_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_daemonset_annotations gauge kube_daemonset_created{daemonset="ds3",namespace="ns3"} 1.5e+09 kube_daemonset_metadata_generation{daemonset="ds3",namespace="ns3"} 15 kube_daemonset_status_current_number_scheduled{daemonset="ds3",namespace="ns3"} 10 @@ -219,7 +200,6 @@ func TestDaemonSetStore(t *testing.T) { kube_daemonset_status_number_unavailable{daemonset="ds3",namespace="ns3"} 5 kube_daemonset_updated_number_scheduled{daemonset="ds3",namespace="ns3"} 5 kube_daemonset_labels{daemonset="ds3",label_app="example3",namespace="ns3"} 1 - kube_daemonset_annotations{daemonset="ds3",namespace="ns3",annotation_app="example3"} 1 `, MetricNames: []string{ "kube_daemonset_created", @@ -232,7 +212,6 @@ func TestDaemonSetStore(t *testing.T) { "kube_daemonset_status_number_ready", "kube_daemonset_status_number_unavailable", "kube_daemonset_updated_number_scheduled", - "kube_daemonset_annotations", }, }, } diff --git a/internal/store/deployment.go b/internal/store/deployment.go index b9ba11e204..5f04eae368 100644 --- a/internal/store/deployment.go +++ b/internal/store/deployment.go @@ -227,23 +227,6 @@ var ( } }), }, - { - Name: "kube_deployment_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapDeploymentFunc(func(d *v1.Deployment) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(d.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/deployment_test.go b/internal/store/deployment_test.go index 0458ef30f2..7ec5d20084 100644 --- a/internal/store/deployment_test.go +++ b/internal/store/deployment_test.go @@ -65,8 +65,6 @@ func TestDeploymentStore(t *testing.T) { # TYPE kube_deployment_spec_strategy_rollingupdate_max_surge gauge # HELP kube_deployment_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_deployment_labels gauge - # HELP kube_deployment_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_deployment_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -78,9 +76,6 @@ func TestDeploymentStore(t *testing.T) { Labels: map[string]string{ "app": "example1", }, - Annotations: map[string]string{ - "app": "example1", - }, Generation: 21, }, Status: v1.DeploymentStatus{ @@ -113,7 +108,6 @@ func TestDeploymentStore(t *testing.T) { kube_deployment_status_replicas_unavailable{deployment="depl1",namespace="ns1"} 5 kube_deployment_status_replicas_updated{deployment="depl1",namespace="ns1"} 2 kube_deployment_status_replicas{deployment="depl1",namespace="ns1"} 15 - kube_deployment_annotations{annotation_app="example1",deployment="depl1",namespace="ns1"} 1 `, }, { @@ -124,9 +118,6 @@ func TestDeploymentStore(t *testing.T) { Labels: map[string]string{ "app": "example2", }, - Annotations: map[string]string{ - "app": "example2", - }, Generation: 14, }, Status: v1.DeploymentStatus{ @@ -159,7 +150,6 @@ func TestDeploymentStore(t *testing.T) { kube_deployment_status_replicas_unavailable{deployment="depl2",namespace="ns2"} 0 kube_deployment_status_replicas_updated{deployment="depl2",namespace="ns2"} 1 kube_deployment_status_replicas{deployment="depl2",namespace="ns2"} 10 - kube_deployment_annotations{annotation_app="example2",deployment="depl2",namespace="ns2"} 1 `, }, } diff --git a/internal/store/endpoint.go b/internal/store/endpoint.go index 66c308b2d1..ae823ac9c1 100644 --- a/internal/store/endpoint.go +++ b/internal/store/endpoint.go @@ -120,23 +120,6 @@ var ( } }), }, - { - Name: "kube_endpoint_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapEndpointFunc(func(e *v1.Endpoints) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(e.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/endpoint_test.go b/internal/store/endpoint_test.go index b0ef18c37c..5b1163ca9a 100644 --- a/internal/store/endpoint_test.go +++ b/internal/store/endpoint_test.go @@ -39,8 +39,6 @@ func TestEndpointStore(t *testing.T) { # TYPE kube_endpoint_info gauge # HELP kube_endpoint_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_endpoint_labels gauge - # HELP kube_endpoint_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_endpoint_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -52,9 +50,6 @@ func TestEndpointStore(t *testing.T) { Labels: map[string]string{ "app": "foobar", }, - Annotations: map[string]string{ - "app": "foobar", - }, }, Subsets: []v1.EndpointSubset{ {Addresses: []v1.EndpointAddress{ @@ -93,7 +88,6 @@ func TestEndpointStore(t *testing.T) { kube_endpoint_created{endpoint="test-endpoint",namespace="default"} 1.5e+09 kube_endpoint_info{endpoint="test-endpoint",namespace="default"} 1 kube_endpoint_labels{endpoint="test-endpoint",label_app="foobar",namespace="default"} 1 - kube_endpoint_annotations{endpoint="test-endpoint",namespace="default",annotation_app="foobar"} 1 `, }, } diff --git a/internal/store/hpa.go b/internal/store/hpa.go index c3cb938921..1a59d822b4 100644 --- a/internal/store/hpa.go +++ b/internal/store/hpa.go @@ -143,23 +143,6 @@ var ( } }), }, - { - Name: "kube_hpa_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapHPAFunc(func(a *autoscaling.HorizontalPodAutoscaler) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(a.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/hpa_test.go b/internal/store/hpa_test.go index 623462eff5..9ecb9d08cf 100644 --- a/internal/store/hpa_test.go +++ b/internal/store/hpa_test.go @@ -48,8 +48,6 @@ func TestHPAStore(t *testing.T) { # TYPE kube_hpa_status_condition gauge # HELP kube_hpa_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_hpa_labels gauge - # HELP kube_hpa_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_hpa_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -62,9 +60,6 @@ func TestHPAStore(t *testing.T) { Labels: map[string]string{ "app": "foobar", }, - Annotations: map[string]string{ - "app": "foobar", - }, }, Spec: autoscaling.HorizontalPodAutoscalerSpec{ MaxReplicas: 4, @@ -96,7 +91,6 @@ func TestHPAStore(t *testing.T) { kube_hpa_status_condition{condition="unknown",hpa="hpa1",namespace="ns1",status="AbleToScale"} 0 kube_hpa_status_current_replicas{hpa="hpa1",namespace="ns1"} 2 kube_hpa_status_desired_replicas{hpa="hpa1",namespace="ns1"} 2 - kube_hpa_annotations{hpa="hpa1",namespace="ns1",annotation_app="foobar"} 1 `, MetricNames: []string{ "kube_hpa_metadata_generation", @@ -106,7 +100,6 @@ func TestHPAStore(t *testing.T) { "kube_hpa_status_desired_replicas", "kube_hpa_status_condition", "kube_hpa_labels", - "kube_hpa_annotations", }, }, } diff --git a/internal/store/ingress.go b/internal/store/ingress.go index bec30f16af..b6c94270af 100644 --- a/internal/store/ingress.go +++ b/internal/store/ingress.go @@ -119,23 +119,6 @@ var ( } }), }, - { - Name: "kube_ingress_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapIngressFunc(func(i *v1beta1.Ingress) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(i.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, { Name: "kube_ingress_tls", Type: metric.Gauge, diff --git a/internal/store/ingress_test.go b/internal/store/ingress_test.go index 0ccb49ef94..3b1dcc1a45 100644 --- a/internal/store/ingress_test.go +++ b/internal/store/ingress_test.go @@ -32,14 +32,12 @@ func TestIngressStore(t *testing.T) { // Fixed metadata on type and help text. We prepend this to every expected // output so we only have to modify a single place when doing adjustments. const metadata = ` - # HELP kube_ingress_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_ingress_created Unix creation timestamp # HELP kube_ingress_info Information about ingress. # HELP kube_ingress_labels Kubernetes labels converted to Prometheus labels. # HELP kube_ingress_metadata_resource_version Resource version representing a specific version of ingress. # HELP kube_ingress_path Ingress host, paths and backend service information. # HELP kube_ingress_tls Ingress TLS host and secret information. - # TYPE kube_ingress_annotations gauge # TYPE kube_ingress_created gauge # TYPE kube_ingress_info gauge # TYPE kube_ingress_labels gauge @@ -54,18 +52,14 @@ func TestIngressStore(t *testing.T) { Name: "ingress1", Namespace: "ns1", ResourceVersion: "000000", - Annotations: map[string]string{ - "app": "ingress1", - }, }, }, Want: metadata + ` kube_ingress_info{namespace="ns1",ingress="ingress1"} 1 kube_ingress_metadata_resource_version{namespace="ns1",resource_version="000000",ingress="ingress1"} 1 kube_ingress_labels{namespace="ns1",ingress="ingress1"} 1 - kube_ingress_annotations{namespace="ns1",ingress="ingress1",annotation_app="ingress1"} 1 `, - MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_annotations", "kube_ingress_tls"}, + MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_tls"}, }, { Obj: &v1beta1.Ingress{ @@ -74,9 +68,6 @@ func TestIngressStore(t *testing.T) { Namespace: "ns2", CreationTimestamp: metav1StartTime, ResourceVersion: "123456", - Annotations: map[string]string{ - "app": "ingress2", - }, }, }, Want: metadata + ` @@ -84,9 +75,8 @@ func TestIngressStore(t *testing.T) { kube_ingress_created{namespace="ns2",ingress="ingress2"} 1.501569018e+09 kube_ingress_metadata_resource_version{namespace="ns2",resource_version="123456",ingress="ingress2"} 1 kube_ingress_labels{namespace="ns2",ingress="ingress2"} 1 - kube_ingress_annotations{namespace="ns2",ingress="ingress2",annotation_app="ingress2"} 1 `, - MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_annotations", "kube_ingress_tls"}, + MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_tls"}, }, { Obj: &v1beta1.Ingress{ @@ -96,9 +86,6 @@ func TestIngressStore(t *testing.T) { CreationTimestamp: metav1StartTime, Labels: map[string]string{"test-3": "test-3"}, ResourceVersion: "abcdef", - Annotations: map[string]string{ - "test-3": "test-3", - }, }, }, Want: metadata + ` @@ -106,9 +93,8 @@ func TestIngressStore(t *testing.T) { kube_ingress_created{namespace="ns3",ingress="ingress3"} 1.501569018e+09 kube_ingress_metadata_resource_version{namespace="ns3",resource_version="abcdef",ingress="ingress3"} 1 kube_ingress_labels{label_test_3="test-3",namespace="ns3",ingress="ingress3"} 1 - kube_ingress_annotations{namespace="ns3",ingress="ingress3",annotation_test_3="test-3"} 1 `, - MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_annotations", "kube_ingress_tls"}, + MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_tls"}, }, { Obj: &v1beta1.Ingress{ @@ -118,9 +104,6 @@ func TestIngressStore(t *testing.T) { CreationTimestamp: metav1StartTime, Labels: map[string]string{"test-4": "test-4"}, ResourceVersion: "abcdef", - Annotations: map[string]string{ - "test-4": "test-4", - }, }, Spec: v1beta1.IngressSpec{ Rules: []v1beta1.IngressRule{ @@ -152,9 +135,8 @@ func TestIngressStore(t *testing.T) { kube_ingress_metadata_resource_version{namespace="ns4",resource_version="abcdef",ingress="ingress4"} 1 kube_ingress_labels{label_test_4="test-4",namespace="ns4",ingress="ingress4"} 1 kube_ingress_path{namespace="ns4",ingress="ingress4",host="somehost",path="/somepath",service_name="someservice",service_port="1234"} 1 - kube_ingress_annotations{namespace="ns4",ingress="ingress4",annotation_test_4="test-4"} 1 `, - MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_annotations", "kube_ingress_tls"}, + MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_tls"}, }, { Obj: &v1beta1.Ingress{ @@ -164,9 +146,6 @@ func TestIngressStore(t *testing.T) { CreationTimestamp: metav1StartTime, Labels: map[string]string{"test-5": "test-5"}, ResourceVersion: "abcdef", - Annotations: map[string]string{ - "test-5": "test-5", - }, }, Spec: v1beta1.IngressSpec{ TLS: []v1beta1.IngressTLS{ @@ -182,11 +161,10 @@ func TestIngressStore(t *testing.T) { kube_ingress_created{namespace="ns5",ingress="ingress5"} 1.501569018e+09 kube_ingress_metadata_resource_version{namespace="ns5",resource_version="abcdef",ingress="ingress5"} 1 kube_ingress_labels{label_test_5="test-5",namespace="ns5",ingress="ingress5"} 1 - kube_ingress_annotations{namespace="ns5",ingress="ingress5",annotation_test_5="test-5"} 1 kube_ingress_tls{namespace="ns5",ingress="ingress5",tls_host="somehost1",secret="somesecret"} 1 kube_ingress_tls{namespace="ns5",ingress="ingress5",tls_host="somehost2",secret="somesecret"} 1 `, - MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_annotations", "kube_ingress_tls"}, + MetricNames: []string{"kube_ingress_info", "kube_ingress_metadata_resource_version", "kube_ingress_created", "kube_ingress_labels", "kube_ingress_path", "kube_ingress_tls"}, }, } for i, c := range cases { diff --git a/internal/store/job.go b/internal/store/job.go index 26205891cb..57c79113a6 100644 --- a/internal/store/job.go +++ b/internal/store/job.go @@ -306,23 +306,6 @@ var ( } }), }, - { - Name: "kube_job_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapJobFunc(func(j *v1batch.Job) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(j.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/job_test.go b/internal/store/job_test.go index 3aaf1a7b3a..006e716f49 100644 --- a/internal/store/job_test.go +++ b/internal/store/job_test.go @@ -75,8 +75,6 @@ func TestJobStore(t *testing.T) { # TYPE kube_job_status_start_time gauge # HELP kube_job_status_succeeded The number of pods which reached Phase Succeeded. # TYPE kube_job_status_succeeded gauge - # HELP kube_job_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_job_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -89,9 +87,6 @@ func TestJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-running-1", }, - Annotations: map[string]string{ - "app": "example-running-1", - }, OwnerReferences: []metav1.OwnerReference{ { Kind: "CronJob", @@ -125,7 +120,6 @@ func TestJobStore(t *testing.T) { kube_job_status_failed{job_name="RunningJob1",namespace="ns1"} 0 kube_job_status_start_time{job_name="RunningJob1",namespace="ns1"} 1.495800007e+09 kube_job_status_succeeded{job_name="RunningJob1",namespace="ns1"} 0 - kube_job_annotations{job_name="RunningJob1",namespace="ns1",annotation_app="example-running-1"} 1 `, }, { @@ -137,9 +131,6 @@ func TestJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-successful-1", }, - Annotations: map[string]string{ - "app": "example-successful-1", - }, }, Status: v1batch.JobStatus{ Active: 0, @@ -172,7 +163,6 @@ func TestJobStore(t *testing.T) { kube_job_status_failed{job_name="SuccessfulJob1",namespace="ns1"} 0 kube_job_status_start_time{job_name="SuccessfulJob1",namespace="ns1"} 1.495800007e+09 kube_job_status_succeeded{job_name="SuccessfulJob1",namespace="ns1"} 1 - kube_job_annotations{job_name="SuccessfulJob1",namespace="ns1",annotation_app="example-successful-1"} 1 `, }, { @@ -184,9 +174,6 @@ func TestJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-failed-1", }, - Annotations: map[string]string{ - "app": "example-failed-1", - }, }, Status: v1batch.JobStatus{ Active: 0, @@ -219,7 +206,6 @@ func TestJobStore(t *testing.T) { kube_job_status_failed{job_name="FailedJob1",namespace="ns1"} 1 kube_job_status_start_time{job_name="FailedJob1",namespace="ns1"} 1.495807207e+09 kube_job_status_succeeded{job_name="FailedJob1",namespace="ns1"} 0 - kube_job_annotations{job_name="FailedJob1",namespace="ns1",annotation_app="example-failed-1"} 1 `, }, { @@ -231,9 +217,6 @@ func TestJobStore(t *testing.T) { Labels: map[string]string{ "app": "example-successful-2", }, - Annotations: map[string]string{ - "app": "example-successful-2", - }, }, Status: v1batch.JobStatus{ Active: 0, @@ -255,6 +238,7 @@ func TestJobStore(t *testing.T) { kube_job_owner{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1",owner_is_controller="",owner_kind="",owner_name=""} 1 kube_job_complete{condition="false",job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 0 kube_job_complete{condition="true",job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 1 + kube_job_complete{condition="unknown",job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 0 kube_job_info{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 1 kube_job_labels{job_name="SuccessfulJob2NoActiveDeadlineSeconds",label_app="example-successful-2",namespace="ns1"} 1 @@ -265,7 +249,6 @@ func TestJobStore(t *testing.T) { kube_job_status_failed{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 0 kube_job_status_start_time{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 1.495800607e+09 kube_job_status_succeeded{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1"} 1 - kube_job_annotations{job_name="SuccessfulJob2NoActiveDeadlineSeconds",namespace="ns1",annotation_app="example-successful-2"} 1 `, }, } diff --git a/internal/store/limitrange.go b/internal/store/limitrange.go index fb1757f0d6..660f217284 100644 --- a/internal/store/limitrange.go +++ b/internal/store/limitrange.go @@ -104,23 +104,6 @@ var ( } }), }, - { - Name: "kube_limitrange_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapLimitRangeFunc(func(r *v1.LimitRange) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(r.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/limitrange_test.go b/internal/store/limitrange_test.go index 32c878e366..3eb5fe5f2e 100644 --- a/internal/store/limitrange_test.go +++ b/internal/store/limitrange_test.go @@ -36,8 +36,6 @@ func TestLimitRangeStore(t *testing.T) { # TYPE kube_limitrange_created gauge # HELP kube_limitrange Information about limit range. # TYPE kube_limitrange gauge - # HELP kube_limitrange_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_limitrange_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -46,9 +44,6 @@ func TestLimitRangeStore(t *testing.T) { Name: "quotaTest", CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, Namespace: "testNS", - Annotations: map[string]string{ - "quota": "test", - }, }, Spec: v1.LimitRangeSpec{ Limits: []v1.LimitRangeItem{ @@ -80,7 +75,7 @@ func TestLimitRangeStore(t *testing.T) { kube_limitrange{constraint="max",limitrange="quotaTest",namespace="testNS",resource="memory",type="Pod"} 2.1e+09 kube_limitrange{constraint="maxLimitRequestRatio",limitrange="quotaTest",namespace="testNS",resource="memory",type="Pod"} 2.1e+09 kube_limitrange{constraint="min",limitrange="quotaTest",namespace="testNS",resource="memory",type="Pod"} 2.1e+09 - kube_limitrange_annotations{limitrange="quotaTest",namespace="testNS",annotation_quota="test"} 1 + `, }, } diff --git a/internal/store/namespace.go b/internal/store/namespace.go index 802ef34111..def9ec8afd 100644 --- a/internal/store/namespace.go +++ b/internal/store/namespace.go @@ -67,23 +67,6 @@ var ( } }), }, - { - Name: "kube_namespace_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapNamespaceFunc(func(n *v1.Namespace) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(n.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, { Name: "kube_namespace_status_phase", Type: metric.Gauge, diff --git a/internal/store/namespace_test.go b/internal/store/namespace_test.go index 34236ee1a3..51fa6bb2fc 100644 --- a/internal/store/namespace_test.go +++ b/internal/store/namespace_test.go @@ -33,8 +33,6 @@ func TestNamespaceStore(t *testing.T) { # TYPE kube_namespace_created gauge # HELP kube_namespace_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_namespace_labels gauge - # HELP kube_namespace_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_namespace_annotations gauge # HELP kube_namespace_status_phase kubernetes namespace status phase. # TYPE kube_namespace_status_phase gauge ` @@ -44,9 +42,6 @@ func TestNamespaceStore(t *testing.T) { Obj: &v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "nsActiveTest", - Annotations: map[string]string{ - "test": "testNS", - }, }, Spec: v1.NamespaceSpec{ Finalizers: []v1.FinalizerName{v1.FinalizerKubernetes}, @@ -59,16 +54,12 @@ func TestNamespaceStore(t *testing.T) { kube_namespace_labels{namespace="nsActiveTest"} 1 kube_namespace_status_phase{namespace="nsActiveTest",phase="Active"} 1 kube_namespace_status_phase{namespace="nsActiveTest",phase="Terminating"} 0 - kube_namespace_annotations{namespace="nsActiveTest",annotation_test="testNS"} 1 `, }, { Obj: &v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "nsTerminateTest", - Annotations: map[string]string{ - "test": "nsTerminateTest", - }, }, Spec: v1.NamespaceSpec{ Finalizers: []v1.FinalizerName{v1.FinalizerKubernetes}, @@ -81,7 +72,6 @@ func TestNamespaceStore(t *testing.T) { kube_namespace_labels{namespace="nsTerminateTest"} 1 kube_namespace_status_phase{namespace="nsTerminateTest",phase="Active"} 0 kube_namespace_status_phase{namespace="nsTerminateTest",phase="Terminating"} 1 - kube_namespace_annotations{namespace="nsTerminateTest",annotation_test="nsTerminateTest"} 1 `, }, { @@ -93,9 +83,6 @@ func TestNamespaceStore(t *testing.T) { Labels: map[string]string{ "app": "example1", }, - Annotations: map[string]string{ - "app": "example1", - }, }, Spec: v1.NamespaceSpec{ Finalizers: []v1.FinalizerName{v1.FinalizerKubernetes}, @@ -109,7 +96,6 @@ func TestNamespaceStore(t *testing.T) { kube_namespace_labels{label_app="example1",namespace="ns1"} 1 kube_namespace_status_phase{namespace="ns1",phase="Active"} 1 kube_namespace_status_phase{namespace="ns1",phase="Terminating"} 0 - kube_namespace_annotations{annotation_app="example1",namespace="ns1"} 1 `, }, { @@ -120,10 +106,6 @@ func TestNamespaceStore(t *testing.T) { "app": "example2", "l2": "label2", }, - Annotations: map[string]string{ - "app": "example2", - "l2": "label2", - }, }, Spec: v1.NamespaceSpec{ Finalizers: []v1.FinalizerName{v1.FinalizerKubernetes}, @@ -134,7 +116,6 @@ func TestNamespaceStore(t *testing.T) { }, Want: metadata + ` kube_namespace_labels{label_app="example2",label_l2="label2",namespace="ns2"} 1 - kube_namespace_annotations{annotation_app="example2",annotation_l2="label2",namespace="ns2"} 1 kube_namespace_status_phase{namespace="ns2",phase="Active"} 1 kube_namespace_status_phase{namespace="ns2",phase="Terminating"} 0 `, diff --git a/internal/store/node.go b/internal/store/node.go index 8094ead166..cdcfaccc9f 100644 --- a/internal/store/node.go +++ b/internal/store/node.go @@ -478,23 +478,6 @@ var ( } }), }, - { - Name: "kube_node_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapNodeFunc(func(n *v1.Node) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(n.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/node_test.go b/internal/store/node_test.go index 45c48f9f8f..749983ebb6 100644 --- a/internal/store/node_test.go +++ b/internal/store/node_test.go @@ -33,9 +33,6 @@ func TestNodeStore(t *testing.T) { Obj: &v1.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "127.0.0.1", - Annotations: map[string]string{ - "kubeadm.alpha.kubernetes.io/ttl": "0", - }, }, Status: v1.NodeStatus{ NodeInfo: v1.NodeSystemInfo{ @@ -51,20 +48,17 @@ func TestNodeStore(t *testing.T) { }, }, Want: ` - # HELP kube_node_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_node_info Information about a cluster node. # HELP kube_node_labels Kubernetes labels converted to Prometheus labels. # HELP kube_node_spec_unschedulable Whether a node can schedule new pods. - # TYPE kube_node_annotations gauge # TYPE kube_node_info gauge # TYPE kube_node_labels gauge # TYPE kube_node_spec_unschedulable gauge kube_node_info{container_runtime_version="rkt",kernel_version="kernel",kubelet_version="kubelet",kubeproxy_version="kubeproxy",node="127.0.0.1",os_image="osimage",provider_id="provider://i-uniqueid"} 1 kube_node_labels{node="127.0.0.1"} 1 kube_node_spec_unschedulable{node="127.0.0.1"} 0 - kube_node_annotations{node="127.0.0.1",annotation_kubeadm_alpha_kubernetes_io_ttl="0"} 1 `, - MetricNames: []string{"kube_node_annotations", "kube_node_spec_unschedulable", "kube_node_labels", "kube_node_info"}, + MetricNames: []string{"kube_node_spec_unschedulable", "kube_node_labels", "kube_node_info"}, }, // Verify resource metric. { @@ -107,7 +101,6 @@ func TestNodeStore(t *testing.T) { }, }, Want: ` - # HELP kube_node_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_node_created Unix creation timestamp # HELP kube_node_info Information about a cluster node. # HELP kube_node_labels Kubernetes labels converted to Prometheus labels. @@ -120,7 +113,6 @@ func TestNodeStore(t *testing.T) { # HELP kube_node_status_capacity_cpu_cores The total CPU resources of the node. # HELP kube_node_status_capacity_memory_bytes The total memory resources of the node. # HELP kube_node_status_capacity_pods The total pod resources of the node. - # TYPE kube_node_annotations gauge # TYPE kube_node_created gauge # TYPE kube_node_info gauge # TYPE kube_node_labels gauge @@ -155,9 +147,8 @@ func TestNodeStore(t *testing.T) { kube_node_status_capacity{node="127.0.0.1",resource="nvidia_com_gpu",unit="integer"} 4 kube_node_status_capacity{node="127.0.0.1",resource="pods",unit="integer"} 1000 kube_node_status_capacity{node="127.0.0.1",resource="storage",unit="byte"} 3e+09 - kube_node_annotations{node="127.0.0.1"} 1 `, - MetricNames: []string{"kube_node_annotations", "kube_node_status_capacity", "kube_node_status_capacity_pods", "kube_node_status_capacity_memory_bytes", "kube_node_status_capacity_cpu_cores", "kube_node_status_allocatable", "kube_node_status_allocatable_pods", "kube_node_status_allocatable_memory_bytes", "kube_node_status_allocatable_cpu_cores", "kube_node_spec_unschedulable", "kube_node_labels", "kube_node_info", "kube_node_created"}, + MetricNames: []string{"kube_node_status_capacity", "kube_node_status_capacity_pods", "kube_node_status_capacity_memory_bytes", "kube_node_status_capacity_cpu_cores", "kube_node_status_allocatable", "kube_node_status_allocatable_pods", "kube_node_status_allocatable_memory_bytes", "kube_node_status_allocatable_cpu_cores", "kube_node_spec_unschedulable", "kube_node_labels", "kube_node_info", "kube_node_created"}, }, // Verify phase enumerations. { diff --git a/internal/store/persistentvolume.go b/internal/store/persistentvolume.go index 85325a43bd..9737df0925 100644 --- a/internal/store/persistentvolume.go +++ b/internal/store/persistentvolume.go @@ -127,23 +127,6 @@ var ( } }), }, - { - Name: "kube_persistentvolume_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapPersistentVolumeFunc(func(p *v1.PersistentVolume) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(p.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/persistentvolume_test.go b/internal/store/persistentvolume_test.go index 0951741112..67b976e1f8 100644 --- a/internal/store/persistentvolume_test.go +++ b/internal/store/persistentvolume_test.go @@ -54,9 +54,6 @@ func TestPersistentVolumeStore(t *testing.T) { Obj: &v1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ Name: "test-pv-available", - Annotations: map[string]string{ - "pv": "test", - }, }, Status: v1.PersistentVolumeStatus{ Phase: v1.VolumeAvailable, @@ -65,19 +62,13 @@ func TestPersistentVolumeStore(t *testing.T) { Want: ` # HELP kube_persistentvolume_status_phase The phase indicates if a volume is available, bound to a claim, or released by a claim. # TYPE kube_persistentvolume_status_phase gauge - # HELP kube_persistentvolume_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_persistentvolume_annotations gauge kube_persistentvolume_status_phase{persistentvolume="test-pv-available",phase="Available"} 1 kube_persistentvolume_status_phase{persistentvolume="test-pv-available",phase="Bound"} 0 kube_persistentvolume_status_phase{persistentvolume="test-pv-available",phase="Failed"} 0 kube_persistentvolume_status_phase{persistentvolume="test-pv-available",phase="Pending"} 0 kube_persistentvolume_status_phase{persistentvolume="test-pv-available",phase="Released"} 0 - kube_persistentvolume_annotations{persistentvolume="test-pv-available",annotation_pv="test"} 1 `, - MetricNames: []string{ - "kube_persistentvolume_status_phase", - "kube_persistentvolume_annotations", - }, + MetricNames: []string{"kube_persistentvolume_status_phase"}, }, { Obj: &v1.PersistentVolume{ @@ -144,9 +135,6 @@ func TestPersistentVolumeStore(t *testing.T) { Obj: &v1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ Name: "test-pv-pending", - Annotations: map[string]string{ - "pv-test": "test", - }, }, Status: v1.PersistentVolumeStatus{ Phase: v1.VolumePending, @@ -158,18 +146,14 @@ func TestPersistentVolumeStore(t *testing.T) { Want: ` # HELP kube_persistentvolume_status_phase The phase indicates if a volume is available, bound to a claim, or released by a claim. # TYPE kube_persistentvolume_status_phase gauge - # HELP kube_persistentvolume_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_persistentvolume_annotations gauge kube_persistentvolume_status_phase{persistentvolume="test-pv-pending",phase="Available"} 0 kube_persistentvolume_status_phase{persistentvolume="test-pv-pending",phase="Bound"} 0 kube_persistentvolume_status_phase{persistentvolume="test-pv-pending",phase="Failed"} 0 kube_persistentvolume_status_phase{persistentvolume="test-pv-pending",phase="Pending"} 1 kube_persistentvolume_status_phase{persistentvolume="test-pv-pending",phase="Released"} 0 - kube_persistentvolume_annotations{persistentvolume="test-pv-pending",annotation_pv_test="test"} 1 `, MetricNames: []string{ "kube_persistentvolume_status_phase", - "kube_persistentvolume_annotations", }, }, { diff --git a/internal/store/persistentvolumeclaim.go b/internal/store/persistentvolumeclaim.go index 391baa8814..a236700887 100644 --- a/internal/store/persistentvolumeclaim.go +++ b/internal/store/persistentvolumeclaim.go @@ -144,23 +144,6 @@ var ( } }), }, - { - Name: "kube_persistentvolumeclaim_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapPersistentVolumeClaimFunc(func(p *v1.PersistentVolumeClaim) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(p.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/persistentvolumeclaim_test.go b/internal/store/persistentvolumeclaim_test.go index 69abb5dce3..7a5a317659 100644 --- a/internal/store/persistentvolumeclaim_test.go +++ b/internal/store/persistentvolumeclaim_test.go @@ -37,9 +37,6 @@ func TestPersistentVolumeClaimStore(t *testing.T) { Labels: map[string]string{ "app": "mysql-server", }, - Annotations: map[string]string{ - "app": "mysql-server", - }, }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{ @@ -59,13 +56,11 @@ func TestPersistentVolumeClaimStore(t *testing.T) { }, Want: ` # HELP kube_persistentvolumeclaim_access_mode The access mode(s) specified by the persistent volume claim. - # HELP kube_persistentvolumeclaim_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_persistentvolumeclaim_info Information about persistent volume claim. # HELP kube_persistentvolumeclaim_labels Kubernetes labels converted to Prometheus labels. # HELP kube_persistentvolumeclaim_resource_requests_storage_bytes The capacity of storage requested by the persistent volume claim. # HELP kube_persistentvolumeclaim_status_phase The phase the persistent volume claim is currently in. # TYPE kube_persistentvolumeclaim_access_mode gauge - # TYPE kube_persistentvolumeclaim_annotations gauge # TYPE kube_persistentvolumeclaim_info gauge # TYPE kube_persistentvolumeclaim_labels gauge # TYPE kube_persistentvolumeclaim_resource_requests_storage_bytes gauge @@ -77,9 +72,8 @@ func TestPersistentVolumeClaimStore(t *testing.T) { kube_persistentvolumeclaim_resource_requests_storage_bytes{namespace="default",persistentvolumeclaim="mysql-data"} 1.073741824e+09 kube_persistentvolumeclaim_labels{label_app="mysql-server",namespace="default",persistentvolumeclaim="mysql-data"} 1 kube_persistentvolumeclaim_access_mode{namespace="default",persistentvolumeclaim="mysql-data",access_mode="ReadWriteOnce"} 1 - kube_persistentvolumeclaim_annotations{namespace="default",persistentvolumeclaim="mysql-data",annotation_app="mysql-server"} 1 `, - MetricNames: []string{"kube_persistentvolumeclaim_info", "kube_persistentvolumeclaim_status_phase", "kube_persistentvolumeclaim_resource_requests_storage_bytes", "kube_persistentvolumeclaim_labels", "kube_persistentvolumeclaim_access_mode", "kube_persistentvolumeclaim_annotations"}, + MetricNames: []string{"kube_persistentvolumeclaim_info", "kube_persistentvolumeclaim_status_phase", "kube_persistentvolumeclaim_resource_requests_storage_bytes", "kube_persistentvolumeclaim_labels", "kube_persistentvolumeclaim_access_mode"}, }, { Obj: &v1.PersistentVolumeClaim{ diff --git a/internal/store/poddisruptionbudget.go b/internal/store/poddisruptionbudget.go index 67b65bc826..8bbb0a4fdb 100644 --- a/internal/store/poddisruptionbudget.go +++ b/internal/store/poddisruptionbudget.go @@ -119,23 +119,6 @@ var ( } }), }, - { - Name: "kube_poddisruptionbudget_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapPodDisruptionBudgetFunc(func(p *v1beta1.PodDisruptionBudget) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(p.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/poddisruptionbudget_test.go b/internal/store/poddisruptionbudget_test.go index 2e133087d6..bbc6379617 100644 --- a/internal/store/poddisruptionbudget_test.go +++ b/internal/store/poddisruptionbudget_test.go @@ -41,8 +41,6 @@ func TestPodDisruptionBudgetStore(t *testing.T) { # TYPE kube_poddisruptionbudget_status_expected_pods gauge # HELP kube_poddisruptionbudget_status_observed_generation Most recent generation observed when updating this PDB status # TYPE kube_poddisruptionbudget_status_observed_generation gauge - # HELP kube_poddisruptionbudget_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_poddisruptionbudget_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -52,9 +50,6 @@ func TestPodDisruptionBudgetStore(t *testing.T) { CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, Namespace: "ns1", Generation: 21, - Annotations: map[string]string{ - "pdb1": "pdb1", - }, }, Status: v1beta1.PodDisruptionBudgetStatus{ CurrentHealthy: 12, @@ -71,7 +66,6 @@ func TestPodDisruptionBudgetStore(t *testing.T) { kube_poddisruptionbudget_status_pod_disruptions_allowed{namespace="ns1",poddisruptionbudget="pdb1"} 2 kube_poddisruptionbudget_status_expected_pods{namespace="ns1",poddisruptionbudget="pdb1"} 15 kube_poddisruptionbudget_status_observed_generation{namespace="ns1",poddisruptionbudget="pdb1"} 111 - kube_poddisruptionbudget_annotations{namespace="ns1",poddisruptionbudget="pdb1",annotation_pdb1="pdb1"} 1 `, }, { @@ -95,7 +89,6 @@ func TestPodDisruptionBudgetStore(t *testing.T) { kube_poddisruptionbudget_status_pod_disruptions_allowed{namespace="ns2",poddisruptionbudget="pdb2"} 0 kube_poddisruptionbudget_status_expected_pods{namespace="ns2",poddisruptionbudget="pdb2"} 10 kube_poddisruptionbudget_status_observed_generation{namespace="ns2",poddisruptionbudget="pdb2"} 1111 - kube_poddisruptionbudget_annotations{namespace="ns2",poddisruptionbudget="pdb2"} 1 `, }, } diff --git a/internal/store/replicaset.go b/internal/store/replicaset.go index 9db290f99f..7bd070af43 100644 --- a/internal/store/replicaset.go +++ b/internal/store/replicaset.go @@ -202,23 +202,6 @@ var ( } }), }, - { - Name: "kube_replicaset_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapReplicaSetFunc(func(d *v1.ReplicaSet) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(d.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/replicaset_test.go b/internal/store/replicaset_test.go index 0289c73fce..a70ccc3739 100644 --- a/internal/store/replicaset_test.go +++ b/internal/store/replicaset_test.go @@ -53,8 +53,6 @@ func TestReplicaSetStore(t *testing.T) { # TYPE kube_replicaset_owner gauge # HELP kube_replicaset_labels Kubernetes labels converted to Prometheus labels. # TYPE kube_replicaset_labels gauge - # HELP kube_replicaset_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_replicaset_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -74,9 +72,6 @@ func TestReplicaSetStore(t *testing.T) { Labels: map[string]string{ "app": "example1", }, - Annotations: map[string]string{ - "app": "example1", - }, }, Status: v1.ReplicaSetStatus{ Replicas: 5, @@ -98,7 +93,6 @@ func TestReplicaSetStore(t *testing.T) { kube_replicaset_status_ready_replicas{namespace="ns1",replicaset="rs1"} 5 kube_replicaset_spec_replicas{namespace="ns1",replicaset="rs1"} 5 kube_replicaset_owner{namespace="ns1",owner_is_controller="true",owner_kind="Deployment",owner_name="dp-name",replicaset="rs1"} 1 - kube_replicaset_annotations{namespace="ns1",replicaset="rs1",annotation_app="example1"} 1 `, }, { @@ -111,10 +105,6 @@ func TestReplicaSetStore(t *testing.T) { "app": "example2", "env": "ex", }, - Annotations: map[string]string{ - "app": "example2", - "env": "ex", - }, }, Status: v1.ReplicaSetStatus{ Replicas: 0, @@ -135,7 +125,6 @@ func TestReplicaSetStore(t *testing.T) { kube_replicaset_status_ready_replicas{namespace="ns2",replicaset="rs2"} 0 kube_replicaset_spec_replicas{namespace="ns2",replicaset="rs2"} 0 kube_replicaset_owner{namespace="ns2",owner_is_controller="",owner_kind="",owner_name="",replicaset="rs2"} 1 - kube_replicaset_annotations{namespace="ns2",replicaset="rs2",annotation_app="example2",annotation_env="ex"} 1 `, }, } diff --git a/internal/store/replicationcontroller.go b/internal/store/replicationcontroller.go index 46b8c1e80b..2a1a708275 100644 --- a/internal/store/replicationcontroller.go +++ b/internal/store/replicationcontroller.go @@ -151,23 +151,6 @@ var ( } }), }, - { - Name: "kube_replicationcontroller_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapReplicationControllerFunc(func(r *v1.ReplicationController) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(r.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/replicationcontroller_test.go b/internal/store/replicationcontroller_test.go index 4e7b46e3f6..18ef071ff3 100644 --- a/internal/store/replicationcontroller_test.go +++ b/internal/store/replicationcontroller_test.go @@ -50,8 +50,6 @@ func TestReplicationControllerStore(t *testing.T) { # TYPE kube_replicationcontroller_status_observed_generation gauge # HELP kube_replicationcontroller_spec_replicas Number of desired pods for a ReplicationController. # TYPE kube_replicationcontroller_spec_replicas gauge - # HELP kube_replicationcontroller_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_replicationcontroller_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -61,9 +59,6 @@ func TestReplicationControllerStore(t *testing.T) { CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, Namespace: "ns1", Generation: 21, - Annotations: map[string]string{ - "app": "example1", - }, }, Status: v1.ReplicationControllerStatus{ Replicas: 5, @@ -85,7 +80,6 @@ func TestReplicationControllerStore(t *testing.T) { kube_replicationcontroller_status_ready_replicas{namespace="ns1",replicationcontroller="rc1"} 5 kube_replicationcontroller_status_available_replicas{namespace="ns1",replicationcontroller="rc1"} 3 kube_replicationcontroller_spec_replicas{namespace="ns1",replicationcontroller="rc1"} 5 - kube_replicationcontroller_annotations{namespace="ns1",replicationcontroller="rc1",annotation_app="example1"} 1 `, }, { @@ -94,9 +88,6 @@ func TestReplicationControllerStore(t *testing.T) { Name: "rc2", Namespace: "ns2", Generation: 14, - Annotations: map[string]string{ - "app": "rc2", - }, }, Status: v1.ReplicationControllerStatus{ Replicas: 0, @@ -117,7 +108,6 @@ func TestReplicationControllerStore(t *testing.T) { kube_replicationcontroller_status_ready_replicas{namespace="ns2",replicationcontroller="rc2"} 0 kube_replicationcontroller_status_available_replicas{namespace="ns2",replicationcontroller="rc2"} 0 kube_replicationcontroller_spec_replicas{namespace="ns2",replicationcontroller="rc2"} 0 - kube_replicationcontroller_annotations{namespace="ns2",replicationcontroller="rc2",annotation_app="rc2"} 1 `, }, } diff --git a/internal/store/resourcequota.go b/internal/store/resourcequota.go index ddd08deefa..791ad8606b 100644 --- a/internal/store/resourcequota.go +++ b/internal/store/resourcequota.go @@ -79,23 +79,6 @@ var ( } }), }, - { - Name: "kube_resourcequota_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapResourceQuotaFunc(func(r *v1.ResourceQuota) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(r.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/resourcequota_test.go b/internal/store/resourcequota_test.go index 2be216c37e..dcbd3ed8bc 100644 --- a/internal/store/resourcequota_test.go +++ b/internal/store/resourcequota_test.go @@ -34,8 +34,6 @@ func TestResourceQuotaStore(t *testing.T) { # TYPE kube_resourcequota gauge # HELP kube_resourcequota_created Unix creation timestamp # TYPE kube_resourcequota_created gauge - # HELP kube_resourcequota_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_resourcequota_annotations gauge ` cases := []generateMetricsTestCase{ // Verify populating base metric and that metric for unset fields are skipped. @@ -45,15 +43,11 @@ func TestResourceQuotaStore(t *testing.T) { Name: "quotaTest", CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, Namespace: "testNS", - Annotations: map[string]string{ - "rq": "rq", - }, }, Status: v1.ResourceQuotaStatus{}, }, Want: metadata + ` kube_resourcequota_created{namespace="testNS",resourcequota="quotaTest"} 1.5e+09 - kube_resourcequota_annotations{namespace="testNS",resourcequota="quotaTest",annotation_rq="rq"} 1 `, }, // Verify resource metric. @@ -62,9 +56,6 @@ func TestResourceQuotaStore(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "quotaTest", Namespace: "testNS", - Annotations: map[string]string{ - "RQ": "RQ", - }, }, Spec: v1.ResourceQuotaSpec{ Hard: v1.ResourceList{ @@ -138,7 +129,6 @@ func TestResourceQuotaStore(t *testing.T) { kube_resourcequota{namespace="testNS",resource="services.nodeports",resourcequota="quotaTest",type="used"} 1 kube_resourcequota{namespace="testNS",resource="storage",resourcequota="quotaTest",type="hard"} 1e+10 kube_resourcequota{namespace="testNS",resource="storage",resourcequota="quotaTest",type="used"} 9e+09 - kube_resourcequota_annotations{namespace="testNS",resourcequota="quotaTest",annotation_RQ="RQ"} 1 `, }, } diff --git a/internal/store/secret.go b/internal/store/secret.go index 8eaa651e5e..8e4c0ee46c 100644 --- a/internal/store/secret.go +++ b/internal/store/secret.go @@ -115,23 +115,6 @@ var ( } }), }, - { - Name: "kube_secret_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapSecretFunc(func(s *v1.Secret) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(s.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/secret_test.go b/internal/store/secret_test.go index ab9cbe21ef..1d8ad1d922 100644 --- a/internal/store/secret_test.go +++ b/internal/store/secret_test.go @@ -92,20 +92,15 @@ func TestSecretStore(t *testing.T) { CreationTimestamp: metav1StartTime, Labels: map[string]string{"test-3": "test-3"}, ResourceVersion: "abcdef", - Annotations: map[string]string{ - "test-3": "test-3", - }, }, Type: v1.SecretTypeDockercfg, }, Want: ` - # HELP kube_secret_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_secret_created Unix creation timestamp # HELP kube_secret_info Information about secret. # HELP kube_secret_labels Kubernetes labels converted to Prometheus labels. # HELP kube_secret_metadata_resource_version Resource version representing a specific version of secret. # HELP kube_secret_type Type about secret. - # TYPE kube_secret_annotations gauge # TYPE kube_secret_created gauge # TYPE kube_secret_info gauge # TYPE kube_secret_labels gauge @@ -116,9 +111,8 @@ func TestSecretStore(t *testing.T) { kube_secret_created{namespace="ns3",secret="secret3"} 1.501569018e+09 kube_secret_metadata_resource_version{namespace="ns3",resource_version="abcdef",secret="secret3"} 1 kube_secret_labels{label_test_3="test-3",namespace="ns3",secret="secret3"} 1 - kube_secret_annotations{namespace="ns3",secret="secret3",annotation_test_3="test-3"} 1 `, - MetricNames: []string{"kube_secret_info", "kube_secret_metadata_resource_version", "kube_secret_created", "kube_secret_labels", "kube_secret_type", "kube_secret_annotations"}, + MetricNames: []string{"kube_secret_info", "kube_secret_metadata_resource_version", "kube_secret_created", "kube_secret_labels", "kube_secret_type"}, }, } for i, c := range cases { diff --git a/internal/store/service.go b/internal/store/service.go index 34123a10de..a2ecb8d78d 100644 --- a/internal/store/service.go +++ b/internal/store/service.go @@ -143,23 +143,6 @@ var ( } }), }, - { - Name: "kube_service_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapSvcFunc(func(s *v1.Service) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(s.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/service_test.go b/internal/store/service_test.go index a851ab07af..44d2c573b4 100644 --- a/internal/store/service_test.go +++ b/internal/store/service_test.go @@ -41,8 +41,6 @@ func TestServiceStore(t *testing.T) { # TYPE kube_service_spec_external_ip gauge # HELP kube_service_status_load_balancer_ingress Service load balancer ingress status # TYPE kube_service_status_load_balancer_ingress gauge - # HELP kube_service_annotations Kubernetes annotations converted to Prometheus labels. - # TYPE kube_service_annotations gauge ` cases := []generateMetricsTestCase{ { @@ -54,9 +52,6 @@ func TestServiceStore(t *testing.T) { Labels: map[string]string{ "app": "example1", }, - Annotations: map[string]string{ - "app": "example1", - }, }, Spec: v1.ServiceSpec{ ClusterIP: "1.2.3.4", @@ -64,12 +59,10 @@ func TestServiceStore(t *testing.T) { }, }, Want: ` - # HELP kube_service_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_service_created Unix creation timestamp # HELP kube_service_info Information about service. # HELP kube_service_labels Kubernetes labels converted to Prometheus labels. # HELP kube_service_spec_type Type about service. - # TYPE kube_service_annotations gauge # TYPE kube_service_created gauge # TYPE kube_service_info gauge # TYPE kube_service_labels gauge @@ -78,14 +71,12 @@ func TestServiceStore(t *testing.T) { kube_service_info{cluster_ip="1.2.3.4",external_name="",load_balancer_ip="",namespace="default",service="test-service1"} 1 kube_service_labels{label_app="example1",namespace="default",service="test-service1"} 1 kube_service_spec_type{namespace="default",service="test-service1",type="ClusterIP"} 1 - kube_service_annotations{namespace="default",service="test-service1",annotation_app="example1"} 1 `, MetricNames: []string{ "kube_service_created", "kube_service_info", "kube_service_labels", "kube_service_spec_type", - "kube_service_annotations", }, }, { @@ -98,9 +89,6 @@ func TestServiceStore(t *testing.T) { Labels: map[string]string{ "app": "example2", }, - Annotations: map[string]string{ - "app": "example2", - }, }, Spec: v1.ServiceSpec{ ClusterIP: "1.2.3.5", @@ -112,7 +100,6 @@ func TestServiceStore(t *testing.T) { kube_service_info{cluster_ip="1.2.3.5",external_name="",load_balancer_ip="",namespace="default",service="test-service2"} 1 kube_service_labels{label_app="example2",namespace="default",service="test-service2"} 1 kube_service_spec_type{namespace="default",service="test-service2",type="NodePort"} 1 - kube_service_annotations{namespace="default",service="test-service2",annotation_app="example2"} 1 `, }, { @@ -124,9 +111,6 @@ func TestServiceStore(t *testing.T) { Labels: map[string]string{ "app": "example3", }, - Annotations: map[string]string{ - "app": "example3", - }, }, Spec: v1.ServiceSpec{ ClusterIP: "1.2.3.6", @@ -139,8 +123,6 @@ func TestServiceStore(t *testing.T) { kube_service_info{cluster_ip="1.2.3.6",external_name="",load_balancer_ip="1.2.3.7",namespace="default",service="test-service3"} 1 kube_service_labels{label_app="example3",namespace="default",service="test-service3"} 1 kube_service_spec_type{namespace="default",service="test-service3",type="LoadBalancer"} 1 - kube_service_annotations{namespace="default",service="test-service3",annotation_app="example3"} 1 - `, }, { @@ -152,9 +134,6 @@ func TestServiceStore(t *testing.T) { Labels: map[string]string{ "app": "example4", }, - Annotations: map[string]string{ - "app": "example4", - }, }, Spec: v1.ServiceSpec{ ExternalName: "www.example.com", @@ -166,7 +145,6 @@ func TestServiceStore(t *testing.T) { kube_service_info{cluster_ip="",external_name="www.example.com",load_balancer_ip="",namespace="default",service="test-service4"} 1 kube_service_labels{label_app="example4",namespace="default",service="test-service4"} 1 kube_service_spec_type{namespace="default",service="test-service4",type="ExternalName"} 1 - kube_service_annotations{namespace="default",service="test-service4",annotation_app="example4"} 1 `, }, { @@ -178,9 +156,6 @@ func TestServiceStore(t *testing.T) { Labels: map[string]string{ "app": "example5", }, - Annotations: map[string]string{ - "app": "example5", - }, }, Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, @@ -202,7 +177,6 @@ func TestServiceStore(t *testing.T) { kube_service_labels{label_app="example5",namespace="default",service="test-service5"} 1 kube_service_spec_type{namespace="default",service="test-service5",type="LoadBalancer"} 1 kube_service_status_load_balancer_ingress{hostname="www.example.com",ip="1.2.3.8",namespace="default",service="test-service5"} 1 - kube_service_annotations{namespace="default",service="test-service5",annotation_app="example5"} 1 `, }, { @@ -214,9 +188,6 @@ func TestServiceStore(t *testing.T) { Labels: map[string]string{ "app": "example6", }, - Annotations: map[string]string{ - "app": "example6", - }, }, Spec: v1.ServiceSpec{ Type: v1.ServiceTypeClusterIP, @@ -233,7 +204,6 @@ func TestServiceStore(t *testing.T) { kube_service_spec_type{namespace="default",service="test-service6",type="ClusterIP"} 1 kube_service_spec_external_ip{external_ip="1.2.3.9",namespace="default",service="test-service6"} 1 kube_service_spec_external_ip{external_ip="1.2.3.10",namespace="default",service="test-service6"} 1 - kube_service_annotations{namespace="default",service="test-service6",annotation_app="example6"} 1 `, }, } diff --git a/internal/store/statefulset.go b/internal/store/statefulset.go index 0255a76b1a..e7f6b0cbf8 100644 --- a/internal/store/statefulset.go +++ b/internal/store/statefulset.go @@ -202,23 +202,6 @@ var ( } }), }, - { - Name: "kube_statefulset_annotations", - Type: metric.Gauge, - Help: "Kubernetes annotations converted to Prometheus labels.", - GenerateFunc: wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(s.Annotations) - return &metric.Family{ - Metrics: []*metric.Metric{ - { - LabelKeys: annotationKeys, - LabelValues: annotationValues, - Value: 1, - }, - }, - } - }), - }, } ) diff --git a/internal/store/statefulset_test.go b/internal/store/statefulset_test.go index 23a61f0be0..6ecd5f17f1 100644 --- a/internal/store/statefulset_test.go +++ b/internal/store/statefulset_test.go @@ -45,9 +45,6 @@ func TestStatefulSetStore(t *testing.T) { Labels: map[string]string{ "app": "example1", }, - Annotations: map[string]string{ - "app": "example1", - }, Generation: 3, }, Spec: v1.StatefulSetSpec{ @@ -62,7 +59,6 @@ func TestStatefulSetStore(t *testing.T) { }, }, Want: ` - # HELP kube_statefulset_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_statefulset_created Unix creation timestamp # HELP kube_statefulset_labels Kubernetes labels converted to Prometheus labels. # HELP kube_statefulset_metadata_generation Sequence number representing a specific generation of the desired state for the StatefulSet. @@ -74,7 +70,6 @@ func TestStatefulSetStore(t *testing.T) { # HELP kube_statefulset_status_replicas_ready The number of ready replicas per StatefulSet. # HELP kube_statefulset_status_replicas_updated The number of updated replicas per StatefulSet. # HELP kube_statefulset_status_update_revision Indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) - # TYPE kube_statefulset_annotations gauge # TYPE kube_statefulset_created gauge # TYPE kube_statefulset_labels gauge # TYPE kube_statefulset_metadata_generation gauge @@ -97,7 +92,6 @@ func TestStatefulSetStore(t *testing.T) { kube_statefulset_replicas{namespace="ns1",statefulset="statefulset1"} 3 kube_statefulset_metadata_generation{namespace="ns1",statefulset="statefulset1"} 3 kube_statefulset_labels{label_app="example1",namespace="ns1",statefulset="statefulset1"} 1 - kube_statefulset_annotations{namespace="ns1",statefulset="statefulset1",annotation_app="example1"} 1 `, MetricNames: []string{ "kube_statefulset_created", @@ -111,7 +105,6 @@ func TestStatefulSetStore(t *testing.T) { "kube_statefulset_status_replicas_updated", "kube_statefulset_status_update_revision", "kube_statefulset_status_current_revision", - "kube_statefulset_annotations", }, }, { @@ -122,9 +115,6 @@ func TestStatefulSetStore(t *testing.T) { Labels: map[string]string{ "app": "example2", }, - Annotations: map[string]string{ - "app": "example2", - }, Generation: 21, }, Spec: v1.StatefulSetSpec{ @@ -142,7 +132,6 @@ func TestStatefulSetStore(t *testing.T) { }, }, Want: ` - # HELP kube_statefulset_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_statefulset_labels Kubernetes labels converted to Prometheus labels. # HELP kube_statefulset_metadata_generation Sequence number representing a specific generation of the desired state for the StatefulSet. # HELP kube_statefulset_replicas Number of desired pods for a StatefulSet. @@ -153,7 +142,6 @@ func TestStatefulSetStore(t *testing.T) { # HELP kube_statefulset_status_replicas_ready The number of ready replicas per StatefulSet. # HELP kube_statefulset_status_replicas_updated The number of updated replicas per StatefulSet. # HELP kube_statefulset_status_update_revision Indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) - # TYPE kube_statefulset_annotations gauge # TYPE kube_statefulset_labels gauge # TYPE kube_statefulset_metadata_generation gauge # TYPE kube_statefulset_replicas gauge @@ -174,7 +162,6 @@ func TestStatefulSetStore(t *testing.T) { kube_statefulset_metadata_generation{namespace="ns2",statefulset="statefulset2"} 21 kube_statefulset_labels{label_app="example2",namespace="ns2",statefulset="statefulset2"} 1 kube_statefulset_status_current_revision{namespace="ns2",revision="cr2",statefulset="statefulset2"} 1 - kube_statefulset_annotations{namespace="ns2",statefulset="statefulset2",annotation_app="example2"} 1 `, MetricNames: []string{ "kube_statefulset_labels", @@ -187,7 +174,6 @@ func TestStatefulSetStore(t *testing.T) { "kube_statefulset_status_replicas_updated", "kube_statefulset_status_update_revision", "kube_statefulset_status_current_revision", - "kube_statefulset_annotations", }, }, { @@ -198,9 +184,6 @@ func TestStatefulSetStore(t *testing.T) { Labels: map[string]string{ "app": "example3", }, - Annotations: map[string]string{ - "app": "example3", - }, Generation: 36, }, Spec: v1.StatefulSetSpec{ @@ -215,7 +198,6 @@ func TestStatefulSetStore(t *testing.T) { }, }, Want: ` - # HELP kube_statefulset_annotations Kubernetes annotations converted to Prometheus labels. # HELP kube_statefulset_labels Kubernetes labels converted to Prometheus labels. # HELP kube_statefulset_metadata_generation Sequence number representing a specific generation of the desired state for the StatefulSet. # HELP kube_statefulset_replicas Number of desired pods for a StatefulSet. @@ -225,7 +207,6 @@ func TestStatefulSetStore(t *testing.T) { # HELP kube_statefulset_status_replicas_ready The number of ready replicas per StatefulSet. # HELP kube_statefulset_status_replicas_updated The number of updated replicas per StatefulSet. # HELP kube_statefulset_status_update_revision Indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) - # TYPE kube_statefulset_annotations gauge # TYPE kube_statefulset_labels gauge # TYPE kube_statefulset_metadata_generation gauge # TYPE kube_statefulset_replicas gauge @@ -244,7 +225,6 @@ func TestStatefulSetStore(t *testing.T) { kube_statefulset_metadata_generation{namespace="ns3",statefulset="statefulset3"} 36 kube_statefulset_labels{label_app="example3",namespace="ns3",statefulset="statefulset3"} 1 kube_statefulset_status_current_revision{namespace="ns3",revision="cr3",statefulset="statefulset3"} 1 - kube_statefulset_annotations{namespace="ns3",statefulset="statefulset3",annotation_app="example3"} 1 `, MetricNames: []string{ "kube_statefulset_labels", @@ -256,7 +236,6 @@ func TestStatefulSetStore(t *testing.T) { "kube_statefulset_status_replicas_updated", "kube_statefulset_status_update_revision", "kube_statefulset_status_current_revision", - "kube_statefulset_annotations", }, }, } diff --git a/internal/store/utils.go b/internal/store/utils.go index 5fd561d005..3f10630c2b 100644 --- a/internal/store/utils.go +++ b/internal/store/utils.go @@ -74,21 +74,6 @@ func kubeLabelsToPrometheusLabels(labels map[string]string) ([]string, []string) return labelKeys, labelValues } -func kubeAnnotationsToPrometheusLabels(annotations map[string]string) ([]string, []string) { - annotationKeys := make([]string, 0, len(annotations)) - for k := range annotations { - annotationKeys = append(annotationKeys, k) - } - sort.Strings(annotationKeys) - - annotationValues := make([]string, 0, len(annotations)) - for i, k := range annotationKeys { - annotationKeys[i] = "annotation_" + sanitizeLabelName(k) - annotationValues = append(annotationValues, annotations[k]) - } - return annotationKeys, annotationValues -} - func sanitizeLabelName(s string) string { return invalidLabelCharRE.ReplaceAllString(s, "_") } diff --git a/internal/store/utils_test.go b/internal/store/utils_test.go index b58f5c9f19..b7c6aebaf8 100644 --- a/internal/store/utils_test.go +++ b/internal/store/utils_test.go @@ -198,67 +198,3 @@ func TestKubeLabelsToPrometheusLabels(t *testing.T) { } } - -func TestKubeAnnotationsToPrometheusLabels(t *testing.T) { - testCases := []struct { - kubeAnnotations map[string]string - expectKeys []string - expectValues []string - }{ - { - kubeAnnotations: map[string]string{ - "app1": "normal", - }, - expectKeys: []string{"annotation_app1"}, - expectValues: []string{"normal"}, - }, - { - kubeAnnotations: map[string]string{ - "0_app3": "starts_with_digit", - }, - expectKeys: []string{"annotation_0_app3"}, - expectValues: []string{"starts_with_digit"}, - }, - { - kubeAnnotations: map[string]string{ - "": "empty", - }, - expectKeys: []string{"annotation_"}, - expectValues: []string{"empty"}, - }, - { - kubeAnnotations: map[string]string{ - "$app4": "special_char", - }, - expectKeys: []string{"annotation__app4"}, - expectValues: []string{"special_char"}, - }, - { - kubeAnnotations: map[string]string{ - "_app5": "starts_with_underscore", - }, - expectKeys: []string{"annotation__app5"}, - expectValues: []string{"starts_with_underscore"}, - }, - } - - for _, tc := range testCases { - t.Run(fmt.Sprintf("kubeannotations input=%v , expected prometheus keys=%v, expected prometheus values=%v", tc.kubeAnnotations, tc.expectKeys, tc.expectValues), func(t *testing.T) { - annotationKeys, annotationValues := kubeAnnotationsToPrometheusLabels(tc.kubeAnnotations) - if len(annotationKeys) != len(tc.expectKeys) { - t.Errorf("Got Prometheus label keys with len %d but expected %d", len(annotationKeys), len(tc.expectKeys)) - } - - if len(annotationValues) != len(tc.expectValues) { - t.Errorf("Got Prometheus label values with len %d but expected %d", len(annotationValues), len(tc.expectValues)) - } - - for i := range tc.expectKeys { - if !(tc.expectKeys[i] == annotationKeys[i] && tc.expectValues[i] == annotationValues[i]) { - t.Errorf("Got Prometheus label %q: %q but expected %q: %q", annotationKeys[i], annotationValues[i], tc.expectKeys[i], tc.expectValues[i]) - } - } - }) - } - -} diff --git a/kubernetes/kube-state-metrics-deployment.yaml b/kubernetes/kube-state-metrics-deployment.yaml index f4393e7047..a5d23d676c 100644 --- a/kubernetes/kube-state-metrics-deployment.yaml +++ b/kubernetes/kube-state-metrics-deployment.yaml @@ -18,7 +18,7 @@ spec: serviceAccountName: kube-state-metrics containers: - name: kube-state-metrics - image: quay.io/coreos/kube-state-metrics:v1.7.1 + image: quay.io/coreos/kube-state-metrics:v1.7.2 ports: - name: http-metrics containerPort: 8080 diff --git a/main_test.go b/main_test.go index 24ea9a2e89..5388fb4c2e 100644 --- a/main_test.go +++ b/main_test.go @@ -383,9 +383,6 @@ func pod(client *fake.Clientset, index int) error { CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)}, Namespace: "default", UID: types.UID("abc-" + i), - Annotations: map[string]string{ - "pod": "pod", - }, }, Spec: v1.PodSpec{ RestartPolicy: v1.RestartPolicyAlways,