[RAM] Makes anomaly detection rule visible in Observability (#170451)

## Summary

From the rule management page in observability, user will be able to
create an anomaly detection rule.

<img width="1789" alt="image"
src="9ce84628-bf1b-44f6-a51b-5bd2ad94d9bd">

<img width="1792" alt="image"
src="0add536c-2e62-4de5-9e06-2beedd0c0fe2">
This commit is contained in:
Xavier Mouligneau 2023-12-21 09:12:58 -05:00 committed by GitHub
parent 1a0dcf60fc
commit 80edac1d53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 31 additions and 7 deletions

View file

@ -15,4 +15,5 @@ export type RuleCreationValidConsumer =
| typeof AlertConsumers.LOGS
| typeof AlertConsumers.INFRASTRUCTURE
| typeof AlertConsumers.OBSERVABILITY
| typeof STACK_ALERTS_FEATURE_ID;
| typeof STACK_ALERTS_FEATURE_ID
| 'alerts';

View file

@ -8,3 +8,4 @@
export const STACK_ALERTS_FEATURE_ID = 'stackAlerts';
export const ES_QUERY_ID = '.es-query';
export const ML_ANOMALY_DETECTION_RULE_TYPE_ID = 'xpack.ml.anomaly_detection_alert';

View file

@ -8,7 +8,10 @@
import { i18n } from '@kbn/i18n';
import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server';
import { logViewSavedObjectName } from '@kbn/logs-shared-plugin/server';
import { OBSERVABILITY_THRESHOLD_RULE_TYPE_ID } from '@kbn/rule-data-utils';
import {
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
} from '@kbn/rule-data-utils';
import { ES_QUERY_ID } from '@kbn/rule-data-utils';
import { metricsDataSourceSavedObjectName } from '@kbn/metrics-data-access-plugin/server';
import { LOG_DOCUMENT_COUNT_RULE_TYPE_ID } from '../common/alerting/logs/log_threshold/types';
@ -24,6 +27,7 @@ const metricRuleTypes = [
METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID,
ES_QUERY_ID,
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
];
export const METRICS_FEATURE = {
@ -89,6 +93,7 @@ const logsRuleTypes = [
LOG_DOCUMENT_COUNT_RULE_TYPE_ID,
ES_QUERY_ID,
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
];
export const LOGS_FEATURE = {

View file

@ -12,11 +12,12 @@ import {
ALERT_RULE_NAME,
ALERT_START,
ALERT_STATUS,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
} from '@kbn/rule-data-utils';
import { JobsHealthTests } from '../types/alerts';
export const ML_ALERT_TYPES = {
ANOMALY_DETECTION: 'xpack.ml.anomaly_detection_alert',
ANOMALY_DETECTION: ML_ANOMALY_DETECTION_RULE_TYPE_ID,
AD_JOBS_HEALTH: 'xpack.ml.anomaly_detection_jobs_health',
} as const;

View file

@ -9,3 +9,4 @@ export { composeValidators, patternValidator } from './util/validators';
export { getDefaultCapabilities as getDefaultMlCapabilities } from './types/capabilities';
export { DATAFEED_STATE, JOB_STATE } from './constants/states';
export type { MlSummaryJob, SummaryJobState } from './types/anomaly_detection_jobs';
export { ML_ALERT_TYPES } from './constants/alerts';

View file

@ -6,13 +6,17 @@
*/
import { useMemo } from 'react';
import { ES_QUERY_ID } from '@kbn/rule-data-utils';
import { ES_QUERY_ID, ML_ANOMALY_DETECTION_RULE_TYPE_ID } from '@kbn/rule-data-utils';
import { usePluginContext } from './use_plugin_context';
export function useGetFilteredRuleTypes() {
const { observabilityRuleTypeRegistry } = usePluginContext();
return useMemo(() => {
return [ES_QUERY_ID, ...observabilityRuleTypeRegistry.list()];
return [
ES_QUERY_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
...observabilityRuleTypeRegistry.list(),
];
}, [observabilityRuleTypeRegistry]);
}

View file

@ -28,6 +28,7 @@ import { i18n } from '@kbn/i18n';
import {
ApmRuleType,
ES_QUERY_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID,
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
} from '@kbn/rule-data-utils';
@ -89,6 +90,7 @@ const o11yRuleTypes = [
SLO_BURN_RATE_RULE_TYPE_ID,
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
ES_QUERY_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID,
...Object.values(ApmRuleType),
];

View file

@ -6,7 +6,11 @@
*/
import { i18n } from '@kbn/i18n';
import { ES_QUERY_ID, OBSERVABILITY_THRESHOLD_RULE_TYPE_ID } from '@kbn/rule-data-utils';
import {
ES_QUERY_ID,
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
} from '@kbn/rule-data-utils';
export {
BASE_ALERTING_API_PATH,
INTERNAL_BASE_ALERTING_API_PATH,
@ -120,4 +124,8 @@ export const GLOBAL_CONNECTOR_EXECUTION_DEFAULT_INITIAL_VISIBLE_COLUMNS = [
...CONNECTOR_LOCKED_COLUMNS,
];
export const MULTI_CONSUMER_RULE_TYPE_IDS = [OBSERVABILITY_THRESHOLD_RULE_TYPE_ID, ES_QUERY_ID];
export const MULTI_CONSUMER_RULE_TYPE_IDS = [
OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
ES_QUERY_ID,
ML_ANOMALY_DETECTION_RULE_TYPE_ID,
];

View file

@ -61,6 +61,7 @@ export const VALID_CONSUMERS: RuleCreationValidConsumer[] = [
AlertConsumers.LOGS,
AlertConsumers.INFRASTRUCTURE,
'stackAlerts',
'alerts',
];
export interface RuleFormConsumerSelectionProps {