44 lines
1.3 KiB
YAML
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 }}'
|