Files
home-kubernetes/gitops/home-kubernetes/alloy/helmrelease_alloy-metrics.yaml
Jan Novak d43ffd488e observability: add k8s API/kubelet tracing, Alloy, Mimir and Loki
Wire kube-apiserver and kubelet tracing to a Jaeger collector on
docker-29, deploy Grafana Alloy in-cluster to ship logs/metrics, and
stand up Mimir + Loki on docker-30 as their backing stores.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 00:05:21 +02:00

50 lines
1.7 KiB
YAML

apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: alloy-metrics
namespace: monitoring
spec:
interval: 30m
chart:
spec:
chart: alloy
version: ">=1.8.0 <2.0.0"
sourceRef: { kind: HelmRepository, name: grafana, namespace: monitoring }
interval: 12h
install: { remediation: { retries: 3 } }
upgrade: { remediation: { retries: 3 } }
driftDetection: { mode: enabled }
values:
controller:
type: deployment
replicas: 1 # cluster-scoped scrape target discovery → exactly one
image:
tag: v1.17.1
rbac: { create: false }
serviceAccount: { create: true, name: alloy-metrics }
alloy:
enableReporting: false
resources:
requests: { cpu: 100m, memory: 256Mi }
limits: { memory: 768Mi }
configMap:
content: |-
// Discovers every ServiceMonitor cluster-wide. kube-prometheus-stack already ships
// ServiceMonitors for kubelet/cAdvisor, kube-state-metrics, node-exporter, apiserver,
// coredns, controller-manager and scheduler — so this alone covers "standard k8s metrics".
prometheus.operator.servicemonitors "sm" {
forward_to = [prometheus.remote_write.mimir.receiver]
}
// Discovers every PodMonitor cluster-wide, same selector scope as above.
prometheus.operator.podmonitors "pm" {
forward_to = [prometheus.remote_write.mimir.receiver]
}
prometheus.remote_write "mimir" {
endpoint {
url = "http://192.168.0.30:9009/api/v1/push"
}
external_labels = { cluster = "homelab" }
}