diff --git a/apps/victoria-metrics/templates/longhorn-vmservicescrape.yaml b/apps/victoria-metrics/templates/longhorn-vmservicescrape.yaml new file mode 100644 index 0000000..3ba7a20 --- /dev/null +++ b/apps/victoria-metrics/templates/longhorn-vmservicescrape.yaml @@ -0,0 +1,30 @@ +# Scrapes Longhorn's own metrics (volume robustness, node and disk capacity) +# so the external Grafana can alert when a volume becomes degraded or faulted. +# +# Every longhorn-manager Pod serves /metrics on its `manager` port (9500) +# behind the longhorn-backend Service. A VMServiceScrape scrapes each Pod +# behind that Service, so metrics from managers on both storage workers are +# collected, not just whichever one a load-balanced request would hit. +# +# This lives in the victoria-metrics wrapper chart rather than the Longhorn +# app because it is monitoring configuration, and it depends on the +# VMServiceScrape CRD installed by this chart's operator. Sync wave "1" makes +# Argo CD apply it only after that CRD exists on a fresh install. +apiVersion: operator.victoriametrics.com/v1beta1 +kind: VMServiceScrape +metadata: + name: longhorn + namespace: monitoring + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + namespaceSelector: + matchNames: + - longhorn-system + selector: + matchLabels: + app: longhorn-manager + endpoints: + - port: manager + path: /metrics + interval: 30s