Měření výkonu

Aplikace, které chtějí měřit výkon toků ověřování v MSAL.js, to mohou dělat ručně nebo využívat metriky výkonu zaznamenané samotnou knihovnou. Využívání měření výkonu vyžaduje nastavení klienta výkonu v možnostech konfigurace telemetrie a přidání zpětného volání výkonu.

Nastavení klienta výkonu telemetrie

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

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

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

Přidat zpětné volání pro měření výkonu

Aplikace mohou zaregistrovat zpětné volání pro příjem měření výkonu pořízených knihovnou. Toto měření bude zahrnovat komplexní měření pro rozhraní API nejvyšší úrovně a také měření důležitých interních rozhraní API.

Poznámka pro aplikace společnosti MSFT: Vydáme interní sestavení @azure/msal-browser, které již obsahuje instrumentaci pro shromažďování této telemetrie. Další podrobnosti získáte od nás.

Example

const msalInstance = new PublicClientApplication(config);

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

Příklad události:

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

Kompletní podrobnosti o PerformanceEvents objektech najdete tady. Níže je uveden seznam některých významných vlastností:

Property Typ Description
name string Název operace, obvykle odpovídá názvu rozhraní API nejvyšší úrovně (např. acquireTokenSilent, acquireTokenByCode). ssoSilent
durationMs number Celková doba trvání operace v milisekundách
success boolean Bez ohledu na to, jestli byla operace úspěšná nebo ne.
fromCache boolean Určuje, jestli operace načetla výsledek z mezipaměti.
correlationId string ID korelace použité pro operaci (nejlépe jedinečné na požadavek).
libraryVersion string Verze MSAL.js použitá pro operaci.
authority string Autorita použitá pro operaci.
<internalFunctionName>DurationMs number Doba trvání interní operace v milisekundách

removePerformanceCallback

API addPerformanceCallback vrátí ID zpětného volání, které může aplikace předat do PublicClientApplication.removePerformanceCallback, aby toto zpětné volání odregistrovala z přijímání výkonnostních událostí. Vrátí logickou hodnotu označující, zda bylo zpětné volání úspěšně odebráno.

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ěření výkonu prohlížeče

Měření výkonu prohlížeče jsou ve výchozím nastavení zakázaná kvůli značné režii na výkon, kterou zavádějí. Aplikace, které chtějí povolit měření výkonu hlášené na časové ose výkonu prohlížeče, by měly:

  1. Otevření vývojářských nástrojů prohlížeče
    • Prohlížeče Edge, Chrome a Firefox: stiskněte F12
    • Safari: přejděte do předvoleb Safari (Safari Menu>Preferences), vyberte Advanced Tab a povolte .Show features for web developers Jakmile je tato nabídka povolená, zobrazí se konzola pro vývojáře kliknutím na Develop>Show Javascript Console
  2. Přejděte na Session Storage:
  3. Výběr cílové domény
  4. Přidejte msal.browser.performance.enabled klíč k Session Storage, nastavte jeho hodnotu na 1, aktualizujte stránku a zkontrolujte časovou osu výkonu prohlížeče.