From 42d1160f9ead29f700cfc2e19c83a36282f4e749 Mon Sep 17 00:00:00 2001 From: Bena Kansara <69037875+benakansara@users.noreply.github.com> Date: Fri, 1 Aug 2025 00:06:35 +0200 Subject: [PATCH] [APM rules] Handle rule params being undefined in recovered alert (#230125) Resolves https://github.com/elastic/kibana/issues/229343 - Handles `ruleParamsOfRecoveredAlert` being `undefined` It's not clear what causes `ruleParamsOfRecoveredAlert` to be `undefined`, I am still investigating the root cause. But in case it becomes `undefined`, it will not fail rule execution. (cherry picked from commit a11d199b77eb317c0e63f7454fdae80c8f87e46b) --- .../error_count/register_error_count_rule_type.ts | 6 ++---- .../register_transaction_duration_rule_type.ts | 6 ++---- .../register_transaction_error_rate_rule_type.ts | 6 ++---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/error_count/register_error_count_rule_type.ts b/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/error_count/register_error_count_rule_type.ts index ec8d674acf31e..52be71bf61117 100644 --- a/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/error_count/register_error_count_rule_type.ts +++ b/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/error_count/register_error_count_rule_type.ts @@ -288,10 +288,8 @@ export function registerErrorCountRuleType({ const alertUuid = recoveredAlert.alert.getUuid(); const alertDetailsUrl = getAlertDetailsUrl(basePath, spaceId, alertUuid); - const ruleParamsOfRecoveredAlert = alertHits?.[ - ALERT_RULE_PARAMETERS - ] as ErrorCountRuleTypeParams; - const groupByFieldsOfRecoveredAlert = ruleParamsOfRecoveredAlert.groupBy ?? []; + const ruleParamsOfRecoveredAlert = alertHits?.[ALERT_RULE_PARAMETERS]; + const groupByFieldsOfRecoveredAlert = ruleParamsOfRecoveredAlert?.groupBy ?? []; const allGroupByFieldsOfRecoveredAlert = getAllGroupByFields( ApmRuleType.ErrorCount, groupByFieldsOfRecoveredAlert diff --git a/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts b/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts index d5ec12796631d..b0d3389b469fd 100644 --- a/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts +++ b/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_duration/register_transaction_duration_rule_type.ts @@ -341,10 +341,8 @@ export function registerTransactionDurationRuleType({ const alertUuid = recoveredAlert.alert.getUuid(); const alertDetailsUrl = getAlertDetailsUrl(basePath, spaceId, alertUuid); - const ruleParamsOfRecoveredAlert = alertHits?.[ - ALERT_RULE_PARAMETERS - ] as TransactionDurationRuleTypeParams; - const groupByFieldsOfRecoveredAlert = ruleParamsOfRecoveredAlert.groupBy ?? []; + const ruleParamsOfRecoveredAlert = alertHits?.[ALERT_RULE_PARAMETERS]; + const groupByFieldsOfRecoveredAlert = ruleParamsOfRecoveredAlert?.groupBy ?? []; const allGroupByFieldsOfRecoveredAlert = getAllGroupByFields( ApmRuleType.TransactionDuration, groupByFieldsOfRecoveredAlert diff --git a/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/register_transaction_error_rate_rule_type.ts b/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/register_transaction_error_rate_rule_type.ts index 6c080a07feb5a..be93277e514e3 100644 --- a/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/register_transaction_error_rate_rule_type.ts +++ b/x-pack/solutions/observability/plugins/apm/server/routes/alerts/rule_types/transaction_error_rate/register_transaction_error_rate_rule_type.ts @@ -337,10 +337,8 @@ export function registerTransactionErrorRateRuleType({ const alertUuid = recoveredAlert.alert.getUuid(); const alertDetailsUrl = getAlertDetailsUrl(basePath, spaceId, alertUuid); - const ruleParamsOfRecoveredAlert = alertHits?.[ - ALERT_RULE_PARAMETERS - ] as TransactionErrorRateRuleTypeParams; - const groupByFieldsOfRecoveredAlert = ruleParamsOfRecoveredAlert.groupBy ?? []; + const ruleParamsOfRecoveredAlert = alertHits?.[ALERT_RULE_PARAMETERS]; + const groupByFieldsOfRecoveredAlert = ruleParamsOfRecoveredAlert?.groupBy ?? []; const allGroupByFieldsOfRecoveredAlert = getAllGroupByFields( ApmRuleType.TransactionErrorRate, groupByFieldsOfRecoveredAlert