Mäta prestanda

Program som vill mäta prestanda för autentiseringsflöden i MSAL.js kan göra det manuellt eller använda de prestandamått som biblioteket självt vidtar. För att använda prestandamätningar måste du ange prestandaklient i konfigurationsalternativen för telemetri och lägga till en återanropsfunktion för prestanda.

Ange klient för telemetriprestanda

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

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

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

Lägg till prestandaåteranrop

Program kan registrera ett återanrop för att ta emot prestandamätningar som gjorts av biblioteket. Den här mätningen omfattar slutpunkt-till-slutpunkt-mått för API:er på toppnivå samt mått för viktiga interna API:er.

Obs! För MSFT-program från första part: Vi kommer att publicera en intern version av @azure/msal-browser som redan är instrumenterad för att samla in den här telemetrin. Kontakta oss för mer information.

Example

const msalInstance = new PublicClientApplication(config);

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

Exempelhändelse:

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"
}

Fullständig information om PerformanceEvents objekt finns här. Nedan visas en lista över några viktiga egenskaper:

Property Type Description
name string Namnet på åtgärden matchar vanligtvis API-namnet på den översta nivån (t.ex. acquireTokenSilent, acquireTokenByCode, ssoSilent).
durationMs number Hela operationens varaktighet i millisekunder.
success boolean Om åtgärden lyckades eller inte.
fromCache boolean Om åtgärden hämtade resultatet från cacheminnet.
correlationId string Korrelations-ID som används för åtgärden (helst unikt per begäran).
libraryVersion string Version av MSAL.js som används för åtgärden.
authority string Behörighet som används för åtgärden.
<internalFunctionName>DurationMs number Varaktighet i millisekunder för en intern åtgärd.

removePerformanceCallback

API:et addPerformanceCallback returnerar ett återanrops-ID som ett program kan skicka till PublicClientApplication.removePerformanceCallback för att avregistrera återanropet från att ta emot prestandahändelser. Det returnerar ett booleskt värde som anger om återanropet har tagits bort eller inte.

Example

const msalInstance = new PublicClientApplication(config);

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

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

Mäta webbläsarens prestanda

Prestandamätningar för webbläsare inaktiveras som standard på grund av betydande prestandakostnader som de medför. Program som vill aktivera prestandamätningar som rapporteras till webbläsarens prestandatidslinje bör:

  1. Öppna utvecklarverktyg för webbläsare
    • Webbläsaren Edge, Chrome och Firefox: tryck på F12
    • Safari: gå till Safaris inställningar (Safari Menu>Preferences), välj Advanced Tab och aktivera .Show features for web developers När menyn är aktiverad hittar du utvecklarkonsolen genom att klicka på Develop>Show Javascript Console
  2. Gå till Session Storage:
  3. Välj måldomän
  4. Lägg till msal.browser.performance.enabled nyckeln i Session Storage, ange dess värde till 1, uppdatera sidan och kontrollera webbläsarens tidslinje för prestanda.