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