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") } }