Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As aplicações que pretendem medir o desempenho dos fluxos de autenticação em MSAL.js podem fazê-lo manualmente, ou consumir as medidas de desempenho tomadas pela própria biblioteca. Para utilizar medições de desempenho, é necessário configurar o cliente de desempenho nas opções de configuração de telemetria e adicionar uma função de callback de desempenho.
Definir cliente de desempenho da 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();
Adicionar chamada de retorno de desempenho
As aplicações podem registar um callback para receber medições de desempenho feitas pela biblioteca. Estas medições incluirão medições de ponta a ponta para APIs de topo, bem como medições para APIs internas importantes.
Nota para aplicações da própria Microsoft: Publicaremos uma versão interna de @azure/msal-browser que já está instrumentada para recolher esta telemetria. Contacte-nos para mais detalhes.
Exemplo
const msalInstance = new PublicClientApplication(config);
msalInstance.addPerformanceCallback((events: PerformanceEvent[]) => {
events.forEach(event => {
console.log(event);
});
});
Exemplo de 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"
}
Os detalhes completos dos PerformanceEvents objetos podem ser encontrados aqui. Segue-se uma lista de algumas propriedades notáveis:
| Property | Tipo | Description |
|---|---|---|
name |
string |
O nome da operação, normalmente corresponde ao nome da API de topo (por exemplo, acquireTokenSilent, acquireTokenByCode, ssoSilent). |
durationMs |
number |
Duração total da operação em milissegundos. |
success |
boolean |
Quer a operação tenha sido bem-sucedida ou não. |
fromCache |
boolean |
Se a operação recuperou o resultado do cache. |
correlationId |
string |
ID de correlação usado para a operação (preferencialmente único por pedido). |
libraryVersion |
string |
Versão de MSAL.js usada para a operação. |
authority |
string |
Autoridade usada para a operação. |
<internalFunctionName>DurationMs |
number |
Duração em milissegundos para uma operação interna. |
removePerformanceCallback
A API addPerformanceCallback devolve um ID de callback, que uma aplicação pode passar a PublicClientApplication.removePerformanceCallback para anular o registo desse callback, para que deixe de receber eventos de desempenho. Devolverá um booleano a indicar se o callback foi removido com sucesso ou não.
Exemplo
const msalInstance = new PublicClientApplication(config);
const callbackId: string = msalInstance.addPerformanceCallback((events: PerformanceEvent[]) => {
events.forEach(event => {
console.log(event);
});
});
const removed: boolean = msalInstance.removePerformanceCallback(callbackId);
Medição do desempenho do navegador
As medições de desempenho dos browsers estão desativadas por defeito devido à sobrecarga significativa de desempenho que impõem. As aplicações que pretendam permitir medições de desempenho reportadas na linha temporal de desempenho do navegador devem:
- Ferramentas de desenvolvimento de navegadores abertos
- Navegadores Edge, Chrome e Firefox: pressione F12
- Safari: vá às preferências do Safari (
Safari Menu>Preferences), selecioneAdvanced Tabe ativeShow features for web developers. Assim que esse menu estiver ativado, encontrará a consola de programação clicando emDevelop>Show Javascript Console
- Aceda a
Session Storage: - Selecionar domínio-alvo
- Adicione a chave
msal.browser.performance.enabledaSession Storage, defina o respetivo valor como1, atualize a página e verifique a cronologia de desempenho do navegador.