From 99f90e1544c16bc26205a4955aad8e95d0879e60 Mon Sep 17 00:00:00 2001 From: David Landry Date: Sun, 8 Sep 2024 15:27:29 -0400 Subject: [PATCH] feat(monitoring): add Victoria Metrics cluster for ingesting Home Assistant metrics --- apps/monitoring/base/kustomization.yaml | 7 +++ apps/monitoring/base/vmagent.yaml | 8 ++++ apps/monitoring/base/vmauth.yaml | 11 +++++ apps/monitoring/base/vmcluster.yaml | 45 +++++++++++++++++++ .../monitoring/base/vmuser-homeassistant.yaml | 24 ++++++++++ apps/monitoring/overlays/system/config.json | 11 +++++ .../overlays/system/kustomization.yaml | 6 +++ 7 files changed, 112 insertions(+) create mode 100644 apps/monitoring/base/kustomization.yaml create mode 100644 apps/monitoring/base/vmagent.yaml create mode 100644 apps/monitoring/base/vmauth.yaml create mode 100644 apps/monitoring/base/vmcluster.yaml create mode 100644 apps/monitoring/base/vmuser-homeassistant.yaml create mode 100644 apps/monitoring/overlays/system/config.json create mode 100644 apps/monitoring/overlays/system/kustomization.yaml diff --git a/apps/monitoring/base/kustomization.yaml b/apps/monitoring/base/kustomization.yaml new file mode 100644 index 0000000..90fe93d --- /dev/null +++ b/apps/monitoring/base/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - vmagent.yaml + - vmauth.yaml + - vmcluster.yaml + - vmuser-homeassistant.yaml diff --git a/apps/monitoring/base/vmagent.yaml b/apps/monitoring/base/vmagent.yaml new file mode 100644 index 0000000..d0be9cf --- /dev/null +++ b/apps/monitoring/base/vmagent.yaml @@ -0,0 +1,8 @@ +apiVersion: operator.victoriametrics.com/v1beta1 +kind: VMAgent +metadata: + name: metrics +spec: + selectAllByDefault: true + remoteWrite: + - url: "http://vminsert-metrics.monitoring-system.svc:8480/insert/0/prometheus/api/v1/write" diff --git a/apps/monitoring/base/vmauth.yaml b/apps/monitoring/base/vmauth.yaml new file mode 100644 index 0000000..ac36785 --- /dev/null +++ b/apps/monitoring/base/vmauth.yaml @@ -0,0 +1,11 @@ +apiVersion: operator.victoriametrics.com/v1beta1 +kind: VMAuth +metadata: + name: metrics-auth +spec: + selectAllByDefault: true + userNamespaceSelector: {} + userSelector: {} + ingress: + class_name: nginx + host: metrics.int.nc.landry.land diff --git a/apps/monitoring/base/vmcluster.yaml b/apps/monitoring/base/vmcluster.yaml new file mode 100644 index 0000000..4d4c13f --- /dev/null +++ b/apps/monitoring/base/vmcluster.yaml @@ -0,0 +1,45 @@ +apiVersion: operator.victoriametrics.com/v1beta1 +kind: VMCluster +metadata: + name: metrics +spec: + retentionPeriod: "1" + replicationFactor: 2 + vmstorage: + replicaCount: 2 + storageDataPath: "/vm-data" + storage: + volumeClaimTemplate: + spec: + resources: + requests: + storage: "10Gi" + resources: + limits: + cpu: "1" + memory: "1Gi" + vmselect: + replicaCount: 2 + cacheMountPath: "/select-cache" + storage: + volumeClaimTemplate: + spec: + resources: + requests: + storage: "1Gi" + resources: + limits: + cpu: "1" + memory: "1Gi" + requests: + cpu: "0.5" + memory: "500Mi" + vminsert: + replicaCount: 2 + resources: + limits: + cpu: "1" + memory: "1Gi" + requests: + cpu: "0.5" + memory: "500Mi" diff --git a/apps/monitoring/base/vmuser-homeassistant.yaml b/apps/monitoring/base/vmuser-homeassistant.yaml new file mode 100644 index 0000000..07c0dd6 --- /dev/null +++ b/apps/monitoring/base/vmuser-homeassistant.yaml @@ -0,0 +1,24 @@ +apiVersion: operator.victoriametrics.com/v1beta1 +kind: VMUser +metadata: + name: metrics-user-home-assistant +spec: + name: ha-metrics + username: ha-metrics + generatePassword: true + targetRefs: + # vmui + vmselect + - crd: + kind: VMCluster/vmselect + name: metrics + namespace: monitoring-system + target_path_suffix: "/select/0" + paths: + - "/vmui" + - "/vmui/.*" + - "/prometheus/api/v1/query" + - "/prometheus/api/v1/query_range" + - "/prometheus/api/v1/series" + - "/prometheus/api/v1/status/.*" + - "/prometheus/api/v1/label/" + - "/prometheus/api/v1/label/[^/]+/values" diff --git a/apps/monitoring/overlays/system/config.json b/apps/monitoring/overlays/system/config.json new file mode 100644 index 0000000..3bb854a --- /dev/null +++ b/apps/monitoring/overlays/system/config.json @@ -0,0 +1,11 @@ +{ + "appName": "monitoring", + "userGivenName": "monitoring", + "destNamespace": "monitoring-system", + "destServer": "https://kubernetes.default.svc", + "srcPath": "apps/monitoring/overlays/system", + "srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git", + "srcTargetRevision": "", + "labels": null, + "annotations": null +} diff --git a/apps/monitoring/overlays/system/kustomization.yaml b/apps/monitoring/overlays/system/kustomization.yaml new file mode 100644 index 0000000..e4d2d45 --- /dev/null +++ b/apps/monitoring/overlays/system/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base + +namespace: victoriametrics-system