// 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', historyEmpty: 'No deliveries yet. Fired rules will be recorded here.', tabs: { rules: 'Rules', channels: 'Channels', history: 'Delivery History', }, notifySectionTitle: 'Notification channels (Feishu / Lark / Webhook)', notifySectionConfigured: '{{count}} configured', notifySectionEmpty: 'Not configured — alerts cannot be delivered', col: { enabled: 'On', name: 'Rule', condition: 'Condition', notify: 'Notify', }, 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 (kept {{days}} days)', 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)', windowHint: 'The number of minutes to look back', thresholdHint: 'Alert only above this count', cooldownHint: 'No repeat within cooldown', cooldown: 'Cooldown (min)', enabled: 'Enable rule', }, }