Architecture: - openclaw.plugin.json: Plugin manifest with config schema - index.mjs: Plugin entry, lifecycle hooks (gateway:start/stop) - sidecar/server.mjs: Independent Node process for telemetry Features: - Collects system metrics (CPU, memory, disk, load, uptime) - Collects OpenClaw status (version, agents) - HTTP heartbeat to HarborForge Monitor - Config via ~/.openclaw/openclaw.json - Sidecar auto-starts/stops with Gateway Config options: - enabled, backendUrl, identifier - challengeUuid (required, from Monitor registration) - reportIntervalSec, httpFallbackIntervalSec - logLevel Provides tool: harborforge_monitor_status
49 lines
1.4 KiB
JSON
49 lines
1.4 KiB
JSON
{
|
|
"id": "harborforge-monitor",
|
|
"name": "HarborForge Monitor",
|
|
"version": "0.1.0",
|
|
"description": "Server monitoring plugin for HarborForge - streams telemetry to Monitor",
|
|
"entry": "./index.mjs",
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Enable the monitor plugin"
|
|
},
|
|
"backendUrl": {
|
|
"type": "string",
|
|
"default": "https://monitor.hangman-lab.top",
|
|
"description": "HarborForge Monitor backend URL"
|
|
},
|
|
"identifier": {
|
|
"type": "string",
|
|
"description": "Server identifier (auto-detected from hostname if not set)"
|
|
},
|
|
"challengeUuid": {
|
|
"type": "string",
|
|
"description": "Registration challenge UUID from Monitor"
|
|
},
|
|
"reportIntervalSec": {
|
|
"type": "number",
|
|
"default": 30,
|
|
"description": "How often to report metrics (seconds)"
|
|
},
|
|
"httpFallbackIntervalSec": {
|
|
"type": "number",
|
|
"default": 60,
|
|
"description": "HTTP heartbeat interval when WS unavailable"
|
|
},
|
|
"logLevel": {
|
|
"type": "string",
|
|
"enum": ["debug", "info", "warn", "error"],
|
|
"default": "info",
|
|
"description": "Logging level"
|
|
}
|
|
},
|
|
"required": ["challengeUuid"]
|
|
}
|
|
}
|