Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
ee221fd
update swimlane container colors
rbrtj May 20, 2025
09d6c30
Update SMV Anomaly Marker Colors
rbrtj May 21, 2025
16ff5cb
Update influencers with new badge and severity colors
rbrtj May 22, 2025
feca484
Anomalies table && charts embeddable - new filtering UX
rbrtj Jun 3, 2025
62b6dfb
Anomaly Swimlane - new filtering UX
rbrtj Jun 5, 2025
cffe211
fetch all scores in anomaly swimlane embeddable
rbrtj Jun 5, 2025
bb98e7c
unified severity type
rbrtj Jun 6, 2025
75aee0f
decouple hooks
rbrtj Jun 6, 2025
37cf2ee
move severity legend control
rbrtj Jun 6, 2025
fe81958
migrate anomaly severity colors to use theme-aware values
rbrtj Jun 6, 2025
112f704
remove comment leftover
rbrtj Jun 6, 2025
70a1b09
revert alerting changes
rbrtj Jun 6, 2025
202767a
remove comment leftover
rbrtj Jun 6, 2025
9f56d27
Anomalies Table URL state backwards compatibility
rbrtj Jun 9, 2025
e0cb2f6
Anomaly Swimlane backward compatibility
rbrtj Jun 9, 2025
d5cb763
Update severity colors && make severity color ramp use consolidated c…
rbrtj Jun 10, 2025
ac30fa5
Influencer Badges: Use consolidated colors
rbrtj Jun 10, 2025
8dc1f1b
Use severity options hook: Use consolidated colors
rbrtj Jun 10, 2025
f7ff363
Anomaly Swimlane: Use consolidated colors
rbrtj Jun 10, 2025
b0d656b
Timeseries explorer: Use consolidated colors
rbrtj Jun 10, 2025
3b78b10
Timeseries Explorer Chart: Use consolidated colors
rbrtj Jun 10, 2025
123d21c
Timeseries Explorer: Use consolidated severity stroke colors
rbrtj Jun 10, 2025
757c4db
Timeseries Explorer Chart: Update Chart Colors
rbrtj Jun 10, 2025
e98a2a4
Anomalies Table: Update severity column name to Score
rbrtj Jun 10, 2025
f158457
Influencers list: Update influencer filter button color
rbrtj Jun 10, 2025
8722e15
Merge remote-tracking branch 'upstream/main' into ml-new-severity-col…
rbrtj Jun 11, 2025
2fb8438
update use severity color test
rbrtj Jun 11, 2025
2a6e7e3
Update help popover button color
rbrtj Jun 11, 2025
8453759
Anomaly Timeline: Responsiveness fix
rbrtj Jun 11, 2025
56e1de4
Maps: Get rid of CUSTOM_COLOR_RAMP usage
rbrtj Jun 12, 2025
e402160
Anomalies Table: Update severity control test
rbrtj Jun 12, 2025
7d57807
Anomaly Charts: Update explorer charts service test
rbrtj Jun 12, 2025
02d5bd8
Remove unused translations
rbrtj Jun 12, 2025
22ea4e8
Anomalies Table: Default to all selected
rbrtj Jun 12, 2025
2637b6c
Anomalies Table: Prevent user from deselecting all severities
rbrtj Jun 12, 2025
6c56ba6
Anomalies Table: Use sentence case for control label
rbrtj Jun 12, 2025
c2bfc29
Anomaly Charts: Update Charts to use new severity colors
rbrtj Jun 12, 2025
9534a01
Anomaly Swimlane Embeddable: Fix View by other
rbrtj Jun 13, 2025
a57513c
Merge branch 'main' into ml-new-severity-colors-alignment
rbrtj Jun 13, 2025
8e0ab07
Anomaly Timeline: Debounce severity filter change
rbrtj Jun 13, 2025
b6096e1
Timeseries Explorer Chart: Update forecast bounds opacity
rbrtj Jun 13, 2025
f6c4712
Anomaly Charts Wizard: Update wizard to use new chart colors
rbrtj Jun 13, 2025
7970b3f
Anomaly Charts: Match SMV chart colors
rbrtj Jun 13, 2025
60e2afe
Anomaly Swimlane: Update brush mask color
rbrtj Jun 13, 2025
a06a864
Merge branch 'main' into ml-new-severity-colors-alignment
rbrtj Jun 16, 2025
725bb28
Explorer Charts Container: Migrate to RTL && adjust tests
rbrtj Jun 16, 2025
2afaa05
Explorer Chart Single Metric: Migrate to RTL && adjust tests
rbrtj Jun 16, 2025
c3ea168
Explorer Chart Distribution: Migrate to RTL && adjust tests
rbrtj Jun 16, 2025
29ab352
Severity Cell: Adjust test
rbrtj Jun 16, 2025
096d86f
Get Severity: Adjust test
rbrtj Jun 16, 2025
6a8db54
Get anomalies table data: Update API test
rbrtj Jun 16, 2025
e358644
Single Metric Viewer Embeddable: Update tableSeverity prop
rbrtj Jun 16, 2025
3dae565
Anomaly Swimlane: Adjust filter to align behavior with embeddable
rbrtj Jun 17, 2025
6585d01
Merge branch 'main' into ml-new-severity-colors-alignment
rbrtj Jun 18, 2025
e5a119c
refactor: replace hardcoded colors with EUI palette values
rbrtj Jun 18, 2025
201f88d
fix: replace hardcoded padding value with EUI theme variable in multi…
rbrtj Jun 18, 2025
9717711
Update tests
rbrtj Jun 18, 2025
44726e5
Merge branch 'main' into ml-new-severity-colors-alignment
rbrtj Jun 23, 2025
5564646
Influencers list: focusable badge
rbrtj Jun 23, 2025
119c4c3
Explorer Charts: Update stroke colors
rbrtj Jun 23, 2025
7ef4e2c
Explorer Charts: Update color for entity filter icon
rbrtj Jun 23, 2025
0d56975
Single Metric Viewer: Update annotation colors
rbrtj Jun 23, 2025
64486fb
Single Metric Viewer: Update annotation brush opacity
rbrtj Jun 23, 2025
89c7dcb
Single Metric Viewer: Fix annotation colors
rbrtj Jun 23, 2025
e389643
Remove unused import
rbrtj Jun 23, 2025
1851cac
Single Metric Viewer: Revert blurred annotation rect color
rbrtj Jun 23, 2025
b623779
Single Metric Viewer: Blurred annotation styles update
rbrtj Jun 23, 2025
0d3fdaf
Refactor: Remove unnecessary property from ColorRampStop interface
rbrtj Jun 24, 2025
804d756
Refactor: Update Select Severity imports to use index barrel file
rbrtj Jun 24, 2025
3e4982c
Anomalies Table: Add severity format resolver to handle legacy anomal…
rbrtj Jun 24, 2025
5c4ceff
Anomaly Explorer: Migrate severity format handling to resolver function
rbrtj Jun 24, 2025
6c85836
Select Severity Control: Replace inline styles with EUI components & …
rbrtj Jun 24, 2025
839a1dd
Anomaly Timeline: Simplify state management
rbrtj Jun 24, 2025
f2e8f61
Anomaly Swimlane: Improve severity selection when deselecting all
rbrtj Jun 24, 2025
8176ca2
Anomaly Swimlane: Support i18n in legend control
rbrtj Jun 24, 2025
9d7bc65
refactor: use_threshold_to_severity useCallback instead of useMemo
rbrtj Jun 24, 2025
cc91247
Refactor: use threshold to severity support new format only
rbrtj Jun 24, 2025
35b3164
Anomaly Timeline: Extract shouldIncludePointByScore method
rbrtj Jun 24, 2025
72a28bc
Timeseries Chart: Use Anomaly Threshold constants for d3 domain
rbrtj Jun 24, 2025
67a8b24
Anomaly Timeline: Extract shouldIncludePointByScore to a function && …
rbrtj Jun 24, 2025
e2602c5
Refactor: Severity Ramp type fix
rbrtj Jun 24, 2025
0fefc16
Anomaly Charts: Update embeddable default state
rbrtj Jun 24, 2025
ddca03c
Anomaly Swimlane: Align embeddable swimlane legend filter values
rbrtj Jun 24, 2025
777522c
[CI] Auto-commit changed files from 'node scripts/notice'
kibanamachine Jun 24, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 0 additions & 25 deletions x-pack/platform/packages/shared/ml/anomaly_utils/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,6 @@
* 2.0.
*/

