📦 Pilot Heartbeat Monitor — 心跳监控

v1.0.0

通过定期心跳监控代理健康状况,使用基于超时的检测来识别故障代理,并触发自动任务重新分配或重新选举。适用于 swarm 成员健康监测、故障转移和负载均衡场景。

0· 80·0 当前·0 累计
by @teoslayer (Calin Teodor)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/9
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的行为(使用 pilotctl 发布和读取心跳以及探测对等节点)与其声明的用途相匹配,但说明中引用了多个未声明的环境变量,并且假设了注册表/认证行为而没有记录所需的凭据或信任边界。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/9

初始版本

无害

安装命令

点击复制
官方npx clawhub@latest install pilot-heartbeat-monitor
🇨🇳 镜像加速npx clawhub@latest install pilot-heartbeat-monitor --registry https://cn.longxiaskill.com

技能文档

通过定期心跳监控代理健康状况,并使用基于超时的检测来识别故障。

命令

向对等节点发送心跳

pilotctl --json publish "registry-hostname" "heartbeat:$SWARM_NAME" \
  --data "{\"agent\":\"$AGENT_ID\",\"timestamp\":\"$(date -u +%s)\",\"status\":\"alive\"}"

识别故障代理

TIMEOUT=30
CURRENT_TIME=$(date -u +%s)
FAILED_AGENTS=$(pilotctl --json inbox \
  | jq --arg now "$CURRENT_TIME" --arg timeout "$TIMEOUT" \
  '[.messages[] | select(.topic == "heartbeat:'$SWARM_NAME'") | {agent: .payload.agent, last_seen: .payload.timestamp}] | group_by(.agent) | map(select(($now | tonumber) - (map(.last_seen) | max) > ($timeout | tonumber))) | .[].agent')

通过直接 ping 验证故障

for agent in $FAILED_AGENTS; do
  AGENT_ADDR=$(pilotctl --json peers | jq -r '.[] | select(.node_id == "'$agent'") | .address')
  PING_RESULT=$(pilotctl --json ping "$AGENT_ADDR" --count 3 --timeout 2s)
  LOSS=$(echo "$PING_RESULT" | jq -r '.packet_loss_pct')
  if [ "$LOSS" = "100" ]; then
    echo "Agent $agent CONFIRMED DOWN"
  fi
done

工作流示例

工作池的健康监控脚本,支持自动任务重新分配:

#!/bin/bash
SWARM_NAME="worker-pool"
HEARTBEAT_INTERVAL=5
FAILURE_TIMEOUT=15
REGISTRY_HOST="registry.example.com"

# 后台:发送自身心跳 ( while true; do pilotctl --json publish "$REGISTRY_HOST" "heartbeat:$SWARM_NAME" \ --data "{\"agent\":\"$AGENT_ID\",\"timestamp\":\"$(date -u +%s)\"}" sleep $HEARTBEAT_INTERVAL done ) &

# 监控对等节点心跳 while true; do CURRENT_TIME=$(date -u +%s) # 检测超时并触发恢复 # ... sleep $HEARTBEAT_INTERVAL done

依赖项

需要 pilot-protocol 技能、jq 和 bc。

数据来源:ClawHub ↗ · 中文优化:龙虾技能库