add VictoriaMetrics cluster metrics collection
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
# Cluster metrics collection for the external VictoriaMetrics and Grafana host.
|
||||||
|
# This Application installs only collectors and Kubernetes exporters: metrics
|
||||||
|
# are sent over NetBird to prd-vps-hel-01 and are not stored in this cluster.
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: victoria-metrics
|
||||||
|
namespace: argocd
|
||||||
|
# The in-cluster pieces are stateless. Cascading deletion is safe because the
|
||||||
|
# durable metrics database lives on the external VPS, not in this namespace.
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
|
||||||
|
source:
|
||||||
|
repoURL: https://tea.ahmza.com/ahmza.com/k8s-starter-pack.git
|
||||||
|
targetRevision: main
|
||||||
|
path: apps/victoria-metrics
|
||||||
|
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: monitoring
|
||||||
|
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
# node-exporter reads host kernel and filesystem metrics through hostPath,
|
||||||
|
# hostNetwork, and hostPID. Scope the required privileged Pod Security
|
||||||
|
# profile to this dedicated monitoring namespace.
|
||||||
|
managedNamespaceMetadata:
|
||||||
|
labels:
|
||||||
|
pod-security.kubernetes.io/enforce: privileged
|
||||||
|
pod-security.kubernetes.io/audit: privileged
|
||||||
|
pod-security.kubernetes.io/warn: privileged
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
# VictoriaMetrics Operator CRDs are large. Server-side apply avoids the
|
||||||
|
# client-side last-applied annotation size limit and handles CRDs first.
|
||||||
|
- ServerSideApply=true
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# Umbrella chart for the official VictoriaMetrics Kubernetes monitoring stack.
|
||||||
|
# Argo CD renders this dependency from Git just like the existing Longhorn and
|
||||||
|
# MetalLB wrapper charts.
|
||||||
|
apiVersion: v2
|
||||||
|
name: victoria-metrics-app
|
||||||
|
description: Forwards Kubernetes and node metrics to external VictoriaMetrics
|
||||||
|
version: 0.1.0
|
||||||
|
dependencies:
|
||||||
|
- name: victoria-metrics-k8s-stack
|
||||||
|
# Pin the exact chart version so monitoring upgrades are explicit and
|
||||||
|
# reviewable rather than changing during an unrelated Argo CD sync.
|
||||||
|
version: 0.96.0
|
||||||
|
repository: oci://ghcr.io/victoriametrics/helm-charts
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
# Values for the upstream victoria-metrics-k8s-stack dependency. This cluster
|
||||||
|
# collects metrics only; durable storage and visualization run on the NetBird-
|
||||||
|
# connected VPS at 100.71.24.9.
|
||||||
|
victoria-metrics-k8s-stack:
|
||||||
|
# Identify this source if more clusters write to the same database later.
|
||||||
|
vmagent:
|
||||||
|
enabled: true
|
||||||
|
spec:
|
||||||
|
scrapeInterval: 30s
|
||||||
|
externalLabels:
|
||||||
|
cluster: gitops-starter
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
|
||||||
|
external:
|
||||||
|
vm:
|
||||||
|
# Queries are served from the VictoriaMetrics base URL. Remote write uses
|
||||||
|
# its Prometheus-compatible ingestion endpoint. NetBird encrypts the path
|
||||||
|
# between the Talos nodes and VPS, so no public endpoint is involved.
|
||||||
|
read:
|
||||||
|
url: http://100.71.24.9:8428
|
||||||
|
write:
|
||||||
|
url: http://100.71.24.9:8428/api/v1/write
|
||||||
|
|
||||||
|
# Storage and UI already live on prd-vps-hel-01; do not duplicate them here.
|
||||||
|
vmsingle:
|
||||||
|
enabled: false
|
||||||
|
vmcluster:
|
||||||
|
enabled: false
|
||||||
|
vmdistributed:
|
||||||
|
enabled: false
|
||||||
|
grafana:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# Alert delivery is a separate follow-up once notification destinations are
|
||||||
|
# chosen. Disabling it also avoids deploying rules with nowhere to notify.
|
||||||
|
vmalert:
|
||||||
|
enabled: false
|
||||||
|
alertmanager:
|
||||||
|
enabled: false
|
||||||
|
defaultRules:
|
||||||
|
enabled: false
|
||||||
|
defaultDashboards:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# One node-exporter Pod runs on every node, including tainted control planes.
|
||||||
|
# Talos exposes the host root filesystem read-only; mount propagation is not
|
||||||
|
# needed and can be rejected by immutable hosts, so keep it disabled.
|
||||||
|
prometheus-node-exporter:
|
||||||
|
enabled: true
|
||||||
|
hostRootFsMount:
|
||||||
|
enabled: true
|
||||||
|
mountPropagation: None
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 20m
|
||||||
|
memory: 32Mi
|
||||||
|
limits:
|
||||||
|
memory: 128Mi
|
||||||
|
|
||||||
|
# kube-state-metrics reports desired/current Kubernetes object state (for
|
||||||
|
# example unavailable Deployment replicas), complementing host metrics.
|
||||||
|
kube-state-metrics:
|
||||||
|
enabled: true
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 20m
|
||||||
|
memory: 64Mi
|
||||||
|
limits:
|
||||||
|
memory: 256Mi
|
||||||
Reference in New Issue
Block a user