Files
shiroko-monitor/public/status.json
T
tamakyi bdaa31f10c feat: P0 通知(邮件 + MeoW)与 TLS 证书监控,事件时间线与维护窗口
通知(P0-1):
- 邮件:自写 SMTP 客户端,零依赖。465 隐式 TLS / 587·25 STARTTLS、
  AUTH LOGIN+PLAIN、RFC2047 中文主题、base64 正文、多收件人;
  服务器不支持 STARTTLS 时默认拒绝明文(需显式 allowInsecure)
- MeoW:按官方文档实现,昵称寻址、msgType/htmlHeight 走查询参数、
  以响应体 status 判定成功(HTTP 恒 200)、429/404/403 可读化、
  本地限流器遵守 3s/15min/60h
- 告警:连续 N 次失败去抖 + 恢复通知 + 同轮合并 + 去抖状态持久化
  (data/notify-state.json,gitignore)+ 静默时段(跨零点)
- --test-notify 自检命令、--data-dir / SHIROKO_DATA_DIR

证书(P0-2):
- 独立 TLS 握手取 notAfter(不动既有 fetch 探测路径),默认 6 小时一次
- 面板徽标 ≤14 天黄 / ≤7 天红,阈值 14/7/3 各告一次、已过期只报最严重一档
- 单个目标可用 tls: false 关闭

事件与维护(P1-1 的后端部分):
- data/events.json 追加式事件流(最近 500 条)+ GET /api/events +
  快照内附最近 20 条;redactDetails 时脱敏
- 维护窗口:窗口内不计入可用率、不发告警、显示「维护中」徽标

测试抓到并修复的三个真 bug:
1. SMTP 空闲超时无人处理 → 服务器不响应会把探针循环挂死
2. MeoW 限流器把空历史当 0 → 第一条通知永远被自己拦掉
3. 去抖状态在无事轮次不落盘 → 连续失败计数丢失、永远达不到阈值

验证:新增 verify-notify.cjs 39 项(假 SMTP / 假 MeoW / 三轮集成 / 维护窗口 /
真实证书握手),六套合计 154 项全通过。
2026-10-13 23:54:46 +08:00

