Files
shiroko-monitor/public/status.json
T
tamakyi d2aa0a1163 feat: v0.12.1 —— Worker 支持 UptimeRobot + 管理端远程访问 + 前后端分离
起因:核实「管理端在 Cloudflare 上是否有效」时发现一个更要紧的问题 ——
Worker 完全没有 UptimeRobot 同步能力(runChecks 的探测目标只有 config.monitors)。
而实际配置是 dataFilter=uptimerobot,也就是说直接部署到 Worker 面板会是空的:
它探测 8 个本地条目,而真正在监控的 6 个 UR 目标它根本不认识。

① Worker 支持 UptimeRobot(Step 1)
- edge/cloudflare/uptimerobot.js(新增):Workers 版 UR 只读数据源,
  与 prober/node/lib/uptimerobot.js 同一套语义(状态映射/ratios 解析/故障原因)
- runChecks 的探测集合扩展为「自建目标 + UR 镜像目标」;UR 目标只拉取不探测,
  采用其状态并补齐本地 daily 分桶
- probeScope 与 dataFilter 解耦(与本地探针同语义):config 范围不拉 UR,
  uptimerobot 范围不探测本地
- 同步失败时标记 sources.uptimerobot.ok=false 并保留上次数据,
  绝不把目标判为离线或从面板消失;UR 侧删除的监控自动清理
- 快照新增 probeScope;UR 目标带 meta(面板区分自建/外部)与 uptimeRatios

② 管理端远程访问(Step 2)
- settings.admin.allowRemote:探针默认只监听 127.0.0.1,显式打开才监听全网卡,
  启动日志就此告警。这是 Cloudflare Tunnel 的安全前提(已实测两种行为)
- edge/cloudflare/tunnel.yml(新增):命名隧道配置,只放行
  ^/(admin|api/admin/.*|assets/.*)$,其余 404 —— 不把公开面板一起挂到公网

