53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
|
|
apiVersion: v1
|
||
|
|
kind: ConfigMap
|
||
|
|
metadata:
|
||
|
|
name: promtail-config
|
||
|
|
namespace: default
|
||
|
|
data:
|
||
|
|
promtail.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: kubernetes-pods
|
||
|
|
kubernetes_sd_configs:
|
||
|
|
- role: pod
|
||
|
|
pipeline_stages:
|
||
|
|
# 解析 zap 输出的 JSON 日志,提取结构化字段
|
||
|
|
- json:
|
||
|
|
expressions:
|
||
|
|
level: level
|
||
|
|
traceID: traceID
|
||
|
|
spanID: spanID
|
||
|
|
caller: caller
|
||
|
|
pod: pod
|
||
|
|
namespace: namespace
|
||
|
|
node: node
|
||
|
|
# 将关键字段提升为 Loki Label,支持在 Grafana 中按实例/Trace 过滤
|
||
|
|
- labels:
|
||
|
|
level:
|
||
|
|
traceID:
|
||
|
|
pod:
|
||
|
|
namespace:
|
||
|
|
node:
|
||
|
|
relabel_configs:
|
||
|
|
- source_labels: [__meta_kubernetes_namespace]
|
||
|
|
target_label: namespace
|
||
|
|
- source_labels: [__meta_kubernetes_pod_name]
|
||
|
|
target_label: pod
|
||
|
|
- source_labels: [__meta_kubernetes_pod_container_name]
|
||
|
|
target_label: container
|
||
|
|
- source_labels: [__meta_kubernetes_pod_label_app]
|
||
|
|
target_label: app
|
||
|
|
# 只采集有 app label 的 Pod
|
||
|
|
- source_labels: [__meta_kubernetes_pod_label_app]
|
||
|
|
action: keep
|
||
|
|
regex: .+
|