Skip to content

Commit cf48425

Browse files
[Sig Events] Add Discovery navigation to global search (#271690)
Adds core nav items of Sig Events Discovery (root, KIs, Rules and Events) to the Kibana's global search gated behind the `observability:streamsEnableSignificantEventsDiscovery` flag.
1 parent 9a7b03e commit cf48425

4 files changed

Lines changed: 78 additions & 7 deletions

File tree

packages/kbn-optimizer/limits.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ pageLoadAssetSize:
180180
stackAlerts: 31499
181181
stackConnectors: 85421
182182
streams: 32595
183-
streamsApp: 25375
183+
streamsApp: 29825
184184
synthetics: 31571
185185
telemetry: 25755
186186
telemetryManagementSection: 5522

src/platform/packages/shared/deeplinks/observability/deep_links.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,16 @@ export type UptimeLinkId = 'Certificates';
9898

9999
export type ProfilingLinkId = 'stacktraces' | 'flamegraphs' | 'functions';
100100

101-
export type StreamsLinkId = 'overview';
101+
export const significantEventsDeepLinkIds = [
102+
'significantEventsDiscovery',
103+
'significantEventsKnowledgeIndicators',
104+
'significantEventsEvents',
105+
'significantEventsRules',
106+
] as const;
107+
108+
export type SigEventsLinkId = (typeof significantEventsDeepLinkIds)[number];
109+
110+
export type StreamsLinkId = 'overview' | SigEventsLinkId;
102111

103112
export type LinkId =
104113
| LogsLinkId

src/platform/packages/shared/deeplinks/observability/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@ export {
1919
INGEST_HUB_APP_ID,
2020
ONBOARDING_APP_ID,
2121
} from './constants';
22-
export type { AppId, DeepLinkId } from './deep_links';
22+
export { significantEventsDeepLinkIds } from './deep_links';
23+
export type { AppId, DeepLinkId, SigEventsLinkId, StreamsLinkId } from './deep_links';
2324
export * from './locators';

x-pack/platform/plugins/shared/streams_app/public/plugin.tsx

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ import {
1515
type PluginInitializerContext,
1616
} from '@kbn/core/public';
1717
import type { Logger } from '@kbn/logging';
18+
import { significantEventsDeepLinkIds, type SigEventsLinkId } from '@kbn/deeplinks-observability';
19+
import { OBSERVABILITY_STREAMS_ENABLE_SIGNIFICANT_EVENTS_DISCOVERY } from '@kbn/management-settings-ids';
1820
import { DataStreamsStatsService } from '@kbn/dataset-quality-plugin/public';
1921
import { dynamic } from '@kbn/shared-ux-utility';
2022
import React from 'react';
2123
import { i18n } from '@kbn/i18n';
22-
import { from, map, switchMap } from 'rxjs';
24+
import { combineLatest, from, map, switchMap } from 'rxjs';
2325
import { css } from '@emotion/css';
2426
import ReactDOM from 'react-dom';
2527
import type {
@@ -110,19 +112,78 @@ export class StreamsAppPlugin
110112
appRoute: '/app/streams',
111113
category: DEFAULT_APP_CATEGORIES.management,
112114
order: 10000,
115+
deepLinks: [
116+
{
117+
id: 'significantEventsDiscovery' satisfies SigEventsLinkId,
118+
title: i18n.translate('xpack.streams.significantEventsDiscovery.deepLinkTitle', {
119+
defaultMessage: 'Significant Events',
120+
}),
121+
path: '/_discovery',
122+
visibleIn: [],
123+
keywords: ['significant events', 'sig events', 'discovery'],
124+
},
125+
{
126+
id: 'significantEventsKnowledgeIndicators' satisfies SigEventsLinkId,
127+
title: i18n.translate('xpack.streams.significantEventsDiscovery.kiDeepLinkTitle', {
128+
defaultMessage: 'Significant Events / KIs',
129+
}),
130+
path: '/_discovery/knowledge_indicators',
131+
visibleIn: [],
132+
keywords: [
133+
'knowledge indicators',
134+
'ki',
135+
'kis',
136+
'significant events',
137+
'sig events',
138+
'sig events kis',
139+
],
140+
},
141+
{
142+
id: 'significantEventsEvents' satisfies SigEventsLinkId,
143+
title: i18n.translate('xpack.streams.significantEventsDiscovery.eventsDeepLinkTitle', {
144+
defaultMessage: 'Significant Events / Events',
145+
}),
146+
path: '/_discovery/significant_events',
147+
visibleIn: [],
148+
keywords: ['events', 'significant events', 'sig events', 'sig events events'],
149+
},
150+
{
151+
id: 'significantEventsRules' satisfies SigEventsLinkId,
152+
title: i18n.translate('xpack.streams.significantEventsDiscovery.rulesDeepLinkTitle', {
153+
defaultMessage: 'Significant Events / Rules',
154+
}),
155+
path: '/_discovery/queries',
156+
visibleIn: [],
157+
keywords: ['rules', 'queries', 'significant events', 'sig events', 'sig events rules'],
158+
},
159+
],
113160
updater$: from(startServicesPromise).pipe(
114-
switchMap(([_, pluginsStart]) =>
115-
pluginsStart.streams.navigationStatus$.pipe(
116-
map(({ status }): AppUpdater => {
161+
switchMap(([coreStart, pluginsStart]) =>
162+
combineLatest([
163+
pluginsStart.streams.navigationStatus$,
164+
coreStart.uiSettings.get$(OBSERVABILITY_STREAMS_ENABLE_SIGNIFICANT_EVENTS_DISCOVERY),
165+
]).pipe(
166+
map(([{ status }, isSignificantEventsDiscoveryEnabled]): AppUpdater => {
117167
return (app) => {
118168
if (status !== 'enabled') {
119169
return {
120170
visibleIn: [],
171+
deepLinks: (app.deepLinks ?? []).map((link) => ({ ...link, visibleIn: [] })),
121172
};
122173
}
123174

124175
return {
125176
visibleIn: ['sideNav', 'globalSearch'],
177+
deepLinks: (app.deepLinks ?? []).map((link) => {
178+
if (significantEventsDeepLinkIds.includes(link.id as SigEventsLinkId)) {
179+
return {
180+
...link,
181+
visibleIn: isSignificantEventsDiscoveryEnabled ? ['globalSearch'] : [],
182+
};
183+
}
184+
185+
return link;
186+
}),
126187
};
127188
};
128189
})

0 commit comments

Comments
 (0)