feat: 品牌统一 LokiStack + 全站中英 i18n + 用户批量删除 + 主题定时切换与浅色侧栏

- 品牌: Go 模块/数据文件/二进制/构建部署资产全部 opsx→lokistack;前端 localStorage 命名空间迁移(读旧写新,含按用户 id 前缀迁移);修复 nginx upstream 与 Makefile 引用已改名服务的断裂
- i18n: react-i18next 落地,common + 11 个页面域命名空间全站中英(菜单/顶栏/登录/列表页/表单/确认弹窗/状态徽章);设置页语言即时切换;修复词典自注册导致的循环导入白屏
- 用户管理: 批量删除(POST /users/batch-delete,不删自己/最后管理员,部分失败不阻断)+ 行复选/全选/批量工具条
- 主题: 浅色侧栏(中性灰激活态)、四态模式(浅色/深色/跟随系统/定时切换,按时区判定)、顶栏太阳月亮二态、设置页紧凑分段选择器
- UI: 登录记住用户名、CardActionButton 统一五页卡片操作钮、shadcn Badge 替换手写徽章、语义色修正
- 清理: 移除主机 Web 终端(前后端)、k8s-helm/Helm 遗留代码与字段、README 重写精简
- 修复: 侧栏与日志告警 order 重复、路由标题 i18n key 未翻译、词典双逗号等
This commit is contained in:
opsx committed 2026-10-27 17:11:38 +08:00
1 parent 02d1bd87a7
commit f3733f0bfc
201 files changed
+5438 -2388

No files matched your search

+78
View File
@@ -0,0 +1,78 @@
// alerts 命名空间 — 日志告警域中文文案(页头 / 规则表单与模板 / 发送历史 / 飞书通知提示)
export default {
title: '日志告警',
subtitle: '按 LogQL 计数规则监控日志,超阈值推送飞书卡片(周期 1 分钟)',
checkNow: '立即检查',
checking: '检查中...',
create: '新建规则',
emptyTitle: '暂无告警规则',
emptyDesc: '例如:{namespace=~".+"} |= "FATAL",15 分钟内超过 0 条即推送飞书',
sourceFallback: '数据源 {{id}}',
noChannels: '未关联通道',
channelSep: '、',
ruleMeta: '{{window}} 分钟超过 {{threshold}} 条触发 · 冷却 {{cooldown}} 分钟',
lastFired: '上次触发 {{time}}',
editAria: '编辑 {{name}}',
deleteAria: '删除 {{name}}',
historyTitle: '发送历史(最近 50 条)',
notifyHintPre: '通知未配置?去',
notifyHintPost: '配置飞书 Webhook',
editTitle: '编辑规则 · {{name}}',
createTitle: '新建告警规则',
templates: '快捷模板(点击预填,可再修改)',
saving: '保存中...',
save: '保存修改',
submitCreate: '创建规则',
loadFailed: '加载告警数据失败',
saveFailed: '保存失败',
deleteFailed: '删除失败',
checkDone: '已执行一次检查,结果见发送历史',
checkFailed: '检查失败',
toggleFailed: '切换失败',
confirmDeleteTitle: '确认删除告警规则',
delivery: {
sent: '已发送',
cooldown: '冷却跳过',
failed: '失败',
hits_other: '{{count}} 条命中',
},
tpl: {
nsError: {
label: '业务 NS error',
desc: '指定命名空间(默认 astralx)内 error 日志',
},
allNsError: {
label: '全 NS error > 1000',
desc: '所有命名空间 error 日志总量超过 1000 条',
},
ingress5xx: {
label: 'Ingress 5xx',
desc: 'ingress-nginx 5xx(需 JSON access log,平台可一键标准化)',
},
ingress4xx: {
label: 'Ingress 4xx',
desc: 'ingress-nginx 4xx(需 JSON access log)',
},
fatal: {
label: 'FATAL',
desc: '所有命名空间出现 FATAL 即告警',
},
},
form: {
name: '规则名称 *',
namePlaceholder: '应用致命异常',
source: '数据源 *',
sourcePlaceholder: '选择数据源',
query: 'LogQL 查询 *',
queryHint:
'常用:{app="xxx"} |= "FATAL" / {namespace=~".+"} |~ "(?i)error" / {app="x"} |= "OutOfMemoryError"',
channels: '通知通道(可多选,扇出到多个告警群)',
noChannels: '请先在「系统设置 → 告警通知」创建通道',
channelDisabled: '(禁用)',
window: '统计窗口(分)',
threshold: '触发阈值(条)',
thresholdHint: '0 = 出现即告警',
cooldown: '冷却(分)',
enabled: '启用规则',
},
}