Mengukur kinerja

Aplikasi yang ingin mengukur performa alur autentikasi di MSAL.js dapat melakukannya secara manual, atau menggunakan langkah-langkah performa yang diambil oleh pustaka itu sendiri. Mengkonsumsi pengukuran performa memerlukan pengaturan klien performa dalam opsi konfigurasi telemetri dan menambahkan panggilan balik performa.

Atur performa klien telemetri

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

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

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

Menambahkan panggilan balik performa

Aplikasi dapat mendaftarkan callback untuk menerima pengukuran kinerja yang dilakukan oleh pustaka. Pengukuran ini akan mencakup pengukuran end-to-end untuk API tingkat atas, serta pengukuran untuk API internal penting.

Catatan untuk aplikasi pihak pertama MSFT: Kami akan merilis build internal @azure/msal-browser yang telah dilengkapi instrumentasi untuk menangkap telemetri ini. Hubungi kami untuk detail selengkapnya.

Contoh

const msalInstance = new PublicClientApplication(config);

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

Contoh peristiwa:

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

Detail lengkap untuk PerformanceEvents objek dapat ditemukan di sini. Di bawah ini adalah daftar beberapa properti penting:

Property Type Deskripsi
name string Nama operasi, biasanya cocok dengan nama API tingkat atas (misalnya acquireTokenSilent, , acquireTokenByCodessoSilent).
durationMs number Durasi menyeluruh dalam milidetik untuk suatu operasi.
success boolean Apakah operasi berhasil atau tidak.
fromCache boolean Apakah operasi memperoleh hasil dari cache.
correlationId string ID korelasi yang digunakan untuk operasi (sebaiknya unik per permintaan).
libraryVersion string Versi MSAL.js digunakan untuk operasi.
authority string Otoritas yang digunakan untuk operasi tersebut.
<internalFunctionName>DurationMs number Durasi dalam milidetik untuk operasi internal.

removePerformanceCallback

API addPerformanceCallback akan mengembalikan ID callback, yang dapat diteruskan oleh aplikasi ke PublicClientApplication.removePerformanceCallback untuk membatalkan pendaftaran callback tersebut agar tidak lagi menerima peristiwa performa. Ini akan mengembalikan boolean yang menunjukkan apakah panggilan balik berhasil dihapus atau tidak.

Contoh

const msalInstance = new PublicClientApplication(config);

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

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

Mengukur performa browser

Pengukuran kinerja browser dinonaktifkan secara bawaan karena menimbulkan beban kinerja yang signifikan. Aplikasi yang ingin mengaktifkan pengukuran performa yang dilaporkan ke garis waktu performa browser harus:

  1. Buka alat pengembang browser
    • Browser Edge, Chrome, dan Firefox: tekan F12
    • Safari: masuk ke preferensi Safari (Safari Menu>Preferences), pilih dan aktifkan .Advanced TabShow features for web developers Setelah menu diaktifkan, Anda akan menemukan konsol pengembang dengan mengklik Develop>Show Javascript Console
  2. Navigasikan ke Session Storage:
  3. Pilih domain target
  4. Tambahkan msal.browser.performance.enabled kunci ke Session Storage, atur nilainya ke 1, refresh halaman dan periksa garis waktu performa browser.