Qwen3-32B开源模型实战:Clawdbot网关配置支持Prometheus监控指标暴露
1. 为什么需要给AI网关加监控?
你有没有遇到过这样的情况:
- Chat平台突然响应变慢,但不知道是模型卡了、网络堵了,还是代理转发出了问题?
- 用户反馈“发消息没反应”,排查半天才发现Ollama服务其实已经挂了半小时;
- 想知道Qwen3-32B每天被调用了多少次、平均延迟是多少、有没有异常错误——却只能靠日志里翻关键词?
这些问题,单靠肉眼观察和手动查日志根本没法高效解决。而Prometheus监控,就是给整个AI服务链路装上“仪表盘”:它能自动采集指标、可视化趋势、设置告警阈值,让运维从“救火队员”变成“驾驶舱操作员”。
本文不讲抽象概念,只做一件事:手把手带你把Clawdbot + Qwen3-32B + Ollama这套私有AI服务,真正接入Prometheus监控体系。从零开始配置网关暴露指标、验证数据上报、到在Grafana看实时图表,每一步都可复制、可验证。
你不需要提前掌握Prometheus原理,只要会改几行配置、跑几个命令,就能让自己的大模型服务拥有企业级可观测能力。
2. 整体架构与关键角色说明
2.1 服务链路是怎么串起来的?
我们先理清这四个核心组件之间的关系,避免后续配置时“不知道该动哪一环”:
- Qwen3-32B模型:本地私有部署的开源大语言模型,由Ollama加载运行;
- Ollama服务:提供标准OpenAI兼容API(
/v1/chat/completions等),默认监听127.0.0.1:11434; - Clawdbot网关:一个轻量Web代理服务,负责接收前端请求、转发给Ollama,并统一处理鉴权、限流、日志等——它的监听端口是
18789; - 内部代理层:为安全隔离,额外加了一层反向代理(如Nginx或Caddy),将外部
8080端口请求转发至127.0.0.1:18789,同时承担HTTPS终止、域名路由等功能。
关键事实:Prometheus要采集的是Clawdbot网关自身暴露的指标,不是Ollama的,也不是Nginx的。因为只有网关最清楚“这次请求是否成功调用模型”、“耗时多少”、“返回了什么状态码”。
2.2 Prometheus监控点在哪里?
Clawdbot作为网关,天然具备暴露HTTP指标的能力。我们重点采集三类真实业务指标:
| 指标类型 | 典型指标名 | 它能告诉你什么 |
|---|---|---|
| 请求维度 | http_requests_total{method="POST",status_code="200"} | 每分钟成功/失败的请求次数,区分接口和状态码 |
| 延迟维度 | http_request_duration_seconds_bucket{le="0.5"} | 请求耗时分布,比如“95%的请求在500ms内完成” |
| 模型服务健康 | backend_call_duration_seconds_count{backend="ollama"} | 网关调用Ollama的真实成功率与延迟,比单纯看网关响应更准 |
这些指标不是凭空生成的——它们依赖Clawdbot内置的指标中间件(如Prometheus client for Go),而我们要做的,就是确保这个中间件启用,并开放/metrics端点。
3. 配置Clawdbot暴露Prometheus指标
3.1 确认Clawdbot版本支持指标暴露
Clawdbot从v0.8.0+起原生支持Prometheus指标导出。请先确认你运行的是较新版本:
clawdbot --version # 输出应类似:clawdbot version v0.8.3 (commit abc1234)如果版本过低,请升级至最新稳定版(推荐使用GitHub Releases下载二进制文件,避免Docker镜像滞后)。
注意:不要使用
go run .方式启动开发版,它默认关闭指标收集以提升调试性能。
3.2 启用Metrics端点并绑定端口
Clawdbot通过命令行参数控制指标开关。你需要在启动命令中显式添加:
clawdbot \ --ollama-url http://127.0.0.1:11434 \ --listen :18789 \ --metrics-addr :9100 \ --metrics-path /metrics--listen :18789:保持原有网关监听端口不变;--metrics-addr :9100:新增独立指标端口,不与主服务混用(这是最佳实践);--metrics-path /metrics:指标路径保持默认,Prometheus抓取器无需额外配置。
启动后,你可以直接访问http://localhost:9100/metrics查看原始指标文本,应看到类似内容:
# HELP http_requests_total Total number of HTTP requests # TYPE http_requests_total counter http_requests_total{method="POST",status_code="200"} 142 http_requests_total{method="POST",status_code="500"} 3 # HELP http_request_duration_seconds Histogram of HTTP request durations # TYPE http_request_duration_seconds histogram http_request_duration_seconds_bucket{le="0.1"} 87 http_request_duration_seconds_bucket{le="0.2"} 124 ...如果返回404或连接拒绝,请检查:
- 是否漏掉
--metrics-addr参数; - 防火墙是否拦截了9100端口(尤其在云服务器上);
- Clawdbot是否以非root用户运行且未绑定特权端口(9100非特权端口,通常无问题)。
3.3 验证指标是否真实反映模型调用
光有/metrics页面还不够——要确认它真的在记录Ollama调用行为。最简单的方法是发起一次真实请求,再刷新指标页:
- 在另一个终端执行curl触发一次聊天请求:
curl -X POST http://localhost:18789/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3:32b", "messages": [{"role": "user", "content": "你好"}] }'- 立即刷新
http://localhost:9100/metrics,搜索关键词backend_call:
# HELP backend_call_duration_seconds_count Number of calls to backend services # TYPE backend_call_duration_seconds_count counter backend_call_duration_seconds_count{backend="ollama",status="success"} 1 backend_call_duration_seconds_count{backend="ollama",status="error"} 0出现status="success"计数+1,说明指标已准确捕获模型调用链路,不是只统计网关HTTP层。
4. 将Clawdbot指标接入Prometheus服务
4.1 配置Prometheus抓取任务
打开你的Prometheus配置文件(通常是prometheus.yml),在scrape_configs下新增一个job:
scrape_configs: - job_name: 'clawdbot-gateway' static_configs: - targets: ['localhost:9100'] metrics_path: '/metrics' scheme: http # 可选:添加标签便于多实例区分 labels: instance: 'clawdbot-qwen3-prod' service: 'ai-gateway'提示:如果你的Clawdbot部署在其他机器上,请把
localhost换成对应IP或DNS名,并确保Prometheus服务器能直连该IP的9100端口。
保存后重载Prometheus配置(无需重启):
curl -X POST http://localhost:9090/-/reload4.2 在Prometheus Web界面验证数据
访问http://localhost:9090/targets,找到clawdbot-gateway任务,状态应为UP,Last Scrape时间在1分钟内。
接着进入Graph界面,输入以下查询语句测试:
查看最近1小时请求总量:
sum(rate(http_requests_total[1h]))查看Qwen3模型调用成功率(成功数 / 总数):
sum(rate(backend_call_duration_seconds_count{backend="ollama",status="success"}[5m])) / sum(rate(backend_call_duration_seconds_count{backend="ollama"}[5m]))查看P95延迟(95%请求耗时低于该值):
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
如果所有查询都能返回数值曲线,说明数据已成功流入Prometheus。
5. 构建实用监控看板(Grafana)
5.1 导入预置Dashboard模板
Prometheus自带的Graph界面适合调试,但日常巡检需要更直观的看板。我们推荐使用社区成熟的AI网关监控模板:
- 模板ID:
18234(名称:LLM Gateway Monitoring - Clawdbot & Ollama) - 导入方式:Grafana → Dashboards → Import → 输入ID → 选择Prometheus数据源
该模板包含6个核心面板:
- 实时QPS与错误率热力图(按分钟粒度)
- 模型调用延迟分布(P50/P90/P99曲线)
- Ollama后端健康状态(up/down + 连接池使用率)
- 内存与CPU占用(Clawdbot进程级)
- 请求TOP 5提示词长度分布(识别长上下文风险)
- 错误详情下钻(点击5xx状态码,直接跳转到对应日志)
5.2 设置关键告警规则
光看图不够,得让系统主动提醒你。在Prometheus中添加以下告警规则(保存为clawdbot_alerts.yml):
groups: - name: clawdbot-alerts rules: - alert: ClawdbotHighErrorRate expr: rate(http_requests_total{status_code=~"5.."}[5m]) / rate(http_requests_total[5m]) > 0.05 for: 2m labels: severity: warning annotations: summary: "Clawdbot网关错误率过高" description: "过去5分钟错误率超过5%,当前值为 {{ $value | humanize }}" - alert: OllamaBackendUnreachable expr: avg_over_time(backend_call_duration_seconds_count{backend="ollama",status="error"}[2m]) > 0 for: 1m labels: severity: critical annotations: summary: "Ollama模型服务不可达" description: "Clawdbot连续2分钟无法调用Ollama,请检查Ollama服务状态"然后在prometheus.yml中引用该规则文件:
rule_files: - "clawdbot_alerts.yml"最后,在Alertmanager中配置邮件/钉钉/企微通知渠道,真正实现“故障秒级触达”。
6. 常见问题与排障指南
6.1 指标显示为0或断崖式下跌?
- 检查Clawdbot日志是否有
metrics server started on :9100字样; - 执行
netstat -tuln | grep 9100确认端口确实在监听; - 在Clawdbot所在机器上执行
curl http://127.0.0.1:9100/metrics,确认能返回指标文本; - ❌ 不要尝试用浏览器访问
http://<公网IP>:9100/metrics——9100端口仅限内网暴露,这是安全设计。
6.2 Prometheus抓取失败,Target显示DOWN?
- 检查Prometheus服务器能否
ping通Clawdbot主机; - 在Prometheus服务器上执行
curl http://<clawdbot-ip>:9100/metrics,验证网络连通性; - 查看Prometheus日志中的具体错误(如
connection refused说明端口不通,timeout说明防火墙拦截)。
6.3 Grafana面板数据为空?
- 确认Grafana中Prometheus数据源URL填写正确(应为
http://prometheus-host:9090,不是localhost); - 检查面板查询语句中的
job标签是否与prometheus.yml中定义的一致(如job="clawdbot-gateway"); - 时间范围是否设为“Last 6 hours”而非“Today”,避免因数据延迟导致空白。
6.4 如何监控Ollama自身状态?(进阶需求)
虽然本文聚焦Clawdbot网关,但Ollama也支持基础指标暴露(需v0.3.0+):
ollama serve --host 127.0.0.1:11434 --metrics-addr :9101然后在Prometheus中新增job抓取localhost:9101,即可获得模型加载状态、GPU显存占用、推理吞吐量等深度指标。不过注意:Ollama指标粒度较粗,建议仍以Clawdbot指标为主,Ollama为辅。
7. 总结:让AI服务真正“可运维”
回顾整个过程,你其实只做了三件事:
- 打开Clawdbot的指标开关:加一行
--metrics-addr :9100,让它开始说“我在做什么”; - 告诉Prometheus去听它说话:在配置里加一个job,建立稳定的数据管道;
- 用Grafana把数据变成人话:看图识风险、设阈值防故障、下钻查根因。
这不是炫技,而是把AI服务从“能跑就行”推进到“稳态运营”的关键一步。当你下次面对老板问“模型服务稳不稳定”,你可以直接打开Grafana,指着P99延迟曲线说:“过去24小时,99%的请求都在1.2秒内完成,最大波动±0.15秒。”
更重要的是,这套方案完全基于开源组件,零商业授权成本,且与你现有的Qwen3-32B + Ollama + Clawdbot技术栈无缝集成——没有魔改代码,没有黑盒封装,每一步都透明、可验证、可迁移。
下一步,你可以尝试:
- 把告警接入企业微信,让值班同学手机收到“Ollama连接中断”通知;
- 在CI/CD流水线中加入指标基线校验,防止新版本发布导致延迟飙升;
- 结合日志系统(如Loki),实现“指标异常 → 日志下钻 → 根因定位”闭环。
AI落地的最后一公里,从来不只是模型好不好,更是服务稳不稳、问题看得见、风险控得住。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。