p.s. 本篇文章来自 GreptimeDB 用户 xtang 的投稿,分享了如何利用 GreptimeDB 强大的 OpenTelemetry(OTLP)原生支持和 Dashboard as Code 能力,采集并可视化 Claude Code 的各项使用数据,实现数据驱动的自我编程效率提升和成本控制。
👏 欢迎各位开源用户积极分享自己的使用案例,一起分享,共同成长。
省流版:GreptimeDB
支持 OLTP
和 Perses
。Claude Code
支持 OpenTelemetry 指标发送。那就用 GreptimeDB
来监控一下 Claude Code
的工作效率吧。
最近为了不被时代淘汰,高价订阅了 Claude Code
Max 版本,不管是不是心理作用,效果的确比 $20 的 Cursor 好用。但毕竟一个月 100 刀,我还是想知道一下它到底提供了多少帮助?以及一个很现实的问题——如果按 API 计费,花费了多少钱,是不是比订阅更合适?
其实,有一个很棒的命令行工具 ccusage
,可以快速提供使用情况的概览,非常适合进行快速检查,刚订阅那几天,Claude Code 牛马一会,我就去看看 ccusage,看看我用的效率怎么用,我特别喜欢 Cost 那列,因为我是订阅制,而如果按 API 计费,花费的钱已经远远超过了每个月的订阅费,一下子让我觉得自己反而赚到了,相信用过的朋友都能懂:)。随后发现 Claude Code
居然支持 OTLP,这个好啊,就不用一直去敲指令了,弄个仪表盘多好,于是周末就花了点时间折腾。
数据库选择:为什么是 GreptimeDB?
首先,需要选择一个数据库来存储这些宝贵的遥测数据。脑子里第一个选择就是:GreptimeDB [1]。利益相关,毕竟是之前的老东家,而且从第一性原来出发,它也完全符合这个项目的需求:
云端与本地随意选择: GreptimeDB
同时提供 Serverless 云版本和开源的本地版本。这是一个巨大的优势。我可以使用GreptimeDB Cloud
快速开始进行初步测试和原型设计。如果未来我更关注数据隐私或需要更精细的控制,可以轻松迁移到自托管的实例上;OpenTelemetry 完美支持: GreptimeDB
与OpenTelemetry
的集成非常顺畅,填几个参数就完事了。可以看官方文档 OTLP 文档 [2];通过 Perses 实现“仪表盘即代码”: GreptimeDB
使用Perses
作为其仪表盘解决方案。无需在图形界面中繁琐地点击来构建和调整图表,而是可以在一个YAML
文件中定义整个仪表盘。这使其易于进行版本控制、复用和分享。最主要的是,可以让 Claude Code 来写仪表盘;几乎免费: GreptimeDB
单机版开源的,可以自己部署;Cloud 版本的 Free 档对于收集 CC 这种个人项目来讲,也完全够用。
关注的指标
选定数据库后,初步定了几个指标来跟踪:
近期成本: 最近一天、一周或一个月的花费是多少?订阅制其实费用是固定的,从这能看出来实际“赚”了多少,也是我使劲用 CC 的动力之一; 近期 Token 使用量: 这是衡量我整体互动量的一个很好的指标。我特别想了解输入和输出 Token 之间的分布; 近期代码行数: Claude
帮助我生成或修改了多少行代码?这可以作为生产力的直接度量;活跃会话数: 一个简单的指标,用于观察我在一段时间内发起的独立编码会话数量; 指标细分: 我希望对数据进行多维度分析以获得更深入的洞察。Claude Code 官方监控文档 [3] 列出了一些非常有价值的属性。我尤其对按 model
(模型)、action
(操作,如write
、edit
)和token_type
进行的细分感兴趣。
部署流程:出乎意料的简单
收集数据的配置过程基本上没花时间,非常直白。
1. 数据收集器:GreptimeDB Cloud
如前所述,从 GreptimeDB Cloud
[4] 开始以接收数据流。整个设置过程非常轻松。只需创建一个新服务,系统便会提供 OTLP
端点和必要的凭据。

(图 1:GreptimeCloud OTLP)
2. 配置 Claude Code
接下来,需要配置 Claude Code
将其遥测数据发送到指定位置。根据官方指南 [5],这只需在 Claude Code
的配置文件(例如 ~/.claude/settings.json
)中添加几个变量即可:
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
"OTEL_EXPORTER_OTLP_ENDPOINT": "<your-greptimedb-otlp-endpoint>",
"OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Basic <your-base64-encoded-credentials>"
"OTEL_METRIC_EXPORT_INTERVAL": "10000",
"OTEL_LOGS_EXPORT_INTERVAL": "5000"
仅此而已。Claude Code
随即开始向 GreptimeDB
实例发送指标。

