commit b648d047f0c6c9c1e93f2cc615ccebdb4d78609c
parent a68552f45ee65070bb6ba201369a8239c35720ae
Author: MTRNord <mtrnord1@gmail.com>
Date: Thu, 6 Apr 2023 23:52:40 +0200
Add postgres-exporter
Diffstat:
10 files changed, 118 insertions(+), 12 deletions(-)
diff --git a/apps/base/kube-prometheus-stack/release.yaml b/apps/base/kube-prometheus-stack/release.yaml
@@ -85,6 +85,8 @@ spec:
url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/cilium-operator-dashboard.json
hubble-dashboard:
url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/hubble-dashboard.json
+ postgres-dashboard:
+ url: https://raw.githubusercontent.com/prometheus-community/postgres_exporter/master/postgres_mixin/dashboards/postgres-overview.json
nats:
nats-jetstream:
url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/nats.json
diff --git a/apps/base/postgres-exporter/kustomization.yaml b/apps/base/postgres-exporter/kustomization.yaml
@@ -0,0 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: postgres-exporter
+resources:
+ - namespace.yaml
+ - repository.yaml
+ - release.yaml
diff --git a/apps/base/postgres-exporter/namespace.yaml b/apps/base/postgres-exporter/namespace.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: postgres-exporter
diff --git a/apps/base/postgres-exporter/release.yaml b/apps/base/postgres-exporter/release.yaml
@@ -0,0 +1,45 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: postgres-exporter
+ namespace: postgres-exporter
+spec:
+ releaseName: postgres-exporter
+ chart:
+ spec:
+ chart: prometheus-postgres-exporter
+ sourceRef:
+ kind: HelmRepository
+ name: prometheus-community
+ interval: 50m
+ install:
+ remediation:
+ retries: 3
+ values:
+ serviceMonitor:
+ # When set true then use a ServiceMonitor to configure scraping
+ enabled: true
+ prometheusRule:
+ enabled: true
+ additionalLabels: {}
+ namespace: "monitoring"
+ rules:
+ - alert: HugeReplicationLag
+ expr: pg_replication_lag{service="{{ template "prometheus-postgres-exporter.fullname" . }}"} / 3600 > 1
+ for: 1m
+ labels:
+ severity: critical
+ annotations:
+ description: replication for {{ template "prometheus-postgres-exporter.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s).
+ summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s).
+ config:
+ datasource:
+ host: matrix-postgres-cluster.matrix-postgres-cluster.svc.cluster.local
+ user: postgres
+ passwordSecret:
+ name: postgres-secret
+ key: password
+ port: "5432"
+ sslmode: require
+ database: "postgres"
+ autoDiscoverDatabases: true
diff --git a/apps/base/postgres-exporter/repository.yaml b/apps/base/postgres-exporter/repository.yaml
@@ -0,0 +1,8 @@
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: prometheus-community
+ namespace: postgres-exporter
+spec:
+ interval: 5m
+ url: https://prometheus-community.github.io/helm-charts
diff --git a/apps/production/kustomization.yaml b/apps/production/kustomization.yaml
@@ -8,6 +8,7 @@ resources:
- ../base/rook
- ../base/postgres-operator
- ../base/matrix
+ - ../base/postgres-exporter
- sliding-proxy-ingress.yaml
patchesStrategicMerge:
- cosign-values.yaml
@@ -18,3 +19,4 @@ patchesStrategicMerge:
- media-repo-values.yaml
- sliding-proxy-values.yaml
- synapse-midnightthoughts.yaml
+ - postgres-exporter-values.yaml
diff --git a/apps/production/postgres-exporter-values.yaml b/apps/production/postgres-exporter-values.yaml
@@ -0,0 +1,9 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: postgres-exporter
+ namespace: postgres-exporter
+spec:
+ chart:
+ spec:
+ version: "4.4.x"
diff --git a/apps/production/secrets/kustomization.yaml b/apps/production/secrets/kustomization.yaml
@@ -9,3 +9,4 @@ resources:
- matrix-media-repo-postgresql-secret.yaml
- sliding-proxy-secret.yaml
- synapse-midnightthoughts-secret.yaml
+ - postgres-export-secret.yaml
diff --git a/apps/production/secrets/postgres-export-secret.yaml b/apps/production/secrets/postgres-export-secret.yaml
@@ -0,0 +1,28 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ name: postgres-secret
+ namespace: postgres-exporter
+type: Opaque
+stringData:
+ password: ENC[AES256_GCM,data:kSRJI6DuLY33l7p0jguQqZdWHsTfCB+7RnVNEHKo7IiO79ZRPqEaY6OoEIo3s9+hOSnFupJGONm29d9/Gz0uJw==,iv:AySH+6N8zimx7ie202g6Fva/Q0v/Y3urALnxR7Hm8v0=,tag:FkLq+pAPFE3uwTBFJ/p42A==,type:str]
+sops:
+ kms: []
+ gcp_kms: []
+ azure_kv: []
+ hc_vault: []
+ age:
+ - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjRnVrMDlaSGdvYlJDLy9i
+ VUlFMFRsczMxWGR5a0FReXhhVGs4RUtmM2o0Ck00blJBWW5iTS9rT0ZybHBsYit5
+ dEQzZ2czb1E3bG5JWGZEODNqYitPQWcKLS0tIG11NGRTY255dzdmTjl6S2VOTE9s
+ SlMrOHRiTzI3bjRmVVZjWXV6dENUUTgKwqfQAmI/CEed1j+UVkHiy4frwZRICw3X
+ 6AJGeZVmQy2QCTyINLPc5OFSH+xqIY9BwWAuF0sY+Z2hTNaDtzsjlw==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2023-04-06T21:48:57Z"
+ mac: ENC[AES256_GCM,data:j1EDwtoCiYZIHongq6zAnzeorIXQsXmFMUdOYvL/i/ek78sFdar8frEFz6ok5fl8P1qRJw/dWSLR5X1BQqlJZm8cYSPFCWMxYHdQnX3aalAWXjhYhvJPfkDnEbV5NpAX+OrTCxN+M0ohYCOBT58CHCW2YFSxk5ROEK3OvnKhFcU=,iv:j4MLNjyK5l6UTkxRarDcPE3cMBbBY75H+H5d+1V8ERU=,tag:VLDy6PWRZpGGXEw6Ubv0wQ==,type:str]
+ pgp: []
+ encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$
+ version: 3.7.3
diff --git a/apps/production/secrets/sliding-proxy-secret.yaml b/apps/production/secrets/sliding-proxy-secret.yaml
@@ -5,8 +5,8 @@ metadata:
namespace: matrix
type: Opaque
stringData:
- SYNCV3_SECRET: ENC[AES256_GCM,data:WMW1IssMfASE+q1Oab3F4CVGpLjyUk6LfZJZ6SJwK9Df4PiU5oCZJTy0Ff83ymCf6NLF+tcd9lCPQ99hqHZvtg==,iv:JGtzuxfSuygNZ4N4O/IBxdp/dyjrwLm17p27VvU5uX8=,tag:Wy0LtzMKGUPefTGHzedjqg==,type:str]
- SYNCV3_DB: ENC[AES256_GCM,data:Es898diMq+BUofB6LDsLdBE2UqiGdOplrP4kmdK5Vr/Hm5xwWvGAFnT0ShwS/BWg6UmFEPIdM+oY8V4NIKJAa5T9cJ2Iag59ptbS8jH92kUpPpX/zfAy43dpFQfFAqJ2zIcIaY/sN4K350VEqhrmmIe6v5x+1enuq0TLRO8ebS1ebOpy8kUJrGEnwGz52g9eLhlhXq59m1CMu9DQCJDlj6j0PFOtAZUZTX9I9wT/afJ3VfcBmStLxaC+,iv:ZFmoSBVeQMoGLdVN4zYtf27D5GruktD3qeL6e3xFKMQ=,tag:uHj9bqpD6gtlJYsmveVsfg==,type:str]
+ SYNCV3_SECRET: ENC[AES256_GCM,data:rfGdmTeNppolJJculidV7DjBUNs1AfMCbW/KjO0Q82B1SJKlgPyExjPByUbnr9Ud4oBd7MOw3PSQc8dON7K1Sg==,iv:7fL9Mw52eMWe1/FiE3/WmEf3EjZQ2NQF0BzIA7h2CXY=,tag:YzEWIg/7XyCL3kmrwS4qRQ==,type:str]
+ SYNCV3_DB: ENC[AES256_GCM,data:TL00JQjq00QcYLokcq/79WbytPo6/haDHGkSlqHU4Q+Ivfg/FaIvQXMpc+DCyB1RGNp+9m3LVDJvjZwPmZjiIZ/CKN6h8UeuGEuMYJ8OmLApKfh2F3jnUVMyx0kfLNTVH7SiHkzLlpgXmpU5NTTv4SHBEJDJfRkirlT2frYDcclvpuqaqxnVTS5G84o3ws9tQyrDt+n1InlCg6Ffo6V2Pqjqlml8NKVJ0v6pnkhHjouhZXhBphvqd7aU,iv:QuOXWrfk8kVdYQnZEeEKIoC2FI3x5ofvNaRfsCNXeFY=,tag:ukZvnQk3IuRx9zLU5Z2UFQ==,type:str]
sops:
kms: []
gcp_kms: []
@@ -15,15 +15,15 @@ sops:
age:
- recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh
enc: |
- -----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwdEc3c1lHR3YyZUZ3YkFi
- Yld6cFUzZm01T09LV0twcFZWLy9yL21HM0NzClc0eGFycGZjZ21ZaTJCT1FlbzV3
- UERZUTQ5SWlUaUJMOXFobnhybEtvNXcKLS0tIFd6Q0tHdzRtT1pLZFRNS3VKL3FG
- Sy9XWk5tNnNaVDllNy9MQU5tdFV0bVUKn89o3TY+zP5TDkMpbYmEbOvCQq8E71NR
- FcEZ0PMh32BcTsXUr59Fu4dhvyVNPlQB0dvHfxIi9YyBm9tydrgmJg==
- -----END AGE ENCRYPTED FILE-----
- lastmodified: "2023-04-03T17:39:20Z"
- mac: ENC[AES256_GCM,data:5fj6MN1FpyYLRbwKBrq+KCN2pIySkyyLA3f+sZZT0ICm7NolGqK8eeDOKPOskwv1gTCyJDXZgBeEtWFixsS37RjeU6gX66CRnHN/Q9ag2PCuIyy+RBcGYY2FP1JMgWSZ6WBvIfjoNFkNla9B8tWM0OXyWu0hEmmAvaJIqwMvwSc=,iv:S2+n2bjNd+fYfqjYB97nPhhHQ/HR/K0/n0LAzone/0M=,tag:iZ+25oFHhZr45uDeuEW6nQ==,type:str]
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvemE4SnNFalNEREkrMFdO
+ c1lMTnFrditMNW9KdVhXVUR4Q3JmTUx2OHhZCitDUFRmdGN0eEdiRDE2amVtcG5z
+ ZVE3cTRUY3lxOVdMaVF2VjF3L2IreGMKLS0tIE5UQ3c0UDhON2c5S1lRb3AwcXBQ
+ UitQcjFyVXNJWDI4cStnSzRSZGdiYk0K8rYQlSATbFomOnOY8ZW6FE10+UoWy4TR
+ muFmwo6FobRorsil2drLK+Jd5f7irnyPRKtnIJZycH5ROev5+SqQbA==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2023-04-06T21:47:44Z"
+ mac: ENC[AES256_GCM,data:57B5CicKHekJGC0MlTlFDIdlJ6KXUAvREsI06VpfxKmCy/z7zymYYlxFMYnN/26NcUk2pry+rjz8bQuRw6/wrtdbTnWFCCt9mhon1BP/eCWmmWmWtTU5m3gws+sl29hmhx72YaZolpFBXE1LKi9xH+UECHCtFeiFQ9pemomkpsU=,iv:qrJZn+4e097/eN3Kp5ulREssgNB61mj+OodbnP89UQA=,tag:v08sWBNcFXWY33VVSOB/0Q==,type:str]
pgp: []
- encrypted_regex: ^(data|stringData|password)$
+ encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$
version: 3.7.3