Misurazione delle prestazioni

Le applicazioni che vogliono misurare le prestazioni dei flussi di autenticazione in MSAL.js possono farlo manualmente o utilizzare le misure di prestazioni adottate dalla libreria stessa. Per utilizzare le misurazioni delle prestazioni, è necessario impostare il client per le prestazioni nelle opzioni di configurazione della telemetria e aggiungere il callback per le prestazioni.

Imposta il client per le prestazioni di telemetria

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

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

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

Aggiungi il callback per le prestazioni

Le applicazioni possono registrare un callback per ricevere le misurazioni delle prestazioni eseguite dalla libreria. Queste misurazioni includono misurazioni end-to-end per le API di primo livello, nonché misurazioni per api interne importanti.

Nota per le applicazioni MSFT first-party: pubblicheremo una build interna di @azure/msal-browser già predisposta per raccogliere questi dati di telemetria. Per altri dettagli, contattare Microsoft.

Example

const msalInstance = new PublicClientApplication(config);

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

Esempio di evento:

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

I dettagli completi per PerformanceEvents gli oggetti sono disponibili qui. Di seguito è riportato un elenco di alcune proprietà rilevanti:

Property Tipo Description
name string Il nome dell'operazione, in genere corrisponde al nome dell'API di primo livello ( ad esempio acquireTokenSilent, acquireTokenByCode, ssoSilent).
durationMs number Durata complessiva dell'operazione in millisecondi.
success boolean Indica se l'operazione ha avuto esito positivo o negativo.
fromCache boolean Indica se l'operazione ha recuperato il risultato dalla cache.
correlationId string ID di correlazione usato per l'operazione (preferibilmente univoco per richiesta).
libraryVersion string Versione di MSAL.js utilizzata per l'operazione.
authority string Autorità utilizzata per l'operazione.
<internalFunctionName>DurationMs number Durata in millisecondi per un'operazione interna.

removePerformanceCallback

L'API addPerformanceCallback restituirà un ID di callback, che un'applicazione può passare a PublicClientApplication.removePerformanceCallback per annullare la registrazione del callback dalla ricezione di eventi di prestazioni. Restituisce un valore booleano che indica se il callback è stato rimosso correttamente.

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

Misurazione delle prestazioni del browser

Le misurazioni delle prestazioni del browser sono disabilitate per impostazione predefinita a causa di un notevole sovraccarico delle prestazioni imposto. Le applicazioni che vogliono abilitare le misurazioni delle prestazioni segnalate nella sequenza temporale delle prestazioni del browser devono:

  1. Aprire gli strumenti di sviluppo del browser
    • Browser Edge, Chrome e Firefox: premere F12
    • Safari: passare alle preferenze di Safari (Safari Menu>Preferences), selezionare e abilitare Advanced TabShow features for web developers . Dopo aver abilitato il menu, sarà disponibile la console per sviluppatori facendo clic su Develop>Show Javascript Console
  2. Passare a Session Storage:
    • Edge
    • Chrome
    • Firefox
    • Safari: passare alla Storage scheda ed espandere Session Storage
  3. Selezionare il dominio di destinazione
  4. Aggiungere la chiave msal.browser.performance.enabled a Session Storage, impostarne il valore su 1, aggiornare la pagina e controllare la timeline delle prestazioni del browser.