diff --git a/x-pack/plugins/monitoring/public/alerts/flyout_expressions/alert_param_duration.tsx b/x-pack/plugins/monitoring/public/alerts/flyout_expressions/alert_param_duration.tsx index 23a9ea1facbc9c..862f32efd7361c 100644 --- a/x-pack/plugins/monitoring/public/alerts/flyout_expressions/alert_param_duration.tsx +++ b/x-pack/plugins/monitoring/public/alerts/flyout_expressions/alert_param_duration.tsx @@ -49,7 +49,7 @@ interface Props { setAlertParams: (property: string, value: any) => void; } -const parseRegex = /(\d+)(\smhd)/; +const parseRegex = /(\d+)([smhd]{1})/; export const AlertParamDuration: React.FC = (props: Props) => { const { name, label, setAlertParams, errors } = props; const parsed = parseRegex.exec(props.duration); diff --git a/x-pack/plugins/monitoring/server/alerts/base_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/base_alert.test.ts index 8fd31db421a309..c256cce362ff82 100644 --- a/x-pack/plugins/monitoring/server/alerts/base_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/base_alert.test.ts @@ -63,7 +63,7 @@ describe('BaseAlert', () => { interval: '1m', }, tags: [], - throttle: '1m', + throttle: '1d', }, }); }); diff --git a/x-pack/plugins/monitoring/server/alerts/base_alert.ts b/x-pack/plugins/monitoring/server/alerts/base_alert.ts index 622ee7dc51af14..cac57f599633d7 100644 --- a/x-pack/plugins/monitoring/server/alerts/base_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/base_alert.ts @@ -40,7 +40,7 @@ import { MonitoringLicenseService } from '../types'; export class BaseAlert { public type!: string; public label!: string; - public defaultThrottle: string = '1m'; + public defaultThrottle: string = '1d'; public defaultInterval: string = '1m'; public rawAlert: Alert | undefined; public isLegacy: boolean = false; diff --git a/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts index 10b75c43ac8798..f25179fa63c2fa 100644 --- a/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts @@ -22,7 +22,7 @@ describe('ClusterHealthAlert', () => { const alert = new ClusterHealthAlert(); expect(alert.type).toBe(ALERT_CLUSTER_HEALTH); expect(alert.label).toBe('Cluster health'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ { diff --git a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts index f0d11abab14924..1a66560ae124a7 100644 --- a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts @@ -22,9 +22,9 @@ describe('CpuUsageAlert', () => { const alert = new CpuUsageAlert(); expect(alert.type).toBe(ALERT_CPU_USAGE); expect(alert.label).toBe('CPU Usage'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore - expect(alert.defaultParams).toStrictEqual({ threshold: 90, duration: '5m' }); + expect(alert.defaultParams).toStrictEqual({ threshold: 85, duration: '5m' }); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ { diff --git a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts index 9171745fba7470..ad5f32fd00d8a6 100644 --- a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts @@ -39,7 +39,7 @@ const FIRING = i18n.translate('xpack.monitoring.alerts.cpuUsage.firing', { defaultMessage: 'firing', }); -const DEFAULT_THRESHOLD = 90; +const DEFAULT_THRESHOLD = 85; const DEFAULT_DURATION = '5m'; interface CpuUsageParams { @@ -393,7 +393,16 @@ export class CpuUsageAlert extends BaseAlert { continue; } - const instance = services.alertInstanceFactory(`${this.type}:${cluster.clusterUuid}`); + const firingNodeUuids = nodes.reduce((list, node) => { + const stat = node.meta as AlertCpuUsageNodeStats; + if (node.shouldFire) { + list.push(stat.nodeId); + } + return list; + }, []); + firingNodeUuids.sort(); // It doesn't matter how we sort, but keep the order consistent + const instanceId = `${this.type}:${cluster.clusterUuid}:${firingNodeUuids.join(',')}`; + const instance = services.alertInstanceFactory(instanceId); const state = (instance.getState() as unknown) as AlertInstanceState; const alertInstanceState: AlertInstanceState = { alertStates: state?.alertStates || [] }; let shouldExecuteActions = false; diff --git a/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts index 44684939ca261a..50bf40825c515f 100644 --- a/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts @@ -22,7 +22,7 @@ describe('ElasticsearchVersionMismatchAlert', () => { const alert = new ElasticsearchVersionMismatchAlert(); expect(alert.type).toBe(ALERT_ELASTICSEARCH_VERSION_MISMATCH); expect(alert.label).toBe('Elasticsearch version mismatch'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ { diff --git a/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts index 6c56c7aa08d712..1a76fae9fc4207 100644 --- a/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts @@ -22,7 +22,7 @@ describe('KibanaVersionMismatchAlert', () => { const alert = new KibanaVersionMismatchAlert(); expect(alert.type).toBe(ALERT_KIBANA_VERSION_MISMATCH); expect(alert.label).toBe('Kibana version mismatch'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ { diff --git a/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts index 09173df1d88b1e..0f677dcc9c1205 100644 --- a/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts @@ -29,7 +29,7 @@ describe('LicenseExpirationAlert', () => { const alert = new LicenseExpirationAlert(); expect(alert.type).toBe(ALERT_LICENSE_EXPIRATION); expect(alert.label).toBe('License expiration'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ { diff --git a/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts index 3f6d38809a9492..f29c199b3f1e17 100644 --- a/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts @@ -22,7 +22,7 @@ describe('LogstashVersionMismatchAlert', () => { const alert = new LogstashVersionMismatchAlert(); expect(alert.type).toBe(ALERT_LOGSTASH_VERSION_MISMATCH); expect(alert.label).toBe('Logstash version mismatch'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ { diff --git a/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts index 13c3dbbbe6e8ae..d45d404b38304d 100644 --- a/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts @@ -29,7 +29,7 @@ describe('NodesChangedAlert', () => { const alert = new NodesChangedAlert(); expect(alert.type).toBe(ALERT_NODES_CHANGED); expect(alert.label).toBe('Nodes changed'); - expect(alert.defaultThrottle).toBe('1m'); + expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ {