diff --git a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet
index c857344df97dbfb2e43fd076ad74333d4813fec5..af9bf85463d5672b5157feb8a069fc1ed5727c6e 100644
--- a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet
+++ b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet
@@ -52,9 +52,9 @@
       },
       replicas: 3,
       labels: {
-        'app.kubernetes.io/name': 'alertmanager-' + $._config.alertmanager.name,
+        'app.kubernetes.io/name': 'alertmanager',
         'app.kubernetes.io/version': $._config.versions.alertmanager,
-        'app.kubernetes.io/component': 'router',
+        'app.kubernetes.io/component': 'alert-router',
         'app.kubernetes.io/part-of': 'kube-prometheus',
       },
       selectorLabels: {
@@ -73,6 +73,7 @@
       metadata: {
         name: 'alertmanager-' + $._config.alertmanager.name,
         namespace: $._config.namespace,
+        labels: { alertmanager: $._config.alertmanager.name } + $._config.alertmanager.labels,
       },
       stringData: {
         'alertmanager.yaml': if std.type($._config.alertmanager.config) == 'object'
@@ -89,6 +90,7 @@
       metadata: {
         name: 'alertmanager-' + $._config.alertmanager.name,
         namespace: $._config.namespace,
+        labels: { alertmanager: $._config.alertmanager.name } + $._config.alertmanager.labels,
       },
     },
 
@@ -106,7 +108,7 @@
         ],
         selector: {
           app: 'alertmanager',
-          alertmanager: $._config.alertmanager.name
+          alertmanager: $._config.alertmanager.name,
         } + $._config.alertmanager.selectorLabels,
         sessionAffinity: 'ClientIP',
       },
diff --git a/jsonnet/kube-prometheus/kube-prometheus.libsonnet b/jsonnet/kube-prometheus/kube-prometheus.libsonnet
index 3bfd47688a29a2f1913c48218416e2452e476622..d80feac514028557defee885810fefc7d7acaa54 100644
--- a/jsonnet/kube-prometheus/kube-prometheus.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus.libsonnet
@@ -86,6 +86,7 @@ local kubeRbacProxyContainer = import './kube-rbac-proxy/container.libsonnet';
 
   grafana+:: {
     local dashboardDefinitions = super.dashboardDefinitions,
+
     dashboardDefinitions: {
       apiVersion: 'v1',
       kind: 'ConfigMapList',
@@ -97,6 +98,7 @@ local kubeRbacProxyContainer = import './kube-rbac-proxy/container.libsonnet';
       metadata: {
         name: 'grafana',
         namespace: $._config.namespace,
+        labels: $._config.grafana.labels,
       },
       spec: {
         selector: {
@@ -200,6 +202,14 @@ local kubeRbacProxyContainer = import './kube-rbac-proxy/container.libsonnet';
       },
     },
     prometheus+:: { rules: $.prometheusRules + $.prometheusAlerts },
-    grafana+:: { dashboards: $.grafanaDashboards },
+    grafana+:: {
+      labels: {
+        'app.kubernetes.io/name': 'grafana',
+        'app.kubernetes.io/version': $._config.versions.grafana,
+        'app.kubernetes.io/component': 'grafana',
+        'app.kubernetes.io/part-of': 'kube-prometheus',
+      },
+      dashboards: $.grafanaDashboards,
+    },
   },
 }
