14.8 健康检查

健康检查系统持续监控 OpenClaw macOS 应用的运行状态,确保各组件正常工作。

概述

健康检查系统定期验证应用的核心组件状态,包括 Gateway 连接、IPC 通信、系统资源等。检查结果会在菜单栏显示,并通过控制通道分发给智能体。

检查项目

Gateway 健康

  • WebSocket 连接状态
  • 消息队列大小
  • 平均响应延迟
  • 连接数量
  • 错误率统计

IPC 健康

  • 进程间通信可达性
  • 消息传递延迟
  • 队列积压情况
  • 通道连接状态

系统资源

  • CPU 使用率
  • 内存使用量
  • 磁盘空间
  • 网络连接
  • 文件描述符

权限检查

  • 辅助功能权限
  • 屏幕录制权限
  • 文件系统访问
  • 网络权限

健康状态

状态级别

enum HealthStatus {
  case healthy      // 健康
  case degraded     // 降级
  case unhealthy    // 不健康
  case unknown      // 未知
}

状态判定

  • Healthy: 所有检查项通过
  • Degraded: 部分检查项警告
  • Unhealthy: 关键检查项失败
  • Unknown: 无法完成检查

配置

基本配置

{
  "healthCheck": {
    "enabled": true,
    "interval": 30000,        // 检查间隔(毫秒)
    "timeout": 5000,          // 超时时间
    "retries": 3              // 失败重试次数
  }
}

阈值配置

{
  "healthCheck": {
    "thresholds": {
      "cpu": {
        "warning": 70,        // CPU 使用率警告线(%)
        "critical": 90        // CPU 使用率告警线(%)
      },
      "memory": {
        "warning": 80,        // 内存使用率警告线(%)
        "critical": 95        // 内存使用率告警线(%)
      },
      "latency": {
        "warning": 100,       // 延迟警告线(ms)
        "critical": 500       // 延迟告警线(ms)
      }
    }
  }
}

检查项配置

{
  "healthCheck": {
    "checks": {
      "gateway": true,
      "ipc": true,
      "resources": true,
      "permissions": true,
      "canvas": false
    }
  }
}

使用方法

查看健康状态

# 查看整体健康状态
openclaw health

# 查看详细检查结果
openclaw health --verbose

# 查看特定组件
openclaw health --component gateway

执行健康检查

# 立即执行检查
openclaw health check

# 执行特定检查项
openclaw health check --item gateway

# 执行并等待结果
openclaw health check --wait

查看历史记录

# 查看检查历史
openclaw health history

# 查看最近 N 次检查
openclaw health history --last 10

# 导出历史数据
openclaw health history --export health.json

菜单栏显示

显示规则

  • 健康状态仅在空闲时显示
  • Main 会话活动时优先显示工作状态
  • 使用图标颜色表示健康程度:
    • 绿色 - 健康
    • 黄色 - 降级
    • 红色 - 不健康
    • 灰色 - 未知

状态文本

# 健康状态
Idle · Health: OK

# 降级状态
Idle · Health: Degraded (High CPU)

# 不健康状态
Idle · Health: Unhealthy (Gateway Down)

告警与通知

告警配置

{
  "healthCheck": {
    "alerts": {
      "enabled": true,
      "channels": ["menubar", "notification", "log"],
      "severity": ["critical", "warning"]
    }
  }
}

通知方式

  • 菜单栏: 状态文本和图标颜色
  • 系统通知: macOS 通知中心
  • 日志: 记录到诊断日志
  • 控制通道: 推送给智能体

故障排查

Gateway 不健康

# 检查 Gateway 状态
openclaw gateway status

# 重启 Gateway
openclaw gateway restart

# 查看错误日志
./scripts/clawlog.sh --category Gateway --level error

资源使用过高

# 查看资源使用
openclaw health resources

# 查看进程列表
ps aux | grep openclaw

# 监控资源变化
openclaw health monitor --interval 5

权限问题

# 检查权限状态
openclaw health permissions

# 打开系统设置
openclaw permissions open

最佳实践

监控策略

  • 设置合理的检查间隔(30-60秒)
  • 配置适当的阈值
  • 启用关键组件检查
  • 定期查看健康历史
  • 及时响应告警

性能优化

  • 避免过于频繁的检查
  • 禁用非必需检查项
  • 使用异步检查
  • 缓存检查结果

问题预防

  • 监控趋势变化
  • 设置预警阈值
  • 定期审查日志
  • 保持系统更新