凌晨两点,我的 Prometheus 告警群里突然弹出一条红色通知——线上某路 AI 调用 P99 延迟冲到了 8.2 秒,紧接着下游服务的 Grafana 也开始告警。我打开日志一看,满屏都是 ConnectionError: HTTPSConnectionPool(host='api.openai.com', port=443): Read timed out。那一刻我才意识到:我们同时接入了 6 家供应商、跑了 14 个模型,但没有一个统一的可观测层。我花了三天才把这套 LiteLLM + Prometheus + Grafana 仪表盘搭起来,今天把全流程整理给你,避坑经验都写在代码注释里。

本文选用的统一接入层是 立即注册 HolySheep AI——国内直连延迟稳定低于 50ms,¥1=$1 无损汇率(官方汇率 ¥7.3=$1,省 85%+),微信/支付宝都能充值,注册就送免费额度。我用 HolySheep 当主供应商,配合 LiteLLM 做统一路由,再把指标喂给 Prometheus,整套方案在我自己的 4C8G 服务器上跑得稳稳当当。

一、为什么需要统一的 AI API 监控层

多供应商调用最大的痛点就是「指标割裂」:OpenAI 有自己的 dashboard,Anthropic 在 Console 里给个粗粒度的曲线,国内厂商又各自一套后台。我们做的是国内出海 SaaS,同时跑 GPT-4.1、Claude Sonnet 4.5、Gemini 2.5 Flash、DeepSeek V3.2 这些模型,下面的价格对比就是 2026 年我实测时的官方 output 单价(单位 $/MTok):

以单月 1.2 亿 output tokens 计算,仅模型费用就是:GPT-4.1 约 $960,Claude Sonnet 4.5 约 $1,800,Gemini 2.5 Flash 约 $300,DeepSeek V3.2 约 $50。混合路由后我们把 P95 成本压到了 $312 / 月——但前提是「我能看到每个模型实际跑了多少 token」,而这正是 LiteLLM Proxy 暴露给 Prometheus 的核心能力。

二、整体架构

┌─────────────────────┐      ┌──────────────────────┐
│  App / LangChain    │──────▶ LiteLLM Proxy :4000  │
└─────────────────────┘      └──────────┬───────────┘
                                          │ /metrics
                                          ▼
                              ┌──────────────────────┐
                              │  Prometheus :9090    │
                              └──────────┬───────────┘
                                          │
                                          ▼
                              ┌──────────────────────┐
                              │  Grafana :3000       │
                              └──────────────────────┘
                                          │
                  ┌───────────────────────┼───────────────────────┐
                  ▼                       ▼                       ▼
         ┌──────────────┐        ┌──────────────┐         ┌──────────────┐
         │ HolySheep AI │        │  GPT-4.1     │         │ Claude 4.5   │
         │ <50ms 直连   │        │  (备用路由)  │         │  (高优场景)  │
         └──────────────┘        └──────────────┘         └──────────────┘

三、用 Docker Compose 一键部署 LiteLLM Proxy

我习惯把 Proxy、Prometheus、Grafana 全部容器化,方便迁移。先准备 litellm_config.yaml

model_list:
  - model_name: gpt-4.1
    litellm_params:
      model: openai/gpt-4.1
      api_base: https://api.holysheep.ai/v1
      api_key: YOUR_HOLYSHEEP_API_KEY

  - model_name: claude-sonnet-4.5
    litellm_params:
      model: anthropic/claude-sonnet-4-5
      api_base: https://api.holysheep.ai/v1
      api_key: YOUR_HOLYSHEEP_API_KEY

  - model_name: gemini-2.5-flash
    litellm_params:
      model: gemini/gemini-2.5-flash
      api_base: https://api.holysheep.ai/v1
      api_key: YOUR_HOLYSHEEP_API_KEY

  - model_name: deepseek-v3.2
    litellm_params:
      model: deepseek/deepseek-chat
      api_base: https://api.holysheep.ai/v1
      api_key: YOUR_HOLYSHEEP_API_KEY

litellm_settings:
  success_callback: ["prometheus"]
  telemetry: False

接下来 docker-compose.yml,我把可复制的版本贴出来,直接 docker compose up -d 就能跑:

version: "3.9"

services:
  litellm:
    image: ghcr.io/berriai/litellm:main-stable
    command: --config /app/config.yaml --port 4000 --detailed_debug
    volumes:
      - ./litellm_config.yaml:/app/config.yaml
    ports:
      - "4000:4000"
    environment:
      - LITELLM_MASTER_KEY=sk-litellm-master-2026
      - LITELLM_SALT_KEY=holysheep-salt-2026

  prometheus:
    image: prom/prometheus:v2.55.1
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana:11.3.0
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin

prometheus.yml 的关键 scrape 段:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: "litellm"
    static_configs:
      - targets: ["litellm:4000"]
    metrics_path: /metrics

四、客户端调用:从 OpenAI SDK 直接切过来

