Created
May 24, 2023 09:20
-
-
Save simonswine/e3e161d628d39d2e8ac1184a12762cc0 to your computer and use it in GitHub Desktop.
Grafana Agent Flow config for forwarding logs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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