30 分钟搭好 Hermes Agent 性能监控闭环

发布时间:2026/8/29 8:49:59
30 分钟搭好 Hermes Agent 性能监控闭环 30 分钟搭好 Hermes Agent 性能监控闭环【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agentHermes Agent 是一款内置学习闭环与多平台网关的 AI Agent 框架。这篇文章带你基于 Prometheus、Grafana 与 Alertmanager 搭出一套 Hermes Agent 性能监控体系暴露指标、可视化、自动告警一路推进到可上线的生产配置。监控的对象就是这些在 Cron、Telegram、Discord 等通道里并行跑的会话——只有把请求和资源状态看清楚出问题时才能快速定位到具体环节。先分清组件职责监控体系里谁干什么动手前先看分工四个组件各管一段配置文件别放错地方组件在体系中的职责关键配置文件Hermes Agent带 vLLM 后端暴露/metrics指标端点启动参数如--enable-metricsPrometheus定时抓取指标、存储时序数据prometheus.ymlGrafanaPromQL 查询、渲染仪表盘数据源配置 仪表盘 JSONAlertmanager评估告警规则、发送通知alertmanager.ymlrules.yml项目内置的 agent/monitoring/ 模块已包含网关健康导出与 OTLP 上报能力本文在它之上补一条标准的 Prometheus 采集链路。阶段一拿到指标——让 /metrics 端点返回 200为什么做这步Prometheus 只能收集服务愿意暴露的数据这一步不到位后面全是空中楼阁。完成后你能得到curl访问/metrics返回 200。 启动 vLLM 后端时加上这两个参数vllm serve meta-llama/Llama-3-8B-Instruct \ --enable-metrics \ --metrics-port 9090验证指标接口是否可用curl -s -o /dev/null -w %{http_code} http://localhost:9090/metrics # 输出 200 即表示接口就绪Prometheus 抓取目标怎么配把抓取配置指向 9090 端口写进prometheus.ymlscrape_configs: - job_name: hermes-agent static_configs: - targets: [localhost:9090] metrics_path: /metrics scrape_interval: 15sPrometheus 启动后在 Targets 页面确认状态变绿Prometheus 指标集成就算完成了。阶段二看到图表——搭一块含 5 个核心面板的 Grafana 仪表盘为什么做这步裸指标只是数字你要看的是趋势和分位数。完成后你能得到一块 5 面板的仪表盘吞吐量、延迟、GPU 缓存一屏掌握。先添加 Prometheus 数据源再新建 Grafana 仪表盘逐个添加下面 5 个面板面板PromQL 查询请求成功率sum(rate(vllm_request_success_total[5m]))首 token 时间 p50histogram_quantile(0.5, sum by (le) (rate(vllm_time_to_first_token_seconds_bucket[5m])))首 token 时间 p99histogram_quantile(0.99, sum by (le) (rate(vllm_time_to_first_token_seconds_bucket[5m])))GPU 缓存使用率vllm_gpu_cache_usage_perc活跃请求数vllm_num_requests_runninghistogram_quantile说白了服务端不存单次延迟值只存落在各区间的请求计数这个函数从区间分布里反推出 p50、p99 这类分位数。阶段三告警联动——写一条能模拟触发的 Alertmanager 告警规则为什么做这步仪表盘不是 7x24 有人盯的告警让系统主动找你。完成后你能得到至少 1 条可以模拟触发并验证的告警规则。最小可用告警规则模板把第一条规则写进rules.yml结构分两层expr决定“何时触发”for决定“持续多久才算数”groups: - name: hermes_agent_alerts rules: - alert: HighErrorRate expr: sum(rate(vllm_request_failure_total[5m])) 0.05 for: 2m labels: severity: critical annotations: summary: 错误率超过 5%同文件再补一条延迟规则- alert: SlowFirstToken expr: histogram_quantile(0.99, sum by (le) (rate(vllm_time_to_first_token_seconds_bucket[5m]))) 2 for: 5m labels: severity: warning annotations: summary: P99 首 token 延迟超过 2 秒 模拟触发把第一条的阈值临时改成 0等一分钟后到 Alertmanager 界面看规则变 firing验证完改回去。通知渠道邮件、IM、值班之后按需挂到alertmanager.yml即可这里只验证触发链路。频繁查询的复杂表达式可以用 recording rules 预计算并存储结果——相当于让 Prometheus 定时把“重活”算好Grafana 查询更快。阶段四生产部署——收口成一份可直接上线的配置为什么做这步四个容器手动逐个启动很难维护写进 Compose 才能一条命令复现。完成后你能得到一份可直接上线的部署配置。docker-compose.yml前半段业务与采集services: hermes-agent: image: hermes-agent:latest command: --enable-metrics --metrics-port 9090 ports: - 8000:8000 - 9090:9090 prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - 9091:9090后半段加可视化与告警。仓库根目录自带Dockerfile你可以用它自行构建hermes-agent镜像grafana: image: grafana/grafana ports: - 3000:3000 volumes: - grafana-data:/var/lib/grafana alertmanager: image: prom/alertmanager volumes: - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml ports: - 9093:9093 volumes: grafana-data:上线前检查清单与故障速查表上线前逐项打勾各目标/metrics用curl访问返回 200Prometheus Targets 页面状态为 UP仪表盘 5 个面板全部有数据时间轴覆盖最近 1 小时至少 1 条告警规则经模拟触发能从 firing 走到 resolvedAlertmanager 通知渠道能收到一条测试消息prometheus.yml、rules.yml、docker-compose.yml均已纳入版本管理出问题时按表排查现象可能原因处理Prometheus 目标 DOWN端口不一致或指标服务未启动curl目标端口核对--metrics-port参数面板 No DataPromQL 指标名与实际不符用 Explore 搜vllm_前缀确认真实指标名告警一直不触发阈值过高或for过久临时调低阈值验证并在 Alertmanager 界面看规则状态告警触发了却没通知alertmanager.yml通知渠道未生效用 Alertmanager 界面发测试通知查看报错信息【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考