Use Observability Page Template from Observability Shared in APM and Profiling (#154776)

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Coen Warmer 2023-04-18 11:03:44 +02:00 committed by GitHub
parent 617debdf79
commit c75863385d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 25 additions and 17 deletions

View file

@ -17,7 +17,7 @@
"@kbn/ml-is-populated-object",
"@kbn/ml-string-hash",
"@kbn/data-views-plugin",
"@kbn/ml-random-sampler-utils"
"@kbn/ml-random-sampler-utils",
],
"exclude": [
"target/**/*",

View file

@ -7,10 +7,7 @@
"id": "apm",
"server": true,
"browser": true,
"configPath": [
"xpack",
"apm"
],
"configPath": ["xpack", "apm"],
"requiredPlugins": [
"data",
"embeddable",
@ -19,6 +16,7 @@
"inspector",
"licensing",
"observability",
"observabilityShared",
"exploratoryView",
"ruleRegistry",
"triggersActionsUi",

View file

@ -49,6 +49,7 @@ export const renderApp = ({
data: pluginsStart.data,
inspector: pluginsStart.inspector,
observability: pluginsStart.observability,
observabilityShared: pluginsStart.observabilityShared,
observabilityRuleTypeRegistry,
dataViews: pluginsStart.dataViews,
unifiedSearch: pluginsStart.unifiedSearch,

View file

@ -45,9 +45,9 @@ const pageHeader = {
function ErrorWithTemplate({ error }: { error: Error }) {
const { services } = useKibana<ApmPluginStartDeps>();
const { observability } = services;
const { observabilityShared } = services;
const ObservabilityPageTemplate = observability.navigation.PageTemplate;
const ObservabilityPageTemplate = observabilityShared.navigation.PageTemplate;
if (error instanceof NotFoundRouteException) {
return (

View file

@ -7,7 +7,7 @@
import { EuiPageHeaderProps } from '@elastic/eui';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { ObservabilityPageTemplateProps } from '@kbn/observability-plugin/public/components/shared/page_template/page_template';
import { ObservabilityPageTemplateProps } from '@kbn/observability-shared-plugin/public';
import type { KibanaPageTemplateProps } from '@kbn/shared-ux-page-kibana-template';
import React from 'react';
import { useLocation } from 'react-router-dom';
@ -54,10 +54,10 @@ export function ApmMainTemplate({
const location = useLocation();
const { services } = useKibana<ApmPluginStartDeps>();
const { http, docLinks, observability, application } = services;
const { http, docLinks, observabilityShared, application } = services;
const basePath = http?.basePath.get();
const ObservabilityPageTemplate = observability.navigation.PageTemplate;
const ObservabilityPageTemplate = observabilityShared.navigation.PageTemplate;
const { data, status } = useFetcher((callApmApi) => {
return callApmApi('GET /internal/apm/has_data');

View file

@ -16,7 +16,7 @@ import { SettingsTemplate } from './settings_template';
type Args = ComponentProps<typeof SettingsTemplate>;
const coreMock = {
observability: {
observabilityShared: {
navigation: {
PageTemplate: () => {
return <>hello world</>;

View file

@ -94,6 +94,7 @@ const mockCorePlugins = {
inspector: {},
maps: {},
observability: {},
observabilityShared: {},
data: {},
};

View file

@ -38,6 +38,10 @@ import type { LicensingPluginSetup } from '@kbn/licensing-plugin/public';
import type { MapsStartApi } from '@kbn/maps-plugin/public';
import type { MlPluginSetup, MlPluginStart } from '@kbn/ml-plugin/public';
import type { SharePluginSetup } from '@kbn/share-plugin/public';
import type {
ObservabilitySharedPluginSetup,
ObservabilitySharedPluginStart,
} from '@kbn/observability-shared-plugin/public';
import {
FetchDataParams,
METRIC_TYPE,
@ -80,6 +84,7 @@ export interface ApmPluginSetupDeps {
licensing: LicensingPluginSetup;
ml?: MlPluginSetup;
observability: ObservabilityPublicSetup;
observabilityShared: ObservabilitySharedPluginSetup;
triggersActionsUi: TriggersAndActionsUIPublicPluginSetup;
share: SharePluginSetup;
}
@ -96,6 +101,7 @@ export interface ApmPluginStartDeps {
ml?: MlPluginStart;
triggersActionsUi: TriggersAndActionsUIPublicPluginStart;
observability: ObservabilityPublicStart;
observabilityShared: ObservabilitySharedPluginStart;
fleet?: FleetStart;
fieldFormats?: FieldFormatsStart;
security?: SecurityPluginStart;
@ -162,7 +168,7 @@ export class ApmPlugin implements Plugin<ApmPluginSetup, ApmPluginStart> {
}
// register observability nav if user has access to plugin
plugins.observability.navigation.registerSections(
plugins.observabilityShared.navigation.registerSections(
from(core.getStartServices()).pipe(
map(([coreStart, pluginsStart]) => {
if (coreStart.application.capabilities.apm.show) {

View file

@ -83,6 +83,7 @@
"@kbn/alerts-as-data-utils",
"@kbn/exploratory-view-plugin",
"@kbn/logging-mocks",
"@kbn/observability-shared-plugin",
],
"exclude": [
"target/**/*",

View file

@ -6,16 +6,14 @@
"id": "profiling",
"server": true,
"browser": true,
"configPath": [
"xpack",
"profiling"
],
"configPath": ["xpack", "profiling"],
"requiredPlugins": [
"navigation",
"data",
"kibanaUtils",
"share",
"observability",
"observabilityShared",
"features",
"kibanaReact",
"unifiedSearch",

View file

@ -77,7 +77,7 @@ export class ProfilingPlugin implements Plugin {
})
);
pluginsSetup.observability.navigation.registerSections(section$);
pluginsSetup.observabilityShared.navigation.registerSections(section$);
coreSetup.application.register({
id: 'profiling',

View file

@ -13,11 +13,13 @@ import type {
ObservabilityPublicSetup,
ObservabilityPublicStart,
} from '@kbn/observability-plugin/public';
import { ObservabilitySharedPluginSetup } from '@kbn/observability-shared-plugin/public/plugin';
import { ChartsPluginSetup, ChartsPluginStart } from '@kbn/charts-plugin/public';
import { LicensingPluginSetup } from '@kbn/licensing-plugin/public';
export interface ProfilingPluginPublicSetupDeps {
observability: ObservabilityPublicSetup;
observabilityShared: ObservabilitySharedPluginSetup;
dataViews: DataViewsPublicPluginSetup;
data: DataPublicPluginSetup;
charts: ChartsPluginSetup;

View file

@ -44,6 +44,7 @@
"@kbn/i18n-react",
"@kbn/ml-plugin",
"@kbn/share-plugin",
"@kbn/observability-shared-plugin",
"@kbn/licensing-plugin",
// add references to other TypeScript projects the plugin depends on