③ 前后端分离(Step 3)
- Worker 侧 /admin 与 /api/admin/* 显式返回 403 + 指向文档的提示,
  而非默默落到静态资源变成 404,确保边缘侧没有任何可写面

测试:新增 scripts/verify-worker.cjs(36 项)—— 把 Worker 以 data: URL 动态载入以
绕开 cloudflare:sockets,注入假 KV/静态资源/UptimeRobot 服务器,
不需要 wrangler 也不需要联网。全项目 8 套 310 项全部通过。

过程中抓到两个真 bug:
1. UR 同步失败的降级路径引用了不含 meta 的旧对象,导致 name/url 为 undefined、
   UR 目标从面板上消失
2. stats.total 按 config.monitors.length 计数,在 probeScope=uptimerobot 时
   与实际参与的目标数不符

另有一条测试夹具教训:内存版 KV 必须实现 get(key, 'json') 的类型参数
(真实 Workers KV 会自动反序列化),否则 state.monitors 恒为 undefined。
2026-10-14 14:51:28 +08:00

1214 lines
25 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"prober": "shiroko-monitor-node/0.12.0",
"demo": false,
"generatedAt": "2026-10-14T06:50:04.642Z",
"dataUpdatedAt": "2026-10-14T06:50:02.233Z",
"updateIntervalSec": 300,
"dataFilter": "uptimerobot",
"probeScope": "all",
"stats": {
"total": 6,
"up": 5,
"down": 1,
"pending": 0,
"avgLatency": 671,
"avgUptime90": 83.3,
"memory": {
"rssMB": 82.8,
"heapUsedMB": 12.5,
"heapTotalMB": 16
}
},
"sources": {
"uptimerobot": {
"enabled": true,
"ok": true,
"error": null,
"lastSyncAt": "2026-10-14T06:46:25.561Z",
"count": 6,
"syncing": false,
"lastSyncMs": 1791960384004
}
},
"notify": {
"enabled": false,
"channels": [],
"quietHours": null,
"failureThreshold": 2,
"lastResult": {
"at": "2026-10-14T02:19:42.390Z",
"suppressed": false,
"skipped": "notify-disabled",
"results": []
}
},
"events": [
{
"t": "2026-10-14T02:11:47.171Z",
"id": "ur-796219015",
"name": "狼的评论系统",
"type": "down",
"detail": "UptimeRobot:403 Forbidden",
"maintenance": false
}
],
"monitors": {
"ur-792059439": {
"status": "up",
"latency": 262,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-14T06:40:00.000Z",
"history": [
{
"t": "2026-10-13T07:55:00.000Z",
"ok": true,
"ms": 227
},
{
"t": "2026-10-13T08:35:00.000Z",
"ok": true,
"ms": 434
},
{
"t": "2026-10-13T09:15:00.000Z",
"ok": true,
"ms": 333
},
{
"t": "2026-10-13T09:55:00.000Z",
"ok": true,
"ms": 427
},
{
"t": "2026-10-13T10:35:00.000Z",
"ok": true,
"ms": 233
},
{
"t": "2026-10-13T11:15:00.000Z",
"ok": true,
"ms": 388
},
{
"t": "2026-10-13T11:55:00.000Z",
"ok": true,
"ms": 329
},
{
"t": "2026-10-13T12:35:00.000Z",
"ok": true,
"ms": 422
},
{
"t": "2026-10-13T13:15:00.000Z",
"ok": true,
"ms": 271
},
{
"t": "2026-10-13T13:55:00.000Z",
"ok": true,
"ms": 307
},
{
"t": "2026-10-13T14:35:00.000Z",
"ok": true,
"ms": 417
},
{
"t": "2026-10-13T15:15:00.000Z",
"ok": true,
"ms": 283
},
{
"t": "2026-10-13T15:55:00.000Z",
"ok": true,
"ms": 308
},
{
"t": "2026-10-13T16:35:00.000Z",
"ok": true,
"ms": 279
},
{
"t": "2026-10-13T17:15:00.000Z",
"ok": true,
"ms": 239
},
{
"t": "2026-10-13T17:55:00.000Z",
"ok": true,
"ms": 299
},
{
"t": "2026-10-13T18:35:00.000Z",
"ok": true,
"ms": 240
},
{
"t": "2026-10-13T19:15:00.000Z",
"ok": true,
"ms": 526
},
{
"t": "2026-10-13T19:55:00.000Z",
"ok": true,
"ms": 367
},
{
"t": "2026-10-13T20:35:00.000Z",
"ok": true,
"ms": 369
},
{
"t": "2026-10-13T21:15:00.000Z",
"ok": true,
"ms": 281
},
{
"t": "2026-10-13T21:55:00.000Z",
"ok": true,
"ms": 321
},
{
"t": "2026-10-13T22:35:00.000Z",
"ok": true,
"ms": 150
},
{
"t": "2026-10-13T23:15:00.000Z",
"ok": true,
"ms": 298
},
{
"t": "2026-10-13T23:55:00.000Z",
"ok": true,
"ms": 305
},
{
"t": "2026-10-14T00:35:00.000Z",
"ok": true,
"ms": 208
},
{
"t": "2026-10-14T01:15:00.000Z",
"ok": true,
"ms": 421
},
{
"t": "2026-10-14T02:00:00.000Z",
"ok": true,
"ms": 191
},
{
"t": "2026-10-14T02:40:00.000Z",
"ok": true,
"ms": 187
},
{
"t": "2026-10-14T03:20:00.000Z",
"ok": true,
"ms": 282
},
{
"t": "2026-10-14T04:00:00.000Z",
"ok": true,
"ms": 289
},
{
"t": "2026-10-14T04:40:00.000Z",
"ok": true,
"ms": 171
},
{
"t": "2026-10-14T05:20:00.000Z",
"ok": true,
"ms": 311
},
{
"t": "2026-10-14T06:04:00.000Z",
"ok": true,
"ms": 357
},
{
"t": "2026-10-14T06:40:00.000Z",
"ok": true,
"ms": 262
}
],
"daily": {
"2026-10-14": {
"total": 26,
"up": 26,
"latSum": 7486,
"latCount": 26,
"latMax": 454
}
},
"meta": {
"name": "狼的公告板",
"group": "UptimeRobot",
"type": "ur",
"url": "https://blog.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 100,
"30": 100,
"90": 100
},
"downSeconds": {
"1": 0,
"7": 0,
"30": 0,
"90": 0
},
"lat": {
"avg": 288,
"max": 454,
"days": [
{
"key": "2026-10-14",
"avg": 288
}
]
}
},
"ur-795497022": {
"status": "up",
"latency": 714,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-14T06:46:00.000Z",
"history": [
{
"t": "2026-10-13T07:35:00.000Z",
"ok": true,
"ms": 696
},
{
"t": "2026-10-13T08:15:00.000Z",
"ok": true,
"ms": 718
},
{
"t": "2026-10-13T08:55:00.000Z",
"ok": true,
"ms": 939
},
{
"t": "2026-10-13T09:35:00.000Z",
"ok": true,
"ms": 663
},
{
"t": "2026-10-13T10:15:00.000Z",
"ok": true,
"ms": 837
},
{
"t": "2026-10-13T10:55:00.000Z",
"ok": true,
"ms": 723
},
{
"t": "2026-10-13T11:35:00.000Z",
"ok": true,
"ms": 688
},
{
"t": "2026-10-13T12:15:00.000Z",
"ok": true,
"ms": 824
},
{
"t": "2026-10-13T12:55:00.000Z",
"ok": true,
"ms": 799
},
{
"t": "2026-10-13T13:35:00.000Z",
"ok": true,
"ms": 943
},
{
"t": "2026-10-13T14:20:00.000Z",
"ok": true,
"ms": 808
},
{
"t": "2026-10-13T15:00:00.000Z",
"ok": true,
"ms": 842
},
{
"t": "2026-10-13T15:40:00.000Z",
"ok": true,
"ms": 918
},
{
"t": "2026-10-13T16:20:00.000Z",
"ok": true,
"ms": 646
},
{
"t": "2026-10-13T17:00:00.000Z",
"ok": true,
"ms": 722
},
{
"t": "2026-10-13T17:40:00.000Z",
"ok": true,
"ms": 749
},
{
"t": "2026-10-13T18:20:00.000Z",
"ok": true,
"ms": 750
},
{
"t": "2026-10-13T19:00:00.000Z",
"ok": true,
"ms": 920
},
{
"t": "2026-10-13T19:40:00.000Z",
"ok": true,
"ms": 715
},
{
"t": "2026-10-13T20:20:00.000Z",
"ok": true,
"ms": 835
},
{
"t": "2026-10-13T21:00:00.000Z",
"ok": true,
"ms": 1038
},
{
"t": "2026-10-13T21:40:00.000Z",
"ok": true,
"ms": 1235
},
{
"t": "2026-10-13T22:20:00.000Z",
"ok": true,
"ms": 731
},
{
"t": "2026-10-13T23:00:00.000Z",
"ok": true,
"ms": 685
},
{
"t": "2026-10-13T23:40:00.000Z",
"ok": true,
"ms": 597
},
{
"t": "2026-10-14T00:20:00.000Z",
"ok": true,
"ms": 676
},
{
"t": "2026-10-14T01:00:00.000Z",
"ok": true,
"ms": 755
},
{
"t": "2026-10-14T01:40:00.000Z",
"ok": true,
"ms": 658
},
{
"t": "2026-10-14T02:20:00.000Z",
"ok": true,
"ms": 740
},
{
"t": "2026-10-14T03:00:00.000Z",
"ok": true,
"ms": 718
},
{
"t": "2026-10-14T03:40:00.000Z",
"ok": true,
"ms": 593
},
{
"t": "2026-10-14T04:20:00.000Z",
"ok": true,
"ms": 627
},
{
"t": "2026-10-14T05:00:00.000Z",
"ok": true,
"ms": 674
},
{
"t": "2026-10-14T05:41:00.000Z",
"ok": true,
"ms": 728
},
{
"t": "2026-10-14T06:13:00.000Z",
"ok": true,
"ms": 732
},
{
"t": "2026-10-14T06:46:00.000Z",
"ok": true,
"ms": 714
}
],
"daily": {
"2026-10-14": {
"total": 26,
"up": 26,
"latSum": 18278,
"latCount": 26,
"latMax": 778
}
},
"meta": {
"name": "狼的共享盘",
"group": "UptimeRobot",
"type": "ur",
"url": "https://share.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 100,
"30": 99.951,
"90": 99.93
},
"downSeconds": {
"1": 0,
"7": 0,
"30": 1276,
"90": 5432
},
"lat": {
"avg": 703,
"max": 778,
"days": [
{
"key": "2026-10-14",
"avg": 703
}
]
}
},
"ur-795556828": {
"status": "up",
"latency": 252,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-14T06:40:00.000Z",
"history": [
{
"t": "2026-10-13T07:50:00.000Z",
"ok": true,
"ms": 512
},
{
"t": "2026-10-13T08:30:00.000Z",
"ok": true,
"ms": 216
},
{
"t": "2026-10-13T09:10:00.000Z",
"ok": true,
"ms": 256
},
{
"t": "2026-10-13T09:55:00.000Z",
"ok": true,
"ms": 455
},
{
"t": "2026-10-13T10:35:00.000Z",
"ok": true,
"ms": 372
},
{
"t": "2026-10-13T11:15:00.000Z",
"ok": true,
"ms": 240
},
{
"t": "2026-10-13T11:55:00.000Z",
"ok": true,
"ms": 261
},
{
"t": "2026-10-13T12:35:00.000Z",
"ok": true,
"ms": 335
},
{
"t": "2026-10-13T13:15:00.000Z",
"ok": true,
"ms": 413
},
{
"t": "2026-10-13T13:55:00.000Z",
"ok": true,
"ms": 283
},
{
"t": "2026-10-13T14:35:00.000Z",
"ok": true,
"ms": 309
},
{
"t": "2026-10-13T15:20:00.000Z",
"ok": true,
"ms": 451
},
{
"t": "2026-10-13T16:00:00.000Z",
"ok": true,
"ms": 248
},
{
"t": "2026-10-13T16:40:00.000Z",
"ok": true,
"ms": 378
},
{
"t": "2026-10-13T17:20:00.000Z",
"ok": true,
"ms": 293
},
{
"t": "2026-10-13T18:00:00.000Z",
"ok": true,
"ms": 495
},
{
"t": "2026-10-13T18:40:00.000Z",
"ok": true,
"ms": 391
},
{
"t": "2026-10-13T19:20:00.000Z",
"ok": true,
"ms": 338
},
{
"t": "2026-10-13T20:00:00.000Z",
"ok": true,
"ms": 363
},
{
"t": "2026-10-13T20:40:00.000Z",
"ok": true,
"ms": 499
},
{
"t": "2026-10-13T21:20:00.000Z",
"ok": true,
"ms": 372
},
{
"t": "2026-10-13T22:00:00.000Z",
"ok": true,
"ms": 194
},
{
"t": "2026-10-13T22:40:00.000Z",
"ok": true,
"ms": 225
},
{
"t": "2026-10-13T23:20:00.000Z",
"ok": true,
"ms": 237
},
{
"t": "2026-10-14T00:00:00.000Z",
"ok": true,
"ms": 215
},
{
"t": "2026-10-14T00:40:00.000Z",
"ok": true,
"ms": 298
},
{
"t": "2026-10-14T01:20:00.000Z",
"ok": true,
"ms": 450
},
{
"t": "2026-10-14T02:00:00.000Z",
"ok": true,
"ms": 319
},
{
"t": "2026-10-14T02:40:00.000Z",
"ok": true,
"ms": 398
},
{
"t": "2026-10-14T03:20:00.000Z",
"ok": true,
"ms": 347
},
{
"t": "2026-10-14T04:00:00.000Z",
"ok": true,
"ms": 407
},
{
"t": "2026-10-14T04:40:00.000Z",
"ok": true,
"ms": 344
},
{
"t": "2026-10-14T05:20:00.000Z",
"ok": true,
"ms": 337
},
{
"t": "2026-10-14T06:04:00.000Z",
"ok": true,
"ms": 365
},
{
"t": "2026-10-14T06:40:00.000Z",
"ok": true,
"ms": 252
}
],
"daily": {
"2026-10-14": {
"total": 26,
"up": 26,
"latSum": 8635,
"latCount": 26,
"latMax": 638
}
},
"meta": {
"name": "狼的导航页",
"group": "UptimeRobot",
"type": "ur",
"url": "https://tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 100,
"30": 100,
"90": 100
},
"downSeconds": {
"1": 0,
"7": 0,
"30": 0,
"90": 0
},
"lat": {
"avg": 332,
"max": 638,
"days": [
{
"key": "2026-10-14",
"avg": 332
}
]
}
},
"ur-792059414": {
"status": "up",
"latency": 1494,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-14T06:42:00.000Z",
"history": [
{
"t": "2026-10-13T07:40:00.000Z",
"ok": true,
"ms": 1715
},
{
"t": "2026-10-13T08:25:00.000Z",
"ok": true,
"ms": 1861
},
{
"t": "2026-10-13T09:10:00.000Z",
"ok": true,
"ms": 1991
},
{
"t": "2026-10-13T09:55:00.000Z",
"ok": true,
"ms": 1597
},
{
"t": "2026-10-13T10:40:00.000Z",
"ok": true,
"ms": 2816
},
{
"t": "2026-10-13T11:25:00.000Z",
"ok": true,
"ms": 1912
},
{
"t": "2026-10-13T12:10:00.000Z",
"ok": true,
"ms": 2326
},
{
"t": "2026-10-13T12:55:00.000Z",
"ok": true,
"ms": 2938
},
{
"t": "2026-10-13T13:40:00.000Z",
"ok": true,
"ms": 3146
},
{
"t": "2026-10-13T14:25:00.000Z",
"ok": true,
"ms": 2125
},
{
"t": "2026-10-13T15:05:00.000Z",
"ok": true,
"ms": 2892
},
{
"t": "2026-10-13T15:50:00.000Z",
"ok": true,
"ms": 2097
},
{
"t": "2026-10-13T16:30:00.000Z",
"ok": true,
"ms": 2060
},
{
"t": "2026-10-13T17:15:00.000Z",
"ok": true,
"ms": 2264
},
{
"t": "2026-10-13T17:55:00.000Z",
"ok": true,
"ms": 1246
},
{
"t": "2026-10-13T18:35:00.000Z",
"ok": true,
"ms": 1451
},
{
"t": "2026-10-13T19:15:00.000Z",
"ok": true,
"ms": 3225
},
{
"t": "2026-10-13T19:55:00.000Z",
"ok": true,
"ms": 2138
},
{
"t": "2026-10-13T20:35:00.000Z",
"ok": true,
"ms": 2633
},
{
"t": "2026-10-13T21:15:00.000Z",
"ok": true,
"ms": 3605
},
{
"t": "2026-10-13T21:55:00.000Z",
"ok": true,
"ms": 1785
},
{
"t": "2026-10-13T22:40:00.000Z",
"ok": true,
"ms": 1904
},
{
"t": "2026-10-13T23:25:00.000Z",
"ok": true,
"ms": 2527
},
{
"t": "2026-10-14T00:10:00.000Z",
"ok": true,
"ms": 2372
},
{
"t": "2026-10-14T00:55:00.000Z",
"ok": true,
"ms": 1934
},
{
"t": "2026-10-14T01:40:00.000Z",
"ok": true,
"ms": 3003
},
{
"t": "2026-10-14T02:25:00.000Z",
"ok": true,
"ms": 1655
},
{
"t": "2026-10-14T03:10:00.000Z",
"ok": true,
"ms": 1873
},
{
"t": "2026-10-14T03:55:00.000Z",
"ok": true,
"ms": 3017
},
{
"t": "2026-10-14T04:40:00.000Z",
"ok": true,
"ms": 1955
},
{
"t": "2026-10-14T05:20:00.000Z",
"ok": true,
"ms": 3605
},
{
"t": "2026-10-14T06:03:00.000Z",
"ok": true,
"ms": 2050
},
{
"t": "2026-10-14T06:42:00.000Z",
"ok": true,
"ms": 1494
}
],
"daily": {
"2026-10-14": {
"total": 26,
"up": 26,
"latSum": 61398,
"latCount": 26,
"latMax": 4043
}
},
"meta": {
"name": "狼的提问箱",
"group": "UptimeRobot",
"type": "ur",
"url": "https://box.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 100,
"30": 99.927,
"90": 99.902
},
"downSeconds": {
"1": 0,
"7": 0,
"30": 1899,
"90": 7593
},
"lat": {
"avg": 2361,
"max": 4043,
"days": [
{
"key": "2026-10-14",
"avg": 2361
}
]
}
},
"ur-798788113": {
"status": "up",
"latency": 635,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-14T06:46:00.000Z",
"history": [
{
"t": "2026-10-13T08:00:00.000Z",
"ok": true,
"ms": 279
},
{
"t": "2026-10-13T08:40:00.000Z",
"ok": true,
"ms": 407
},
{
"t": "2026-10-13T09:20:00.000Z",
"ok": true,
"ms": 317
},
{
"t": "2026-10-13T10:00:00.000Z",
"ok": true,
"ms": 627
},
{
"t": "2026-10-13T10:40:00.000Z",
"ok": true,
"ms": 505
},
{
"t": "2026-10-13T11:20:00.000Z",
"ok": true,
"ms": 424
},
{
"t": "2026-10-13T12:00:00.000Z",
"ok": true,
"ms": 1135
},
{
"t": "2026-10-13T12:40:00.000Z",
"ok": true,
"ms": 462
},
{
"t": "2026-10-13T13:20:00.000Z",
"ok": true,
"ms": 436
},
{
"t": "2026-10-13T14:00:00.000Z",
"ok": true,
"ms": 521
},
{
"t": "2026-10-13T14:40:00.000Z",
"ok": true,
"ms": 480
},
{
"t": "2026-10-13T15:20:00.000Z",
"ok": true,
"ms": 462
},
{
"t": "2026-10-13T16:00:00.000Z",
"ok": true,
"ms": 331
},
{
"t": "2026-10-13T16:40:00.000Z",
"ok": true,
"ms": 373
},
{
"t": "2026-10-13T17:20:00.000Z",
"ok": true,
"ms": 429
},
{
"t": "2026-10-13T18:00:00.000Z",
"ok": true,
"ms": 558
},
{
"t": "2026-10-13T18:40:00.000Z",
"ok": true,
"ms": 370
},
{
"t": "2026-10-13T19:20:00.000Z",
"ok": true,
"ms": 1519
},
{
"t": "2026-10-13T20:00:00.000Z",
"ok": true,
"ms": 483
},
{
"t": "2026-10-13T20:40:00.000Z",
"ok": true,
"ms": 388
},
{
"t": "2026-10-13T21:20:00.000Z",
"ok": true,
"ms": 367
},
{
"t": "2026-10-13T22:00:00.000Z",
"ok": true,
"ms": 273
},
{
"t": "2026-10-13T22:40:00.000Z",
"ok": true,
"ms": 261
},
{
"t": "2026-10-13T23:20:00.000Z",
"ok": true,
"ms": 263
},
{
"t": "2026-10-14T00:00:00.000Z",
"ok": true,
"ms": 229
},
{
"t": "2026-10-14T00:40:00.000Z",
"ok": true,
"ms": 363
},
{
"t": "2026-10-14T01:20:00.000Z",
"ok": true,
"ms": 329
},
{
"t": "2026-10-14T02:00:00.000Z",
"ok": true,
"ms": 302
},
{
"t": "2026-10-14T02:40:00.000Z",
"ok": true,
"ms": 425
},
{
"t": "2026-10-14T03:20:00.000Z",
"ok": true,
"ms": 328
},
{
"t": "2026-10-14T04:00:00.000Z",
"ok": true,
"ms": 319
},
{
"t": "2026-10-14T04:40:00.000Z",
"ok": true,
"ms": 272
},
{
"t": "2026-10-14T05:20:00.000Z",
"ok": true,
"ms": 347
},
{
"t": "2026-10-14T06:10:00.000Z",
"ok": true,
"ms": 361
},
{
"t": "2026-10-14T06:46:00.000Z",
"ok": true,
"ms": 635
}
],
"daily": {
"2026-10-14": {
"total": 26,
"up": 26,
"latSum": 11895,
"latCount": 26,
"latMax": 675
}
},
"meta": {
"name": "狼的聊天室",
"group": "UptimeRobot",
"type": "ur",
"url": "https://chat.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 100,
"30": 100,
"90": 100
},
"downSeconds": {
"1": 0,
"7": 0,
"30": 0,
"90": 0
},
"lat": {
"avg": 458,
"max": 675,
"days": [
{
"key": "2026-10-14",
"avg": 458
}
]
}
},
"ur-796219015": {
"status": "down",
"latency": 185,
"code": 403,
"detail": "UptimeRobot:403 Forbidden",
"lastCheck": "2026-05-07T07:54:09.000Z",
"history": [
{
"t": "2026-05-07T07:54:09.000Z",
"ok": false,
"ms": 0
}
],
"daily": {
"2026-10-14": {
"total": 26,
"up": 0
}
},
"meta": {
"name": "狼的评论系统",
"group": "UptimeRobot",
"type": "ur",
"url": "https://artalk.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 0,
"7": 0,
"30": 0,
"90": 0
},
"downSeconds": {
"1": 86400,
"7": 604800,
"30": 2592000,
"90": 7776000
}
}
}
}