aula-12: Victoria Metrics + Grafana via GitOps
Stack completo de observabilidade: - Victoria Metrics (vmsingle, vmagent, vmalert) - Grafana com dashboards built-in - Alertas customizados (PVC, pods, nodes, deployments) - pvc-autoresizer para expansão automática de volumes - Queries PromQL documentadas Instalação via ArgoCD seguindo padrão GitOps da aula-11.
This commit is contained in:
192
aula-12/gitops/apps/victoria-metrics/values.yaml
Normal file
192
aula-12/gitops/apps/victoria-metrics/values.yaml
Normal file
@@ -0,0 +1,192 @@
|
||||
# =============================================================================
|
||||
# Victoria Metrics K8s Stack - Values
|
||||
# =============================================================================
|
||||
# Documentação: https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack
|
||||
# =============================================================================
|
||||
|
||||
victoria-metrics-k8s-stack:
|
||||
# ---------------------------------------------------------------------------
|
||||
# VMSingle - Armazenamento de métricas (single-node)
|
||||
# ---------------------------------------------------------------------------
|
||||
vmsingle:
|
||||
enabled: true
|
||||
spec:
|
||||
retentionPeriod: "14d"
|
||||
storage:
|
||||
storageClassName: "hcloud-volumes"
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# VMAgent - Coleta de métricas
|
||||
# ---------------------------------------------------------------------------
|
||||
vmagent:
|
||||
enabled: true
|
||||
spec:
|
||||
scrapeInterval: "30s"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# VMAlert - Sistema de alertas
|
||||
# ---------------------------------------------------------------------------
|
||||
vmalert:
|
||||
enabled: true
|
||||
spec:
|
||||
extraArgs:
|
||||
"notifier.blackhole": "true" # Não envia alertas (sem AlertManager)
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# AlertManager - Notificações (desabilitado por padrão)
|
||||
# ---------------------------------------------------------------------------
|
||||
alertmanager:
|
||||
enabled: false
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Grafana - Visualização
|
||||
# ---------------------------------------------------------------------------
|
||||
grafana:
|
||||
enabled: true
|
||||
|
||||
# Credenciais
|
||||
adminUser: admin
|
||||
# adminPassword é gerado automaticamente se não especificado
|
||||
|
||||
# Recursos
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
|
||||
# Persistência para dashboards e configurações
|
||||
persistence:
|
||||
enabled: false # Dashboards vêm do GitOps, não precisa persistir
|
||||
|
||||
# Ingress
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
hosts:
|
||||
- grafana.kube.quest
|
||||
tls:
|
||||
- secretName: grafana-tls
|
||||
hosts:
|
||||
- grafana.kube.quest
|
||||
|
||||
# Sidecar carrega dashboards automaticamente do chart
|
||||
sidecar:
|
||||
dashboards:
|
||||
enabled: true
|
||||
|
||||
# Desabilitar criação de datasource separado (usa o do sidecar)
|
||||
grafanaDatasource:
|
||||
enabled: false
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Kube State Metrics - Métricas de objetos K8s
|
||||
# ---------------------------------------------------------------------------
|
||||
kube-state-metrics:
|
||||
enabled: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Prometheus Node Exporter - Métricas de nodes
|
||||
# ---------------------------------------------------------------------------
|
||||
prometheus-node-exporter:
|
||||
enabled: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 64Mi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Prometheus Operator CRDs
|
||||
# ---------------------------------------------------------------------------
|
||||
prometheus-operator-crds:
|
||||
enabled: true
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# VM Operator (gerencia CRDs do Victoria Metrics)
|
||||
# ---------------------------------------------------------------------------
|
||||
victoria-metrics-operator:
|
||||
enabled: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Service Monitors padrão
|
||||
# ---------------------------------------------------------------------------
|
||||
defaultRules:
|
||||
create: true
|
||||
rules:
|
||||
alertmanager: false # AlertManager desabilitado
|
||||
etcd: false # Não temos acesso ao etcd no Talos
|
||||
configReloaders: true
|
||||
general: true
|
||||
k8s: true
|
||||
kubeApiserver: true
|
||||
kubeApiserverAvailability: true
|
||||
kubeApiserverBurnrate: true
|
||||
kubeApiserverHistogram: true
|
||||
kubeApiserverSlos: true
|
||||
kubeControllerManager: false # Não acessível no Talos
|
||||
kubelet: true
|
||||
kubeProxy: false # Não acessível no Talos
|
||||
kubePrometheusGeneral: true
|
||||
kubePrometheusNodeRecording: true
|
||||
kubernetesApps: true
|
||||
kubernetesResources: true
|
||||
kubernetesStorage: true
|
||||
kubernetesSystem: true
|
||||
kubeScheduler: false # Não acessível no Talos
|
||||
kubeStateMetrics: true
|
||||
network: true
|
||||
node: true
|
||||
nodeExporterAlerting: true
|
||||
nodeExporterRecording: true
|
||||
prometheus: true
|
||||
prometheusOperator: true
|
||||
vmcluster: false # Usando vmsingle
|
||||
vmagent: true
|
||||
vmsingle: true
|
||||
Reference in New Issue
Block a user