项目简介

该 GitHub 仓库提供了一个基于 OpenTelemetry、Prometheus、Loki 和 Grafana 构建的完整可观测性堆栈,用于监控 Anthropic Claude Code 的使用情况。其核心组件之一是一个专用的 MCP 服务器,能够将实时的使用指标、成本、Token 消耗、缓存效率以及日志和查询能力,以标准化的方式提供给 LLM 客户端。这使得 LLM 能够直接访问并分析自身的运行数据,实现更智能的成本管理和性能优化。

主要功能点

  • 成本与用量追踪: 实时监控 Claude Code 的总成本、Token 用量(输入、输出、缓存读写)和缓存命中率。
  • 指标与日志查询: 允许执行任意 PromQL 查询 Prometheus 指标数据,以及 LogQL 查询 Loki 日志事件。
  • 仪表盘分析: 能够列出 Grafana 仪表盘中的所有面板,按名称搜索面板,提取并解释特定面板的 PromQL/LogQL 查询语句。
  • 会话活动洞察: 获取最近的用户 Prompt 提交记录和工具执行结果,包括性能指标。
  • 标准化接口: 通过 MCP 协议(JSON-RPC over Stdio 等)提供统一接口,方便 LLM 客户端集成和调用。

安装步骤

由于该仓库主要是一个安装设置指南,具体服务器代码预期位于仓库的子目录中。一般安装流程涉及:

  1. 克隆本 GitHub 仓库到本地。
  2. 确保您的系统已安装 'uv' (一个快速的 Python 包安装器和环境管理器) 和 'claude' CLI 工具。
  3. 按照仓库中提供的详细文档,部署 OpenTelemetry Collector、Prometheus、Loki 和 Grafana 组成的监控堆栈。
  4. 导航到 MCP 服务器所在的目录 (例如,仓库中的 'mcp-server' 子目录)。
  5. 使用 'uv run' 命令启动 MCP 服务器。

服务器配置

MCP 客户端(例如 Claude Code 客户端)需要配置服务器信息才能与其连接。您可以通过 'claude mcp add' 命令添加此 MCP 服务器。配置信息示例(JSON 格式):

{
  "server_name": "metrics",
  "transport": "stdio",
  "scope": "user",
  "command": "uv",
  "args": [
    "run",
    "--directory",
    "/path/to/your/mcp-server",
    "metrics-server"
  ],
  "description": "提供 Claude Code 使用指标的 MCP 服务器,基于 OpenTelemetry、Prometheus 和 Loki。",
  "notes": "请务必将 'command' 字段中的 '/path/to/your/mcp-server' 替换为 MCP 服务器代码在您系统上的实际路径。"
}
  • 'server_name': 服务器的唯一标识符,此处为 'metrics'。
  • 'transport': 服务器与客户端通信的传输协议,此处为 'stdio' (标准输入输出)。
  • 'scope': 服务器的作用域,此处为 'user' (用户级别)。
  • 'command': 启动 MCP 服务器的执行命令,此处为 'uv' (一个 Python 运行时)。
  • 'args': 传递给 'command' 的参数列表,用于指定运行目录和服务器主程序 'metrics-server'。
  • 'description': 服务器功能的简要描述。
  • 'notes': 重要的配置说明,提示用户替换路径。

基本使用方法

一旦 MCP 服务器启动并被客户端成功添加,LLM 客户端即可通过调用服务器提供的“工具”(Tools)来获取数据和执行操作。例如,LLM 可以:

  • 查询当前总成本: 调用 'get_current_cost' 工具,获取今天总的美元花费。
  • 获取 Token 用量细分: 调用 'get_token_usage' 工具,查看输入、输出、缓存读写等不同类型的 Token 用量。
  • 执行 PromQL 查询: 调用 'query_prometheus' 工具,并传入自定义的 PromQL 语句,查询 Prometheus 中的指标数据。
  • 解释 PromQL 语句: 调用 'explain_promql_query' 工具,获取 PromQL 查询的结构和含义。

通过这些工具,LLM 可以实时了解自身的运行状态、优化资源使用,并根据性能数据做出智能决策。

信息

分类

开发者工具