import { ML_ANOMALY_THRESHOLD } from './anomaly_threshold';
import { ML_SEVERITY_COLORS } from './severity_colors';

/**
* Severity color ramp.
*/
export const ML_SEVERITY_COLOR_RAMP = [
{
stop: ML_ANOMALY_THRESHOLD.LOW,
color: ML_SEVERITY_COLORS.WARNING,
},
{
stop: ML_ANOMALY_THRESHOLD.MINOR,
color: ML_SEVERITY_COLORS.MINOR,
},
{
stop: ML_ANOMALY_THRESHOLD.MAJOR,
color: ML_SEVERITY_COLORS.MAJOR,
},
{
stop: ML_ANOMALY_THRESHOLD.CRITICAL,
color: ML_SEVERITY_COLORS.CRITICAL,
},
];

/**
* Custom enum for anomaly result type
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,15 @@
import { getSeverity } from './get_severity';

describe('getSeverity', () => {
test('returns warning for 0 <= score < 25', () => {
expect(getSeverity(0).id).toBe('warning');
expect(getSeverity(0.001).id).toBe('warning');
test('returns low for 0 <= score < 3', () => {
expect(getSeverity(0).id).toBe('low');
expect(getSeverity(0.001).id).toBe('low');
expect(getSeverity(2.99).id).toBe('low');
});

test('returns warning for 3 <= score < 25', () => {
expect(getSeverity(3).id).toBe('warning');
expect(getSeverity(3.001).id).toBe('warning');
expect(getSeverity(24.99).id).toBe('warning');
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@ export function getSeverity(normalizedScore: number): MlSeverityType {
return ML_ANOMALY_SEVERITY_TYPES.major;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.MINOR) {
return ML_ANOMALY_SEVERITY_TYPES.minor;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.LOW) {
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.WARNING) {
return ML_ANOMALY_SEVERITY_TYPES.warning;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.LOW) {
return ML_ANOMALY_SEVERITY_TYPES.low;
} else {
return ML_ANOMALY_SEVERITY_TYPES.unknown;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import { ML_ANOMALY_THRESHOLD } from './anomaly_threshold';
import { ML_SEVERITY_COLORS } from './severity_colors';

/**
* Returns a severity RGB color (one of critical, major, minor, warning, low or unknown)
* for the supplied normalized anomaly score (a value between 0 and 100).
* @param normalizedScore - A normalized score between 0-100, which is based on the probability of the anomalousness of this record
* @deprecated Prefer using the `useSeverityColor` hook for functional components
* or ensure `EuiTheme` is passed to `getThemeResolvedSeverityColor` for class components
* to get theme-aware colors. This function uses a fixed set of legacy colors.
*/
export function getSeverityColor(normalizedScore: number): string {
if (normalizedScore >= ML_ANOMALY_THRESHOLD.CRITICAL) {
Expand Down
7 changes: 6 additions & 1 deletion x-pack/platform/packages/shared/ml/anomaly_utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
export { type MlSeverityType, ML_ANOMALY_SEVERITY } from './anomaly_severity';
export { ML_ANOMALY_THRESHOLD } from './anomaly_threshold';
export { ML_SEVERITY_COLORS } from './severity_colors';
export { getMlSeverityColorRampValue, type ColorRampStop } from './severity_ramp';

export {
mlJobAggregations,
Expand Down Expand Up @@ -42,7 +43,6 @@ export {
ML_PARTITION_FIELD_VALUE,
ML_PARTITION_FIELDS,
ML_JOB_ID,
ML_SEVERITY_COLOR_RAMP,
} from './constants';

export {
Expand Down Expand Up @@ -91,6 +91,11 @@ export {

export { getFormattedSeverityScore } from './get_formatted_severity_score';
export { getSeverity } from './get_severity';
export {
useSeverityColor,
getThemeResolvedSeverityColor,
getThemeResolvedSeverityStrokeColor,
} from './use_severity_color';
export { getSeverityColor } from './get_severity_color';
export { getSeverityType } from './get_severity_type';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

/**
* RGB hex codes used to indicate the severity of an anomaly according to its anomaly score.
* @deprecated Prefer using theme-aware colors via `useSeverityColor` hook or `getThemeResolvedSeverityColor` utility.
* This constant provides a fixed set of legacy colors.
*/
export const ML_SEVERITY_COLORS = {
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import type { EuiThemeComputed } from '@elastic/eui';
import type { SerializableRecord } from '@kbn/utility-types';
import { ML_ANOMALY_THRESHOLD } from './anomaly_threshold';
import { getThemeResolvedSeverityColor } from './use_severity_color';

export interface ColorRampStop extends SerializableRecord {
stop: number;
color: string;
}

/**
* Returns a theme-aware color ramp for ML severity scores.
* @param euiTheme The EUI theme object.
* @returns An array of ColorRampStop objects.
*/
export const getMlSeverityColorRampValue = (euiTheme: EuiThemeComputed): ColorRampStop[] => [
{
stop: ML_ANOMALY_THRESHOLD.LOW,
color: getThemeResolvedSeverityColor(ML_ANOMALY_THRESHOLD.LOW, euiTheme),
},
{
stop: ML_ANOMALY_THRESHOLD.MINOR,
color: getThemeResolvedSeverityColor(ML_ANOMALY_THRESHOLD.MINOR, euiTheme),
},
{
stop: ML_ANOMALY_THRESHOLD.MAJOR,
color: getThemeResolvedSeverityColor(ML_ANOMALY_THRESHOLD.MAJOR, euiTheme),
},
{
stop: ML_ANOMALY_THRESHOLD.CRITICAL,
color: getThemeResolvedSeverityColor(ML_ANOMALY_THRESHOLD.CRITICAL, euiTheme),
},
];
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@
"@kbn/i18n",
"@kbn/ml-is-populated-object",
"@kbn/field-types",
"@kbn/utility-types",
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import { renderHook } from '@testing-library/react';
import { useSeverityColor } from './use_severity_color';

// Mock the EUI dependencies
jest.mock('@elastic/eui', () => {
const mockSkyBluePalette = ['#dceef7', '#a6d8ec', '#a6d8ec', '#a6d8ec', '#a6d8ec', '#a6d8ec'];
return {
useEuiTheme: () => ({
euiTheme: {
colors: {
severity: {
danger: '#ff0000',
risk: '#ff9900',
warning: '#ffcc00',
unknown: '#ffffff',
},
},
},
}),
euiPaletteSkyBlue: () => mockSkyBluePalette,
};
});
describe('useSeverityColor', () => {
// Define expected color values based on our mocks
const expectedColors = {
low: '#dceef7',
warning: '#a6d8ec',
minor: '#ffcc00',
major: '#ff9900',
critical: '#ff0000',
unknown: '#ffffff',
};
test('returns correct hex code for low for 0 <= score < 3', () => {
const { result } = renderHook(() => useSeverityColor(0));
expect(result.current).toBe(expectedColors.low);

const { result: result2 } = renderHook(() => useSeverityColor(0.001));
expect(result2.current).toBe(expectedColors.low);

const { result: result3 } = renderHook(() => useSeverityColor(2.99));
expect(result3.current).toBe(expectedColors.low);
});

test('returns correct hex code for warning for 3 <= score < 25', () => {
const { result } = renderHook(() => useSeverityColor(3));
expect(result.current).toBe(expectedColors.warning);

const { result: result2 } = renderHook(() => useSeverityColor(24.99));
expect(result2.current).toBe(expectedColors.warning);
});

test('returns correct hex code for minor for 25 <= score < 50', () => {
const { result } = renderHook(() => useSeverityColor(25));
expect(result.current).toBe(expectedColors.minor);

const { result: result2 } = renderHook(() => useSeverityColor(49.99));
expect(result2.current).toBe(expectedColors.minor);
});

test('returns correct hex code for major for 50 <= score < 75', () => {
const { result } = renderHook(() => useSeverityColor(50));
expect(result.current).toBe(expectedColors.major);

const { result: result2 } = renderHook(() => useSeverityColor(74.99));
expect(result2.current).toBe(expectedColors.major);
});

test('returns correct hex code for critical for score >= 75', () => {
const { result } = renderHook(() => useSeverityColor(75));
expect(result.current).toBe(expectedColors.critical);

const { result: result2 } = renderHook(() => useSeverityColor(100));
expect(result2.current).toBe(expectedColors.critical);

const { result: result3 } = renderHook(() => useSeverityColor(1000));
expect(result3.current).toBe(expectedColors.critical);
});

test('returns correct hex code for unknown for scores less than 0', () => {
const { result } = renderHook(() => useSeverityColor(-10));
expect(result.current).toBe(expectedColors.unknown);
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import { useMemo } from 'react';
import type { EuiThemeComputed } from '@elastic/eui';
import { useEuiTheme, euiPaletteSkyBlue, euiPaletteOrange, euiPaletteYellow } from '@elastic/eui';
import { ML_ANOMALY_THRESHOLD } from './anomaly_threshold';

/**
* Resolves severity color based on normalized score and EUI theme colors.
* This function can be used in contexts where the EuiTheme object is available,
* for example, within class components that receive the theme via props or context.
*
* @param normalizedScore The anomaly score, normalized (typically 0-100).
* @param euiTheme The EuiTheme object.
* @returns The hex color string for the severity.
*/
export function getThemeResolvedSeverityColor(
normalizedScore: number,
euiTheme: EuiThemeComputed
): string {
const skyBluePalette = euiPaletteSkyBlue(6);

if (normalizedScore >= ML_ANOMALY_THRESHOLD.CRITICAL) {
return euiTheme.colors.severity.danger;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.MAJOR) {
return euiTheme.colors.severity.risk;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.MINOR) {
return euiTheme.colors.severity.warning;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.WARNING) {
return skyBluePalette[2];
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.LOW) {
return skyBluePalette[0];
} else {
return euiTheme.colors.severity.unknown;
}
}

export function getThemeResolvedSeverityStrokeColor(
normalizedScore: number,
euiTheme: EuiThemeComputed
): string {
const orangePalette = euiPaletteOrange(6);
const yellowPalette = euiPaletteYellow(6);
const skyBluePalette = euiPaletteSkyBlue(6);

if (normalizedScore >= ML_ANOMALY_THRESHOLD.CRITICAL) {
return euiTheme.colors.danger;
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.MAJOR) {
return orangePalette[5];
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.MINOR) {
return yellowPalette[5];
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.WARNING) {
return skyBluePalette[3];
} else if (normalizedScore >= ML_ANOMALY_THRESHOLD.LOW) {
return skyBluePalette[0];
} else {
return euiTheme.colors.severity.unknown;
}
}

/**
* A React hook to get a theme-aware severity color string directly.
* This hook computes the color based on the normalized score and the current EUI theme.
*
* @param normalizedScore The anomaly score, normalized (typically 0-100).
* @returns The hex color string for the severity, corresponding to the current theme.
*/
export const useSeverityColor = (normalizedScore: number): string => {
const { euiTheme } = useEuiTheme();

return useMemo(() => {
return getThemeResolvedSeverityColor(normalizedScore, euiTheme);
}, [normalizedScore, euiTheme]);
};
Original file line number Diff line number Diff line change
Expand Up @@ -26995,7 +26995,6 @@
"xpack.ml.controls.selectSeverity.criticalLabel": "critique",
"xpack.ml.controls.selectSeverity.majorLabel": "majeur",
"xpack.ml.controls.selectSeverity.minorLabel": "mineure",
"xpack.ml.controls.selectSeverity.scoreDetailsDescription": "score {value} et supérieur",
"xpack.ml.controls.selectSeverity.warningLabel": "avertissement",
"xpack.ml.creationWizardUtils.destinationIndexInputAriaLabel": "Choisissez un nom d'index de destination unique.",
"xpack.ml.creationWizardUtils.destinationIndexInvalidError": "Nom d'index de destination non valide.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26974,7 +26974,6 @@
"xpack.ml.controls.selectSeverity.criticalLabel": "致命的",
"xpack.ml.controls.selectSeverity.majorLabel": "メジャー",
"xpack.ml.controls.selectSeverity.minorLabel": "マ��ナー",
"xpack.ml.controls.selectSeverity.scoreDetailsDescription": "スコア{value}以上",
"xpack.ml.controls.selectSeverity.warningLabel": "警告",
"xpack.ml.creationWizardUtils.destinationIndexInputAriaLabel": "固有の宛先インデックス名を選択してください。",
"xpack.ml.creationWizardUtils.destinationIndexInvalidError": "無効なデスティネーションインデックス名。",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27023,7 +27023,6 @@
"xpack.ml.controls.selectSeverity.criticalLabel": "紧急",
"xpack.ml.controls.selectSeverity.majorLabel": "重大",
"xpack.ml.controls.selectSeverity.minorLabel": "轻微",
"xpack.ml.controls.selectSeverity.scoreDetailsDescription": "{value} 及以上分数",
"xpack.ml.controls.selectSeverity.warningLabel": "警告",
"xpack.ml.creationWizardUtils.destinationIndexInputAriaLabel": "选择唯一目标索引名称。",
"xpack.ml.creationWizardUtils.destinationIndexInvalidError": "目标索引名称无效。",
Expand Down
11 changes: 11 additions & 0 deletions x-pack/platform/plugins/shared/ml/common/types/anomalies.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

export interface SeverityThreshold {
min: number;
max?: number;
}
3 changes: 2 additions & 1 deletion x-pack/platform/plugins/shared/ml/common/types/locator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import type { SearchQueryLanguage } from '@kbn/ml-query-utils';
import type { ListingPageUrlState } from '@kbn/ml-url-state';
import type { JobId } from './anomaly_detection_jobs/job';
import type { ML_PAGES } from '../constants/locator';
import type { SeverityThreshold } from './anomalies';

type OptionalPageState = (object & { globalState?: MlCommonGlobalState }) | undefined;

Expand Down Expand Up @@ -119,7 +120,7 @@ export interface ExplorerAppState {
/**
* Indicated severity threshold for both swim lanes
*/
severity?: number;
severity?: SeverityThreshold[];
};
mlExplorerFilter: {
influencersFilterQuery?: InfluencersFilterQuery;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ export function getColumns(
name: (
<span>
{i18n.translate('xpack.ml.anomaliesTable.severityColumnName', {
defaultMessage: 'Severity',
defaultMessage: 'Score',
})}
&nbsp;
<EuiIconTip
Expand Down
Loading