1194 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.10.0",
"demo": false,
"generatedAt": "2026-10-13T15:54:42.793Z",
"dataUpdatedAt": "2026-10-13T15:53:59.134Z",
"updateIntervalSec": 300,
"dataFilter": "uptimerobot",
"stats": {
"total": 6,
"up": 5,
"down": 1,
"pending": 0,
"avgLatency": 763,
"avgUptime90": 83.3,
"memory": {
"rssMB": 67.4,
"heapUsedMB": 12.7,
"heapTotalMB": 14.2
}
},
"sources": {
"uptimerobot": {
"enabled": true,
"ok": true,
"error": null,
"lastSyncAt": "2026-10-13T15:51:29.877Z",
"count": 6,
"syncing": false,
"lastSyncMs": 1791906687760
}
},
"notify": {
"enabled": false,
"channels": [],
"quietHours": null,
"failureThreshold": 2,
"lastResult": {
"at": "2026-10-13T15:53:51.149Z",
"suppressed": false,
"skipped": "notify-disabled",
"results": []
}
},
"events": [
{
"t": "2026-10-13T15:53:51.142Z",
"id": "cloudflare-site",
"name": "Cloudflare 官网",
"type": "up",
"detail": "已恢复",
"maintenance": false
},
{
"t": "2026-10-13T15:52:51.476Z",
"id": "cloudflare-site",
"name": "Cloudflare 官网",
"type": "down",
"detail": "ETIMEDOUT",
"maintenance": false
},
{
"t": "2026-10-13T15:32:38.735Z",
"id": "google-dns-tcp",
"name": "Google DNS 53 端口",
"type": "down",
"detail": "TCP 连接超时",
"maintenance": false
},
{
"t": "2026-10-13T15:32:38.735Z",
"id": "cloudflare-dns-tcp",
"name": "Cloudflare 443 端口",
"type": "down",
"detail": "TCP 连接超时",
"maintenance": false
},
{
"t": "2026-10-13T15:32:34.170Z",
"id": "badssl-expired",
"name": "BadSSL 过期证书(演示离线)",
"type": "down",
"detail": "CERT_HAS_EXPIRED",
"maintenance": false
},
{
"t": "2026-10-13T15:32:34.129Z",
"id": "badssl-expired",
"name": "BadSSL 过期证书(演示离线)",
"type": "tls",
"detail": "证书剩余 -4202 天(阈值 3 天)",
"maintenance": false
},
{
"t": "2026-10-13T15:32:34.129Z",
"id": "badssl-expired",
"name": "BadSSL 过期证书(演示离线)",
"type": "tls",
"detail": "证书剩余 -4202 天(阈值 7 天)",
"maintenance": false
},
{
"t": "2026-10-13T15:32:34.129Z",
"id": "badssl-expired",
"name": "BadSSL 过期证书(演示离线)",
"type": "tls",
"detail": "证书剩余 -4202 天(阈值 14 天)",
"maintenance": false
}
],
"monitors": {
"ur-792059439": {
"status": "up",
"latency": 233,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-13T15:50:00.000Z",
"history": [
{
"t": "2026-10-12T17:05:00.000Z",
"ok": true,
"ms": 273
},
{
"t": "2026-10-12T17:45:00.000Z",
"ok": true,
"ms": 391
},
{
"t": "2026-10-12T18:25:00.000Z",
"ok": true,
"ms": 326
},
{
"t": "2026-10-12T19:05:00.000Z",
"ok": true,
"ms": 333
},
{
"t": "2026-10-12T19:45:00.000Z",
"ok": true,
"ms": 249
},
{
"t": "2026-10-12T20:25:00.000Z",
"ok": true,
"ms": 262
},
{
"t": "2026-10-12T21:05:00.000Z",
"ok": true,
"ms": 290
},
{
"t": "2026-10-12T21:45:00.000Z",
"ok": true,
"ms": 350
},
{
"t": "2026-10-12T22:25:00.000Z",
"ok": true,
"ms": 166
},
{
"t": "2026-10-12T23:10:00.000Z",
"ok": true,
"ms": 283
},
{
"t": "2026-10-12T23:50:00.000Z",
"ok": true,
"ms": 383
},
{
"t": "2026-10-13T00:30:00.000Z",
"ok": true,
"ms": 291
},
{
"t": "2026-10-13T01:10:00.000Z",
"ok": true,
"ms": 195
},
{
"t": "2026-10-13T01:50:00.000Z",
"ok": true,
"ms": 159
},
{
"t": "2026-10-13T02:30:00.000Z",
"ok": true,
"ms": 232
},
{
"t": "2026-10-13T03:10:00.000Z",
"ok": true,
"ms": 198
},
{
"t": "2026-10-13T03:50:00.000Z",
"ok": true,
"ms": 104
},
{
"t": "2026-10-13T04:35:00.000Z",
"ok": true,
"ms": 478
},
{
"t": "2026-10-13T05:15:00.000Z",
"ok": true,
"ms": 353
},
{
"t": "2026-10-13T05:55:00.000Z",
"ok": true,
"ms": 294
},
{
"t": "2026-10-13T06:35:00.000Z",
"ok": true,
"ms": 238
},
{
"t": "2026-10-13T07:15:00.000Z",
"ok": true,
"ms": 259
},
{
"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:34:00.000Z",
"ok": true,
"ms": 463
},
{
"t": "2026-10-13T15:10:00.000Z",
"ok": true,
"ms": 260
},
{
"t": "2026-10-13T15:50:00.000Z",
"ok": true,
"ms": 233
}
],
"daily": {
"2026-10-13": {
"total": 6,
"up": 6
}
},
"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
}
},
"ur-795497022": {
"status": "up",
"latency": 772,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-13T15:48:00.000Z",
"history": [
{
"t": "2026-10-12T16:35:00.000Z",
"ok": true,
"ms": 700
},
{
"t": "2026-10-12T17:15:00.000Z",
"ok": true,
"ms": 689
},
{
"t": "2026-10-12T17:55:00.000Z",
"ok": true,
"ms": 725
},
{
"t": "2026-10-12T18:35:00.000Z",
"ok": true,
"ms": 744
},
{
"t": "2026-10-12T19:15:00.000Z",
"ok": true,
"ms": 723
},
{
"t": "2026-10-12T19:55:00.000Z",
"ok": true,
"ms": 698
},
{
"t": "2026-10-12T20:35:00.000Z",
"ok": true,
"ms": 768
},
{
"t": "2026-10-12T21:15:00.000Z",
"ok": true,
"ms": 616
},
{
"t": "2026-10-12T21:55:00.000Z",
"ok": true,
"ms": 626
},
{
"t": "2026-10-12T22:35:00.000Z",
"ok": true,
"ms": 674
},
{
"t": "2026-10-12T23:15:00.000Z",
"ok": true,
"ms": 624
},
{
"t": "2026-10-12T23:55:00.000Z",
"ok": true,
"ms": 640
},
{
"t": "2026-10-13T00:35:00.000Z",
"ok": true,
"ms": 673
},
{
"t": "2026-10-13T01:15:00.000Z",
"ok": true,
"ms": 609
},
{
"t": "2026-10-13T01:55:00.000Z",
"ok": true,
"ms": 759
},
{
"t": "2026-10-13T02:35:00.000Z",
"ok": true,
"ms": 581
},
{
"t": "2026-10-13T03:15:00.000Z",
"ok": true,
"ms": 666
},
{
"t": "2026-10-13T03:55:00.000Z",
"ok": true,
"ms": 662
},
{
"t": "2026-10-13T04:35:00.000Z",
"ok": true,
"ms": 685
},
{
"t": "2026-10-13T05:15:00.000Z",
"ok": true,
"ms": 647
},
{
"t": "2026-10-13T05:55:00.000Z",
"ok": true,
"ms": 588
},
{
"t": "2026-10-13T06:40:00.000Z",
"ok": true,
"ms": 625
},
{
"t": "2026-10-13T07:20:00.000Z",
"ok": true,
"ms": 673
},
{
"t": "2026-10-13T08:00:00.000Z",
"ok": true,
"ms": 758
},
{
"t": "2026-10-13T08:40:00.000Z",
"ok": true,
"ms": 826
},
{
"t": "2026-10-13T09:20:00.000Z",
"ok": true,
"ms": 749
},
{
"t": "2026-10-13T10:00:00.000Z",
"ok": true,
"ms": 791
},
{
"t": "2026-10-13T10:40:00.000Z",
"ok": true,
"ms": 678
},
{
"t": "2026-10-13T11:20:00.000Z",
"ok": true,
"ms": 740
},
{
"t": "2026-10-13T12:00:00.000Z",
"ok": true,
"ms": 828
},
{
"t": "2026-10-13T12:40:00.000Z",
"ok": true,
"ms": 722
},
{
"t": "2026-10-13T13:20:00.000Z",
"ok": true,
"ms": 849
},
{
"t": "2026-10-13T14:43:00.000Z",
"ok": true,
"ms": 845
},
{
"t": "2026-10-13T15:15:00.000Z",
"ok": true,
"ms": 857
},
{
"t": "2026-10-13T15:48:00.000Z",
"ok": true,
"ms": 772
}
],
"daily": {
"2026-10-13": {
"total": 6,
"up": 6
}
},
"meta": {
"name": "狼的共享盘",
"group": "UptimeRobot",
"type": "ur",
"url": "https://share.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 99.789,
"30": 99.951,
"90": 99.93
},
"downSeconds": {
"1": 0,
"7": 1276,
"30": 1276,
"90": 5432
}
},
"ur-795556828": {
"status": "up",
"latency": 230,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-13T15:50:00.000Z",
"history": [
{
"t": "2026-10-12T16:55:00.000Z",
"ok": true,
"ms": 281
},
{
"t": "2026-10-12T17:40:00.000Z",
"ok": true,
"ms": 320
},
{
"t": "2026-10-12T18:20:00.000Z",
"ok": true,
"ms": 287
},
{
"t": "2026-10-12T19:00:00.000Z",
"ok": true,
"ms": 283
},
{
"t": "2026-10-12T19:40:00.000Z",
"ok": true,
"ms": 464
},
{
"t": "2026-10-12T20:20:00.000Z",
"ok": true,
"ms": 187
},
{
"t": "2026-10-12T21:00:00.000Z",
"ok": true,
"ms": 233
},
{
"t": "2026-10-12T21:40:00.000Z",
"ok": true,
"ms": 213
},
{
"t": "2026-10-12T22:20:00.000Z",
"ok": true,
"ms": 235
},
{
"t": "2026-10-12T23:05:00.000Z",
"ok": true,
"ms": 241
},
{
"t": "2026-10-12T23:45:00.000Z",
"ok": true,
"ms": 230
},
{
"t": "2026-10-13T00:25:00.000Z",
"ok": true,
"ms": 244
},
{
"t": "2026-10-13T01:05:00.000Z",
"ok": true,
"ms": 133
},
{
"t": "2026-10-13T01:45:00.000Z",
"ok": true,
"ms": 127
},
{
"t": "2026-10-13T02:25:00.000Z",
"ok": true,
"ms": 182
},
{
"t": "2026-10-13T03:05:00.000Z",
"ok": true,
"ms": 413
},
{
"t": "2026-10-13T03:45:00.000Z",
"ok": true,
"ms": 229
},
{
"t": "2026-10-13T04:30:00.000Z",
"ok": true,
"ms": 234
},
{
"t": "2026-10-13T05:10:00.000Z",
"ok": true,
"ms": 181
},
{
"t": "2026-10-13T05:50:00.000Z",
"ok": true,
"ms": 206
},
{
"t": "2026-10-13T06:30:00.000Z",
"ok": true,
"ms": 241
},
{
"t": "2026-10-13T07:10:00.000Z",
"ok": true,
"ms": 241
},
{
"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:34:00.000Z",
"ok": true,
"ms": 333
},
{
"t": "2026-10-13T15:10:00.000Z",
"ok": true,
"ms": 510
},
{
"t": "2026-10-13T15:50:00.000Z",
"ok": true,
"ms": 230
}
],
"daily": {
"2026-10-13": {
"total": 6,
"up": 6
}
},
"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
}
},
"ur-792059414": {
"status": "up",
"latency": 2238,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-13T15:48:00.000Z",
"history": [
{
"t": "2026-10-12T17:10:00.000Z",
"ok": true,
"ms": 2816
},
{
"t": "2026-10-12T17:55:00.000Z",
"ok": true,
"ms": 2291
},
{
"t": "2026-10-12T18:40:00.000Z",
"ok": true,
"ms": 2251
},
{
"t": "2026-10-12T19:25:00.000Z",
"ok": true,
"ms": 2178
},
{
"t": "2026-10-12T20:10:00.000Z",
"ok": true,
"ms": 2123
},
{
"t": "2026-10-12T20:55:00.000Z",
"ok": true,
"ms": 2087
},
{
"t": "2026-10-12T21:40:00.000Z",
"ok": true,
"ms": 1870
},
{
"t": "2026-10-12T22:20:00.000Z",
"ok": true,
"ms": 1662
},
{
"t": "2026-10-12T23:00:00.000Z",
"ok": true,
"ms": 1859
},
{
"t": "2026-10-12T23:40:00.000Z",
"ok": true,
"ms": 3138
},
{
"t": "2026-10-13T00:20:00.000Z",
"ok": true,
"ms": 1681
},
{
"t": "2026-10-13T01:00:00.000Z",
"ok": true,
"ms": 2312
},
{
"t": "2026-10-13T01:40:00.000Z",
"ok": true,
"ms": 2200
},
{
"t": "2026-10-13T02:25:00.000Z",
"ok": true,
"ms": 1924
},
{
"t": "2026-10-13T03:10:00.000Z",
"ok": true,
"ms": 1144
},
{
"t": "2026-10-13T03:55:00.000Z",
"ok": true,
"ms": 2124
},
{
"t": "2026-10-13T04:40:00.000Z",
"ok": true,
"ms": 2623
},
{
"t": "2026-10-13T05:25:00.000Z",
"ok": true,
"ms": 2562
},
{
"t": "2026-10-13T06:10:00.000Z",
"ok": true,
"ms": 2625
},
{
"t": "2026-10-13T06:55:00.000Z",
"ok": true,
"ms": 2226
},
{
"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:08:00.000Z",
"ok": true,
"ms": 2892
},
{
"t": "2026-10-13T15:48:00.000Z",
"ok": true,
"ms": 2238
}
],
"daily": {
"2026-10-13": {
"total": 6,
"up": 6
}
},
"meta": {
"name": "狼的提问箱",
"group": "UptimeRobot",
"type": "ur",
"url": "https://box.tama.guru",
"source": "uptimerobot",
"sourceLabel": "HTTP",
"interval": 300
},
"uptimeRatios": {
"1": 100,
"7": 99.787,
"30": 99.927,
"90": 99.902
},
"downSeconds": {
"1": 0,
"7": 1288,
"30": 1899,
"90": 7593
}
},
"ur-798788113": {
"status": "up",
"latency": 340,
"code": null,
"detail": "UptimeRobot:运行正常",
"lastCheck": "2026-10-13T15:46:00.000Z",
"history": [
{
"t": "2026-10-12T16:50:00.000Z",
"ok": true,
"ms": 463
},
{
"t": "2026-10-12T17:30:00.000Z",
"ok": true,
"ms": 320
},
{
"t": "2026-10-12T18:10:00.000Z",
"ok": true,
"ms": 404
},
{
"t": "2026-10-12T18:50:00.000Z",
"ok": true,
"ms": 343
},
{
"t": "2026-10-12T19:30:00.000Z",
"ok": true,
"ms": 476
},
{
"t": "2026-10-12T20:10:00.000Z",
"ok": true,
"ms": 285
},
{
"t": "2026-10-12T20:50:00.000Z",
"ok": true,
"ms": 449
},
{
"t": "2026-10-12T21:30:00.000Z",
"ok": true,
"ms": 332
},
{
"t": "2026-10-12T22:10:00.000Z",
"ok": true,
"ms": 450
},
{
"t": "2026-10-12T22:50:00.000Z",
"ok": true,
"ms": 231
},
{
"t": "2026-10-12T23:30:00.000Z",
"ok": true,
"ms": 249
},
{
"t": "2026-10-13T00:10:00.000Z",
"ok": true,
"ms": 286
},
{
"t": "2026-10-13T00:50:00.000Z",
"ok": true,
"ms": 223
},
{
"t": "2026-10-13T01:30:00.000Z",
"ok": true,
"ms": 386
},
{
"t": "2026-10-13T02:10:00.000Z",
"ok": true,
"ms": 511
},
{
"t": "2026-10-13T02:50:00.000Z",
"ok": true,
"ms": 292
},
{
"t": "2026-10-13T03:30:00.000Z",
"ok": true,
"ms": 435
},
{
"t": "2026-10-13T04:15:00.000Z",
"ok": true,
"ms": 400
},
{
"t": "2026-10-13T04:55:00.000Z",
"ok": true,
"ms": 462
},
{
"t": "2026-10-13T05:35:00.000Z",
"ok": true,
"ms": 377
},
{
"t": "2026-10-13T06:15:00.000Z",
"ok": true,
"ms": 396
},
{
"t": "2026-10-13T06:55:00.000Z",
"ok": true,
"ms": 310
},
{
"t": "2026-10-13T07:35:00.000Z",
"ok": true,
"ms": 336
},
{
"t": "2026-10-13T08:15:00.000Z",
"ok": true,
"ms": 379
},
{
"t": "2026-10-13T08:55:00.000Z",
"ok": true,
"ms": 476
},
{
"t": "2026-10-13T09:35:00.000Z",
"ok": true,
"ms": 605
},
{
"t": "2026-10-13T10:15:00.000Z",
"ok": true,
"ms": 456
},
{
"t": "2026-10-13T10:55:00.000Z",
"ok": true,
"ms": 420
},
{
"t": "2026-10-13T11:35:00.000Z",
"ok": true,
"ms": 878
},
{
"t": "2026-10-13T12:15:00.000Z",
"ok": true,
"ms": 530
},
{
"t": "2026-10-13T12:55:00.000Z",
"ok": true,
"ms": 517
},
{
"t": "2026-10-13T13:35:00.000Z",
"ok": true,
"ms": 491
},
{
"t": "2026-10-13T14:20:00.000Z",
"ok": true,
"ms": 429
},
{
"t": "2026-10-13T15:06:00.000Z",
"ok": true,
"ms": 443
},
{
"t": "2026-10-13T15:46:00.000Z",
"ok": true,
"ms": 340
}
],
"daily": {
"2026-10-13": {
"total": 6,
"up": 6
}
},
"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
}
},
"ur-796219015": {
"status": "down",
"latency": 123,
"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-13": {
"total": 6,
"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
}
}
}
}