diff --git a/k8s/manifests/kube-prometheus/lib/rtsl_exporter_alerts.libsonnet b/k8s/manifests/kube-prometheus/lib/rtsl_exporter_alerts.libsonnet new file mode 100644 index 00000000..d912370d --- /dev/null +++ b/k8s/manifests/kube-prometheus/lib/rtsl_exporter_alerts.libsonnet @@ -0,0 +1,37 @@ +local addMixin = (import 'kube-prometheus/lib/mixin.libsonnet'); + +local prometheusRules = { + prometheusRules+:: { + groups+: [ + { + name: 'rtsl-exporter.rules', + rules: [ + { + alert: 'RtslExporterDown', + expr: ||| + absent_over_time(up{job="rtsl-exporter", namespace="rtsl-exporter", service="rtsl-exporter"}[1m]) + |||, + 'for': '1m', + labels: { + severity: 'critical' + }, + annotations: { + summary: "RTSL Exporter service down", + description: "No metrics have been received from the RTSL Exporter service for the past 1 minute." + } + } + ], + }, + ], + }, +}; + +local rtslExporterMixin = addMixin({ + name: 'rtsl-exporter', + dashboardFolder: 'RTSL Exporter', + mixin: prometheusRules +}); + +{ + prometheusRules: rtslExporterMixin.prometheusRules +} \ No newline at end of file diff --git a/k8s/manifests/kube-prometheus/monitoring.jsonnet b/k8s/manifests/kube-prometheus/monitoring.jsonnet index 427e59f9..d0694549 100644 --- a/k8s/manifests/kube-prometheus/monitoring.jsonnet +++ b/k8s/manifests/kube-prometheus/monitoring.jsonnet @@ -10,6 +10,7 @@ local dhis2Server = (import 'lib/dhis2-server.libsonnet'); local alphasms = (import 'lib/alphasms.libsonnet'); local loki = (import 'lib/loki.libsonnet'); local sendgrid = (import 'lib/sendgrid.libsonnet'); +local rtslExporterAlerts = (import 'lib/rtsl_exporter_alerts.libsonnet'); local environment = std.extVar('ENVIRONMENT'); local namespace = 'monitoring'; @@ -127,6 +128,6 @@ local manifests = [postgres.prometheusRules] + postgres.monitors(config.postgresNamespaces).exporterServices + postgres.monitors(config.postgresNamespaces).serviceMonitors + - (if isEnvSandbox then [alphasms.prometheusRules] + [sendgrid.prometheusRules] + [loki.prometheusRules] else []); + (if isEnvSandbox then [alphasms.prometheusRules] + [sendgrid.prometheusRules] + [loki.prometheusRules] + [rtslExporterAlerts.prometheusRules] else []); argocd.addArgoAnnotations(manifests, kp.values.common.namespace) diff --git a/token.json b/token.json new file mode 100644 index 00000000..e02b5771 --- /dev/null +++ b/token.json @@ -0,0 +1,10 @@ +{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1beta1", + "spec": {}, + "status": { + "expirationTimestamp": "2024-10-14T10:09:37Z", + "token": "k8s-aws-v1.aHR0cHM6Ly9zdHMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tLz9BY3Rpb249R2V0Q2FsbGVySWRlbnRpdHkmVmVyc2lvbj0yMDExLTA2LTE1JlgtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQTRKR0JRTDVaWFVFUEE3S0UlMkYyMDI0MTAxNCUyRmFwLXNvdXRoLTElMkZzdHMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MTAxNFQwOTU1MzdaJlgtQW16LUV4cGlyZXM9NjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JTNCeC1rOHMtYXdzLWlkJlgtQW16LVNpZ25hdHVyZT05MTY3ZTI3MDE1M2QwNTRjZDgyOWYxNDgyNzM3YjkzNWEwZWYwNDA0NTBiN2ZkYzU2MjIyNDU2NTkwYzk1Yjk0" + } +} +