diff --git a/x-pack/solutions/observability/plugins/observability/public/components/alerts_table/common/get_columns.tsx b/x-pack/solutions/observability/plugins/observability/public/components/alerts_table/common/get_columns.tsx index f99fd7e8fc3a3..10696a4f0a714 100644 --- a/x-pack/solutions/observability/plugins/observability/public/components/alerts_table/common/get_columns.tsx +++ b/x-pack/solutions/observability/plugins/observability/public/components/alerts_table/common/get_columns.tsx @@ -16,6 +16,7 @@ import { ALERT_INSTANCE_ID, TAGS, ALERT_REASON, + ALERT_WORKFLOW_TAGS, } from '@kbn/rule-data-utils'; import { i18n } from '@kbn/i18n'; @@ -96,6 +97,16 @@ export const getColumns = ( id: TAGS, initialWidth: 150, }, + { + displayAsText: i18n.translate( + 'xpack.observability.alertsTGrid.workflowTagsColumnDescription', + { + defaultMessage: 'Workflow Tags', + } + ), + id: ALERT_WORKFLOW_TAGS, + initialWidth: 150, + }, { displayAsText: i18n.translate('xpack.observability.alertsTGrid.reasonColumnDescription', { defaultMessage: 'Reason', diff --git a/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/alert_details.tsx b/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/alert_details.tsx index e02512f468223..c03f46bb2e30f 100644 --- a/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/alert_details.tsx +++ b/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/alert_details.tsx @@ -477,7 +477,6 @@ function getRelevantAlertFields(alertDetail: AlertData) { 'kibana.alert.rule.uuid', 'event.action', 'event.kind', - 'kibana.alert.rule.tags', 'kibana.alert.maintenance_window_ids', 'kibana.alert.consecutive_matches', ]); diff --git a/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/components/status_bar.tsx b/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/components/status_bar.tsx index e2a0005987315..08b38df34a3e7 100644 --- a/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/components/status_bar.tsx +++ b/x-pack/solutions/observability/plugins/observability/public/pages/alert_details/components/status_bar.tsx @@ -30,6 +30,7 @@ export function StatusBar({ alert, alertStatus }: StatusBarProps) { const dateFormat = useUiSetting('dateFormat'); const tags = alert?.fields[TAGS]; + const workflowTags = alert?.fields['kibana.alert.workflow_tags']; if (!alert) { return null; @@ -53,16 +54,37 @@ export function StatusBar({ alert, alertStatus }: StatusBarProps) { - + + + + + + + {workflowTags && workflowTags.length > 0 && ( + + + + + + + + + )} + - + - :  - + - :  - + - :  { const ACTIVE_ALERTS = 6; const RECOVERED_ALERTS = 4; const ALL_ALERTS = ACTIVE_ALERTS + RECOVERED_ALERTS; - const COLUMNS = 11; + const COLUMNS = 12; before(async () => { await pageObjects.common.navigateToApp(HOSTS_VIEW_PATH); @@ -905,7 +905,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { const ACTIVE_ALERTS = 6; const RECOVERED_ALERTS = 4; const ALL_ALERTS = ACTIVE_ALERTS + RECOVERED_ALERTS; - const COLUMNS = 11; + const COLUMNS = 12; await pageObjects.infraHostsView.visitAlertTab(); diff --git a/x-pack/solutions/observability/test/functional/apps/infra/node_details.ts b/x-pack/solutions/observability/test/functional/apps/infra/node_details.ts index 8595a3d091aff..63debd3dbd6b4 100644 --- a/x-pack/solutions/observability/test/functional/apps/infra/node_details.ts +++ b/x-pack/solutions/observability/test/functional/apps/infra/node_details.ts @@ -292,7 +292,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { const ACTIVE_ALERTS = 2; const RECOVERED_ALERTS = 2; const ALL_ALERTS = ACTIVE_ALERTS + RECOVERED_ALERTS; - const COLUMNS = 11; + const COLUMNS = 12; before(async () => { await esArchiver.load( 'x-pack/solutions/observability/test/fixtures/es_archives/infra/alerts' diff --git a/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/index.ts b/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/index.ts index 167ecc510f2c7..20b35e543e8b1 100644 --- a/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/index.ts +++ b/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/index.ts @@ -10,9 +10,9 @@ import { RuleNotifyWhen } from '@kbn/alerting-plugin/common'; import type { FtrProviderContext } from '../../../../ftr_provider_context'; import { asyncForEach } from '../../helpers'; -const TOTAL_ALERTS_CELL_COUNT = 440; -const RECOVERED_ALERTS_CELL_COUNT = 330; -const ACTIVE_ALERTS_CELL_COUNT = 110; +const TOTAL_ALERTS_CELL_COUNT = 480; +const RECOVERED_ALERTS_CELL_COUNT = 360; +const ACTIVE_ALERTS_CELL_COUNT = 120; export default ({ getService, getPageObjects }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); @@ -213,6 +213,25 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => { }); }); + describe('Actions Button', () => { + after(async () => { + await observability.alerts.common.navigateToTimeWithData(); + // Clear active status + await alertControls.clearControlSelections('0'); + await observability.alerts.common.waitForAlertTableToLoad(); + }); + + it('Opens rule details page when click on "View Rule Details"', async () => { + const actionsButton = await observability.alerts.common.getActionsButtonByIndex(0); + await actionsButton.click(); + await observability.alerts.common.viewRuleDetailsButtonClick(); + + expect( + await (await find.byCssSelector('[data-test-subj="breadcrumb first"]')).getVisibleText() + ).to.eql('Observability'); + }); + }); + describe('Flyout', () => { it('Can be opened', async () => { await observability.alerts.common.openAlertsFlyout(); @@ -285,18 +304,6 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => { }); }); }); - - describe('Actions Button', () => { - it('Opens rule details page when click on "View Rule Details"', async () => { - const actionsButton = await observability.alerts.common.getActionsButtonByIndex(0); - await actionsButton.click(); - await observability.alerts.common.viewRuleDetailsButtonClick(); - - expect( - await (await find.byCssSelector('[data-test-subj="breadcrumb first"]')).getVisibleText() - ).to.eql('Observability'); - }); - }); }); }); }; diff --git a/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/table_configuration.ts b/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/table_configuration.ts index b2823691eca79..8797cf540eafd 100644 --- a/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/table_configuration.ts +++ b/x-pack/solutions/observability/test/observability_functional/apps/observability/pages/alerts/table_configuration.ts @@ -17,6 +17,7 @@ import { ALERT_STATUS, ALERT_INSTANCE_ID, TAGS, + ALERT_WORKFLOW_TAGS, } from '@kbn/rule-data-utils'; import type { FtrProviderContext } from '../../../../ftr_provider_context'; @@ -73,6 +74,7 @@ export default ({ getService }: FtrProviderContext) => { ALERT_EVALUATION_VALUE, ALERT_EVALUATION_THRESHOLD, TAGS, + ALERT_WORKFLOW_TAGS, ALERT_REASON, ]) { expect(await testSubjects.exists(`dataGridHeaderCell-${colId}`)).to.be(true);