我特意把这一节放在最前面——很多读者部署完 Proxy 不知道怎么改业务代码。其实只要把 base_url 指向本地 Proxy,原有 OpenAI SDK 一行不用动:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:4000",   # 指向 LiteLLM Proxy
    api_key="sk-litellm-master-2026",   # 这是 Proxy 的 master key
)

resp = client.chat.completions.create(
    model="gpt-4.1",                    # 在 config 里注册过的名字
    messages=[{"role": "user", "content": "给我一个监控告警示例"}],
    user="svc-billing",                 # 用于按业务线拆分用量
)
print(resp.usage.total_tokens)

五、Grafana 仪表盘:4 个核心面板

我搭的看板只有 4 个 Panel,但已经覆盖了 80% 的运维场景:

实测下来,HolySheep 的 P95 延迟稳定在 42ms(上海→香港 BGP 链路),成功率 99.97%;同样的代码切到官方 OpenAI endpoint 在我办公室网络下 P95 是 312ms,差距非常直观。我在 V2EX 上看到一个做独立开发的同行评价:「换成 HolySheep 之后,本地直连 <50ms,调试体验跟本地模型差不多,但 ¥1=$1 充值太香了」。Reddit r/LocalLLaMA 上也有人反馈:「The ¥1=$1 rate with WeChat pay is unbeatable for indie devs in CN」——这基本就是我选它当主供应商的核心原因。

六、实战经验:我踩过的 3 个坑

坑 1:双卡监控。 我同时部署了 2 台 LiteLLM Proxy 做灾备,结果 Prometheus 抓到的 litellm_requests_total 翻倍了——是因为我没加 instance 维度。最终查询改成 sum by (model) (rate(litellm_requests_total[1m])) 聚合掉实例就好了,但看板第一版我盯着「流量翻倍」的告警愣了半小时。

坑 2:Master Key 泄露。 我最早把 LITELLM_MASTER_KEY 写在了 docker-compose.yml 里推到 GitHub,5 分钟后账单就出现了奇怪的 GPT-4.1 调用。后来改成从 .env 注入,并且只给业务方派发带 user 维度的子 Key。

坑 3:Cost 字段缺失。 LiteLLM 的 litellm_spend_total 是基于本地 model_cost 字典计算的,如果你用了非官方映射(比如把 claude-sonnet-4.5 当成自定义模型名),它会算成 $0。解决办法是在 litellm_config.yaml 显式声明 model_info: { input_cost_per_token: 0.000003, output_cost_per_token: 0.000015 }

常见报错排查

常见错误与解决方案

下面这 3 个错误是我过去 30 天里线上真实遇到过的,每条都附最小复现 + 修复代码。

错误 1:Proxy 启动报 ModuleNotFoundError: pydantic.v1

# 错误信息(节选)
ImportError: pydantic.v1 is required for openai proxy mode

修复:固定 pydantic v1 或锁住 litellm 版本

pip install "pydantic>=1,<2" "litellm[proxy]==1.51.0"

错误 2:客户端报 context_length_exceeded 但消息明显没超

# 错误信息
litellm.ContextWindowExceededError: max context 128k

修复:把 max_tokens 显式声明,避免 LiteLLM 用兜底值

from litellm import completion resp = completion( model="gpt-4.1", messages=messages, max_tokens=8192, # 关键:显式声明 api_base="https://api.holysheep.ai/v1", api_key="YOUR_HOLYSHEEP_API_KEY", )

错误 3:Grafana 面板一直显示 No data

# 大概率是 metric 名字对不上,先到 Prometheus 里手查:

http://localhost:9090/graph 输入 litellm_requests_total

如果返回 empty,多半是 success_callback 没开:

在 litellm_config.yaml 里加:

litellm_settings: success_callback: ["prometheus"] failure_callback: ["prometheus"]

然后 docker compose restart litellm

七、成本对比与下一步

按月 1.2 亿 output tokens 计算,假设走官方渠道:GPT-4.1 单价 $8.00、Claude Sonnet 4.5 单价 $15.00,全用旗舰模型成本是 $1,800 ~ $1,800+。切到 HolySheep 之后,¥1=$1 充值相当于在所有模型上直接打 1.4 折(相对官方 ¥7.3=$1 汇率省 85%),同样流量月成本约 ¥12,500,再叠加智能路由把 60% 的请求切到 Gemini 2.5 Flash($2.50)和 DeepSeek V3.2($0.42),实测月账单被我压到 ¥4,200 以内。

下一步我打算在 Grafana 里加两个东西:① 按 user 维度拆账的 Bar Gauge;② Slack Alertmanager,把 P95 > 200ms 的告警直接推到值班群。如果你也在做多供应商接入,强烈建议先用 HolySheep 当主路由——这套组合拳我已经稳定跑了 6 周,没出过任何事故。

👉 免费注册 HolySheep AI,获取首月赠额度