diff --git a/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet b/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet
index 44cc2edd11494e17a3b7934daca5b63d0602197f..fd2510f627bea83b710a3b71243026660027bde1 100644
--- a/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet
+++ b/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet
@@ -27,6 +27,7 @@
       kind: 'ClusterRoleBinding',
       metadata: {
         name: 'node-exporter',
+        labels: $._config.nodeExporter.labels,
       },
       roleRef: {
         apiGroup: 'rbac.authorization.k8s.io',
@@ -45,6 +46,7 @@
       kind: 'ClusterRole',
       metadata: {
         name: 'node-exporter',
+        labels: $._config.nodeExporter.labels,
       },
       rules: [
         {
@@ -157,6 +159,7 @@
       metadata: {
         name: 'node-exporter',
         namespace: $._config.namespace,
+        labels: $._config.nodeExporter.labels,
       },
     },
 
diff --git a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
index e4ba99e388dea6a242308e48e2a5f5a3a1ad1cf8..55950bf0cb8e0abecbb7cf613b0ea07e19bde775 100644
--- a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
+++ b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
@@ -9,7 +9,7 @@
       name: 'prometheus-adapter',
       namespace: $._config.namespace,
       labels: {
-        'app.kubernetes.io/name': $._config.prometheusAdapter.name,
+        'app.kubernetes.io/name': 'prometheus-adapter',
         'app.kubernetes.io/version': $._config.versions.prometheusAdapter,
         'app.kubernetes.io/component': 'metrics-adapter',
         'app.kubernetes.io/part-of': 'kube-prometheus',
@@ -58,6 +58,7 @@
       kind: 'APIService',
       metadata: {
         name: 'v1beta1.metrics.k8s.io',
+        labels: $._config.prometheusAdapter.labels,
       },
       spec: {
         service: {
@@ -78,6 +79,7 @@
       metadata: {
         name: 'adapter-config',
         namespace: $._config.prometheusAdapter.namespace,
+        labels: $._config.prometheusAdapter.labels,
       },
       data: { 'config.yaml': std.manifestYamlDoc($._config.prometheusAdapter.config) },
     },
@@ -150,6 +152,7 @@
         metadata: {
           name: $._config.prometheusAdapter.name,
           namespace: $._config.prometheusAdapter.namespace,
+          labels: $._config.prometheusAdapter.labels,
         },
         spec: {
           replicas: 1,
@@ -182,6 +185,7 @@
       metadata: {
         name: $._config.prometheusAdapter.name,
         namespace: $._config.prometheusAdapter.namespace,
+        labels: $._config.prometheusAdapter.labels,
       },
     },
 
@@ -190,6 +194,7 @@
       kind: 'ClusterRole',
       metadata: {
         name: $._config.prometheusAdapter.name,
+        labels: $._config.prometheusAdapter.labels,
       },
       rules: [{
         apiGroups: [''],
@@ -203,6 +208,7 @@
       kind: 'ClusterRoleBinding',
       metadata: {
         name: $._config.prometheusAdapter.name,
+        labels: $._config.prometheusAdapter.labels,
       },
       roleRef: {
         apiGroup: 'rbac.authorization.k8s.io',
@@ -221,6 +227,7 @@
       kind: 'ClusterRoleBinding',
       metadata: {
         name: 'resource-metrics:system:auth-delegator',
+        labels: $._config.prometheusAdapter.labels,
       },
       roleRef: {
         apiGroup: 'rbac.authorization.k8s.io',
@@ -239,6 +246,7 @@
       kind: 'ClusterRole',
       metadata: {
         name: 'resource-metrics-server-resources',
+        labels: $._config.prometheusAdapter.labels,
       },
       rules: [{
         apiGroups: ['metrics.k8s.io'],
@@ -256,7 +264,7 @@
           'rbac.authorization.k8s.io/aggregate-to-admin': 'true',
           'rbac.authorization.k8s.io/aggregate-to-edit': 'true',
           'rbac.authorization.k8s.io/aggregate-to-view': 'true',
-        },
+        } + $._config.prometheusAdapter.labels,
       },
       rules: [{
         apiGroups: ['metrics.k8s.io'],
@@ -271,6 +279,7 @@
       metadata: {
         name: 'resource-metrics-auth-reader',
         namespace: 'kube-system',
+        labels: $._config.prometheusAdapter.labels,
       },
       roleRef: {
         apiGroup: 'rbac.authorization.k8s.io',
diff --git a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet
index 1a666e1dcd3e90e5871113c82a6c733b0f33de86..7f8a2c3567b870ac4038e5779e8a0accc329b47e 100644
--- a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet
+++ b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet
@@ -14,7 +14,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       rules: {},
       namespaces: ['default', 'kube-system', $._config.namespace],
       labels: {
-        'app.kubernetes.io/name': 'prometheus-' + $._config.prometheus.name,
+        'app.kubernetes.io/name': 'prometheus',
         'app.kubernetes.io/version': $._config.versions.prometheus,
         'app.kubernetes.io/component': 'prometheus',
         'app.kubernetes.io/part-of': 'kube-prometheus',
@@ -43,6 +43,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'prometheus-' + p.name,
         namespace: p.namespace,
+        labels: $._config.prometheus.labels,
       },
     },
 
@@ -70,7 +71,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
         labels: {
           prometheus: p.name,
           role: 'alert-rules',
-        },
+        } + $._config.prometheus.labels,
         name: 'prometheus-' + p.name + '-rules',
         namespace: p.namespace,
       },
@@ -86,6 +87,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
         metadata: {
           name: 'prometheus-' + p.name,
           namespace: namespace,
+          labels: $._config.prometheus.labels,
         },
         roleRef: {
           apiGroup: 'rbac.authorization.k8s.io',
@@ -107,7 +109,10 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
     clusterRole: {
       apiVersion: 'rbac.authorization.k8s.io/v1',
       kind: 'ClusterRole',
-      metadata: { name: 'prometheus-' + p.name },
+      metadata: {
+        name: 'prometheus-' + p.name,
+        labels: $._config.prometheus.labels,
+      },
       rules: [
         {
           apiGroups: [''],
@@ -127,6 +132,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'prometheus-' + p.name + '-config',
         namespace: p.namespace,
+        labels: $._config.prometheus.labels,
       },
       rules: [{
         apiGroups: [''],
@@ -141,6 +147,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'prometheus-' + p.name + '-config',
         namespace: p.namespace,
+        labels: $._config.prometheus.labels,
       },
       roleRef: {
         apiGroup: 'rbac.authorization.k8s.io',
@@ -157,7 +164,10 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
     clusterRoleBinding: {
       apiVersion: 'rbac.authorization.k8s.io/v1',
       kind: 'ClusterRoleBinding',
-      metadata: { name: 'prometheus-' + p.name },
+      metadata: {
+        name: 'prometheus-' + p.name,
+        labels: $._config.prometheus.labels,
+      },
       roleRef: {
         apiGroup: 'rbac.authorization.k8s.io',
         kind: 'ClusterRole',
@@ -177,6 +187,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
         metadata: {
           name: 'prometheus-' + p.name,
           namespace: namespace,
+          labels: $._config.prometheus.labels,
         },
         rules: [
           {
@@ -210,7 +221,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
         version: $._config.versions.prometheus,
         image: $._config.imageRepos.prometheus + ':' + $._config.versions.prometheus,
         podMetadata: {
-          labels: $._config.prometheus.labels
+          labels: $._config.prometheus.labels,
         },
         serviceAccountName: 'prometheus-' + p.name,
         serviceMonitorSelector: {},