From 9666a48e35b82b6b8f89557ab7d7085514a94857 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 21 Oct 2026 18:44:41 +0200 Subject: [PATCH] Scrape Immich host metrics directly --- apps/prometheus/README.md | 8 +-- apps/prometheus/resources/externals.yaml | 63 ------------------------ apps/prometheus/values.yaml | 11 +++++ bootstrap/prometheus-project.yaml | 4 +- 4 files changed, 18 insertions(+), 68 deletions(-) delete mode 100644 apps/prometheus/resources/externals.yaml diff --git a/apps/prometheus/README.md b/apps/prometheus/README.md index c3e856a..7454d29 100644 --- a/apps/prometheus/README.md +++ b/apps/prometheus/README.md @@ -5,9 +5,11 @@ version selected in `bootstrap/prometheus.yaml`. `values.yaml` contains only this cluster's intentional settings. The chart owns Prometheus, Alertmanager, their supporting workloads, and chart-provided monitoring resources. -The `resources/` directory contains cluster-specific scrape endpoints and -alert rules that are not chart defaults. It does not contain application -workload templates. +The `resources/` directory contains cluster-specific alert rules that are not +chart defaults. It does not contain application workload templates. Immich's +host metrics endpoints are configured as static scrape targets in `values.yaml`; +this avoids depending on legacy Endpoints objects, which this Argo CD instance +intentionally excludes from reconciliation. Prometheus TSDB uses the existing 50Gi `rook-ceph-block` claim. During adoption, preserve claim diff --git a/apps/prometheus/resources/externals.yaml b/apps/prometheus/resources/externals.yaml deleted file mode 100644 index 2145b43..0000000 --- a/apps/prometheus/resources/externals.yaml +++ /dev/null @@ -1,63 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: external-immich-8082 - namespace: prometheus - labels: - app: external-immich-service - port: "8082" -spec: - ports: - - name: metrics - port: 8082 ---- -apiVersion: v1 -kind: Endpoints -metadata: - name: external-immich-8082 - namespace: prometheus -subsets: - - addresses: - - ip: 192.168.0.2 - ports: - - name: metrics - port: 8082 ---- -apiVersion: v1 -kind: Service -metadata: - name: external-immich-8083 - namespace: prometheus - labels: - app: external-immich-service - port: "8083" -spec: - ports: - - name: metrics - port: 8083 ---- -apiVersion: v1 -kind: Endpoints -metadata: - name: external-immich-8083 - namespace: prometheus -subsets: - - addresses: - - ip: 192.168.0.2 - ports: - - name: metrics - port: 8083 ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: external-immich-service - namespace: prometheus -spec: - selector: - matchLabels: - app: external-immich-service - endpoints: - - port: metrics - path: /metrics - interval: 30s diff --git a/apps/prometheus/values.yaml b/apps/prometheus/values.yaml index d1d110a..f856c11 100644 --- a/apps/prometheus/values.yaml +++ b/apps/prometheus/values.yaml @@ -90,3 +90,14 @@ prometheus: serviceMonitorSelector: {} ruleSelectorNilUsesHelmValues: false ruleSelector: {} + additionalScrapeConfigs: + - job_name: external-immich-8082 + metrics_path: /metrics + static_configs: + - targets: + - 192.168.0.2:8082 + - job_name: external-immich-8083 + metrics_path: /metrics + static_configs: + - targets: + - 192.168.0.2:8083 diff --git a/bootstrap/prometheus-project.yaml b/bootstrap/prometheus-project.yaml index e177530..31c4595 100644 --- a/bootstrap/prometheus-project.yaml +++ b/bootstrap/prometheus-project.yaml @@ -11,6 +11,8 @@ spec: destinations: - namespace: prometheus server: https://kubernetes.default.svc + - namespace: kube-system + server: https://kubernetes.default.svc clusterResourceWhitelist: - group: apiextensions.k8s.io kind: CustomResourceDefinition @@ -25,8 +27,6 @@ spec: namespaceResourceWhitelist: - group: "" kind: ConfigMap - - group: "" - kind: Endpoints - group: "" kind: Secret - group: ""