Files
myinfra.kubernetes.shared/monitoring/base/alloy/kube-pod-logs-scraper/config.alloy
T

105 lines
2.3 KiB
Plaintext

logging {
level = "warn"
}
// ============================================
// Discovery: Kubernetes - pods
// ============================================
discovery.kubernetes "kube_pods" {
role = "pod"
}
// ============================================
// Logs: Loki config
// ============================================
loki.write "loki_srv" {
endpoint {
url = sys.env("LOKI_URL")
}
}
loki.process "loki_srv" {
stage.static_labels {
values = {
cluster = sys.env("CLUSTER_NAME"),
zone = sys.env("ZONE"),
job = "integrations/kubernetes/pod-logs",
}
}
forward_to = [loki.write.loki_srv.receiver]
}
// ============================================
// Loki.source kube_pod_logs
// Requirements:
// - discovery.relabel: kube_pod_logs
// - discovery.process: loki_srv
// ============================================
loki.source.kubernetes "kube_pod_logs" {
targets = discovery.relabel.kube_pod_logs.output
forward_to = [loki.process.loki_srv.receiver]
}
// ============================================
// Discovery:relabel: kube_pod_logs
// Requirements:
// - discovery.kubernetes.role.pod: kube_pods
// ============================================
discovery.relabel "kube_pod_logs" {
targets = discovery.kubernetes.kube_pods.targets
rule {
source_labels = ["__meta_kubernetes_namespace"]
target_label = "namespace"
}
rule {
source_labels = ["__meta_kubernetes_pod_name"]
regex = "^(.+?)-[0-9a-zA-Z]{4,16}(?:-[0-9a-zA-Z]{4,16})?$"
replacement = "$1"
target_label = "pod"
}
rule {
source_labels = ["__meta_kubernetes_pod_container_name"]
target_label = "container"
}
rule {
source_labels = ["__meta_kubernetes_node_name"]
target_label = "node_name"
}
rule {
source_labels = [
"__meta_kubernetes_pod_controller_name",
]
regex = "([0-9a-z-.]+?)(-[0-9a-f]{8,10})?"
target_label = "controller"
}
rule {
source_labels = [
"__meta_kubernetes_pod_label_app_kubernetes_io_name",
"__meta_kubernetes_pod_label_app",
"controller_name",
"__meta_kubernetes_pod_name",
]
regex = "^;*([^;]+)(;.*)?$"
target_label = "app"
}
rule {
source_labels = ["__meta_kubernetes_pod_node_name"]
separator = ":"
target_label = "host"
}
}