diff --git a/template/stacks/monitoring/alloy/values.yaml b/template/stacks/monitoring/alloy/values.yaml index 3d6fd5a..88fe6c4 100644 --- a/template/stacks/monitoring/alloy/values.yaml +++ b/template/stacks/monitoring/alloy/values.yaml @@ -41,4 +41,53 @@ alloy: discovery.kubernetes "ingresses" { role = "ingress" - } \ No newline at end of file + } + + # Process and label logs before sending to Loki + discovery.relabel "pod_logs" { + targets = discovery.kubernetes.pod.targets + + # Assign labels for logs + rule { + source_labels = ["__meta_kubernetes_namespace"] + action = "replace" + target_label = "namespace" + } + + rule { + source_labels = ["__meta_kubernetes_pod_name"] + action = "replace" + target_label = "pod" + } + + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + action = "replace" + target_label = "container" + } + + rule { + source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"] + action = "replace" + target_label = "__path__" + separator = "/" + replacement = "/var/log/pods/*$1/*.log" + } + } + + # Collect logs from Kubernetes API + loki.source.kubernetes "all_pod_logs" { + targets = discovery.relabel.pod_logs.output + forward_to = [loki.process.all_logs.receiver] + } + + # Process logs before writing + loki.process "all_logs" { + stage.static_labels { + values = { + cluster = "cluster" + } + } + + forward_to = [loki.write.local_loki.receiver] + }