[Rendering] Parallelize ES requests (#199124)

This commit is contained in:
Alejandro Fernández Haro 2024-11-06 17:09:41 +01:00 committed by GitHub
parent b4bdd12562
commit be3c159cfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -20,10 +20,10 @@ import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
import type { UiPlugins } from '@kbn/core-plugins-base-server-internal';
import type { CustomBranding } from '@kbn/core-custom-branding-common';
import {
type UserProvidedValues,
type DarkModeValue,
parseDarkModeValue,
type UiSettingsParams,
type UserProvidedValues,
} from '@kbn/core-ui-settings-common';
import { Template } from './views';
import {
@ -148,23 +148,29 @@ export class RenderingService {
const basePath = http.basePath.get(request);
const { serverBasePath, publicBaseUrl } = http.basePath;
let settingsUserValues: Record<string, UserProvidedValues> = {};
let globalSettingsUserValues: Record<string, UserProvidedValues> = {};
if (!isAnonymousPage) {
const userValues = await Promise.all([
uiSettings.client?.getUserProvided(),
uiSettings.globalClient?.getUserProvided(),
]);
settingsUserValues = userValues[0];
globalSettingsUserValues = userValues[1];
}
const defaultSettings = await withAsyncDefaultValues(
request,
uiSettings.client?.getRegistered()
);
// Grouping all async HTTP requests to run them concurrently for performance reasons.
const [
defaultSettings,
settingsUserValues = {},
globalSettingsUserValues = {},
userSettingDarkMode,
] = await Promise.all([
// All sites
withAsyncDefaultValues(request, uiSettings.client?.getRegistered()),
// Only non-anonymous pages
...(!isAnonymousPage
? ([
uiSettings.client?.getUserProvided(),
uiSettings.globalClient?.getUserProvided(),
// dark mode
userSettings?.getUserSettingDarkMode(request),
] as [
Promise<Record<string, UserProvidedValues>>,
Promise<Record<string, UserProvidedValues>>,
Promise<DarkModeValue> | undefined
])
: []),
]);
const settings = {
defaults: defaultSettings,
@ -196,10 +202,6 @@ export class RenderingService {
}
// dark mode
const userSettingDarkMode = isAnonymousPage
? undefined
: await userSettings?.getUserSettingDarkMode(request);
const isThemeOverridden = settings.user['theme:darkMode']?.isOverridden ?? false;
let darkMode: DarkModeValue;