需启用Actuator健康端点与Metrics暴露、集成Prometheus采集可视化、配置日志健康信号检测、部署OpenTelemetry Collector实现调用链追踪。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望实时掌握Hermes Agent自身的运行状态,确保其持续可靠地执行监控、日志分析与告警任务,则需启用并配置其内置的健康检查与指标暴露机制。以下是实现Hermes Agent实时状态监控的具体方法:
一、启用Actuator健康端点与Metrics暴露
该方法通过Spring Boot Actuator模块提供轻量级、标准化的运行时状态接口,可直接返回健康状态(UP/DOWN)、内存使用、线程数及HTTP请求统计等核心信息,适用于快速人工核查或脚本轮询。
1、确认Hermes Agent启动时已加载spring-boot-starter-actuator依赖,并在application.yml中配置以下内容:
2、设置management.endpoints.web.exposure.include: "health,metrics,prometheus,info,threaddump"
3、确保management.endpoint.health.show-details: "when_authorized"或"always"(根据安全策略调整)
4、重启Hermes Agent服务后,访问/actuator/health验证返回JSON中status字段为UP,并检查/actuator/metrics是否列出http.server.requests等指标名
二、集成Prometheus实现指标采集与可视化
此方案面向长期可观测性建设,利用Prometheus主动拉取Hermes Agent暴露的Micrometer指标,结合Grafana构建动态仪表盘,覆盖请求成功率、处理延迟、JVM内存、活跃线程等维度。
1、在Hermes Agent启动参数或环境变量中启用指标导出,例如添加--management.endpoints.web.exposure.include=metrics,prometheus
2、验证/actuator/prometheus端点返回内容包含http_server_requests_seconds_count{method="POST",status="200"}等格式指标行
3、在Prometheus配置文件prometheus.yml的scrape_configs下新增job:
4、指定target为Hermes Agent服务地址与端口,如targets: ['hermes-agent-svc:8080']
5、部署Grafana,添加Prometheus为数据源,并导入ID为14197的Spring Boot 3.x官方仪表板
三、配置实时日志健康信号检测
该方法不依赖外部系统,仅通过解析Hermes Agent自身输出的日志流,识别关键健康信号(如心跳日志、技能加载完成、定时任务触发记录),适用于无网络暴露权限或需嵌入已有日志平台的场景。
1、确保logback-spring.xml中启用CONSOLE和FILE双输出,并设置日志级别为INFO及以上
2、在日志中定位周期性出现的健康标识行,例如:[INFO] [Scheduler] Task 'server-health-check' executed successfully
3、使用filebeat或fluentd配置匹配规则,捕获含executed successfully且时间间隔稳定(如每30秒)的日志事件
4、当连续两次未捕获到该信号,且间隔超过<strong><font color="green">90秒</font></strong>时,触发本地告警
四、部署OpenTelemetry Collector实现调用链追踪
此方法聚焦于API调用层级的深度可观测性,通过接收Hermes Agent主动上报的Span数据,还原请求路径、识别慢接口、定位异常传播节点,尤其适用于多技能协同调用的复杂工作流场景。
1、在Hermes Agent配置中启用OTLP exporter,设置endpoint指向OpenTelemetry Collector的gRPC地址(如otel.exporter.otlp.endpoint=http://otel-collector:4317)
2、在OpenTelemetry Collector配置中定义receiver为otlp,exporter为jaeger或zipkin
3、启动Collector后,在Hermes Agent中发起一次测试调用(如hermes-cli skill invoke --name=log-analyzer --input="web-server-01")
4、访问Jaeger UI,搜索对应service.name为hermes-agent的服务,确认trace列表中存在span.kind=server且duration未超阈值的完整链路


















