From 0ae6bd901783b6cc3af54972e00ae43bd61b495f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Tue, 9 May 2023 10:53:33 +0200 Subject: [PATCH 1/6] [Observability] Serverless nav WIP --- .../serverless_observability/kibana.jsonc | 11 +-- .../components/side_navigation/index.tsx | 26 +++++++ .../side_navigation/side_navigation.tsx | 70 +++++++++++++++++++ .../serverless_observability/public/plugin.ts | 5 +- .../public/services.tsx | 26 +++++++ 5 files changed, 128 insertions(+), 10 deletions(-) create mode 100644 x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx create mode 100644 x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx create mode 100644 x-pack/plugins/serverless_observability/public/services.tsx diff --git a/x-pack/plugins/serverless_observability/kibana.jsonc b/x-pack/plugins/serverless_observability/kibana.jsonc index 12d528dd33ac2..1ce64fcee8f02 100644 --- a/x-pack/plugins/serverless_observability/kibana.jsonc +++ b/x-pack/plugins/serverless_observability/kibana.jsonc @@ -7,15 +7,8 @@ "id": "serverlessObservability", "server": true, "browser": true, - "configPath": [ - "xpack", - "serverless", - "observability" - ], - "requiredPlugins": [ - "serverless", - "observabilityShared" - ], + "configPath": ["xpack", "serverless", "observability"], + "requiredPlugins": ["serverless", "observabilityShared", "kibanaReact"], "optionalPlugins": [], "requiredBundles": [] } diff --git a/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx b/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx new file mode 100644 index 0000000000000..6c78f8f28e386 --- /dev/null +++ b/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { CoreStart } from '@kbn/core/public'; +import type { + SideNavComponent, + SideNavCompProps, +} from '@kbn/core-chrome-browser/src/project_navigation'; +import { ServerlessObservabilityPluginStartDependencies } from '../../types'; +import { ObservabilitySideNavigation } from './side_navigation'; +import { KibanaServicesProvider } from '../../services'; + +export const getObservabilitySideNavComponent = ( + core: CoreStart, + pluginsStart: ServerlessObservabilityPluginStartDependencies +): SideNavComponent => { + return (_props: SideNavCompProps) => ( + + + + ); +}; diff --git a/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx b/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx new file mode 100644 index 0000000000000..dddda4d7bbc6b --- /dev/null +++ b/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { SolutionNav } from '@kbn/shared-ux-page-solution-nav'; + +export function ObservabilitySideNavigation() { + return ( + + ); +} diff --git a/x-pack/plugins/serverless_observability/public/plugin.ts b/x-pack/plugins/serverless_observability/public/plugin.ts index 48da91bb4ea26..0256d5a5a27c3 100644 --- a/x-pack/plugins/serverless_observability/public/plugin.ts +++ b/x-pack/plugins/serverless_observability/public/plugin.ts @@ -6,6 +6,7 @@ */ import { CoreSetup, CoreStart, Plugin } from '@kbn/core/public'; +import { getObservabilitySideNavComponent } from './components/side_navigation'; import { ServerlessObservabilityPluginSetup, ServerlessObservabilityPluginStart, @@ -25,8 +26,10 @@ export class ServerlessObservabilityPlugin public start( _core: CoreStart, - { observabilityShared }: ServerlessObservabilityPluginStartDependencies + _setupDeps: ServerlessObservabilityPluginStartDependencies ): ServerlessObservabilityPluginStart { + const { serverless, observabilityShared } = _setupDeps; + serverless.setSideNavComponent(getObservabilitySideNavComponent(_core, _setupDeps)); observabilityShared.setIsSidebarEnabled(false); return {}; } diff --git a/x-pack/plugins/serverless_observability/public/services.tsx b/x-pack/plugins/serverless_observability/public/services.tsx new file mode 100644 index 0000000000000..d7b1a2f243283 --- /dev/null +++ b/x-pack/plugins/serverless_observability/public/services.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { CoreStart } from '@kbn/core/public'; +import React from 'react'; +import { + KibanaContextProvider, + useKibana as useKibanaReact, +} from '@kbn/kibana-react-plugin/public'; +import type { ServerlessObservabilityPluginStartDependencies } from './types'; + +export type Services = CoreStart & ServerlessObservabilityPluginStartDependencies; + +export const KibanaServicesProvider: React.FC<{ + core: CoreStart; + pluginsStart: ServerlessObservabilityPluginStartDependencies; +}> = ({ core, pluginsStart, children }) => { + const services: Services = { ...core, ...pluginsStart }; + return {children}; +}; + +export const useKibana = () => useKibanaReact(); From 4fcef9bac15d9f637610865246a4b1ac64fdd53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Tue, 9 May 2023 12:41:56 +0200 Subject: [PATCH 2/6] Enable observability onboarding on serverless --- config/serverless.oblt.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/serverless.oblt.yml b/config/serverless.oblt.yml index 5b9bb95c22cce..290a51d2ceb63 100644 --- a/config/serverless.oblt.yml +++ b/config/serverless.oblt.yml @@ -8,6 +8,9 @@ xpack.securitySolution.enabled: false ## Enable the Serverless Obsersability plugin xpack.serverless.observability.enabled: true +# Onboarding +xpack.observability_onboarding.ui.enabled: true + ## Configure plugins xpack.infra.logs.app_target: discover From 2ffac4fb4a0cea97f6c49f778f901604f36fafb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Tue, 9 May 2023 12:42:13 +0200 Subject: [PATCH 3/6] Update menu items --- .../side_navigation/side_navigation.tsx | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx b/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx index dddda4d7bbc6b..e811d5cdb9437 100644 --- a/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx +++ b/x-pack/plugins/serverless_observability/public/components/side_navigation/side_navigation.tsx @@ -13,7 +13,22 @@ export function ObservabilitySideNavigation() { Date: Tue, 9 May 2023 10:48:51 +0000 Subject: [PATCH 4/6] [CI] Auto-commit changed files from 'node scripts/lint_ts_projects --fix' --- x-pack/plugins/serverless_observability/tsconfig.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x-pack/plugins/serverless_observability/tsconfig.json b/x-pack/plugins/serverless_observability/tsconfig.json index d3cc73ef6a7a6..132b2d43c047a 100644 --- a/x-pack/plugins/serverless_observability/tsconfig.json +++ b/x-pack/plugins/serverless_observability/tsconfig.json @@ -19,5 +19,8 @@ "@kbn/config-schema", "@kbn/serverless", "@kbn/observability-shared-plugin", + "@kbn/core-chrome-browser", + "@kbn/shared-ux-page-solution-nav", + "@kbn/kibana-react-plugin", ] } From fc6d4ab0da9e0597dddf9a92e977a3cfa769e00a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Tue, 9 May 2023 13:23:11 +0200 Subject: [PATCH 5/6] Bump limit --- packages/kbn-optimizer/limits.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index aa57c432af51b..c1bdea8aa02f9 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -116,7 +116,7 @@ pageLoadAssetSize: security: 65433 securitySolution: 66738 serverless: 16573 - serverlessObservability: 16582 + serverlessObservability: 30000 serverlessSearch: 22555 serverlessSecurity: 41807 sessionView: 77750 From 0fe01ebfea909d5b36f941b795b3b9d526c8a6f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Wed, 10 May 2023 11:57:08 +0200 Subject: [PATCH 6/6] Update serverless.oblt.yml --- config/serverless.oblt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/serverless.oblt.yml b/config/serverless.oblt.yml index 290a51d2ceb63..07c082156e50f 100644 --- a/config/serverless.oblt.yml +++ b/config/serverless.oblt.yml @@ -15,7 +15,7 @@ xpack.observability_onboarding.ui.enabled: true xpack.infra.logs.app_target: discover ## Set the home route -uiSettings.overrides.defaultRoute: /app/observability/overview +uiSettings.overrides.defaultRoute: /app/observabilityOnboarding ## Set the dev project switch current type xpack.serverless.plugin.developer.projectSwitcher.currentType: 'observability'