Показатель производительности

Приложения, которые хотят измерять производительность потоков проверки подлинности в MSAL.js, могут выполнять это вручную или использовать меры производительности, принятые самой библиотекой. Для использования измерений производительности требуется настройка клиента производительности в параметрах конфигурации телеметрии и добавление обратного вызова производительности.

Настройка клиента производительности телеметрии

import { PublicClientApplication, BrowserPerformanceClient } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        ...
    },
    cache: {
        ...
    },
    system: {
        ...
    }
}

const msalInstance = new PublicClientApplication({
    ...msalConfig,
    telemetry: {
        client: new BrowserPerformanceClient(msalConfig)
    }
});
msalInstance.initialize();

Добавить обратный вызов для отслеживания производительности

Приложения могут зарегистрировать обратный вызов для получения измерений производительности, принятых библиотекой. Эти измерения будут включать комплексные измерения для API верхнего уровня, а также измерения для важных внутренних API.

Примечание для сторонних приложений MSFT: мы публикуем внутреннюю сборку @azure/msal-browser , которая уже инструментирована для записи этой телеметрии. Для получения дополнительных сведений обратитесь к нам.

Пример

const msalInstance = new PublicClientApplication(config);

msalInstance.addPerformanceCallback((events: PerformanceEvent[]) => {
    events.forEach(event => {
        console.log(event);
    });
});

Пример события:

const event: PerformanceEvent = {
    correlationId: "aaaa0000-bb11-2222-33cc-444444dddddd",
	durationMs: 1873,
	endPageVisibility: "hidden",
	fromCache: false,
	name: "acquireTokenSilent",
	startPageVisibility: "visible",
	startTimeMs: 1636414041888,
	success: true,
    silentCacheClientAcquireTokenDurationMs: 0,
    silentRefreshClientAcquireTokenDurationMs: 150,
    silentIframeClientAcquireTokenDurationMs: 0
    cryptoOptsGetPublicKeyThumbprintDurationMs: 200,
    cryptoOptsSignJwtDurationMs: 8,
    clientId: "00001111-aaaa-2222-bbbb-3333cccc4444",
    authority: "https://login.microsoftonline.com/common",
    libraryName: "@azure/msal-browser-1p",
    libraryVersion: "5.0.0",
    appName: "my-application",
    appVersion: "1.0.0"
}

Полные сведения об объектах PerformanceEvents можно найти здесь. Ниже приведен список некоторых важных свойств:

Property Type Description
name string Имя операции обычно соответствует имени API верхнего уровня (напримерacquireTokenSilent, , acquireTokenByCode). ssoSilent
durationMs number Полная длительность операции в миллисекундах.
success boolean Была ли операция успешной или нет.
fromCache boolean Получает ли операция результат из кэша.
correlationId string Идентификатор корреляции, используемый для операции (предпочтительно уникальный для каждого запроса).
libraryVersion string Версия MSAL.js, используемая для операции.
authority string Центр, используемый для операции.
<internalFunctionName>DurationMs number Длительность в миллисекундах для внутренней операции.

removePerformanceCallback

API addPerformanceCallback вернет идентификатор обратного вызова, который приложение может передать в PublicClientApplication.removePerformanceCallback, чтобы отменить регистрацию этого обратного вызова и прекратить получение событий производительности. Он возвращает логическое значение, указывающее, был ли обратный вызов успешно удален.

Пример

const msalInstance = new PublicClientApplication(config);

const callbackId: string = msalInstance.addPerformanceCallback((events: PerformanceEvent[]) => {
    events.forEach(event => {
        console.log(event);
    });
});

const removed: boolean = msalInstance.removePerformanceCallback(callbackId);

Измерение производительности браузера

По умолчанию показатели производительности браузера отключены из-за значительных затрат на производительность. Приложения, которые должны обеспечивать измерения производительности, передаваемые на шкалу производительности браузера, должны:

  1. Откройте инструменты разработчика браузера
    • Браузеры Edge, Chrome и Firefox: нажмите клавишу F12
    • Safari: перейдите в настройки Safari (Safari Menu>Preferences), выберите Advanced Tab и включите.Show features for web developers После включения этого меню вы найдете консоль разработчика, щелкнув ее. Develop>Show Javascript Console
  2. Перейдите к Session Storage:
  3. Выбор целевого домена
  4. Добавьте ключ msal.browser.performance.enabled в Session Storage, задайте ему значение 1, обновите страницу и проверьте шкалу производительности в браузере.