From f2a289355d5d74e16cce43597f87b4cd9f72c29b Mon Sep 17 00:00:00 2001 From: Thomas Richter Date: Tue, 3 Feb 2026 22:06:14 +0100 Subject: [PATCH] feat(08-01): add ServiceMonitor for Prometheus scraping - Create ServiceMonitor template for Prometheus Operator discovery - Add metrics.enabled and metrics.interval to values.yaml - ServiceMonitor selects TaskPlanner pods via selectorLabels - Scrapes /metrics endpoint every 30s by default Co-Authored-By: Claude Opus 4.5 --- helm/taskplaner/templates/servicemonitor.yaml | 19 +++++++++++++++++++ helm/taskplaner/values.yaml | 5 +++++ 2 files changed, 24 insertions(+) create mode 100644 helm/taskplaner/templates/servicemonitor.yaml diff --git a/helm/taskplaner/templates/servicemonitor.yaml b/helm/taskplaner/templates/servicemonitor.yaml new file mode 100644 index 0000000..1e698fe --- /dev/null +++ b/helm/taskplaner/templates/servicemonitor.yaml @@ -0,0 +1,19 @@ +{{- if .Values.metrics.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "taskplaner.fullname" . }} + labels: + {{- include "taskplaner.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "taskplaner.selectorLabels" . | nindent 6 }} + endpoints: + - port: http + path: /metrics + interval: {{ .Values.metrics.interval | default "30s" }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} +{{- end }} diff --git a/helm/taskplaner/values.yaml b/helm/taskplaner/values.yaml index e7e8544..0572bfa 100644 --- a/helm/taskplaner/values.yaml +++ b/helm/taskplaner/values.yaml @@ -111,6 +111,11 @@ basicAuth: # Example: "admin:$apr1$xyz..." htpasswd: "" +# Prometheus metrics +metrics: + enabled: true + interval: 30s + # Application-specific configuration config: # The external URL where the app is accessible (required for CSRF protection)