From b51b9b983fb64b65518e8f05efb1a16fb1eeca02 Mon Sep 17 00:00:00 2001
From: Frederic Branczyk <fbranczyk@gmail.com>
Date: Fri, 24 Jul 2020 11:23:10 +0200
Subject: [PATCH] prometheus-adapter: Collect metrics from Prometheus Adapter

---
 .../prometheus-adapter.libsonnet              | 27 +++++++++++++++++++
 kustomization.yaml                            |  1 +
 .../prometheus-adapter-serviceMonitor.yaml    | 18 +++++++++++++
 3 files changed, 46 insertions(+)
 create mode 100644 manifests/prometheus-adapter-serviceMonitor.yaml

diff --git a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
index ff51e9f9..682f3015 100644
--- a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
+++ b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
@@ -87,6 +87,33 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 
       configmap.mixin.metadata.withNamespace($._config.namespace),
 
+    serviceMonitor:
+      {
+        apiVersion: 'monitoring.coreos.com/v1',
+        kind: 'ServiceMonitor',
+        metadata: {
+          name: $._config.prometheusAdapter.name,
+          namespace: $._config.namespace,
+          labels: $._config.prometheusAdapter.labels,
+        },
+        spec: {
+          selector: {
+            matchLabels: $._config.prometheusAdapter.labels,
+          },
+          endpoints: [
+            {
+              port: 'https',
+              interval: '30s',
+              scheme: 'https',
+              tlsConfig: {
+                insecureSkipVerify: true,
+              },
+              bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token',
+            },
+          ],
+        },
+      },
+
     service:
       local service = k.core.v1.service;
       local servicePort = k.core.v1.service.mixin.spec.portsType;
diff --git a/kustomization.yaml b/kustomization.yaml
index 8047150b..73ce56e5 100644
--- a/kustomization.yaml
+++ b/kustomization.yaml
@@ -36,6 +36,7 @@ resources:
 - ./manifests/prometheus-adapter-roleBindingAuthReader.yaml
 - ./manifests/prometheus-adapter-service.yaml
 - ./manifests/prometheus-adapter-serviceAccount.yaml
+- ./manifests/prometheus-adapter-serviceMonitor.yaml
 - ./manifests/prometheus-clusterRole.yaml
 - ./manifests/prometheus-clusterRoleBinding.yaml
 - ./manifests/prometheus-operator-serviceMonitor.yaml
diff --git a/manifests/prometheus-adapter-serviceMonitor.yaml b/manifests/prometheus-adapter-serviceMonitor.yaml
new file mode 100644
index 00000000..91a8d51a
--- /dev/null
+++ b/manifests/prometheus-adapter-serviceMonitor.yaml
@@ -0,0 +1,18 @@
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  labels:
+    name: prometheus-adapter
+  name: prometheus-adapter
+  namespace: monitoring
+spec:
+  endpoints:
+  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+    interval: 30s
+    port: https
+    scheme: https
+    tlsConfig:
+      insecureSkipVerify: true
+  selector:
+    matchLabels:
+      name: prometheus-adapter
-- 
GitLab