配置可观测性

本指南介绍如何对跨任务运行的 Holon 守护进程进行全局监控。如果你只需要了解某项具体目标的推进进度或最终成果,请先参阅观察 Agent 工作。

前置条件

修改守护进程配置前先安排好重启窗口。将 Token 保存在凭据存储或挂载的 Secret 文件中。示例中的 Collector 监听在 0.0.0.0:4318;若在本地测试请绑定至 Loopback,或在启动前限制其网络访问范围。

1. 启动测试 Collector

使用示例配置的副本,并根据需要调整绑定地址:

otelcol-contrib --config docs/website/assets/observability/otel-collector.yaml

该示例接收端口 4318 上的 OTLP/HTTP JSON 请求,并将收到的 Trace 打印至调试输出。生产环境中应替换为真实的后端导出器。

2. 启用守护进程的 Trace 导出

在 <HOLON_HOME>/config.json 中配置导出器:

{
  "observability": {
    "traces": {
      "exporter": "otlp_http",
      "endpoint": "http://127.0.0.1:4318/v1/traces",
      "protocol": "http_json",
      "sample_ratio": 1.0
    }
  }
}

安全重启守护进程,并检查导出器启动日志:

holon daemon status
holon daemon logs | grep -i otel

3. 运行测试调用并验证 Trace

向测试 Agent 发送一个简单的请求:

holon run --agent observer "用一句话解释什么是追踪(Trace)。不要修改任何文件。"

检查 Collector 日志。你应该能看到代表该次交互轮次的 Span 以及对应的工具调用记录。Trace 的成功导出仅证明遥测链路通畅,并不等于该次业务目标的成果已经得到人工验收。

4. 抓取受保护的指标端点(Metrics)

Holon 在管理端口上暴露 OpenMetrics 指标端点。该端点需要携带 Bearer Token 认证。

在 Prometheus 中配置抓取作业:

scrape_configs:
  - job_name: "holon"
    scrape_interval: 15s
    scheme: http
    static_configs:
      - targets: ["127.0.0.1:7878"]
    metrics_path: "/metrics"
    authorization:
      type: Bearer
      credentials: "YOUR_HOLON_CONTROL_TOKEN"

启动 Prometheus 并验证指标抓取状态:

curl -H "Authorization: Bearer $HOLON_CONTROL_TOKEN" http://127.0.0.1:7878/metrics | grep holon_

输出应包含以 holon_ 为前缀的指标系列,例如请求计数器、活跃任务数与导出器状态。

5. 配置仪表盘与告警

将仓库提供的 Grafana 示例仪表盘(docs/website/assets/observability/grafana-dashboard.json)导入你的监控系统。

重点监控指标包括:

遥测链路的失败不会阻断业务交互,但应及时排查告警以防监控盲区。

另见