Compare commits

...
Author SHA1 Message Date
simon fa9e7ee673 map coop-cloud labels 2026-09-16 17:59:37 +02:00
simon 33e767737a Merge remote-tracking branch 'origin/main' into split-image-tags 2026-09-16 13:00:05 +02:00
simon e22d6bae83 relabel journald logs and drop networkDB stats 2026-09-15 23:22:26 +02:00
simon cffb387580 split image tag 2026-09-08 16:30:54 +02:00
+62
View File
@@ -52,7 +52,32 @@ prometheus.scrape "default" {
prometheus.exporter.cadvisor.docker.targets,
)
forward_to = [prometheus.relabel.container_meta.receiver]
}
prometheus.relabel "container_meta" {
forward_to = [prometheus.remote_write.prometheus.receiver]
// remove sha tail: nginx:1.31.1@sha256:608a... -> nginx:1.31.1
rule {
source_labels = ["image"]
regex = "([^@]+)@sha256:.*"
target_label = "image"
replacement = "$1"
}
// split image in name and tag
rule {
source_labels = ["image"]
regex = "(.+):[^:/]+"
target_label = "image_name"
replacement = "$1"
}
rule {
source_labels = ["image"]
regex = ".+:([^:/]+)"
target_label = "image_tag"
replacement = "$1"
}
}
prometheus.remote_write "prometheus" {
@@ -109,6 +134,11 @@ discovery.relabel "metrics" {
action = "keep"
}
rule {
action = "labelmap"
regex = "__meta_dockerswarm_container_label_coop_cloud_(.+)"
}
// default to port 80 when prometheus.io/port isn't set
rule {
source_labels = ["__meta_dockerswarm_service_label_prometheus_io_port"]
@@ -275,6 +305,10 @@ discovery.relabel "docker" {
source_labels = ["__meta_docker_container_log_stream"]
target_label = "stream"
}
rule {
action = "labelmap"
regex = "__meta_docker_container_label_coop_cloud_(.+)"
}
}
loki.source.docker "docker" {
@@ -290,7 +324,35 @@ loki.source.docker "docker" {
loki.source.journal "journal" {
path = "/rootfs/var/log/journal"
labels = { job = "{{ env "DOMAIN" }}" }
relabel_rules = loki.relabel.journal.rules
forward_to = [loki.process.journal.receiver]
}
loki.relabel "journal" {
forward_to = []
rule {
source_labels = ["__journal__systemd_unit"]
target_label = "unit"
}
rule {
source_labels = ["__journal_syslog_identifier"]
target_label = "ident"
}
rule {
source_labels = ["__journal_priority_keyword"]
target_label = "priority"
}
}
// drop network db stats (15-20% of kernel logs)
loki.process "journal" {
forward_to = [loki.write.loki.receiver]
stage.drop {
expression = ".*NetworkDB stats.*"
drop_counter_reason = "networkdb_stats"
}
}
{{ end }}