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" } }