(图 2:指标)
3. 构建仪表盘:一点小小的帮助
现在是有趣的部分:数据可视化。由于 GreptimeDB
使用 Perses
,可以通过 YAML
文件进行配置。为了快速起步,我做了一件有点“元(meta)”的事情:我请求 Claude Code
为我想要追踪的指标生成一个基础的 Perses
仪表盘配置。生成的配置虽然不是 one-shot, 但基本提供了一个非常好用的起点,节省了大量时间。
不过,过程中也遇到了一个小问题。Claude Code
的指标名称中包含 "Count"
,例如 claude.code.lines_of_code.count
。Claude Code
很自然地认为这些是 Counter
(计数器)类型的指标。在 Prometheus 查询语言(PromQL)中,通常会使用 increase()
函数来计算计数器的增长率。
但关键在于:Claude Code
发送的指标实际上是增量(deltas),而非绝对递增的计数器。所以要用 sum_over_time()
这样的函数来正确地聚合这些增量值,而不是 increase()
。
因此,一个最初可能错误的 Token 使用量查询:
# 错误用法
increase(claude_code_lines_of_code_count[${__rate_interval}])
需要被调整为:
# 正确的增量求和方法
sum_over_time(claude_code_lines_of_code_count[${__rate_interval}])
其实修改这个配置花了点时间,经过进一步的调整和优化 PromQL 查询后,得到了一个可用的仪表盘。
最终成果
经过全部的设置和完善,这是目前我用的仪表盘。

(图 3:仪表盘的一部分)

(图 4:仪表盘的一部分)

(图 5:仪表盘的一部分)

(图 6:仪表盘的一部分)

(图 7:仪表盘的一部分)
由于这完全是Dashboard as Code
,所以分享也比较简单。可以在 Dashboard 配置示例 [6] 找到这个仪表盘的完整 Perses
配置文件。
总结
过程中我也发现几个有趣的事情:
OpenTelemetry
数据向我揭示了一个ccusage
无法展示的细节:Claude Code
在底层会使用Haiku
模型。通过按模型分解 Token 使用量,发现它会智能地将较轻量、复杂度较低的任务分配给Haiku;现在会话指标提供了
session_id
,这对于统计活跃会话非常有用。但是,在本地我可以看到会话名称(可以和项目对齐)。如果能将这个会话名称作为标签(label)添加到遥测数据中,看上去就更有意义了,现在就是一堆 Base64 码;Claude Code 官方其实没有说过 $100 的用量上限是多少,我其实挺好奇的。巧的是,有一次 Vibe Coding 了连续大概两个小时,突然被限流了,连
Sonnet 4
的模型也用不了,赶紧看一眼 Dashboard,消耗了巨大的 600 万 Token,大约 500 个输入 Token,仅 5 万个输出 Token,其余全部来自缓存,基本都是Opus
模型。估计这个就是 5 小时内的使用上限了。
就这样,谢谢阅读,祝大家 Happy Coding! Happy Hacking!
Reference
[1]https://greptime.com/
[2]https://docs.greptime.com/greptimecloud/integrations/otlp
[3]https://docs.anthropic.com/en/docs/claude-code/monitoring-usage#metrics
[4]https://console.greptime.cloud/
[5]https://docs.anthropic.com/en/docs/claude-code/monitoring-usage
[6]https://gist.github.com/xtang/9005e501c5df9425587d3562534d047c
关于 Greptime
Greptime 格睿科技专注于打造新一代可观测数据库,服务开发者与企业用户,覆盖从从边缘设备到云端企业级部署的多样化需求。
GreptimeDB 开源版:开源、云原生,统一处理指标、日志和追踪数据,适合中小规模 IoT,个人项目与可观测性场景;
GreptimeDB 企业版:面向关键业务,提供更高性能、高安全性、高可用性和智能化运维服务;
GreptimeCloud 云服务:全托管云服务,零运维体验“企业级”可观测数据库,弹性扩展,按需付费。
欢迎加入开源社区参与贡献与交流!推荐从带有 good first issue
标签的任务入手,一起共建可观测未来。

⭐ Star us on GitHub:https://github.com/GreptimeTeam/greptimedb
📚 官网:https://greptime.cn/
📖 文档:https://docs.greptime.cn/
🌍 Twitter:https://twitter.com/Greptime
💬 Slack:https://greptime.com/slack
💼 LinkedIn:https://www.linkedin.com/company/greptime/
往期精彩文章:



点击「阅读原文」,立即体验 GreptimeDB!




