- 文案:约 25 组长文案中英同步精简(数据源引导/RBAC 注解/采集提示/删除确认等),三处重复 Ingress 教学收敛 - 汉化 shadcn 样板:分页 Previous/Next/aria、弹窗与抽屉 Close 接入 i18n(common.ui.*) - 一致性:查询授权面板 p-4、仪表盘卡片 p-6、分析卡头 pb-3、部署总数图标配色、 每日统计错误可重试、策略卡/最近部署行 truncate、状态徽章字重、三处原生 checkbox 换 shadcn、Label 浏览器圆角 - 词典:删除无引用的 raw.*/views.* 死键;zh 复数键风格统一(importCount/hits) - 快捷查询提示、Ingress 统计口径与表内说明按反馈删减
83 lines
2.8 KiB
TypeScript
83 lines
2.8 KiB
TypeScript
// alerts namespace — Log alerts domain (header / rule form & templates / delivery history / Feishu (Lark) notify hints)
|
|
export default {
|
|
title: 'Alerts',
|
|
subtitle:
|
|
'Monitor logs with LogQL count rules; push a Feishu (Lark) card when the threshold is exceeded (1-minute cycle)',
|
|
checkNow: 'Check Now',
|
|
checking: 'Checking...',
|
|
create: 'New Rule',
|
|
emptyTitle: 'No alert rules yet',
|
|
emptyDesc:
|
|
'e.g. {namespace=~".+"} |= "FATAL" — any match within 15 minutes pushes a Feishu (Lark) card',
|
|
sourceFallback: 'Data source {{id}}',
|
|
noChannels: 'No channels linked',
|
|
channelSep: ', ',
|
|
ruleMeta:
|
|
'Fires on more than {{threshold}} matches within {{window}} min · Cooldown {{cooldown}} min',
|
|
lastFired: 'Last fired {{time}}',
|
|
editAria: 'Edit {{name}}',
|
|
deleteAria: 'Delete {{name}}',
|
|
historyTitle: 'Delivery history (last 50)',
|
|
notifyHintPre: 'Notifications not configured? Go to',
|
|
notifyHintPost: 'to configure a Feishu (Lark) Webhook',
|
|
editTitle: 'Edit rule · {{name}}',
|
|
createTitle: 'New Alert Rule',
|
|
templates: 'Quick templates (click to prefill, then adjust as needed)',
|
|
saving: 'Saving...',
|
|
save: 'Save Changes',
|
|
submitCreate: 'Create Rule',
|
|
loadFailed: 'Failed to load alert data',
|
|
saveFailed: 'Failed to save',
|
|
deleteFailed: 'Failed to delete',
|
|
checkDone: 'Check completed. See delivery history for results.',
|
|
checkFailed: 'Check failed',
|
|
toggleFailed: 'Failed to toggle',
|
|
confirmDeleteTitle: 'Confirm alert rule deletion',
|
|
delivery: {
|
|
sent: 'Sent',
|
|
cooldown: 'Skipped (cooldown)',
|
|
failed: 'Failed',
|
|
hits_one: '{{count}} match',
|
|
hits_other: '{{count}} matches',
|
|
},
|
|
tpl: {
|
|
nsError: {
|
|
label: 'Namespace errors',
|
|
desc: 'Error logs in a given namespace (default astralx)',
|
|
},
|
|
allNsError: {
|
|
label: 'All-NS errors > 1000',
|
|
desc: 'Total error logs across all namespaces exceed 1000',
|
|
},
|
|
ingress5xx: {
|
|
label: 'Ingress 5xx',
|
|
desc: 'ingress-nginx 5xx (requires JSON access logs; the platform can normalize them in one click)',
|
|
},
|
|
ingress4xx: {
|
|
label: 'Ingress 4xx',
|
|
desc: 'ingress-nginx 4xx (requires JSON access logs)',
|
|
},
|
|
fatal: {
|
|
label: 'FATAL',
|
|
desc: 'Alert on any FATAL log across all namespaces',
|
|
},
|
|
},
|
|
form: {
|
|
name: 'Rule name *',
|
|
namePlaceholder: 'App fatal errors',
|
|
source: 'Data source *',
|
|
sourcePlaceholder: 'Select a data source',
|
|
query: 'LogQL query *',
|
|
queryHint:
|
|
'Common: {app="xxx"} |= "FATAL"',
|
|
channels: 'Channels (multi-select to fan out to multiple alert groups)',
|
|
noChannels: 'Create channels first under "Settings → Alert Notifications"',
|
|
channelDisabled: '(disabled)',
|
|
window: 'Window (min)',
|
|
threshold: 'Threshold (matches)',
|
|
thresholdHint: '0 = alert on any match',
|
|
cooldown: 'Cooldown (min)',
|
|
enabled: 'Enable rule',
|
|
},
|
|
}
|