chore(NA): add async import into infra plugin to reduce apm bundle size (#63292)
* chore(NA): async import on infra plugin in order to avoid infra plugin on apm * chore(NA): add async import into infra plugin to reduce apm bundle size * docs(NA): including small note * fix(NA): pass pluginsSetup as an argument * chore(NA): fix missing type * chore(NA): split register in two functions * chore(NA): only register once Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
7dc3972576
commit
30439f6df0
|
@ -21,8 +21,6 @@ import { UsageCollectionSetup } from '../../../../src/plugins/usage_collection/p
|
|||
import { DataEnhancedSetup, DataEnhancedStart } from '../../data_enhanced/public';
|
||||
|
||||
import { TriggersAndActionsUIPublicPluginSetup } from '../../../plugins/triggers_actions_ui/public';
|
||||
import { getAlertType as getMetricsAlertType } from './components/alerting/metrics/metric_threshold_alert_type';
|
||||
import { getAlertType as getLogsAlertType } from './components/alerting/logs/log_threshold_alert_type';
|
||||
|
||||
export type ClientSetup = void;
|
||||
export type ClientStart = void;
|
||||
|
@ -53,9 +51,6 @@ export class Plugin
|
|||
setup(core: CoreSetup, pluginsSetup: ClientPluginsSetup) {
|
||||
registerFeatures(pluginsSetup.home);
|
||||
|
||||
pluginsSetup.triggers_actions_ui.alertTypeRegistry.register(getMetricsAlertType());
|
||||
pluginsSetup.triggers_actions_ui.alertTypeRegistry.register(getLogsAlertType());
|
||||
|
||||
core.application.register({
|
||||
id: 'logs',
|
||||
title: i18n.translate('xpack.infra.logs.pluginTitle', {
|
||||
|
@ -70,6 +65,8 @@ export class Plugin
|
|||
const plugins = getMergedPlugins(pluginsSetup, pluginsStart as ClientPluginsStart);
|
||||
const { startApp, composeLibs, LogsRouter } = await this.downloadAssets();
|
||||
|
||||
await this.registerLogsAlertType(pluginsSetup);
|
||||
|
||||
return startApp(
|
||||
composeLibs(coreStart),
|
||||
coreStart,
|
||||
|
@ -95,6 +92,8 @@ export class Plugin
|
|||
const plugins = getMergedPlugins(pluginsSetup, pluginsStart as ClientPluginsStart);
|
||||
const { startApp, composeLibs, MetricsRouter } = await this.downloadAssets();
|
||||
|
||||
await this.registerMetricsAlertType(pluginsSetup);
|
||||
|
||||
return startApp(
|
||||
composeLibs(coreStart),
|
||||
coreStart,
|
||||
|
@ -138,4 +137,24 @@ export class Plugin
|
|||
MetricsRouter,
|
||||
};
|
||||
}
|
||||
|
||||
// NOTE: apm is importing from `infra/public` and async importing that
|
||||
// allow us to reduce the apm bundle size
|
||||
private async registerLogsAlertType(pluginsSetup: ClientPluginsSetup) {
|
||||
const { getAlertType } = await import('./components/alerting/logs/log_threshold_alert_type');
|
||||
|
||||
if (!pluginsSetup.triggers_actions_ui.alertTypeRegistry.has(getAlertType().id)) {
|
||||
pluginsSetup.triggers_actions_ui.alertTypeRegistry.register(getAlertType());
|
||||
}
|
||||
}
|
||||
|
||||
private async registerMetricsAlertType(pluginsSetup: ClientPluginsSetup) {
|
||||
const { getAlertType } = await import(
|
||||
'./components/alerting/metrics/metric_threshold_alert_type'
|
||||
);
|
||||
|
||||
if (!pluginsSetup.triggers_actions_ui.alertTypeRegistry.has(getAlertType().id)) {
|
||||
pluginsSetup.triggers_actions_ui.alertTypeRegistry.register(getAlertType());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue