综合 Lago 自托管:把用量计量与计费从支付网关里拆出来

2026-09-26 21:31:42

Lago 自托管:把用量计量与计费从支付网关里拆出来

Lago 是一个开源计量与用量计费引擎(Open Source Metering and Usage Based Billing),Go 编写,AGPLv3,GitHub 10.6k stars。仓库 getlago/lago,官网 getlago.com,文档 doc.getlago.com。它定位为 AI 产品的 monetization 基础设施,实际是一个 API-first、headless 的计费层,把用量事件到收入确认的链路收在一套系统里。

为什么把计量/定价和支付处理拆开

早期团队常直接拿 Stripe 当产品目录和计费事实源:价格、订阅、发票、催收全在支付商侧。一旦产品变成按 token、按 GPU 分钟、按 API 调用或按席位混合计费,问题就暴露了——用量事件在业务侧产生,定价规则在支付商侧,两边对不上;换支付商或新增区域收单方时,产品目录迁移成本很高。

Lago 的做法是把支付商降级为执行层。计量、定价、额度、发票、信用单据留在 Lago 内,Stripe、Adyen、GoCardless 等只负责扣款和支付状态回传。这样多支付商、多币种、多主体和客户级覆盖可以在同一套计价逻辑上做,不必把某个支付商的产品目录当作唯一事实源。代价是自托管要自己维护有状态服务和 worker,支付编排、税务(如 Avalara)等集成也要自己接。

Lago 提供两种模式:Lago Direct 给自己产品计费,Lago Embedded 给平台客户做白标计费。

数据流与核心能力

官方给出的链路是:Usage events -> Metering -> Pricing and credits -> Entitlements -> Invoices -> Payments -> Revenue。按这条链路看:

  • 事件摄入:实时事件摄入、过滤、维度、聚合、批量,以及按 transaction_id 幂等。
  • 定价:用量、周期、预付、百分比、阶梯、打包、volume、最低承诺、混合计费。
  • 额度/权益:entitlements、allowance、钱包、额度授予、充值、用量告警。
  • 发票:订阅、发票、贷项通知单、税、多币种、多主体、客户级覆盖。
  • 收款:支付商编排、重试、dunning 催收、支付状态同步。
  • 分析:用量、MRR、发票、客户和营收分析。
  • 连接栈:Salesforce、HubSpot、NetSuite、Xero、Avalara、云市场、数据仓库、webhooks。

计量对象不限于 token,还包括模型、输入输出、缓存、推理、工具调用,以及 GPU/CPU/存储等算力、API 调用、交易、席位、活跃用户或自定义事件。预付额度与自动充值、订阅含 allowance/最低承诺/超量,自助套餐和企业合同在同一系统里。

生产特性

自托管场景下比较关键的是这几条:

  • 幂等摄入:按 transaction_id 去重,重试不会重复计费。
  • 原子批量:一批里有一条无效,整批拒绝,不落任何事件。
  • 异步处理:events、billing、payments、invoices、webhooks、PDFs、alerts、analytics 由独立 worker 隔离。
  • 可观测:暴露 Prometheus 指标。
  • 部署控制:可以跑在本地、自己云或自有基础设施,有状态服务与 worker 可分离并独立扩展。
  • 安全:SOC 2 Type II,支持自托管。

自托管实例默认收集基础产品分析,不含客户 PII 或财务数据,可以 opt out。

本地跑起来

源码部署:

git clone --depth 1 https://github.com/getlago/lago.git
cd lago
echo "LAGO_RSA_PRIVATE_KEY=\"$(openssl genrsa 2048 | openssl base64 -A)\"" >> .env
docker compose up -d

自托管部署指南见 doc.getlago.com/guide/lago-self-hosted/docker#configuration。更大量级用 Helm charts 和 dedicated workers。

官方 demo 会起一个本地隔离的 Lago,发 3 个 AI 请求:5000 input tokens x $0.000002 + 1250 output tokens x $0.000008 = $0.02,然后用 curl+jq 校验用量,并重试一次事务确认幂等:

./examples/agentic-ai-demo/run.sh

UI 在 http://localhost:8080,账号 agentic-ai-demo@example.local / agentic-ai-demo-local-password。需要 Docker、curl、jq。清理:

./examples/agentic-ai-demo/run.sh --cleanup

端口坑:demo 和本地 compose 默认用 8080,如果本机已有服务占用,需要改端口映射再启动。

接口与 SDK

REST API 与 OpenAPI 是主要入口。Lago CLI(MIT)和 Lago MCP server(MIT)给 MCP agent 读写发票、用量、客户、支付、贷项通知单、优惠券等。Python 与 JS/TS Agent SDK(MIT)包裹 LLM 客户端上报 token/成本事件。Finance Assistant 是只读问答,目前 Beta。

官方客户端:Node.js(lago-javascript-client)、Python(lago-python-client)、Ruby(lago-ruby-client)、Go(lago-go-client)。

许可证:Lago 本体 AGPLv3;Agent SDK 与 MCP server 为独立仓库、MIT。

适合谁,不适合谁

适合:需要自托管、想把用量计量和定价从支付网关里拆出来的团队;做 AI/API 产品,按 token、算力、API 调用或席位混合计费;有预付额度、自动充值、订阅+超量、企业合同并存的需求;需要多支付商、多币种、多主体,或者要给平台客户做白标计费(Lago Embedded)。

不适合:只需要简单固定订阅、不涉及用量计量,且愿意完全依赖 Stripe 产品目录的团队;不想维护自托管有状态服务和 worker 的团队;没有支付编排、税务集成和财务对账人力的小团队。这种情况下,直接用支付商自带的 billing 可能更省事。

客户案例:Mistral AI 用 Lago 做 token 计量、预付额度、发票、税和收款;Groq、Synthesia、Blacksmith(CI 算力用量计费)、PayPal(Embedded)也在用。

复制全文 生成海报 Lago 用量计费 开源项目 自托管 Go

推荐文章

程序员茄子在线接单