Skip to content

[Alerting v2] Add alerting v2 alerts nav panel to Observability solution navigation - #288193

Open
dominiqueclarke wants to merge 12 commits into
elastic:mainfrom
dominiqueclarke:alerting-v2/obs-alerts-nav-panel
Open

[Alerting v2] Add alerting v2 alerts nav panel to Observability solution navigation#288193
dominiqueclarke wants to merge 12 commits into
elastic:mainfrom
dominiqueclarke:alerting-v2/obs-alerts-nav-panel

Conversation

@dominiqueclarke

@dominiqueclarke dominiqueclarke commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add getAlertsNavPanel helper to the observability plugin that gates the Observability Alerts nav entry behind the alerting:v2:enabled advanced setting
  • When enabled, the Alerts link becomes a panel opener with: Inbox (episodes), Alerts V1 (classic alerts), Rule Management (Rules, Rule library), Notifications and Suppressions (Action policies, Maintenance Windows), and Operations (Execution History)
  • When disabled, the nav is unchanged (plain Alerts link)
  • Consumed by both stateful and serverless Observability navigation trees
Screenshot 2026-08-31 at 4 58 58 PM

Addresses elastic/rna-program#965

Out of scope

The following IA work is tracked separately and is not included in this PR:

  • Alert inbox unification — unifying classic Observability alerts with the v2 Inbox experience (no tracking issue yet)
  • Rule list tabs — classic/v2 tabs on Rules headings (elastic/rna-program#962, elastic/rna-program#964)
  • Remove Alerting V2 Preview from Stack Management — removing the preview section from management nav (elastic/rna-program#966)
  • Observability alerting URLs — mounting v2 pages at /app/observability/alerting/... (elastic/rna-program#969). This PR still navigates to existing /app/management/alertingV2/... mounts.

Test plan

  • Enable alerting:v2:enabled in Advanced Settings and verify the Observability side nav shows Alerts as a panel opener with Inbox, Alerts V1, Rule Management, Notifications and Suppressions, and Operations sections
  • Disable alerting:v2:enabled and verify the Observability side nav shows a plain Alerts link
  • Verify the same behavior in serverless Observability navigation
  • Verify the Inbox link navigates to the alerting v2 episodes page
  • Verify the Alerts V1 link navigates to the classic Observability alerts page
  • Verify New badges on Inbox, Rule library, Action policies, and Execution History

Made with Cursor

dominiqueclarke and others added 2 commits August 31, 2026 15:31
Gate the Observability solution alerts entry behind the alerting:v2:enabled
advanced setting. When enabled, the plain Alerts link becomes a panel
opener with Alerts, Notifications and Suppressions (Action policies,
Maintenance Windows), and Operations (Execution history). When disabled
the nav is unchanged. The helper lives in the observability plugin and
is consumed by both stateful and serverless nav trees.

Co-authored-by: Cursor <cursoragent@cursor.com>
When alerting v2 is enabled, the panel opener now shows Inbox
(management:episodes) and Alerts V1 (classic observability alerts)
as the top two links above Notifications and Operations.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dominiqueclarke

Copy link
Copy Markdown
Contributor Author

/ci

@github-actions github-actions Bot added the author:actionable-obs PRs authored by the actionable obs team label Aug 31, 2026
Include Rules V2 and Rule library links in the panel opener when
alerting v2 is enabled. Adds rule_library to the ManagementId
deep-links type so it resolves as a valid nav link.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dominiqueclarke

Copy link
Copy Markdown
Contributor Author

/ci

@dominiqueclarke dominiqueclarke changed the title Add alerting v2 alerts nav panel to Observability solution navigation [Alerting v2] Add alerting v2 alerts nav panel to Observability solution navigation Aug 31, 2026
Cover both the alerting:v2:enabled global setting and the
alerting:v2:showClassicAlertsTable space-scoped setting so the
Alerts panel structure is asserted with and without each gate.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dominiqueclarke

Copy link
Copy Markdown
Contributor Author

/ci

Verify the Alerts sub-nav link in the classic Kibana sidebar is
unaffected by the alerting v2 feature flags — it stays as a plain
link to /app/observability/alerts and highlights as active regardless.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dominiqueclarke

Copy link
Copy Markdown
Contributor Author

/ci

@dominiqueclarke dominiqueclarke added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting v9.6.0 labels Aug 31, 2026
@dominiqueclarke
dominiqueclarke marked this pull request as ready for review August 31, 2026 20:56
@dominiqueclarke
dominiqueclarke requested review from a team as code owners August 31, 2026 20:56
@kibanamachine

Copy link
Copy Markdown
Contributor

PR size reminder

This PR has 505 added lines of reviewable code, which is above the 500-line guideline for Nightshift PRs.

Large PRs get significantly less review engagement and take longer to merge. Consider splitting this into smaller, focused PRs before requesting review.

@kibanamachine kibanamachine added the reviewer:scout Agentic PR Scout test review label Aug 31, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the alerting v2 Observability nav panel change. One inline finding on the serverless navigation tree regarding a dropped getIsActive callback. The rest of the change (helper structure, space-scoped setting registration, and Jest/Scout coverage) looks sound.

Generated by Claude Reviewer for #288193 · opus · 117.1 AIC · ⌖ 14.3 AIC · ⊞ 5.1K

getIsActive: ({ pathNameSerialized, prepend }) =>
pathNameSerialized.startsWith(prepend('/app/observability/alerts')),
},
...getAlertsNavPanel(core),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The serverless Alerts entry previously carried a serverless-specific getIsActive:

{
  link: 'observability-overview:alerts',
  icon: 'warning',
  getIsActive: ({ pathNameSerialized, prepend }) =>
    pathNameSerialized.startsWith(prepend('/app/observability/alerts')),
},

getAlertsNavPanel does not reproduce it — in the v2-disabled (default) path it returns [{ link: ALERTS_LINK, icon: ALERTS_ICON }] with no getIsActive. The stateful tree never had this callback, but serverless did, so this is a behavior change specific to serverless. If the default deep-link active detection doesn't startsWith-match /app/observability/alerts sub-routes, the Alerts nav item will stop highlighting as active on those pages. Consider threading the getIsActive into the plain-link branch of the helper (or restoring it for the serverless consumer) so the active-state behavior is preserved.

@botelastic botelastic Bot added the ci:project-deploy-observability Create an Observability project label Aug 31, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🤖 GitHub comments

Expand to view the GitHub comments

Just comment with:

  • /oblt-deploy : Deploy a Kibana instance using the Observability test environments.
  • run docs-build : Re-trigger the docs validation. (use unformatted text in the comment!)

kibanamachine and others added 2 commits August 31, 2026 21:07
Restore serverless getIsActive, badge New items, and harden Scout coverage with shared setting constants, beforeAll resets, and page-object panel locators.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dominiqueclarke
dominiqueclarke requested a review from a team as a code owner August 31, 2026 21:44
@kibanamachine

kibanamachine commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

💔 Build Failed

Failed CI Steps

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
shared-plugins 3829 3830 +1

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
observability 3.6KB 3.6KB +27.0B
serverlessObservability 13.1KB 12.9KB -132.0B
shared-packages 4.5MB 4.5MB +89.0B
shared-plugins 11.9MB 11.9MB +1.3KB
total +1.2KB
Unknown metric groups

shared async chunks total size

id before after diff
all 14.7MB 14.7MB -26.0B

total optimizer output size

id before after diff
all 62.5MB 62.5MB +1.2KB

Test Failures

  • [job] [logs] FTR Configs #25 / lens app - group 1 lens chart style settings should allow filtering by legend on a pie chart
  • [job] [logs] FTR Configs #46 / lens app - group 2 lens old color mapping runtime migrations Saving with new color mapping config should save table chart custom color mappings from above
  • [job] [logs] Scout Lane #83 - serverless-observability_complete / default / local-serverless-observability_complete - Observability Alerts nav — alerting v2 feature flag - shows a plain Alerts link when alerting v2 is disabled
  • [job] [logs] Scout Lane #83 - serverless-observability_complete / default / local-serverless-observability_complete - Observability Alerts nav — alerting v2 feature flag - shows a plain Alerts link when alerting v2 is disabled
  • [job] [logs] Scout Lane #7 - stateful-classic / default / local-stateful-classic - Discover data grid sample size - saved search and Dashboard - new Discover sessions use the default sample size
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — alerting v2 feature flag - shows Alerts V1 link when showClassicAlertsTable is on
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — alerting v2 feature flag - shows Alerts V1 link when showClassicAlertsTable is on
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — classic sidebar - Alerts link is unchanged when alerting v2 is enabled
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — classic sidebar - Alerts link is unchanged when alerting v2 is enabled
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — classic sidebar - Alerts link is unchanged when both flags are enabled
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — classic sidebar - Alerts link is unchanged when both flags are enabled
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — classic sidebar - Alerts link navigates to observability alerts and highlights in the sub-nav with no feature flags
  • [job] [logs] Scout Lane #16 - stateful-classic / default / local-stateful-classic - Observability Alerts nav — classic sidebar - Alerts link navigates to observability alerts and highlights in the sub-nav with no feature flags
  • [job] [logs] FTR Configs #89 / Stack Management registers all UI Settings in the UsageStats interface
  • [job] [logs] FTR Configs #89 / Stack Management registers all UI Settings in the UsageStats interface

History

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Kibana Exploratory Testing — execution report

Run Metadata

  • Triggered by: Issue #1426
  • Elasticsearch image tag: 9.6.0-SNAPSHOT
  • Kibana image: docker.elastic.co/kibana-ci/kibana-serverless:pr-288193-5c14f0dc9c45
  • Date: 2026-08-31
  • PR: elastic/kibana#288193 — [Alerting v2] Add alerting v2 alerts nav panel to Observability solution navigation
  • Mode: PR-targeted (journeys generated from PR diff)
  • Journeys executed: 8
  • Passed: 0
  • Errored: 8
  • Findings: 0 bugs, 8 warnings, 0 info

Findings

01_hierarchy_and_data_flow - ERROR

Severity: warning
Description: Journey failed with exit code 1.

02_routing_rule_lifecycle - ERROR

Severity: warning
Description: Journey failed with exit code 1.

03_processing_pipeline - ERROR

Severity: warning
Description: Journey failed with exit code 1.

04_schema_evolution - ERROR

Severity: warning
Description: Journey failed with exit code 1.

05_ai_suggestions - ERROR

Severity: warning
Description: Journey failed with exit code 1.

06_significant_events - ERROR

Severity: warning
Description: Journey failed with exit code 1.

07_retention_and_lifecycle - ERROR

Severity: warning
Description: Journey failed with exit code 1.

08_cross_feature_workflow - ERROR

Severity: warning
Description: Journey failed with exit code 1.

Additional details

Screenshots

Screenshots are available in the workflow artifacts.

Workflow run: View workflow run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author:actionable-obs PRs authored by the actionable obs team backport:skip This PR does not require backporting ci:project-deploy-observability Create an Observability project release_note:skip Skip the PR/issue when compiling release notes reviewer:scout Agentic PR Scout test review v9.6.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants