didi-lot2-backend/backend/observability/promtail/promtail-config.yaml
2026-07-10 03:39:53 -07:00

44 lines
1.3 KiB
YAML

server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://didi-loki:3100/loki/api/v1/push
scrape_configs:
# Scrape Docker container logs
- job_name: docker
docker_sd_configs:
- host: unix:///var/run/docker.sock
refresh_interval: 30s
filters:
- name: label
values: ["com.docker.compose.project"]
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
- source_labels: ['__meta_docker_container_label_com_docker_compose_project']
target_label: project
pipeline_stages:
# Try to parse JSON logs (Node.js services emit JSON via pino/winston)
- json:
expressions:
level: level
service: service
request_id: request_id
session_id: session_id
msg: msg
- labels:
level:
request_id:
session_id:
# If "level" is missing, leave as info
- template:
source: level
template: '{{ if .Value }}{{ .Value }}{{ else }}info{{ end }}'