- Create docker/loki/loki-config.yaml: single-binary filesystem-mode Loki (schema v13, tsdb store, embedded_cache 100MB, auth_enabled: false) - Create docker/loki/promtail-config.yaml: docker_sd_configs scrape with label filter logging=promtail; relabels container name and service labels - docker-compose.yml: add loki (:3100), promtail, grafana (:3000) services after celery-beat; loki_data and grafana_data named volumes; GF_AUTH anonymous enabled for local dev; backend + celery-worker get logging: "promtail" label; backend gets LOG_LEVEL/LOG_JSON env vars - celery-beat deliberately left without logging: label (not a network-facing service; schedule file write concerns deferred per D-08 Pitfall 7 notes)
25 lines
616 B
YAML
25 lines
616 B
YAML
server:
|
|
http_listen_port: 9080
|
|
grpc_listen_port: 0
|
|
|
|
positions:
|
|
filename: /tmp/positions.yaml
|
|
|
|
clients:
|
|
- url: http://loki:3100/loki/api/v1/push
|
|
|
|
scrape_configs:
|
|
- job_name: docker
|
|
docker_sd_configs:
|
|
- host: unix:///var/run/docker.sock
|
|
refresh_interval: 5s
|
|
filters:
|
|
- name: label
|
|
values: ["logging=promtail"]
|
|
relabel_configs:
|
|
- source_labels: ["__meta_docker_container_name"]
|
|
regex: "/(.*)"
|
|
target_label: "container"
|
|
- source_labels: ["__meta_docker_container_label_com_docker_compose_service"]
|
|
target_label: "service"
|