discovery.docker "logs_local_docker" { host = "unix:///var/run/docker.sock" refresh_interval = "10s" } loki.process "logs_local_docker" { forward_to = [loki.write.logs_local.receiver] stage.drop { drop_counter_reason = "reject_old_samples" older_than = "30m0s" } stage.static_labels { values = { job = "docker", } } } discovery.relabel "logs_local_docker" { targets = [] rule { source_labels = ["__meta_docker_container_name"] regex = "/(.*)" target_label = "container_name" } rule { source_labels = ["__meta_docker_container_id"] target_label = "container_id" } rule { source_labels = ["__meta_docker_container_log_stream"] target_label = "stream" } rule { source_labels = ["__meta_docker_container_label_com_docker_compose_project"] target_label = "compose_project" } rule { source_labels = ["__meta_docker_container_label_org_label_schema_vcs_ref"] target_label = "vcs_ref" } rule { source_labels = ["__meta_docker_container_label_org_label_schema_version"] target_label = "image_version" } } loki.source.docker "logs_local_docker" { host = "unix:///var/run/docker.sock" targets = discovery.docker.logs_local_docker.targets forward_to = [loki.process.logs_local_docker.receiver] relabel_rules = discovery.relabel.logs_local_docker.rules refresh_interval = "10s" } loki.write "logs_local" { endpoint { url = "http://loki:3100/loki/api/v1/push" } external_labels = {} } otelcol.receiver.otlp "default" { grpc { endpoint = "0.0.0.0:4317" include_metadata = true } http { endpoint = "0.0.0.0:4318" include_metadata = true } output { traces = [otelcol.exporter.otlphttp.tempo_http.input] } } otelcol.exporter.otlphttp "tempo_http" { retry_on_failure { max_elapsed_time = "1m0s" } client { endpoint = "http://tempo:4318" tls { insecure = true insecure_skip_verify = true } } }