Teljesítménymérés

Azok az alkalmazások, amelyek az MSAL.js-ben szeretnék mérni a hitelesítési folyamatok teljesítményét, ezt manuálisan is megtehetik, vagy felhasználhatják a maga a kódtár által végzett teljesítményméréseket. A teljesítménymérési adatok használatához be kell állítani a teljesítményügyfelet a telemetria konfigurációs beállításaiban, és hozzá kell adni egy teljesítmény-visszahívási függvényt.

Telemetriai teljesítménykliens beállítása

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

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

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

Teljesítményvisszahívás hozzáadása

Az alkalmazások visszahívást regisztrálhatnak a kódtár által végzett teljesítménymérések fogadásához. Ezek a mérések a legfelső szintű API-k végpontok közötti méréseit, valamint a fontos belső API-k mérését tartalmazzák.

Megjegyzés az MSFT saját alkalmazásaihoz: Kiadunk egy @azure/msal-browser belső buildet, amely már el van látva a telemetria rögzítéséhez szükséges mérőkódokkal. További részletekért forduljon hozzánk.

Example

const msalInstance = new PublicClientApplication(config);

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

Példaesemény:

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

Az objektumok részletes adatai PerformanceEventsitt találhatók. Az alábbiakban felsorolunk néhány figyelemre méltó tulajdonságot:

Property Típus Description
name string A művelet neve általában megegyezik a legfelső szintű API nevével (pl. acquireTokenSilent, acquireTokenByCode, ssoSilent).
durationMs number A művelet teljes időtartama ezredmásodpercben.
success boolean A művelet sikeres volt-e vagy sem.
fromCache boolean Azt jelzi, hogy a művelet lekérte-e az eredményt a gyorsítótárból.
correlationId string A művelethez használt korrelációs azonosító (lehetőleg kérelemenként egyedi).
libraryVersion string A művelethez használt MSAL.js verziója.
authority string A művelethez használt szolgáltató.
<internalFunctionName>DurationMs number Belső művelet időtartama ezredmásodpercben.

removePerformanceCallback

Az addPerformanceCallback API egy visszahívás-azonosítót ad vissza, amelyet az alkalmazás átadhat a PublicClientApplication.removePerformanceCallback részére, hogy megszüntesse az adott visszahívás teljesítményesemények fogadására vonatkozó regisztrációját. Egy logikai értéket ad vissza, amely jelzi, hogy a visszahívás sikeresen el lett-e távolítva.

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

Böngésző teljesítményének mérése

A böngésző teljesítménymérései alapértelmezés szerint le vannak tiltva az általuk előírt jelentős teljesítményterhelés miatt. Azoknak az alkalmazásoknak, amelyek engedélyezni szeretnék a böngésző teljesítmény-idővonalán jelentett teljesítményméréseket, a következőkkel kell rendelkeznie:

  1. Böngészőfejlesztői eszközök megnyitása
    • Edge, Chrome és Firefox böngészők: nyomja le az F12 billentyűt
    • Safari: nyissa meg a Safari beállításait (Safari Menu>Preferences), válassza ki és engedélyezze Advanced Taba Show features for web developers lehetőséget. Miután engedélyezte ezt a menüt, a Develop>Show Javascript Console elemre kattintva megtalálja a fejlesztői konzolt
  2. Lépjen a következőre Session Storage:
    • Edge
    • Chrome
    • Firefox
    • Safari: lépjen a(z) Storage lapra, és bontsa ki a(z) Session Storage elemet
  3. Céltartomány kiválasztása
  4. Adja hozzá a(z) msal.browser.performance.enabled kulcsot a(z) Session Storage alá, állítsa az értékét 1 értékre, frissítse az oldalt, és ellenőrizze a böngésző teljesítmény-idővonalát.