From d98db6c2553b5be8ef48be481f4c6bc3a21efcd6 Mon Sep 17 00:00:00 2001
From: Varac <varac@varac.net>
Date: Mon, 1 Nov 2021 12:23:10 +0100
Subject: [PATCH] Scrape flux2 metrics

Closes: #838
---
 ...kube-prometheus-stack-flux-podmonitor.yaml | 22 +++++++++++++++++++
 ...ube-prometheus-stack-values-configmap.yaml | 11 ++++++----
 flux2/apps/monitoring/kustomization.yaml      |  1 +
 3 files changed, 30 insertions(+), 4 deletions(-)
 create mode 100644 flux2/apps/monitoring/kube-prometheus-stack-flux-podmonitor.yaml

diff --git a/flux2/apps/monitoring/kube-prometheus-stack-flux-podmonitor.yaml b/flux2/apps/monitoring/kube-prometheus-stack-flux-podmonitor.yaml
new file mode 100644
index 000000000..5784f179f
--- /dev/null
+++ b/flux2/apps/monitoring/kube-prometheus-stack-flux-podmonitor.yaml
@@ -0,0 +1,22 @@
+# https://fluxcd.io/docs/guides/monitoring/
+apiVersion: monitoring.coreos.com/v1
+kind: PodMonitor
+metadata:
+  name: flux-system
+  namespace: flux-system
+  labels:
+    app.kubernetes.io/part-of: flux
+spec:
+  namespaceSelector:
+    matchNames:
+      - flux-system
+  selector:
+    matchExpressions:
+      - key: app
+        operator: In
+        values:
+          - helm-controller
+          - source-controller
+          - notification-controller
+  podMetricsEndpoints:
+    - targetPort: http-prom
diff --git a/flux2/apps/monitoring/kube-prometheus-stack-values-configmap.yaml b/flux2/apps/monitoring/kube-prometheus-stack-values-configmap.yaml
index 026880cf4..885078681 100644
--- a/flux2/apps/monitoring/kube-prometheus-stack-values-configmap.yaml
+++ b/flux2/apps/monitoring/kube-prometheus-stack-values-configmap.yaml
@@ -102,9 +102,6 @@ data:
         scrapeInterval: "3m"
         evaluationInterval: "3m"
         retention: "30d"
-
-    #    replicas: 2
-    #    podAntiAffinity: "hard"
         storageSpec:
           volumeClaimTemplate:
             spec:
@@ -112,7 +109,6 @@ data:
               resources:
                 requests:
                   storage: 10Gi
-
         resources:
           limits:
             cpu: 1
@@ -120,6 +116,13 @@ data:
           requests:
             cpu: 300m
             memory: 1Gi
+        # Discover ALL custom serviceMonitors, podMonitors and prometheusrules,
+        # not only those with particular release labels set by
+        # kube-prometheus-stack
+        # https://stackoverflow.com/a/65648944
+        serviceMonitorSelectorNilUsesHelmValues: false
+        ruleSelectorNilUsesHelmValues: false
+        podMonitorSelectorNilUsesHelmValues: false
 
       ingress:
         enabled: true
diff --git a/flux2/apps/monitoring/kustomization.yaml b/flux2/apps/monitoring/kustomization.yaml
index 769a6eca2..8e7a05ae8 100644
--- a/flux2/apps/monitoring/kustomization.yaml
+++ b/flux2/apps/monitoring/kustomization.yaml
@@ -7,6 +7,7 @@ resources:
   - eventrouter-values-configmap.yaml
   - kube-prometheus-stack-release.yaml
   - kube-prometheus-stack-values-configmap.yaml
+  - kube-prometheus-stack-flux-podmonitor.yaml
   - loki-configmap.yaml
   - loki-release.yaml
   - loki-values-configmap.yaml
-- 
GitLab