报警系统
报警规则
| 触发条件 | 通知对象 | 自动操作 |
|---|---|---|
| 单用户日用量 > 80% | 用户邮件 + 抄管理员 | 无 |
| 单用户日用量 > 100% | 管理员 | 自动限流 |
| 部门月用量 > 预算 90% | 管理员 | 无 |
| API 错误率 > 5% | 运维 | 无 |
| 节点离线 > 1分钟 | 运维 | 尝试自动重启 |
通知渠道
- 邮件:通过 Google Workspace Gmail API
- Telegram Bot:即时推送(已有基础设施)
- 企业微信/DingTalk:Webhook 接入
- GCP Cloud Monitoring:可接 PagerDuty
报警示例
用量超 80% 邮件模板
主题:[SayClaw] 您的 AI 用量已达 80%
您好,张三:
您今日的 AI Token 用量已达到配额的 80%:
已使用:80,000 / 100,000 tokens
如需调整配额,请联系管理员。
如有疑问,请联系 [email protected]
实现方案
# LiteLLM 预算回调
class BudgetAlertCallback(CustomLogger):
async def async_log_success_event(self, kwargs, response, ...):
user = kwargs.get("user")
usage_pct = await get_user_usage_pct(user)
if usage_pct >= 1.0:
await rate_limit_user(user)
await notify_admin(user, "超标限流")
elif usage_pct >= 0.8:
await notify_user(user, f"用量已达 {usage_pct*100:.0f}%")