fix(ui): hide correlations - they're not actionable yet
Correlations currently show 'A and B alert together' which isn't useful: - Bidirectional correlations (A→B AND B→A) are just coincidence - 'experiences alert' is too vague to be actionable - No root cause identification - just shows correlated things correlate Hidden until we can properly identify: - Root cause chains (A CAUSES B, not just 'A and B happen together') - Specific trigger types (what kind of alert?) - Direction of causality Other improvements: - Stopped VMs/containers filtered from anomaly detection - Lower noise, more signal
This commit is contained in:
parent
367d22e937
commit
5138b01ed8
1 changed files with 29 additions and 25 deletions
|
|
@ -211,30 +211,34 @@ export const AIOverviewTable: Component<{ showWhenEmpty?: boolean }> = (props) =
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Correlations - only show high-confidence (>=70%) to avoid noise
|
// CORRELATIONS HIDDEN - they need more work to be genuinely useful
|
||||||
// Low confidence correlations are likely coincidental and not actionable
|
// Current state: "A and B alert together" (bidirectional) is not actionable
|
||||||
const MIN_CORRELATION_CONFIDENCE = 0.70;
|
// Shows that correlated things are correlated - no root cause identification
|
||||||
const highConfidenceCorrelations = correlations().filter(c => c.confidence >= MIN_CORRELATION_CONFIDENCE);
|
// TODO: Re-enable when we can identify root cause chains (A causes B, not just A+B)
|
||||||
const sortedCorrelations = [...highConfidenceCorrelations].sort((a, b) => b.confidence - a.confidence);
|
//
|
||||||
const visibleCorrelations = showAllDependencies()
|
// const MIN_CORRELATION_CONFIDENCE = 0.70;
|
||||||
? sortedCorrelations
|
// const highConfidenceCorrelations = correlations().filter(c => c.confidence >= MIN_CORRELATION_CONFIDENCE);
|
||||||
: sortedCorrelations.slice(0, DEPENDENCY_LIMIT);
|
// const sortedCorrelations = [...highConfidenceCorrelations].sort((a, b) => b.confidence - a.confidence);
|
||||||
|
// const visibleCorrelations = showAllDependencies()
|
||||||
|
// ? sortedCorrelations
|
||||||
|
// : sortedCorrelations.slice(0, DEPENDENCY_LIMIT);
|
||||||
|
//
|
||||||
|
// for (const corr of visibleCorrelations) {
|
||||||
|
// rows.push({
|
||||||
|
// id: `corr-${corr.source_id}-${corr.target_id}`,
|
||||||
|
// type: 'prediction',
|
||||||
|
// typeBadge: 'Dependency',
|
||||||
|
// typeBadgeClass: 'bg-indigo-100 text-indigo-700 dark:bg-indigo-900/40 dark:text-indigo-300',
|
||||||
|
// title: `${corr.source_name || corr.source_id} → ${corr.target_name || corr.target_id}`,
|
||||||
|
// subtitle: corr.description || `${corr.event_pattern} (${corr.occurrences} observations)`,
|
||||||
|
// timestamp: `Delay: ${corr.avg_delay}`,
|
||||||
|
// confidence: corr.confidence,
|
||||||
|
// locked: false,
|
||||||
|
// badgeClass: 'text-indigo-600 dark:text-indigo-400',
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
for (const corr of visibleCorrelations) {
|
|
||||||
rows.push({
|
|
||||||
id: `corr-${corr.source_id}-${corr.target_id}`,
|
|
||||||
type: 'prediction',
|
|
||||||
typeBadge: 'Dependency',
|
|
||||||
typeBadgeClass: 'bg-indigo-100 text-indigo-700 dark:bg-indigo-900/40 dark:text-indigo-300',
|
|
||||||
title: `${corr.source_name || corr.source_id} → ${corr.target_name || corr.target_id}`,
|
|
||||||
subtitle: corr.description || `${corr.event_pattern} (${corr.occurrences} observations)`,
|
|
||||||
timestamp: `Delay: ${corr.avg_delay}`,
|
|
||||||
confidence: corr.confidence,
|
|
||||||
locked: false,
|
|
||||||
badgeClass: 'text-indigo-600 dark:text-indigo-400',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Remediations - ONLY show actual ACTIONS (restarts, resizes, cleanups, fixes)
|
// Remediations - ONLY show actual ACTIONS (restarts, resizes, cleanups, fixes)
|
||||||
|
|
@ -564,11 +568,11 @@ export const AIOverviewTable: Component<{ showWhenEmpty?: boolean }> = (props) =
|
||||||
|
|
||||||
// Calculate hidden items per section
|
// Calculate hidden items per section
|
||||||
const hiddenDependencies = () => {
|
const hiddenDependencies = () => {
|
||||||
// Only count high-confidence correlations (>=70%)
|
// Correlations hidden from display - always return 0
|
||||||
const highConfidence = correlations().filter(c => c.confidence >= 0.70);
|
return 0;
|
||||||
return showAllDependencies() ? 0 : Math.max(0, highConfidence.length - DEPENDENCY_LIMIT);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const hiddenActions = () => {
|
const hiddenActions = () => {
|
||||||
const actionable = remediations().filter(rem => {
|
const actionable = remediations().filter(rem => {
|
||||||
const cmd = rem.action.trim().replace(/^\[[^\]]+\]\s*/, '');
|
const cmd = rem.action.trim().replace(/^\[[^\]]+\]\s*/, '');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue