Messen der Leistung

Anwendungen, die die Leistung von Authentifizierungsflüssen in MSAL.js messen möchten, können dies manuell ausführen oder die von der Bibliothek selbst ergriffenen Leistungsmaßnahmen nutzen. Für die Nutzung von Leistungsmessungen müssen Sie den Performance-Client in den Telemetrie-Konfigurationsoptionen festlegen sowie ein Performance-Callback hinzufügen.

Festlegen des Telemetrieleistungsclients

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

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

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

Leistungsrückruffunktion hinzufügen

Anwendungen können einen Rückruf registrieren, um Leistungsmessungen der Bibliothek zu erhalten. Diese Messungen umfassen End-to-End-Messungen für APIs der obersten Ebene sowie Messungen für wichtige interne APIs.

Hinweis für MSFT-Erstanbieter-Apps: Wir werden einen internen Build von @azure/msal-browser bereitstellen, der bereits zur Erfassung dieser Telemetriedaten instrumentiert ist. Wenden Sie sich an uns, um weitere Details zu erhalten.

Example

const msalInstance = new PublicClientApplication(config);

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

Beispielereignis:

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

Die vollständigen Details zu PerformanceEvents Objekten finden Sie hier. Nachfolgend finden Sie eine Liste einiger wichtiger Eigenschaften:

Property Typ Description
name string Der Name des Vorgangs entspricht in der Regel dem API-Namen der obersten Ebene (z. B. acquireTokenSilent, , acquireTokenByCodessoSilent).
durationMs number Gesamtdauer des Vorgangs in Millisekunden.
success boolean Ob der Vorgang erfolgreich war oder nicht.
fromCache boolean Gibt an, ob der Vorgang das Ergebnis aus dem Cache abgerufen hat.
correlationId string Korrelations-ID, die für den Vorgang verwendet wird (vorzugsweise eindeutig pro Anforderung).
libraryVersion string Für den Vorgang verwendete MSAL.js-Version.
authority string Für den Vorgang verwendete Autorität.
<internalFunctionName>DurationMs number Dauer in Millisekunden für einen internen Vorgang.

removePerformanceCallback

Die addPerformanceCallback API gibt eine Callback-ID zurück, die eine Anwendung an PublicClientApplication.removePerformanceCallback übergeben kann, um die Registrierung dieses Callbacks für den Empfang von Leistungsereignissen aufzuheben. Es wird ein boolescher Wert zurückgegeben, der angibt, ob der Rückruf erfolgreich entfernt wurde.

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);

Messen der Browserleistung

Browserleistungsmessungen werden standardmäßig aufgrund eines erheblichen Leistungsaufwands deaktiviert, den sie auferlegen. Anwendungen, die bewirken möchten, dass Leistungsmessungen in der Performance-Zeitachse des Browsers erfasst werden, sollten:

  1. Öffnen von Browserentwicklertools
    • Edge-, Chrome- und Firefox-Browser: Drücken Sie F12
    • Safari: Öffnen Sie die Safari-Einstellungen (Safari Menu>Preferences), wählen Sie Advanced Tab aus und aktivieren Sie Show features for web developers. Sobald dieses Menü aktiviert ist, finden Sie die Entwicklerkonsole, indem Sie auf Develop>Show Javascript Console
  2. Navigieren Sie zu Session Storage:
    • Edge
    • Chrome
    • Firefox
    • Safari: Navigieren Sie zur Storage Registerkarte, und erweitern Sie Session Storage
  3. Zieldomäne auswählen
  4. Fügen Sie den msal.browser.performance.enabled-Schlüssel zu Session Storage hinzu, setzen Sie seinen Wert auf 1, aktualisieren Sie die Seite und überprüfen Sie die Leistungszeitachse im Browser.