From 17a3ec52b651a082bbf5604f75975c12cd2ba9ed Mon Sep 17 00:00:00 2001 From: Levente Balogh Date: Wed, 24 Apr 2024 15:37:22 +0200 Subject: [PATCH] Plugin preloading: Fix performance measurement (#86855) fix: measuring plugin preload performance --- public/app/app.ts | 2 +- public/app/features/plugins/pluginPreloader.ts | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/public/app/app.ts b/public/app/app.ts index 56fa4405843..de0f8814d68 100644 --- a/public/app/app.ts +++ b/public/app/app.ts @@ -222,7 +222,7 @@ export class GrafanaApp { const appPlugins = Object.values(config.apps).filter((app) => !awaitedAppPluginIds.includes(app.id)); preloadPlugins(appPlugins, extensionsRegistry); - await preloadPlugins(awaitedAppPlugins, extensionsRegistry); + await preloadPlugins(awaitedAppPlugins, extensionsRegistry, 'frontend_awaited_plugins_preload'); } setPluginExtensionGetter(createPluginExtensionsGetter(extensionsRegistry)); diff --git a/public/app/features/plugins/pluginPreloader.ts b/public/app/features/plugins/pluginPreloader.ts index 25ea2f1f11a..1a00a69716d 100644 --- a/public/app/features/plugins/pluginPreloader.ts +++ b/public/app/features/plugins/pluginPreloader.ts @@ -12,8 +12,12 @@ export type PluginPreloadResult = { extensionConfigs: PluginExtensionConfig[]; }; -export async function preloadPlugins(apps: AppPluginConfig[] = [], registry: ReactivePluginExtensionsRegistry) { - startMeasure('frontend_plugins_preload'); +export async function preloadPlugins( + apps: AppPluginConfig[] = [], + registry: ReactivePluginExtensionsRegistry, + eventName = 'frontend_plugins_preload' +) { + startMeasure(eventName); const promises = apps.filter((config) => config.preload).map((config) => preload(config)); const preloadedPlugins = await Promise.all(promises); @@ -21,7 +25,7 @@ export async function preloadPlugins(apps: AppPluginConfig[] = [], registry: Rea registry.register(preloadedPlugin); } - stopMeasure('frontend_plugins_preload'); + stopMeasure(eventName); } async function preload(config: AppPluginConfig): Promise {