{{ define "agent.config.logs.pod_logs" }}
{{- with .Values.logs.pod_logs }}
// Pod Logs
discovery.relabel "pod_logs" {
  targets = discovery.kubernetes.pods.targets

  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_namespace", "__meta_kubernetes_pod_name"]
    separator = "/"
    action = "replace"
    replacement = "$1"
    target_label = "job"
  }
  rule {
    source_labels = ["__meta_kubernetes_pod_node_name"]
    action = "keep"
    regex = env("HOSTNAME")
  }
  rule {
    source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
    separator = "/"
    action = "replace"
    replacement = "/var/log/pods/*$1/*.log"
    target_label = "__path__"
  }
{{- if .extraRelabelingRules }}
{{ .extraRelabelingRules | indent 2 }}
{{- end }}
}

local.file_match "pod_logs" {
  path_targets = discovery.relabel.pod_logs.output
}

loki.source.file "pod_logs" {
  targets    = local.file_match.pod_logs.targets
  forward_to = [loki.process.pod_logs.receiver]
}

loki.process "pod_logs" {
  stage.{{- .loggingFormat }} {}
{{- if .extraStageBlocks }}
{{ .extraStageBlocks | indent 2 }}
{{ end }}
  forward_to = [loki.write.grafana_cloud_loki.receiver]
}
{{- end }}
{{ end }}
