Performansı ölçme

MSAL.js kimlik doğrulama akışlarının performansını ölçmek isteyen uygulamalar bunu el ile yapabilir veya kitaplığın kendisi tarafından alınan performans ölçülerini kullanabilir. Performans ölçümlerini kullanmak için telemetri yapılandırma seçeneklerinde bir performans istemcisi yapılandırmak ve bir performans geri çağırma işlevi eklemek gerekir.

Telemetri performans istemcilerini ayarlama

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

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

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

Performans geri çağırımı ekle

Uygulamalar, kitaplık tarafından alınan performans ölçümlerini almak için bir geri çağırma kaydedebilir. Bu ölçüm, üst düzey API'ler için uçtan uca ölçümlerin yanı sıra önemli iç API'lere yönelik ölçümleri içerir.

MSFT’ye ait uygulamalar için not: Bu telemetriyi yakalayacak şekilde gerekli izleme eklenmiş bir @azure/msal-browser iç derlemesini yayımlayacağız. Daha fazla bilgi için bizimle iletişime geçin.

Example

const msalInstance = new PublicClientApplication(config);

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

Örnek olay:

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

Nesnelerin tüm PerformanceEvents buradan ulaşabilirsiniz. Bazı önemli özelliklerin listesi aşağıdadır:

Property Türü Description
name string İşlemin adı, genellikle üst düzey API adıyla eşleşir (ör. acquireTokenSilent, acquireTokenByCode, ssoSilent).
durationMs number İşlem için milisaniye cinsinden uçtan uca süre.
success boolean İşlemin başarılı olup olmadığı.
fromCache boolean Sonucun önbellekten alınıp alınmadığı.
correlationId string İşlem için kullanılan bağıntı kimliği (tercihen istek başına benzersiz).
libraryVersion string İşlem için kullanılan MSAL.js sürümü.
authority string İşlem için kullanılan yetkili.
<internalFunctionName>DurationMs number bir iç işlem için milisaniye cinsinden süre.

removePerformanceCallback

addPerformanceCallback API, bir uygulamanın bu geri çağırmanın performans olaylarını almasını durdurmak için PublicClientApplication.removePerformanceCallback öğesine iletebileceği bir geri çağırma kimliği döndürür. Geri çağırma işlevinin başarıyla kaldırılıp kaldırılmadığını belirten bir Boole değeri döndürür.

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

Tarayıcı performansını ölçme

Tarayıcı performans ölçümleri, yükledikleri önemli performans yükü nedeniyle varsayılan olarak devre dışı bırakılır. Tarayıcının performans zaman çizelgesine bildirilen performans ölçümlerini etkinleştirmek isteyen uygulamalar:

  1. Tarayıcı geliştirici araçlarını açma
    • Edge, Chrome ve Firefox tarayıcıları: F12 tuşuna basın
    • Safari: Safari'nin tercihlerine ()Safari Menu>Preferences gidin, öğesini seçin Advanced Tab ve etkinleştirin.Show features for web developers Bu menü etkinleştirildikten sonra, Develop>Show Javascript Console seçeneğine tıklayarak geliştirici konsolunu bulabilirsiniz.
  2. Session Storage adresine gidin:
  3. Hedef etki alanını seçin
  4. Session Storage öğesine msal.browser.performance.enabled anahtarını ekleyin, değerini 1 olarak ayarlayın, sayfayı yenileyin ve tarayıcının performans zaman çizelgesini kontrol edin.