fix(system): retired heartbeat rows no longer alarm on status page
- GET /system/health splits processes into current instances (hosts with
a beat in the last 10 min, newest per host+kind, not stopped) and
retiredProcesses[]; 45s stale and level only consider current ones
- heartbeat writer marks stopped_at on graceful exit (migration 0043),
upsert clears it; pure api role now stops its writer on SIGTERM
- scheduled job system.heartbeat_cleanup (maintain, 1h) deletes rows
without a beat for 24h and samples older than 7 days
- status page: per-role alarms ("io worker 45 秒没有心跳"), collapsible
retired instances; glossary/runbook updated
- bump all members to 0.2.2, CHANGELOG [0.2.2]
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
fa261eb6cd
commit
b4c9b1ead2
32 files changed
+747
-91
No files matched your search
@@ -2167,6 +2167,31 @@ export const Api = {
|
||||
query: browser.BrowserProvidersQuery,
|
||||
response: z.object({ items: z.array(browser.BrowserProviderView) }),
|
||||
}),
|
||||
createProvider: ep({
|
||||
method: "post",
|
||||
path: "/browser/providers",
|
||||
scope: "admin",
|
||||
summary: "登记浏览器服务(camofox 地址、访问凭据存凭证库、启用)",
|
||||
body: browser.BrowserProviderCreate,
|
||||
response: browser.BrowserProviderView,
|
||||
}),
|
||||
updateProvider: ep({
|
||||
method: "patch",
|
||||
path: "/browser/providers/{id}",
|
||||
scope: "admin",
|
||||
summary: "修改浏览器服务地址、访问凭据或启用(环境变量登记的只能改启用)",
|
||||
params: browser.BrowserProviderParams,
|
||||
body: browser.BrowserProviderUpdate,
|
||||
response: browser.BrowserProviderView,
|
||||
}),
|
||||
probeProvider: ep({
|
||||
method: "post",
|
||||
path: "/browser/providers/{id}/probe",
|
||||
scope: "admin",
|
||||
summary: "测试连通:探测该浏览器服务的 /health 与 /openapi.json 并写回能力",
|
||||
params: browser.BrowserProviderParams,
|
||||
response: browser.BrowserProviderView,
|
||||
}),
|
||||
sessions: ep({
|
||||
method: "get",
|
||||
path: "/browser/sessions",
|
||||
|
||||
Reference in new issue
Block a user