{
  "hostname": "ser090368281166",
  "project_dir": "/opt/oracle-free-tier-grabber",
  "services": {
    "run": {
      "active": "active",
      "enabled": "enabled"
    },
    "upgrade_watch": {
      "active": "active",
      "enabled": "enabled"
    },
    "healthcheck_timer": {
      "active": "active",
      "enabled": "enabled"
    }
  },
  "healthcheck_status": {
    "checked_at": "2026-04-30T22:37:36.315739+00:00",
    "healthy": true,
    "issues": [],
    "actions_planned": [],
    "run_service": {
      "name": "oracle-free-tier-run.service",
      "active": true,
      "enabled": true,
      "main_pid": 19352,
      "log_path": "/opt/oracle-free-tier-grabber/logs/run.log",
      "log_exists": true,
      "log_age_seconds": 0.432509,
      "log_recent": true,
      "waiting_state_ok": false,
      "issues": []
    },
    "upgrade_service": {
      "name": "oracle-free-tier-upgrade-watch.service",
      "active": true,
      "enabled": true,
      "main_pid": 19315,
      "log_path": "/opt/oracle-free-tier-grabber/logs/upgrade-watch.log",
      "log_exists": true,
      "log_age_seconds": 257.130823,
      "log_recent": true,
      "waiting_state_ok": true,
      "issues": []
    },
    "instance_state": {
      "exists": false,
      "valid": true,
      "path": "/opt/oracle-free-tier-grabber/state/instance.json",
      "summary": {},
      "error": ""
    }
  },
  "instance_state": {},
  "log_tail": {
    "run.log": [
      "2026-04-30 22:26:18,482 [INFO] 第 160 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:26:58,028 [INFO] 第 161 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:27:32,620 [INFO] 第 162 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:28:31,126 [INFO] 第 163 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:29:01,738 [INFO] 第 164 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:29:39,244 [INFO] 第 165 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:30:19,772 [INFO] 第 166 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:31:12,373 [INFO] 第 167 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:32:02,968 [INFO] 第 168 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:32:41,509 [INFO] 第 169 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:33:19,022 [INFO] 第 170 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:34:13,565 [INFO] 第 171 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:35:02,271 [INFO] 第 172 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:35:59,851 [INFO] 第 173 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:36:57,332 [INFO] 第 174 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:37:35,835 [INFO] 第 175 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:38:19,528 [INFO] 第 176 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:38:54,032 [INFO] 第 177 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:39:53,614 [INFO] 第 178 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0",
      "2026-04-30 22:40:28,163 [INFO] 第 179 次探测未命中容量: OUT_OF_HOST_CAPACITY / available_count=0"
    ],
    "upgrade-watch.log": [
      "2026-04-30 09:15:39,706 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 09:23:16,741 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 20:23:45,707 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 20:30:38,736 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 20:38:11,763 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 20:45:21,790 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 20:53:28,815 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:01:24,845 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:09:11,872 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:16:31,903 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:24:01,936 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:31:47,963 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:38:57,991 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:46:24,020 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 21:54:35,043 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 22:02:12,069 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 22:09:57,096 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 22:17:22,125 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 22:25:07,152 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。",
      "2026-04-30 22:33:19,182 [INFO] 尚未检测到已创建实例，upgrade-watch 将继续等待 run 成功后再开始升配监控。"
    ],
    "healthcheck.log": [
      "2026-04-30 20:59:35,242 [INFO] 健康检查通过。",
      "2026-04-30 21:04:37,757 [INFO] 健康检查通过。",
      "2026-04-30 21:09:38,696 [INFO] 健康检查通过。",
      "2026-04-30 21:14:45,840 [INFO] 健康检查通过。",
      "2026-04-30 21:19:45,878 [INFO] 健康检查通过。",
      "2026-04-30 21:24:51,530 [INFO] 健康检查通过。",
      "2026-04-30 21:29:54,565 [INFO] 健康检查通过。",
      "2026-04-30 21:34:57,528 [INFO] 健康检查通过。",
      "2026-04-30 21:40:20,998 [INFO] 健康检查通过。",
      "2026-04-30 21:45:32,585 [INFO] 健康检查通过。",
      "2026-04-30 21:51:09,459 [INFO] 健康检查通过。",
      "2026-04-30 21:56:32,559 [INFO] 健康检查通过。",
      "2026-04-30 22:01:33,873 [INFO] 健康检查通过。",
      "2026-04-30 22:06:46,498 [INFO] 健康检查通过。",
      "2026-04-30 22:11:51,537 [INFO] 健康检查通过。",
      "2026-04-30 22:16:59,585 [INFO] 健康检查通过。",
      "2026-04-30 22:22:02,530 [INFO] 健康检查通过。",
      "2026-04-30 22:27:22,504 [INFO] 健康检查通过。",
      "2026-04-30 22:32:32,578 [INFO] 健康检查通过。",
      "2026-04-30 22:37:36,317 [INFO] 健康检查通过。"
    ]
  }
}