Skip to content

Instantly share code, notes, and snippets.

@simonswine
Created May 24, 2023 09:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simonswine/e3e161d628d39d2e8ac1184a12762cc0 to your computer and use it in GitHub Desktop.
Save simonswine/e3e161d628d39d2e8ac1184a12762cc0 to your computer and use it in GitHub Desktop.
Grafana Agent Flow config for forwarding logs
logging {
level = "info"
format = "logfmt"
}
discovery.kubernetes "pods" {
role = "pod"
}
discovery.relabel "local_pods" {
targets = discovery.kubernetes.pods.targets
rule {
source_labels = ["__meta_kubernetes_pod_node_name"]
regex = env("HOSTNAME") // TODO: Probably needs regex escaping
target_label = "__host__"
action = "keep"
}
rule {
regex = "__meta_kubernetes_pod_label_(.+)"
action = "labelmap"
}
// compose job label out of namespace and pod name
rule {
action = "replace"
replacement = "$1"
source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_name"]
separator = "/"
target_label = "job"
}
// add namespace label
rule {
action = "replace"
source_labels = ["__meta_kubernetes_namespace"]
target_label = "namespace"
}
// add pod label
rule {
action = "replace"
source_labels = ["__meta_kubernetes_pod_name"]
target_label = "pod"
}
// add container label
rule {
action = "replace"
source_labels = ["__meta_kubernetes_pod_container_name"]
target_label = "container"
}
rule {
action = "replace"
replacement = "/var/log/pods/*$1/*.log"
separator = "/"
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
target_label = "__path__"
}
}
discovery.file "local_pods" {
path_targets = discovery.relabel.local_pods.output
}
loki.source.file "local_pods" {
targets = discovery.file.local_pods.targets
forward_to = [loki.process.local_pods.receiver]
}
loki.process "local_pods" {
forward_to = [loki.write.grafana_cloud.receiver]
stage.cri {}
}
loki.write "grafana_cloud" {
endpoint {
url = "https://logs-prod-013.grafana.net/loki/api/v1/push"
basic_auth {
username = "x"
password = "y
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment