refine Semi UI alert disposition

This commit is contained in:
lingniu
2026-07-18 17:27:08 +08:00
parent 29b9ce9594
commit 82d78926c6
5 changed files with 228 additions and 11 deletions

View File

@@ -35,6 +35,17 @@ export function thresholdText(event: Pick<AlertEvent, 'operator' | 'threshold' |
return `${operatorLabels[event.operator] ?? event.operator} ${formatZhNumber(Number(event.threshold.toFixed(2)), 2)} ${event.unit}${duration}`.trim();
}
export function alertDeltaText(event: Pick<AlertEvent, 'operator' | 'triggerValue' | 'threshold' | 'unit'>) {
if (!Number.isFinite(event.triggerValue) || !Number.isFinite(event.threshold)) return '规则已命中';
const delta = event.operator === 'gt' || event.operator === 'gte'
? event.triggerValue - event.threshold
: event.operator === 'lt' || event.operator === 'lte'
? event.threshold - event.triggerValue
: Number.NaN;
if (!Number.isFinite(delta)) return '规则已命中';
return `+${formatZhNumber(Number(Math.max(0, delta).toFixed(2)), 2)} ${event.unit}`.trim();
}
export function ruleCondition(rule: AlertRule, labels: Record<string, string> = metricLabels) {
const threshold = rule.operator === 'changed' ? '状态变化' : rule.operator === 'between' || rule.operator === 'outside' ? `${operatorLabels[rule.operator]} ${rule.threshold}${rule.thresholdHigh}` : rule.valueType === 'boolean' ? (rule.booleanThreshold ? '是' : '否') : `${operatorLabels[rule.operator] ?? rule.operator} ${rule.threshold}`;
return `${labels[rule.metric] ?? rule.metric} ${threshold}${rule.durationSec ? ` · ${rule.durationSec}` : ''}`;