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>
50 lines
1.7 KiB
YAML
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" }
|
|
}
|