Dev 服务器(192.168.1.10)上的可观测性栈:Prometheus + Grafana + Loki + Promtail + cadvisor + node-exporter + 各类 exporter + Pushgateway。
docker compose up -d访问:
- Grafana: http://localhost:3333(admin/admin)
- Prometheus: http://localhost:9999
- Pushgateway: http://localhost:9092
.
├── docker-compose.yml # 整套服务编排
├── prometheus.yml # Prometheus 抓取配置
├── loki-config.yml # Loki 配置
├── promtail-config.yml # Promtail 日志采集配置
├── grafana/
│ └── provisioning/
│ ├── datasources/
│ │ └── datasources.yml # Prometheus + Loki datasource
│ └── dashboards/
│ ├── default.yml # dashboard provider 配置
│ ├── node-exporter-full.json
│ ├── postgres.json
│ ├── redis.json
│ ├── minio.json
│ ├── windows-exporter.json
│ ├── nginx-exporter.json
│ └── docker-overview.json
└── data/ # 运行时数据,被 .gitignore 排除
允许两种方式:
- 编辑 JSON 文件:直接改
grafana/provisioning/dashboards/*.json,30 秒内 Grafana 会热重载 - Grafana UI 改完再导出:
allowUiUpdates: true允许 UI 直接改;改完用 Grafana API 导出 JSON 覆盖文件,提交 git
把 JSON 放进 grafana/provisioning/dashboards/ 即可,Grafana 自动加载。
每周日 04:35 自动跑 ~/pushgw_clean.py --apply,删除非 master 分支的 group。
每周日 04:30 自动重启 loki-mcp + litellm-proxy(两个易内存累积的容器)。
以下 dashboard 因为依赖项目自定义指标,仍由 sqlite 管理,不入 git:
- CI/CD Live Runner (
cicd-live-runner):依赖 fusion 项目 GitHub Actions push 的cicd_*指标 - Image Service (
image-service):依赖 fusion image-service 暴露的image_generation_* - Docker Logs:依赖 Loki 标签结构(如以后多项目共享 Loki,可入 git)
docker-compose.yml 里 GF_SECURITY_ADMIN_PASSWORD=admin 是明文,建议改用 .env:
environment:
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}然后 .env 写真密码(已 gitignore)。