Fix Alloy profiling config: remove invalid targets_only, add required labels

pyroscope.ebpf requires __container_id__ and service_name labels on
targets. Added relabel rules to map from Kubernetes pod metadata.
Removed targets_only which doesn't exist as an argument.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-03-26 15:23:01 -07:00
commit 97f363df2c

View file

@ -10,6 +10,19 @@ discovery.kubernetes "pods" {
discovery.relabel "pods" {
targets = discovery.kubernetes.pods.targets
// Map container ID for pyroscope.ebpf (required label)
rule {
source_labels = ["__meta_kubernetes_pod_container_id"]
target_label = "__container_id__"
}
// Build service_name from namespace/pod (required label)
rule {
source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_name"]
separator = "/"
target_label = "service_name"
}
// Keep namespace label
rule {
source_labels = ["__meta_kubernetes_namespace"]
@ -46,10 +59,9 @@ discovery.relabel "pods" {
// ============== eBPF PROFILING ==============
pyroscope.ebpf "instance" {
forward_to = [pyroscope.write.endpoint.receiver]
targets_only = true
targets = discovery.relabel.pods.output
demangle = "none"
forward_to = [pyroscope.write.endpoint.receiver]
targets = discovery.relabel.pods.output
demangle = "none"
}
// ============== PYROSCOPE WRITE ==============