用途
Observability Stack Setup 是一个用于自动化部署完整 LGTM(Loki、Grafana、Tempo、Mimir/Prometheus)+ Alloy 可观测性技术栈的技能,专门面向 Claude Code 的监控场景。当需要首次为 Claude Code 搭建可观测性、部署本地开发监控基础设施、监控 Claude Code 操作(工具调用、成本、错误、性能),或希望使用预配置仪表盘分析 Claude Code 时,可使用该技能。
主要能力
该技能会自动部署并配置以下组件:
- Grafana Alloy:OTEL 收集器,接收来自 Claude Code 的遥测数据。
- Loki:日志聚合,存储所有 Claude Code 日志。
- Tempo:分布式追踪,跟踪工具调用与 API 请求。
- Prometheus:指标存储,记录 token 用量、成本与性能。
- Grafana:可视化,附带预构建的 Claude Code 仪表盘。
部署的服务及端口如下:
| 服务 | 端口 | 用途 |
|---|---|---|
| Grafana | 3000 | 仪表盘与可视化 |
| Grafana Alloy | 4317 (gRPC)、4318 (HTTP)、12345 (metrics) | OTLP 接收器 |
| Loki | 3100 | 日志存储与查询 |
| Tempo | 3200 | 追踪存储与查询 |
| Prometheus | 9090 | 指标存储与查询 |
所有数据持久化在 .observability/volumes/ 目录下,包括 alloy-data、loki-data、tempo-data、prometheus-data 和 grafana-data。
预构建仪表盘包括:
- Claude Code Overview:会话数量、时长、活跃时间、token 用量与成本趋势、按工具划分的错误率、热门操作。
- Tool Performance Matrix:各工具调用次数、平均/P95/P99 延迟、成功/失败率、最常见错误。
- Cost Analysis:日/周/月成本、token 用量明细、预算跟踪、成本预测。
- Error Tracking:错误时间线、错误类型分布、受影响工具、近期错误详情。
- Session Analysis:会话时长分布、每日/每周会话数、对话深度、活跃与空闲时间。
使用方式
前置条件
需验证 Docker 已安装(要求 ≥ 20.10):
docker --version
需验证 Docker Compose 已安装(要求 ≥ 2.0):
docker compose version
部署流程
调用该技能后,它会执行以下步骤:
- 验证 Docker 与 Docker Compose 版本兼容性。
- 创建
.observability/目录结构,包含 docker-compose.yml、alloy/config.yaml、grafana/datasources/、grafana/dashboards/ 及 volumes/ 等。 - 从模板生成所有配置文件。
- 使用
docker compose -f .observability/docker-compose.yml up -d启动技术栈。 - 对每个服务执行健康检查:Alloy(http://localhost:12345/metrics)、Loki(http://localhost:3100/ready)、Tempo(http://localhost:3200/ready)、Prometheus(http://localhost:9090/-/healthy)、Grafana(http://localhost:3000/api/health)。
- 通过 Grafana API 导入所有预构建仪表盘。
- 输出各服务的访问 URL、默认凭据(admin/admin)、供 Claude Code 配置使用的 OTLP 端点,以及下一步操作提示。
预计耗时 5-10 分钟。
配置细节
Grafana Alloy 通过 OTLP 协议接收来自 Claude Code 的遥测数据,gRPC 端点为 localhost:4317,HTTP 端点为 localhost:4318,并将遥测路由至后端:日志 → Loki,追踪 → Tempo,指标 → Prometheus。
保留策略默认 365 天,可在 docker-compose.yml 中配置:Loki 为 365 天(-ingester.max-chunk-age=365d),Tempo 为 365 天(-storage.trace.local.path retention),Prometheus 为 365 天(--storage.tsdb.retention.time=365d)。
隐私设置方面,该配置启用完整日志记录(无脱敏):用户提示完整内容记录、文件路径完整可见、工具执行完整命令详情、API 请求所有参数可见。此配置假设为个人使用的可观测性场景,具备完整数据访问权限。
后续步骤
技术栈运行后:
- 启用 Claude Code 遥测:使用 claude-code-telemetry-enable 技能。
- 使用 Claude Code:运行工具、读取文件、执行命令。
- 查看仪表盘:打开 http://localhost:3000,浏览预构建仪表盘。
- 验证数据流动:检查 Grafana → Explore → Loki/Prometheus/Tempo。
停止技术栈
优雅关闭(保留数据):
docker compose -f .observability/docker-compose.yml down
完全移除(删除数据):
docker compose -f .observability/docker-compose.yml down -v
适用场景
- 首次为 Claude Code 搭建可观测性。
- 部署本地开发可观测性基础设施。
- 需要监控 Claude Code 操作(工具调用、成本、错误、性能)。
- 希望使用预配置仪表盘进行 Claude Code 分析。
限制与注意事项
- 需预先安装 Docker(≥ 20.10)与 Docker Compose(≥ 2.0)。
- 若端口 3000、3100、3200、4317、4318、9090 或 12345 被占用,需停止冲突服务或修改 docker-compose.yml 中的端口。
- 服务未启动时,可通过
docker compose -f .observability/docker-compose.yml logs [service_name]查看日志;常见问题包括磁盘空间不足、内存不足(Alloy 约需 512MB,其他各约 256MB)、卷目录权限问题。 - 仪表盘未出现时,可手动导入:将仪表盘 JSON 复制到容器后通过 Grafana API 导入。
- 隐私配置默认启用完整日志记录且无脱敏,仅适用于个人使用场景。
参考与脚本
参考文件包括:references/docker-compose-full.yml、references/alloy-config.yaml、references/grafana-datasources/、references/dashboards/、references/troubleshooting.md。
脚本包括:scripts/setup-stack.sh(主设置脚本)、scripts/verify-health.sh(健康检查)、scripts/import-dashboards.sh(导入仪表盘)。
版本信息
组件版本(截至 2025-11-22 最新):Grafana 11.5.2、Grafana Alloy 1.5.0、Loki 3.4.2、Tempo 2.7.1、Prometheus 2.55.0。所有版本在 docker-compose.yml 中固定以保证可复现性。