From 3aeca3de7ba242e68c94db6b263091ff79a9a7ef Mon Sep 17 00:00:00 2001
From: Frederic Branczyk <fbranczyk@gmail.com>
Date: Tue, 30 May 2017 16:48:52 -0700
Subject: [PATCH] kube-prometheus: simplify service monitors

---
 ...heus-k8s-service-monitor-alertmanager.yaml | 14 +++++++----
 ...metheus-k8s-service-monitor-apiserver.yaml |  6 ++---
 ...eus-k8s-service-monitor-k8s-apps-http.yaml | 23 -------------------
 ...rvice-monitor-kube-controller-manager.yaml | 17 ++++++++++++++
 ...us-k8s-service-monitor-kube-scheduler.yaml | 17 ++++++++++++++
 ...8s-service-monitor-kube-state-metrics.yaml |  5 ++--
 ...rometheus-k8s-service-monitor-kubelet.yaml | 10 ++++----
 ...eus-k8s-service-monitor-node-exporter.yaml |  5 ++--
 ...etheus-k8s-service-monitor-prometheus.yaml | 12 ++++++----
 9 files changed, 63 insertions(+), 46 deletions(-)
 delete mode 100644 manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml
 create mode 100644 manifests/prometheus/prometheus-k8s-service-monitor-kube-controller-manager.yaml
 create mode 100644 manifests/prometheus/prometheus-k8s-service-monitor-kube-scheduler.yaml

diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml
index d193b676..29d68c82 100644
--- a/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml
@@ -1,12 +1,16 @@
 apiVersion: monitoring.coreos.com/v1alpha1
 kind: ServiceMonitor
 metadata:
-  labels:
-    alertmanager: main
   name: alertmanager
+  labels:
+    app: alertmanager
 spec:
+  selector:
+    matchLabels:
+      alertmanager: main
+  namespaceSelector:
+    matchNames:
+    - monitoring
   endpoints:
   - port: web
-  selector:
-    matchExpressions:
-    - {key: alertmanager, operator: In, values: [main]}
+    interval: 30s
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml
index 1fd793e5..09a87c2e 100644
--- a/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml
@@ -3,9 +3,9 @@ kind: ServiceMonitor
 metadata:
   name: kube-apiserver
   labels:
-    k8s-apps: https
+    k8s-app: apiserver
 spec:
-  jobLabel: provider
+  jobLabel: component
   selector:
     matchLabels:
       component: apiserver
@@ -15,7 +15,7 @@ spec:
     - default
   endpoints:
   - port: https
-    interval: 15s
+    interval: 30s
     scheme: https
     tlsConfig:
       caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml
deleted file mode 100644
index fbfcda97..00000000
--- a/manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-apiVersion: monitoring.coreos.com/v1alpha1
-kind: ServiceMonitor
-metadata:
-  name: k8s-apps-http
-  namespace: monitoring
-  labels:
-    k8s-apps: http
-spec:
-  jobLabel: k8s-app
-  selector:
-    matchExpressions:
-    - {key: k8s-app, operator: Exists}
-    - {key: k8s-app, operator: NotIn, values: [kubelet]}
-  namespaceSelector:
-    matchNames:
-    - kube-system
-  endpoints:
-  - port: http-metrics
-    interval: 15s
-  - port: http-metrics-dnsmasq
-    interval: 15s
-  - port: http-metrics-skydns
-    interval: 15s
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-kube-controller-manager.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-kube-controller-manager.yaml
new file mode 100644
index 00000000..eef95a84
--- /dev/null
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-kube-controller-manager.yaml
@@ -0,0 +1,17 @@
+apiVersion: monitoring.coreos.com/v1alpha1
+kind: ServiceMonitor
+metadata:
+  name: kube-controller-manager
+  labels:
+    k8s-app: kube-controller-manager
+spec:
+  jobLabel: k8s-app
+  endpoints:
+  - port: http-metrics
+    interval: 30s
+  selector:
+    matchLabels:
+      k8s-app: kube-controller-manager
+  namespaceSelector:
+    matchNames:
+    - kube-system
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-kube-scheduler.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-kube-scheduler.yaml
new file mode 100644
index 00000000..663f8cfb
--- /dev/null
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-kube-scheduler.yaml
@@ -0,0 +1,17 @@
+apiVersion: monitoring.coreos.com/v1alpha1
+kind: ServiceMonitor
+metadata:
+  name: kube-scheduler
+  labels:
+    k8s-app: kube-scheduler
+spec:
+  jobLabel: k8s-app
+  endpoints:
+  - port: http-metrics
+    interval: 30s
+  selector:
+    matchLabels:
+      k8s-app: kube-scheduler
+  namespaceSelector:
+    matchNames:
+    - kube-system
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml
index c4ed1afc..a276702a 100644
--- a/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml
@@ -2,9 +2,8 @@ apiVersion: monitoring.coreos.com/v1alpha1
 kind: ServiceMonitor
 metadata:
   name: kube-state-metrics
-  namespace: monitoring
   labels:
-    k8s-apps: http
+    k8s-app: kube-state-metrics
 spec:
   jobLabel: k8s-app
   selector:
@@ -15,5 +14,5 @@ spec:
     - monitoring
   endpoints:
   - port: http-metrics
-    interval: 15s
+    interval: 30s
     honorLabels: true
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml
index 5729d8f0..cdc3ffb6 100644
--- a/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml
@@ -3,16 +3,16 @@ kind: ServiceMonitor
 metadata:
   name: kubelet
   labels:
-    k8s-apps: http
+    k8s-app: kubelet
 spec:
   jobLabel: k8s-app
+  endpoints:
+  - port: http-metrics
+    interval: 30s
+    honorLabels: true
   selector:
     matchLabels:
       k8s-app: kubelet
   namespaceSelector:
     matchNames:
     - kube-system
-  endpoints:
-  - port: http-metrics
-    interval: 15s
-    honorLabels: true
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml
index a7b20301..b68ed89f 100644
--- a/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml
@@ -2,9 +2,8 @@ apiVersion: monitoring.coreos.com/v1alpha1
 kind: ServiceMonitor
 metadata:
   name: node-exporter
-  namespace: monitoring
   labels:
-    k8s-apps: http
+    k8s-app: node-exporter
 spec:
   jobLabel: k8s-app
   selector:
@@ -15,4 +14,4 @@ spec:
     - monitoring
   endpoints:
   - port: http-metrics
-    interval: 15s
+    interval: 30s
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml
index 5e5d17be..be74cd6d 100644
--- a/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml
@@ -3,10 +3,14 @@ kind: ServiceMonitor
 metadata:
   name: prometheus
   labels:
-    prometheus: k8s
+    app: prometheus
 spec:
+  selector:
+    matchLabels:
+      prometheus: k8s
+  namespaceSelector:
+    matchNames:
+    - monitoring
   endpoints:
   - port: web
-  selector:
-    matchExpressions:
-    - {key: prometheus, operator: In, values: [k8s]}
+    interval: 30s
-- 
GitLab