Files
bearnet/image/overlay/etc/alloy/config.alloy
T
2026-07-08 22:30:48 +08:00

88 lines
1.5 KiB
Plaintext

discovery.docker "local" {
host = "unix:///var/run/docker.sock"
refresh_interval = "5s"
}
discovery.relabel "docker" {
targets = discovery.docker.local.targets
//
// Container Name
//
rule {
source_labels = ["__meta_docker_container_name"]
regex = "/(.*)"
replacement = "$1"
target_label = "container"
}
//
// Docker Compose
//
rule {
source_labels = ["__meta_docker_container_label_com_docker_compose_service"]
target_label = "service"
}
rule {
source_labels = ["__meta_docker_container_label_com_docker_compose_project"]
target_label = "compose_project"
}
//
// Image
//
rule {
source_labels = ["__meta_docker_container_image"]
target_label = "image"
}
//
// stdout / stderr
//
rule {
source_labels = ["__meta_docker_container_log_stream"]
target_label = "stream"
}
//
// Query 用
//
rule {
source_labels = ["__meta_docker_container_label_com_docker_compose_service"]
target_label = "job"
}
}
loki.process "docker" {
stage.static_labels {
values = {
node = env("NODE_NAME"),
environment = env("ENVIRONMENT"),
platform = "docker",
}
}
forward_to = [loki.write.default.receiver]
}
loki.source.docker "local" {
host = "unix:///var/run/docker.sock"
targets = discovery.relabel.docker.output
refresh_interval = "5s"
forward_to = [
loki.process.docker.receiver,
]
}
loki.write "default" {
endpoint {
url = env("LOKI_URL")
tenant_id = env("LOKI_TENANT")
}
}