diff --git a/x-pack/plugins/observability/public/config/paths.ts b/x-pack/plugins/observability/public/config/paths.ts
index 57bbc95fef40b..d95622cd067c0 100644
--- a/x-pack/plugins/observability/public/config/paths.ts
+++ b/x-pack/plugins/observability/public/config/paths.ts
@@ -8,6 +8,7 @@
export const paths = {
observability: {
alerts: '/app/observability/alerts',
+ ruleDetails: (ruleId: string) => `/app/observability/alerts/rules/${encodeURI(ruleId)}`,
},
management: {
rules: '/app/management/insightsAndAlerting/triggersActions/rules',
diff --git a/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table_t_grid/alerts_table_t_grid.tsx b/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table_t_grid/alerts_table_t_grid.tsx
index f7cc8db2da04f..c9d2d67e11bdc 100644
--- a/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table_t_grid/alerts_table_t_grid.tsx
+++ b/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table_t_grid/alerts_table_t_grid.tsx
@@ -65,7 +65,7 @@ import { useGetUserCasesPermissions } from '../../../../hooks/use_get_user_cases
import { usePluginContext } from '../../../../hooks/use_plugin_context';
import { LazyAlertsFlyout } from '../../../..';
import { parseAlert } from '../../components/parse_alert';
-import { translations } from '../../../../config';
+import { translations, paths } from '../../../../config';
import { addDisplayNames } from './add_display_names';
import { ADD_TO_EXISTING_CASE, ADD_TO_NEW_CASE } from './translations';
import { ObservabilityAppServices } from '../../../../application/types';
@@ -170,10 +170,7 @@ function ObservabilityActions({
const casePermissions = useGetUserCasesPermissions();
const ruleId = alert.fields['kibana.alert.rule.uuid'] ?? null;
- const linkToRule = ruleId
- ? http.basePath.prepend(`/app/observability/alerts/rules/${ruleId}`)
- : null;
-
+ const linkToRule = ruleId ? http.basePath.prepend(paths.observability.ruleDetails(ruleId)) : null;
const caseAttachments: CaseAttachments = useMemo(() => {
return ecsData?._id
? [
diff --git a/x-pack/plugins/observability/public/pages/rule_details/index.tsx b/x-pack/plugins/observability/public/pages/rule_details/index.tsx
index ce7049bd61056..092185846c011 100644
--- a/x-pack/plugins/observability/public/pages/rule_details/index.tsx
+++ b/x-pack/plugins/observability/public/pages/rule_details/index.tsx
@@ -210,7 +210,7 @@ export function RuleDetailsPage() {
return (
,
+ pageTitle: ,
bottomBorder: false,
rightSideItems: hasEditButton
? [
diff --git a/x-pack/test/observability_functional/apps/observability/alerts/index.ts b/x-pack/test/observability_functional/apps/observability/alerts/index.ts
index e1fd795d55ffb..108446f733da6 100644
--- a/x-pack/test/observability_functional/apps/observability/alerts/index.ts
+++ b/x-pack/test/observability_functional/apps/observability/alerts/index.ts
@@ -223,7 +223,9 @@ export default ({ getService }: FtrProviderContext) => {
const actionsButton = await observability.alerts.common.getActionsButtonByIndex(0);
await actionsButton.click();
await observability.alerts.common.viewRuleDetailsButtonClick();
- expect(await find.existsByCssSelector('[title="Rules and Connectors"]')).to.eql(true);
+ expect(await find.existsByCssSelector('[data-test-subj="ruleDetailPageTitle"]')).to.eql(
+ true
+ );
});
});