Prestaties meten

Toepassingen die de prestaties van verificatiestromen in MSAL.js willen meten, kunnen dit handmatig doen of de prestatiemetingen gebruiken die door de bibliotheek zelf zijn genomen. Voor het verwerken van prestatiemetingen moet u de performance-client instellen in de opties voor telemetrieconfiguratie en een performance-callback toevoegen.

Telemetrieprestatieclient instellen

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

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

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

Callback voor prestaties toevoegen

Toepassingen kunnen een callback registreren om prestatiemetingen te ontvangen die door de bibliotheek zijn uitgevoerd. Deze meting omvat end-to-end metingen voor API's op het hoogste niveau, evenals metingen voor belangrijke interne API's.

Opmerking voor interne MSFT-toepassingen: We zullen een interne build van @azure/msal-browser publiceren die al is geïnstrumenteerd om deze telemetrie vast te leggen. Neem contact met ons op voor meer informatie.

Voorbeeld

const msalInstance = new PublicClientApplication(config);

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

Voorbeeld van een gebeurtenis:

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

De volledige details voor PerformanceEvents objecten vindt u hier. Hieronder ziet u een lijst met enkele belangrijke eigenschappen:

Property Type Description
name string De naam van de bewerking komt meestal overeen met de API-naam op het hoogste niveau (bijvoorbeeld acquireTokenSilent, acquireTokenByCode). ssoSilent
durationMs number End-to-end-duur in milliseconden voor de bewerking.
success boolean Of de bewerking is geslaagd of niet.
fromCache boolean Of de bewerking het resultaat heeft opgehaald uit de cache.
correlationId string Correlatie-id die wordt gebruikt voor de bewerking (bij voorkeur uniek per aanvraag).
libraryVersion string Versie van MSAL.js gebruikt voor de bewerking.
authority string Autoriteit die voor de handeling wordt gebruikt.
<internalFunctionName>DurationMs number Duur in milliseconden voor een interne bewerking.

removePerformanceCallback

De addPerformanceCallback API geeft een callback-id terug, die een applicatie kan doorgeven aan PublicClientApplication.removePerformanceCallback om de registratie van die callback voor het ontvangen van prestatiegebeurtenissen ongedaan te maken. Er wordt een Booleaanse waarde geretourneerd die aangeeft of de callback wel of niet is verwijderd.

Voorbeeld

const msalInstance = new PublicClientApplication(config);

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

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

Browserprestaties meten

Browserprestatiemetingen zijn standaard uitgeschakeld vanwege aanzienlijke prestatie-overhead die ze opleggen. Toepassingen die prestatiemetingen willen inschakelen die zijn gerapporteerd aan de tijdlijn voor prestaties van de browser, moeten:

  1. Hulpprogramma's voor browserontwikkelaars openen
    • Edge-, Chrome- en Firefox-browsers: druk op F12
    • Safari: ga naar de voorkeuren van Safari (Safari Menu>Preferences), selecteer het Advanced Tab en schakel deze in Show features for web developers. Zodra dat menu is ingeschakeld, vindt u de ontwikkelaarsconsole door te klikken op Develop>Show Javascript Console
  2. Ga naar Session Storage:
    • Edge
    • Chrome
    • Firefox
    • Safari: naar tabblad navigeren Storage en uitvouwen Session Storage
  3. Doeldomein selecteren
  4. Voeg sleutel toe msal.browser.performance.enabled aan Session Storage, stel de waarde 1in op, vernieuw de pagina en controleer de prestatietijdlijn van de browser.