LLMOps监控指标:token消耗、幻觉率

LLMOps 监控的关键不是只看模型响应快不快,而是把成本、质量和工具链路一起盯住。
本文围绕 token 消耗、幻觉率、工具调用成功率三个核心指标,讲清楚数据从哪来、怎么算、怎么可视化,以及最容易踩的坑,让零基础运维也能独立搭出一套可用的监控面板。

这三个指标分别暴露什么问题

先弄清每个指标的业务含义,监控才不会变成单纯的数字展示。

  • token 消耗:代表调用大模型的成本信号。通常拆成输入 token 和输出 token,按模型单价换算成费用。如果消耗突然飙高,常见原因是循环调用、日志被当成上下文回传,或者某条业务在反复重试。
  • 幻觉率:指模型生成内容与事实不一致的比例,属于质量信号。这个指标没有统一算法,需要结合业务定义,比如用人工抽检、答案相似度对比,或让强模型给弱模型打分来估算。
  • 工具调用成功率:大模型在回答过程中会调用搜索、计算器、内部 API 等工具,这个指标统计的是工具调用成功次数占总调用次数的比例。成功率低,往往说明工具接口不稳定,或者模型生成的参数格式不符合工具要求。

数据从哪来:先把关键事件写进日志

无论用什么监控工具,第一步都是采集原始数据。
推荐在 API 网关或 LLM 代理层埋点,每完成一次请求就输出一条结构化日志。

以下是一条 JSON 日志示例:

{
  "request_id": "a3f5c8",
  "timestamp": "2025-06-01T10:15:00Z",
  "model": "gpt-4o-mini",
  "session_id": "user-9527",
  "usage": {
    "prompt_tokens": 1200,
    "completion_tokens": 356,
    "total_tokens": 1556
  },
  "tool_calls": [
    {
      "name": "search_web",
      "status": "success",
      "duration_ms": 832
    }
  ],
  "hallucination_score": 0.02
}

实际部署时,可以用 Filebeat 或 Fluentd 把日志转发到 Elasticsearch、Loki 或 ClickHouse。
如果不想额外搭建存储,也可以直接让应用代码把指标推到 Prometheus Pushgateway。

指标怎么算:用 Prometheus 暴露自定义指标

以 Python 为例,使用 prometheus_client 库暴露指标。
建议在应用进程内注册以下指标:

from prometheus_client import Counter, Gauge, Histogram

TOKEN_USAGE = Counter("llm_tokens_total", "Token usage counters", ["type", "model"])
TOOL_CALLS = Counter("llm_tool_calls_total", "Tool call result counters", ["tool", "status"])
HALLUCINATION_GAUGE = Gauge("llm_hallucination_ratio", "Estimated hallucination ratio")

每次模型响应返回后,更新对应指标:

TOKEN_USAGE.labels(type="prompt", model=model).inc(usage["prompt_tokens"])
TOKEN_USAGE.labels(type="completion", model=model).inc(usage["completion_tokens"])
TOOL_CALLS.labels(tool="search_web", status="success").inc()
HALLUCINATION_GAUGE.set(score)

然后在 Prometheus 的 scrape_configs 中加上这个应用的服务发现地址。
这样就能通过 PromQL 查询到指标,比如工具调用成功率:

sum(rate(llm_tool_calls_total{status="success"}[5m]))
/
sum(rate(llm_tool_calls_total[5m]))

用 Grafana 做面板和告警

数据进了 Prometheus 后,打开 Grafana,添加 Prometheus 数据源,然后创建 Dashboard。

三个必加的面板:

  1. Token 消耗趋势:用 sum(rate(llm_tokens_total[1h])) by (type),折线图展示输入、输出和总的 token 速率。
  2. 幻觉率波动:直接用 llm_hallucination_ratio 画时间序列,配合人工标注事件做对比。
  3. 工具调用成功率:用上面给的 PromQL 公式,设置为百分比单位,低于 90% 时颜色变红。

告警规则同样在 Grafana 里配置,也可以直接写进 Prometheus 的 alert 规则。
举一个简单例子:连续 5 分钟工具调用成功率低于 90%,触发 Warning;
token 消耗速率超过前一天同期均值 2 倍,触发 Critical。
告警通知建议接到钉钉或企业微信机器人,方便第一时间处理。

避坑说明与验证方法

监控搭好不代表数据可靠,这几个坑最容易误导判断:

  • token 统计别漏单位。有的接口返回 token,有的返回字符数,换算错误会让成本预估差很多。
  • 幻觉率别只依赖模型自评。模型自己打分往往偏高,必须结合人工抽检或外部证据,先定义“幻觉”的落地标准。
  • 工具调用失败要拆两层看。是工具接口本身 500,还是模型给的参数格式不对?分别打上不同状态码,否则后续排查分不清责任。

验证整个链路时,可以手动发送一条测试请求,故意让工具调用失败一次,观察 Grafana 面板是否在 1-2 分钟内更新,再检查告警是否触发。
如果面板没变化,优先看 Prometheus target 状态和日志是否正常写入。

如果你正在处理 LLMOps 监控指标中的 token 消耗、幻觉率、工具调用成功率问题,建议按本文步骤从日志埋点做起,再逐步加告警和可视面。
遇到异常时先回看数据源是否完整,再调整计算口径,比盲目改代码更高效。

分享到:
上一篇
RAG防止文档泄露,文档级权限过滤
下一篇
私有知识库文件上传接口,病毒扫描、文件类型校验安全
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意