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.
O SDK JavaScript do Azure Application Insights fornece configuração para rastreamento, monitoramento e depuração de seus aplicativos Web.
Configuração do SDK
Esses campos de configuração são opcionais e padrão para false, salvo indicação em contrário.
Para obter instruções sobre como adicionar a configuração do SDK, consulte Adicionar configuração do SDK.
| Nome | Tipo | Predefinido |
|---|---|---|
| ID da conta Um ID de conta opcional, se a sua aplicação agrupar utilizadores em contas. Sem espaços, vírgulas, ponto-e-vírgula, igual ou barras verticais |
cadeia (de caracteres) | null |
| addRequestContext Forneça uma maneira de enriquecer os logs de dependências com contexto no início de uma chamada de API. O padrão é indefinido. Você precisa verificar se xhr existe se você configurar xhr o contexto relacionado. Você precisa verificar se fetch request e fetch response existe se você configurar fetch o contexto relacionado. Caso contrário, poderá não obter os dados de que necessita. |
(requestContext: IRequestionContext) => {[chave: string]: qualquer} | indefinido |
| ajaxPerfLookupDelay O padrão é 25 ms. A quantidade de tempo de espera antes de tentar encontrar novamente os tempos windows.performance para uma solicitação Ajax, o tempo é em milissegundos e é passado diretamente para setTimeout(). |
numérico | 25 |
| ID do aplicativo AppId é usado para a correlação entre dependências AJAX acontecendo no lado do cliente com as solicitações do lado do servidor. Quando a API do Beacon está ativada, ela não pode ser usada automaticamente, mas pode ser definida manualmente na configuração. O padrão é null |
cadeia (de caracteres) | null |
| autoMonitorarTempoDeVisitaÀPágina Se verdadeiro, em uma exibição de página, o tempo de exibição da página instrumentada anterior é controlado e enviado como telemetria e um novo temporizador é iniciado para a exibição de página atual. Ela é enviada como uma métrica personalizada nomeada PageVisitTime e milliseconds é calculada por meio da função Date now() (se disponível) e retorna a (new Date()).getTime() se now() estiver indisponível (IE8 ou menos). A predefinição é falsa. |
Booleano | falso |
| convertUndefined Forneça ao usuário uma opção para converter campo indefinido em valor definido pelo usuário. |
any |
indefinido |
| cookieCfg Os padrões para o uso de cookies ativado consulte Configurações ICookieCfgConfig para obter os padrões completos. |
ICookieCfgConfig [Opcional] (Desde 2.6.0) |
indefinido |
| cookieDomínio Domínio de cookie personalizado. É útil se você quiser compartilhar cookies do Application Insights entre subdomínios. (Desde v2.6.0) Se cookieCfg.domain for definido, tem precedência sobre este valor. |
alias para cookieCfg.domain[Opcional] |
null |
| cookiePath Caminho de cookie personalizado. É útil se você quiser compartilhar cookies do Application Insights por trás de um gateway de aplicativo. Se cookieCfg.path for definido, tem precedência. |
alias para cookieCfg.path[Opcional] (Desde 2.6.0) |
null |
| Domínios de Cabeçalho de Correlação Habilitar cabeçalhos de correlação para domínios específicos |
string[] | indefinido |
| domíniosExcluídosDeCabeçalhoDeCorrelação Desativar cabeçalhos de correlação para domínios específicos |
string[] | indefinido |
| correlationHeaderExcludePatterns Desabilitar cabeçalhos de correlação usando expressões regulares |
Regex[] | indefinido |
| createPerfMgr A função de retorno de chamada usada para criar uma instância de IPerfManager quando necessária e enablePerfMgr está habilitada, permite substituir a criação padrão de um PerfManager() sem necessidade de ação após a setPerfMgr() inicialização. |
(núcleo: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager | indefinido |
| cabeçalhos personalizados A capacidade do usuário de fornecer cabeçalhos extras ao usar um ponto de extremidade personalizado. customHeaders não são adicionados no momento de desligamento do navegador quando o remetente beacon é usado. E a adição de cabeçalhos personalizados não é suportada no IE9 ou anterior. |
[{header: string, value: string}] |
indefinido |
| diagnósticoLogInterval (interna) Intervalo de sondagem (em ms) para fila de registro interno |
numérico | 10 000 |
| desativarAjaxTracking Se for verdade, as chamadas do Ajax não são recolhidas automaticamente. A predefinição é falsa. |
Booleano | falso |
| desativarCookiesUtilização Padrão false. Um booleano que indica se o uso de cookies deve ser desativado pelo SDK. Se verdadeiro, o SDK não armazena nem lê dados de cookies. (Desde v2.6.0) Se cookieCfg.enabled for definido, tem precedência. A utilização de cookies pode ser reativada após a inicialização através do core.getCookieMgr().setEnabled(true). |
alias para cookieCfg.enabled[Opcional] |
falso |
| desativar cabeçalhos de correlação Se false, o SDK adiciona dois cabeçalhos ('Request-Id' e 'Request-Context') a todas as solicitações de dependência para correlacioná-las com as solicitações correspondentes no lado do servidor. A predefinição é falsa. |
Booleano | falso |
| AnalisarDesativação dePerdaDeDados Se false, os buffers internos do remetente de telemetria são verificados na inicialização para itens ainda não enviados. |
Booleano | verdadeiro |
| desativarRastreioDeExceções Se verdadeiro, as exceções não são coletadas automaticamente. A predefinição é falsa. |
Booleano | falso |
| desativarFetchTracking A configuração padrão para disableFetchTracking é false, o que significa que está habilitada. No entanto, em versões anteriores à 2.8.10, ele foi desativado por padrão. Quando definido como true, as solicitações de busca não são coletadas automaticamente. A configuração padrão foi alterada de true para false na versão 2.8.0. |
Booleano | falso |
| desativarFlushAntesDeDescarregar Padrão false. Se verdadeiro, o método flush não é chamado quando o evento onBeforeUnload é acionado |
Booleano | falso |
| disableIkeyDeprecationMessage Desativar mensagem de erro de substituição da chave de instrumentação. Se verdadeiro, as mensagens de erro NÃO são enviadas. |
Booleano | verdadeiro |
| desativarValidaçãoDaChaveDeInstrumentação Se verdadeiro, a verificação de validação da chave de instrumentação é ignorada. O valor predefinido é falso. |
Booleano | falso |
| Desativar Telemetria Se verdadeiro, a telemetria não é coletada ou enviada. A predefinição é falsa. |
Booleano | falso |
| desativar Xhr Não use XMLHttpRequest ou XDomainRequest (para Internet Explorer < versão 9) por padrão, tente usar fetch() ou sendBeacon. Se nenhum outro transporte estiver disponível, ele usará XMLHttpRequest |
Booleano | falso |
| modoDeRastreamentoDistribuído Define o modo de rastreamento distribuído. Se AI_AND_W3C modo ou modo W3C estiver definido, cabeçalhos de contexto de rastreamento W3C (traceparent/tracestate) serão gerados e incluídos em todas as solicitações de saída. AI_AND_W3C é fornecido para compatibilidade com qualquer serviço instrumentado herdado do Application Insights. |
numérico ou DistributedTracingModes |
DistributedTracing Modes.AI_AND_W3C |
| enableAjaxErrorStatusText Padrão false. Se verdadeiro, inclua o texto booleano de dados de erro de resposta no evento de dependência em solicitações AJAX com falha. |
Booleano | falso |
| enableAjaxPerfTracking Padrão false. Sinalize para permitir a pesquisa e a inclusão de intervalos de desempenho de janela extra do navegador nas métricas relatadas do Ajax (XHR e fetch). |
Booleano | falso |
| ativarRastreamentoAutomáticoDeRota Rastreie automaticamente as alterações de rota em Aplicativos de Página Única (SPA). Se verdadeiro, cada alteração de rota envia uma nova Pageview para o Application Insights. As alterações à rota hash ( example.com/foo#bar) também são registadas como novas vistas de página.Nota: Se você habilitar esse campo, não habilite o objeto para history do roteador Rereact porque você obterá vários eventos de exibição de página. |
Booleano | falso |
| enableCorsCorrelation Se verdadeiro, o SDK adiciona dois cabeçalhos ('Request-Id' e 'Request-Context') a todas as solicitações CORS para correlacionar dependências AJAX de saída com solicitações correspondentes no lado do servidor. O padrão é false |
Booleano | falso |
| enableDebug Se verdadeiro, os dados de depuração interna são lançados como uma exceção em vez de serem registrados, independentemente das configurações de log do SDK. A predefinição é falsa. Nota: Ativar essa configuração resulta em telemetria descartada sempre que ocorre um erro interno. Ele pode ser útil para identificar rapidamente problemas com sua configuração ou uso do SDK. Se você não quiser perder a telemetria durante a depuração, considere usar loggingLevelConsole ou loggingLevelTelemetry em vez de enableDebug. |
Booleano | falso |
| habilitarPerfMgr Quando ativado (true), ele cria perfEvents locais para o código que foi instrumentado para emitir perfEvents (por meio do auxiliar doPerf(). Ele pode ser usado para identificar problemas de desempenho no SDK com base no seu uso ou, opcionalmente, dentro do seu próprio código instrumentado. |
Booleano | falso |
| ativarRastreamentoDeCabecalhosDeSolicitação Se true, AJAX & Fetch request headers for rastreado, o padrão será false. Se ignoreHeaders não estiver configurado, os cabeçalhos Authorization e X-API-Key não serão registrados. |
Booleano | falso |
| ativarRastreamentoDeCabeçalhosDeResposta Se true, os cabeçalhos de resposta da solicitação AJAX & Fetch são rastreados, o padrão é false. Se ignoreHeaders não estiver configurado, o cabeçalho WWW-Authenticate não será registrado. |
Booleano | falso |
| ativarBufferDeArmazenamentoDeSessão Padrão true. Se verdadeiro, o buffer com toda a telemetria não enviada é armazenado no armazenamento da sessão. O buffer é restaurado no carregamento da página |
Booleano | verdadeiro |
| AtivarRastreamentoDeRejeiçãoDePromisesNãoTratadas Se verdadeiro, as rejeições de promessa não tratadas são coletadas automaticamente como um erro de JavaScript. Quando disableExceptionTracking é true (não rastreie exceções), o valor da configuração é ignorado e as rejeições de promessa não tratadas não são relatadas. |
Booleano | falso |
| eventosLimitInMem O número de eventos que podem ser mantidos na memória antes que o SDK comece a descartar eventos quando não estiver usando o Armazenamento de Sessão (o padrão). |
Número | 10 000 |
| excluirPedidoDePadrõesDeRastreamentoAutomático Forneça uma maneira de excluir uma rota específica do rastreamento automático para XMLHttpRequest ou Fetch request. Se definido, para uma solicitação Ajax / fetch que a url da solicitação corresponde aos padrões regex, o rastreamento automático é desativado. O padrão é indefinido. |
string[] | RegExp[] | indefinido |
| featureOptIn Definir detalhes de opção de recurso. Este campo de configuração só está disponível na versão 3.0.3 e posterior. |
IFeatureOptIn | indefinido |
| idLength Identifica o comprimento padrão usado para gerar novas sessões aleatórias e IDs de usuário. O padrão é 22, o valor padrão anterior era 5 (v2.5.8 ou menos), se você precisar manter o comprimento máximo anterior, defina o valor como 5. |
numérico | 22 |
| ignoreHeaders AJAX & Buscar cabeçalhos de solicitação e resposta a serem ignorados nos dados de log. Para substituir ou descartar o padrão, adicione uma matriz com todos os cabeçalhos a serem excluídos ou uma matriz vazia à configuração. |
string[] | ["Autorização", "X-API-Key", "WWW-Authenticate"] |
| isBeaconApiDisabled (a API de Beacon está desativada) Se false, o SDK envia toda a telemetria usando a API do Beacon |
Booleano | verdadeiro |
| isBrowserLinkTrackingEnabled A predefinição é falsa. Se verdadeiro, o SDK rastreia todas as solicitações de link do navegador. |
Booleano | falso |
| éTentativaDesativada Padrão false. Se false, tente novamente em 206 (sucesso parcial), 408 (tempo limite), 429 (muitas solicitações), 500 (erro interno do servidor), 503 (serviço indisponível) e 0 (offline, somente se detetado) |
Booleano | falso |
| estáUsoDeArmazenamentoDesativado Se verdadeiro, o SDK não armazena nem lê dados do armazenamento local e de sessão. A predefinição é falsa. |
Booleano | falso |
| loggingLevelConsole Registra erros internos do Application Insights no console. 0: desligado, 1: Apenas erros críticos, 2: Tudo (erros e avisos) |
numérico | 0 |
| telemetriaDeNívelDeRegisto Envia erros internos do Application Insights como telemetria. 0: desligado, 1: Apenas erros críticos, 2: Tudo (erros e avisos) |
numérico | 1 |
| maxAjaxCallsPerView Default 500 - controla quantas chamadas Ajax são monitoradas por visualização de página. Defina como -1 para monitorar todas as chamadas (ilimitadas) do Ajax na página. |
numérico | 500 |
| maxAjaxPerfLookupTentativas O padrão é 3. O número máximo de vezes para procurar os tempos window.performance (se disponível) é necessário. Nem todos os navegadores preenchem o window.performance antes de relatar o fim da solicitação XHR. Para solicitações de busca, ele é adicionado após a conclusão. |
numérico | 3 |
| maxBatchInterval Quanto tempo para telemetria em lote antes de enviar (milissegundos) |
numérico | 15000 |
| maxBatchSizeInBytes Tamanho máximo do lote de telemetria. Se um lote exceder esse limite, ele será enviado imediatamente e um novo lote será iniciado |
numérico | 10 000 |
| nomePrefixo Um valor opcional usado como sufixo de nome para armazenamento local e nome de cookie de sessão. |
cadeia (de caracteres) | indefinido |
| onunloadDisableBeacon Padrão false. quando a guia é fechada, o SDK envia toda a telemetria restante usando a API do Beacon |
Booleano | falso |
| onunloadDisableFetch Se fetch keepalive for suportado, não o use para enviar eventos durante o descarregamento, ele ainda pode cair de volta para fetch() sem keepalive |
Booleano | falso |
| substituir PageViewDuration Se verdadeiro, o comportamento padrão de trackPageView é alterado para registrar o intervalo de duração do final da exibição de página quando trackPageView é chamado. Se false e nenhuma duração personalizada for fornecida para trackPageView, o desempenho da exibição de página será calculado usando a API de tempo de navegação. A predefinição é falsa. |
Booleano | falso |
| perfEvtsSendAll Quando enablePerfMgr está habilitado e o IPerfManager dispara um INotificationManager.perfEvent(), esse sinalizador determina se um evento é acionado (e enviado a todos os ouvintes) para todos os eventos (true) ou apenas para eventos 'pai' (false <default>). Um IPerfEvent pai é um evento onde nenhum outro IPerfEvent ainda está em execução no ponto do evento que está sendo criado e sua propriedade pai não é nula ou indefinida. Desde v2.5.7 |
Booleano | falso |
| amostragemPercentagem Percentagem de eventos enviados. O padrão é 100, o que significa que todos os eventos são enviados. Defina-o se desejar preservar seu limite de dados para aplicativos de grande escala. |
numérico | 100 |
| sdkExtension Define o nome da extensão SDK. Só são permitidos caracteres alfabéticos. O nome da extensão é adicionado como um prefixo à tag 'ai.internal.sdkVersion' (por exemplo, 'ext_javascript:2.0.0'). O padrão é null. |
cadeia (de caracteres) | null |
| sessionCookiePostfix Um valor opcional que é usado como sufixo de nome para o nome do cookie de sessão. Se indefinido, namePrefix é usado como postfix de nome para o nome do cookie de sessão. |
cadeia (de caracteres) | indefinido |
| expiraçãoDaSessãoMs Uma sessão é registrada se tiver continuado por esse período de tempo em milissegundos. O padrão é 24 horas |
numérico | 86400000 |
| sessãoRenovaçãoMestrado Uma sessão é registrada se o usuário estiver inativo por esse período de tempo em milissegundos. O padrão é 30 minutos |
numérico | 1800000 |
| aceleradorMgrCfg Defina a configuração do throttle mgr por chave. Este campo de configuração só está disponível na versão 3.0.3 e posterior. |
{[key: number]: IThrottleMgrConfig} |
indefinido |
| userCookiePostfix Um valor opcional que é utilizado como sufixo de nome para o nome do cookie do utilizador. Se indefinido, nenhum postfix é adicionado no nome do cookie do usuário. |
cadeia (de caracteres) | indefinido |
Rastreio distribuído
As arquiteturas modernas de nuvem e microsserviços permitiram serviços simples e implantáveis de forma independente que reduzem custos e, ao mesmo tempo, aumentam a disponibilidade e a taxa de transferência. No entanto, torna mais difícil compreender e depurar os sistemas em geral. O rastreamento distribuído resolve este problema fornecendo um perfil de desempenho que funciona como pilhas de chamadas funcionais para arquiteturas de nuvem e microsserviços.
O Azure Monitor fornece duas experiências para consumir dados de rastreamento distribuídos: a exibição de diagnóstico de transação para uma única transação/solicitação e a exibição de mapa do aplicativo para mostrar como os sistemas interagem.
O Application Insights pode monitorar cada componente separadamente e detetar qual componente é responsável por falhas ou degradação do desempenho usando a correlação de telemetria distribuída. Este artigo explica o modelo de dados, técnicas de propagação de contexto, protocolos e implementação de táticas de correlação em diferentes linguagens e plataformas usadas pelo Application Insights.
Ative o rastreamento distribuído através do Application Insights por meio de autoinstrumentação ou SDKs.
Os agentes e SDKs do Application Insights para .NET, .NET Core, Java, Node.jse JavaScript suportam rastreamento distribuído nativamente.
Com o SDK adequado do Application Insights instalado e configurado, as informações de rastreamento são coletadas automaticamente para estruturas, bibliotecas e tecnologias populares pelos autocolectores de dependências do SDK. A lista completa de tecnologias suportadas está disponível na documentação de coleta automática de dependência.
Qualquer tecnologia também pode ser rastreada manualmente com uma chamada para TrackDependency no TelemetryClient.
Modelo de dados para correlação de telemetria
O Application Insights define um modelo de dados para correlação de telemetria distribuída. Para associar a telemetria a uma operação lógica, cada item de telemetria tem um campo de contexto chamado operation_Id. Cada item de telemetria no rastreamento distribuído compartilha esse identificador. Portanto, mesmo que você perca a telemetria de uma única camada, ainda poderá associar a telemetria relatada por outros componentes.
Uma operação lógica distribuída normalmente consiste em um conjunto de operações menores que são solicitações processadas por um dos componentes.
A telemetria de solicitação define essas operações. Cada item de telemetria de solicitação tem seu próprio id que o identifica de forma única e global. E todos os itens de telemetria (como rastreamentos e exceções) associados à solicitação devem definir o valor de operation_parentId para o valor de id da solicitação.
A telemetria de dependência representa cada operação de saída, como uma chamada HTTP para outro componente. Ele também define o seu próprio id que é globalmente único. A telemetria de solicitação, iniciada por esta chamada de dependência, usa este id como seu operation_parentId.
Você pode criar uma exibição da operação lógica distribuída usando operation_Id, operation_parentIde request.id com dependency.id. Esses campos também definem a ordem de causalidade das chamadas de telemetria.
Em um ambiente de microsserviços, os rastreamentos de componentes podem ir para diferentes itens de armazenamento. Cada componente pode ter sua própria cadeia de conexão no Application Insights. Para obter telemetria para a operação lógica, o Application Insights consulta dados de cada item de armazenamento.
Quando o número de itens de armazenamento é grande, você precisa de uma dica sobre onde procurar em seguida. O modelo de dados do Application Insights define dois campos para resolver esse problema: request.source e dependency.target. O primeiro campo identifica o componente que iniciou a solicitação de dependência. O segundo campo identifica qual componente retornou a resposta da chamada de dependência.
Para obter informações sobre como consultar várias instâncias diferentes, consulte Consultar dados em espaços de trabalho, aplicativos e recursos do Log Analytics no Azure Monitor.
Example
Vejamos um exemplo. Um aplicativo chamado Stock Prices mostra o preço de mercado atual de uma ação usando uma API externa chamada Stock. O aplicativo Preços de Ações tem uma página chamada Página de Estoque que o navegador da Web do cliente abre usando GET /Home/Stock. O aplicativo consulta a API de estoque usando a chamada GET /api/stock/valueHTTP .
Você pode analisar a telemetria resultante executando uma consulta:
(requests | union dependencies | union pageViews)
| where operation_Id == "STYz"
| project timestamp, itemType, name, id, operation_ParentId, operation_Id
Nos resultados, todos os itens de telemetria compartilham a raiz operation_Id. Quando uma chamada Ajax é feita a partir da página, um novo ID exclusivo (qJSXU) é atribuído à telemetria de dependência e o ID do pageView é usado como operation_ParentId. Em seguida, a solicitação do servidor usa o ID do Ajax como operation_ParentId.
| Tipo de item | nome | ID | operation_ParentId | operation_Id |
|---|---|---|---|---|
| visualização de página | Página de stock | STYz |
STYz |
|
| dependência | GET /Home/Stock | qJSXU |
STYz |
STYz |
| pedido | GET Casa/Inventário | KqKwlrSt9PA= |
qJSXU |
STYz |
| dependência | GET /api/stock/valor | bBrf2L7mm2g= |
KqKwlrSt9PA= |
STYz |
Quando a chamada GET /api/stock/value é feita para um serviço externo, você precisa saber a identidade desse servidor para poder definir o dependency.target campo adequadamente. Quando o serviço externo não oferece suporte ao monitoramento, target é definido como o nome do host do serviço. Um exemplo é stock-prices-api.com. Mas se o serviço se identificar retornando um cabeçalho HTTP predefinido, target conterá a identidade do serviço que permite que o Application Insights crie um rastreamento distribuído consultando a telemetria desse serviço.
Cabeçalhos de correlação usando W3C TraceContext
O Application Insights está em transição para o W3C Trace-Context, que define:
-
traceparent: Carrega o ID de operação globalmente exclusivo e o identificador exclusivo da chamada. -
tracestate: Carrega o contexto de rastreio específico do sistema.
A versão mais recente do SDK do Application Insights suporta o protocolo Trace-Context, mas talvez seja necessário optar por ele. (A manutenção da compatibilidade retroativa com o protocolo de correlação anterior suportado pelo SDK do Application Insights é assegurada.)
O protocolo HTTP de correlação, também chamado de Request-Id, está sendo preterido. Este protocolo define dois cabeçalhos:
-
Request-Id: Carrega o ID globalmente exclusivo da chamada. -
Correlation-Context: Carrega a coleção de pares nome-valor das propriedades de rastreamento distribuído.
O Application Insights também define a extensão para o protocolo HTTP de correlação. Ele usa Request-Context pares nome-valor para propagar a coleção de propriedades usadas pelo chamador ou destinatário imediato. O SDK do Application Insights usa esse cabeçalho para definir os dependency.target campos e request.source .
Os modelos de dados do W3C Trace-Context e Application Insights são mapeados da seguinte maneira:
| Application Insights | W3C TraceContext |
|---|---|
Id de Request e Dependency |
ID do pai |
Operation_Id |
ID de trace |
Operation_ParentId |
parent-id do span pai deste span. Este campo deve estar vazio se for uma extensão de raiz. |
Para obter mais informações, consulte Modelo de dados de telemetria do Application Insights.
Habilite o suporte ao rastreamento distribuído do W3C
Este recurso é ativado por padrão para JavaScript e os cabeçalhos são incluídos automaticamente quando o domínio da página de hospedagem é o mesmo que o domínio para o qual as solicitações são enviadas (por exemplo, a página de hospedagem é example.com e as solicitações Ajax são enviadas para example.com). Para alterar o modo de rastreamento distribuído, use o distributedTracingMode campo de configuração. AI_AND_W3C é fornecido por padrão para garantir compatibilidade retroativa com serviços herdados monitorizados pelo Application Insights.
-
Adicione a seguinte configuração:
distributedTracingMode: DistributedTracingModes.W3C JavaScript (Web) SDK Loader Configuração baseada em script
Adicione a seguinte configuração:
distributedTracingMode: 2 // DistributedTracingModes.W3C
Se as solicitações XMLHttpRequest ou Fetch Ajax forem enviadas para um host de domínio diferente, incluindo subdomínios, os cabeçalhos de correlação não serão incluídos por padrão. Para habilitar esse recurso, defina o enableCorsCorrelation campo de configuração como true. Se você definir enableCorsCorrelation como true, todas as solicitações XMLHttpRequest e Fetch Ajax incluirão os cabeçalhos de correlação. Como resultado, se o aplicativo no servidor que está sendo chamado não suportar o traceparent cabeçalho, a solicitação pode falhar, dependendo se o navegador / versão pode validar a solicitação com base em quais cabeçalhos o servidor aceita. Você pode usar o correlationHeaderExcludedDomains campo de configuração para excluir o domínio do servidor da injeção de cabeçalho de correlação entre componentes. Por exemplo, você pode usar correlationHeaderExcludedDomains: ['*.auth0.com'] para excluir cabeçalhos de correlação de solicitações enviadas ao provedor de identidade Auth0.
Importante
Para ver todas as configurações necessárias para habilitar a correlação, consulte a documentação de correlação JavaScript.
Filtrar e pré-processar telemetria
Você pode escrever código para filtrar, modificar ou enriquecer sua telemetria antes que ela seja enviada do SDK. O processamento inclui dados enviados dos módulos padrão de telemetria, como a recolha de pedidos HTTP e a recolha de dependências.
A filtragem pode modificar ou descartar a telemetria antes de ser enviada do SDK ao implementar
ITelemetryProcessor. Por exemplo, você pode reduzir o volume de telemetria excluindo solicitações de robôs. Ao contrário da amostragem, você tem controle total sobre o que é enviado ou descartado, mas isso afeta qualquer métrica baseada em logs agregados. Dependendo de como você descarta itens, você também pode perder a capacidade de navegar entre itens relacionados.pt-PT: Adicione ou modifique propriedades a qualquer telemetria enviada da sua aplicação implementando um
ITelemetryInitializer. Por exemplo, você pode adicionar valores calculados ou números de versão para filtrar os dados no portal.A amostragem reduz o volume de telemetria sem afetar suas estatísticas. Ele mantém juntos pontos de dados relacionados para que você possa navegar entre eles quando diagnosticar um problema. No portal, as contagens totais são multiplicadas para compensar pela amostragem.
Observação
A API do SDK é usada para enviar eventos e métricas personalizados.
Filtering
Essa técnica oferece controle direto sobre o que está incluído ou excluído do fluxo de telemetria. A filtragem pode ser usada para impedir que itens de telemetria sejam enviados para o Application Insights. Você pode usar a filtragem com amostragem ou separadamente.
Para filtrar a telemetria, escreva um processador de telemetria e registe-o com TelemetryConfiguration. Toda a telemetria passa pelo seu processador. Você pode optar por soltá-lo do fluxo ou entregá-lo ao próximo processador na cadeia. A telemetria dos módulos padrão, como o coletor de solicitação HTTP e o coletor de dependência, e a telemetria que você mesmo rastreou estão incluídas. Por exemplo, é possível filtrar a telemetria sobre solicitações de robôs ou chamadas de dependência bem-sucedidas.
Advertência
Filtrar a telemetria enviada do SDK usando processadores pode distorcer as estatísticas que você vê no portal e dificultar o acompanhamento de itens relacionados.
Em vez disso, considere o uso de amostragem.
Aplicações Web JavaScript
Você pode filtrar a telemetria de aplicativos Web JavaScript usando ITelemetryInitializer.
Crie uma função de retorno de chamada do inicializador de telemetria. A função de retorno de chamada toma
ITelemetryItemcomo parâmetro, que é o evento que está sendo processado. Devolverfalsea partir deste retorno de chamada faz com que o item de telemetria seja filtrado.var filteringFunction = (envelope) => { if (envelope.data.someField === 'tobefilteredout') { return false; } return true; };Adicione o retorno de chamada do inicializador de telemetria:
appInsights.addTelemetryInitializer(filteringFunction);
ITelemetryProcessor e ITelemetryInitializer
Qual é a diferença entre processadores de telemetria e inicializadores de telemetria?
- Existem algumas sobreposições no que você pode fazer com eles. Ambos podem ser usados para adicionar ou modificar propriedades de telemetria, embora recomendemos que você use inicializadores para essa finalidade.
- Os inicializadores de telemetria sempre são executados antes dos processadores de telemetria.
- Os inicializadores de telemetria podem ser chamados mais de uma vez. Por convenção, eles não configuram nenhuma propriedade que já estava configurada.
- Os processadores de telemetria permitem substituir ou descartar completamente um item de telemetria.
- Todos os inicializadores de telemetria registrados são chamados para cada item de telemetria. Para processadores de telemetria, o SDK assegura a invocação do primeiro processador de telemetria. Se o resto dos processadores são chamados ou não é decidido pelos processadores de telemetria anteriores.
- Use inicializadores de telemetria para enriquecer a telemetria com mais propriedades ou substituir uma existente. Use um processador de telemetria para filtrar a telemetria.
Adicionar/modificar propriedades
Use inicializadores de telemetria para enriquecer a telemetria com informações adicionais ou para substituir as propriedades de telemetria definidas pelos módulos de telemetria padrão.
Por exemplo, o Application Insights para um pacote web recolhe telemetria sobre solicitações HTTP. Por padrão, ele sinaliza qualquer solicitação com um código >de resposta =400 como falha. Se, em vez disso, quiser tratar 400 como um sucesso, você pode fornecer um inicializador de telemetria que define a propriedade success.
Se você fornecer um inicializador de telemetria, ele será chamado sempre que qualquer um dos métodos Track*() for chamado. Este inicializador inclui métodos Track() chamados pelos módulos padrão de telemetria. Por convenção, esses módulos não definem nenhuma propriedade que já tenha sido definida por um inicializador. Os inicializadores de telemetria são chamados antes de chamar os processadores de telemetria, portanto, qualquer enriquecimento feito pelos inicializadores é visível para os processadores.
Inicializadores de telemetria JavaScript
Insira um inicializador de telemetria JavaScript, se necessário. Para obter mais informações sobre os inicializadores de telemetria para o SDK JavaScript do Application Insights, consulte Inicializadores de telemetria.
Insira um inicializador de telemetria adicionando a função de retorno de chamada onInit na configuração do JavaScript (Web) SDK Loader Script:
<script type="text/javascript">
!(function (cfg){function e(){cfg.onInit&&cfg.onInit(n)}var x,w,D,t,E,n,C=window,O=document,b=C.location,q="script",I="ingestionendpoint",L="disableExceptionTracking",j="ai.device.";"instrumentationKey"[x="toLowerCase"](),w="crossOrigin",D="POST",t="appInsightsSDK",E=cfg.name||"appInsights",(cfg.name||C[t])&&(C[t]=E),n=C[E]||function(g){var f=!1,m=!1,h={initialize:!0,queue:[],sv:"8",version:2,config:g};function v(e,t){var n={},i="Browser";function a(e){e=""+e;return 1===e.length?"0"+e:e}return n[j+"id"]=i[x](),n[j+"type"]=i,n["ai.operation.name"]=b&&b.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(h.sv||h.version),{time:(i=new Date).getUTCFullYear()+"-"+a(1+i.getUTCMonth())+"-"+a(i.getUTCDate())+"T"+a(i.getUTCHours())+":"+a(i.getUTCMinutes())+":"+a(i.getUTCSeconds())+"."+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}},ver:undefined,seq:"1",aiDataContract:undefined}}var n,i,t,a,y=-1,T=0,S=["js.monitor.azure.com","js.cdn.applicationinsights.io","js.cdn.monitor.azure.com","js0.cdn.applicationinsights.io","js0.cdn.monitor.azure.com","js2.cdn.applicationinsights.io","js2.cdn.monitor.azure.com","az416426.vo.msecnd.net"],o=g.url||cfg.src,r=function(){return s(o,null)};function s(d,t){if((n=navigator)&&(~(n=(n.userAgent||"").toLowerCase()).indexOf("msie")||~n.indexOf("trident/"))&&~d.indexOf("ai.3")&&(d=d.replace(/(\/)(ai\.3\.)([^\d]*)$/,function(e,t,n){return t+"ai.2"+n})),!1!==cfg.cr)for(var e=0;e<S.length;e++)if(0<d.indexOf(S[e])){y=e;break}var n,i=function(e){var a,t,n,i,o,r,s,c,u,l;h.queue=[],m||(0<=y&&T+1<S.length?(a=(y+T+1)%S.length,p(d.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/,function(e,t,n,i){return t+S[a]+i})),T+=1):(f=m=!0,s=d,!0!==cfg.dle&&(c=(t=function(){var e,t={},n=g.connectionString;if(n)for(var i=n.split(";"),a=0;a<i.length;a++){var o=i[a].split("=");2===o.length&&(t[o[0][x]()]=o[1])}return t[I]||(e=(n=t.endpointsuffix)?t.location:null,t[I]="https://"+(e?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||g.instrumentationKey||"",t=(t=(t=t[I])&&"/"===t.slice(-1)?t.slice(0,-1):t)?t+"/v2/track":g.endpointUrl,t=g.userOverrideEndpointUrl||t,(n=[]).push((i="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",o=s,u=t,(l=(r=v(c,"Exception")).data).baseType="ExceptionData",l.baseData.exceptions=[{typeName:"SDKLoadFailed",message:i.replace(/\./g,"-"),hasFullStack:!1,stack:i+"\nSnippet failed to load ["+o+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(b&&b.pathname||"_unknown_")+"\nEndpoint: "+u,parsedStack:[]}],r)),n.push((l=s,i=t,(u=(o=v(c,"Message")).data).baseType="MessageData",(r=u.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+l+")").replace(/\"/g,"")+'"',r.properties={endpoint:i},o)),s=n,c=t,JSON&&((u=C.fetch)&&!cfg.useXhr?u(c,{method:D,body:JSON.stringify(s),mode:"cors"}):XMLHttpRequest&&((l=new XMLHttpRequest).open(D,c),l.setRequestHeader("Content-type","application/json"),l.send(JSON.stringify(s)))))))},a=function(e,t){m||setTimeout(function(){!t&&h.core||i()},500),f=!1},p=function(e){var n=O.createElement(q),e=(n.src=e,t&&(n.integrity=t),n.setAttribute("data-ai-name",E),cfg[w]);return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=a,n.onerror=i,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||a(0,t)},cfg.ld&&cfg.ld<0?O.getElementsByTagName("head")[0].appendChild(n):setTimeout(function(){O.getElementsByTagName(q)[0].parentNode.appendChild(n)},cfg.ld||0),n};p(d)}cfg.sri&&(n=o.match(/^((http[s]?:\/\/.*\/)\w+(\.\d+){1,5})\.(([\w]+\.){0,2}js)$/))&&6===n.length?(d="".concat(n[1],".integrity.json"),i="@".concat(n[4]),l=window.fetch,t=function(e){if(!e.ext||!e.ext[i]||!e.ext[i].file)throw Error("Error Loading JSON response");var t=e.ext[i].integrity||null;s(o=n[2]+e.ext[i].file,t)},l&&!cfg.useXhr?l(d,{method:"GET",mode:"cors"}).then(function(e){return e.json()["catch"](function(){return{}})}).then(t)["catch"](r):XMLHttpRequest&&((a=new XMLHttpRequest).open("GET",d),a.onreadystatechange=function(){if(a.readyState===XMLHttpRequest.DONE)if(200===a.status)try{t(JSON.parse(a.responseText))}catch(e){r()}else r()},a.send())):o&&r();try{h.cookie=O.cookie}catch(k){}function e(e){for(;e.length;)!function(t){h[t]=function(){var e=arguments;f||h.queue.push(function(){h[t].apply(h,e)})}}(e.pop())}var c,u,l="track",d="TrackPage",p="TrackEvent",l=(e([l+"Event",l+"PageView",l+"Exception",l+"Trace",l+"DependencyData",l+"Metric",l+"PageViewPerformance","start"+d,"stop"+d,"start"+p,"stop"+p,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),h.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(g.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==g[L]&&!0!==l[L]&&(e(["_"+(c="onerror")]),u=C[c],C[c]=function(e,t,n,i,a){var o=u&&u(e,t,n,i,a);return!0!==o&&h["_"+c]({message:e,url:t,lineNumber:n,columnNumber:i,error:a,evt:C.event}),o},g.autoExceptionInstrumented=!0),h}(cfg.cfg),(C[E]=n).queue&&0===n.queue.length?(n.queue.push(e),n.trackPageView({})):e();})({
src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag
onInit: function (sdk) {
sdk.addTelemetryInitializer(function (envelope) {
envelope.data = envelope.data || {};
envelope.data.someField = 'This item passed through my telemetry initializer';
});
}, // Once the application insights instance has loaded and initialized this method will be called
// sri: false, // Custom optional value to specify whether fetching the snippet from integrity file and do integrity check
cfg: { // Application Insights Configuration
connectionString: "YOUR_CONNECTION_STRING"
}});
</script>
Para obter um resumo das propriedades não personalizadas disponíveis no item de telemetria, consulte Modelo de dados de exportação do Application Insights.
Você pode adicionar quantos inicializadores quiser. Eles são chamados na ordem em que são adicionados.
Adicionar um nome de função de nuvem e uma instância de função de nuvem
Use um inicializador de telemetria para definir as ai.cloud.role tags e ai.cloud.roleInstance . Essas tags definem como seu componente aparece no Mapa do Aplicativo no Azure Monitor.
appInsights.queue.push(() => {
appInsights.addTelemetryInitializer((envelope) => {
envelope.tags["ai.cloud.role"] = "your role name";
envelope.tags["ai.cloud.roleInstance"] = "your role instance";
});
});
Gestão de cookies
A partir da versão 2.6.0, o SDK JavaScript do Azure Application Insights fornece gerenciamento de cookies baseado em instância que pode ser desabilitado e reativado após a inicialização.
Se você desabilitou os cookies durante a inicialização usando as disableCookiesUsage configurações ou cookieCfg.enabled , poderá reativá-los usando a setEnabled função do objeto ICookieMgr.
O gerenciamento de cookies baseado em instância substitui as funções globais anteriores do CoreUtils de disableCookies(), setCookie(), getCookie()e deleteCookie().
Para aproveitar os aprimoramentos de agitação de árvore introduzidos na versão 2.6.0, recomenda-se não usar mais as funções globais.
Configuração de cookies
ICookieMgrConfig é uma configuração de cookie para gerenciamento de cookies baseado em instância adicionado na versão 2.6.0. As opções fornecidas permitem ativar ou desativar o uso de cookies pelo SDK. Você também pode definir domínios e caminhos de cookies personalizados e personalizar as funções para buscar, definir e excluir cookies.
As opções ICookieMgrConfig são definidas na tabela a seguir.
| Nome | Tipo | Predefinido | Descrição |
|---|---|---|---|
| ativado | Booleano | verdadeiro | A instância atual do SDK usa esse booleano para indicar se o uso de cookies está habilitado. Se false, a instância do SDK inicializada por essa configuração não armazena nem lê dados de cookies. |
| domínio | cadeia (de caracteres) | null | Domínio de cookie personalizado. É útil se você quiser compartilhar cookies do Application Insights entre subdomínios. Se não fornecido usa o valor do valor raiz cookieDomain . |
| caminho | cadeia (de caracteres) | / | Especifica o caminho a ser usado para o cookie, se não for fornecido, ele usa qualquer valor do valor raiz cookiePath . |
| ignorarCookies | string[] | indefinido | Especifique o(s) nome(s) do cookie a ser ignorado, isso faz com que qualquer nome de cookie correspondente nunca seja lido ou escrito. Eles ainda podem ser explicitamente limpos ou excluídos. Não é necessário repetir o nome na blockedCookies configuração. (desde v2.8.8) |
| bloqueadosCookies | string[] | indefinido | Especifique o(s) nome(s) do(s) cookie(s) para nunca escrever. Ele impede a criação ou atualização de qualquer nome de cookie, mas eles ainda podem ser lidos, a menos que também incluídos no ignoreCookies. Eles ainda podem ser limpos ou excluídos explicitamente. Se não for fornecido, o padrão será para a mesma lista em ignoreCookies. (Desde v2.8.8) |
| getCookie | (name: string) => string |
null | Função para buscar o valor do cookie nomeado, se não for fornecido ele usa a análise de cookie interno / cache. |
| setCookie | (name: string, value: string) => void |
null | Função para definir o cookie nomeado com o valor especificado, chamado apenas ao adicionar ou atualizar um cookie. |
| delCookie | (name: string, value: string) => void |
null | Função para excluir o cookie nomeado com o valor especificado, separado de setCookie para evitar a necessidade de analisar o valor para determinar se o cookie está sendo adicionado ou removido. Se não for fornecido, usa a análise/cache de cookies internos. |
Mapa de origem
O suporte ao mapa de origem ajuda você a depurar código JavaScript minificado com a capacidade de desminificar a pilha de chamadas minificada da sua telemetria de exceção.
- Compatível com todas as integrações atuais no painel Detalhes da exceção
- Suporta todos os SDKs JavaScript atuais e futuros, incluindo Node.JS, sem a necessidade de uma atualização do SDK
Link para a conta de armazenamento de Blob
O Application Insights dá suporte ao carregamento de mapas de origem para seu contêiner de blob da conta de Armazenamento do Azure. Você pode usar mapas de origem para desminificar pilhas de chamadas encontradas na página Detalhes da transação de ponta a ponta. Você também pode usar mapas de origem para desminuir qualquer exceção enviada pelo SDK do JavaScript ou pelo SDK do Node.js.
Criar uma nova conta de armazenamento e contêiner de blob
Se você já tiver uma conta de armazenamento ou contêiner de blob existente, poderá ignorar esta etapa.
Crie uma nova conta de armazenamento.
Crie um contêiner de blob dentro de sua conta de armazenamento. Defina Nível de acesso público como Privado para garantir que seus mapas de origem não sejam acessíveis publicamente.
Envie seus mapas de origem para seu contêiner de blob
Integre seu pipeline de implantação contínua com sua conta de armazenamento configurando-o para carregar automaticamente seus mapas de origem para o contêiner de blob configurado.
Você pode carregar mapas de origem em seu contêiner de Armazenamento de Blob do Azure com a mesma estrutura de pastas com a qual eles foram compilados e implantados. Um caso de uso comum é prefixar uma pasta de implantação com sua versão, por exemplo, 1.2.3/static/js/main.js. Quando você unminifica por meio de um contêiner de blob do Azure chamado sourcemaps, o pipeline tenta buscar um mapa de origem localizado em sourcemaps/1.2.3/static/js/main.js.map.
Carregar mapas de origem através do Azure Pipelines (recomendado)
Se você estiver usando o Azure Pipelines para criar e implantar continuamente seu aplicativo, adicione uma tarefa de cópia de arquivo do Azure ao seu pipeline para carregar automaticamente seus mapas de origem.
Configure seu recurso do Application Insights com uma conta de armazenamento de mapa de origem
Você tem duas opções para configurar seu recurso do Application Insights com uma conta de armazenamento de mapa de origem.
Guia de detalhes da transação de ponta a ponta
Na guia Detalhes da transação de ponta a ponta, selecione Desminify. Configure seu recurso se ele estiver desconfigurado.
- No portal do Azure, exiba os detalhes de uma exceção que é minificada.
- Selecione Desminificar.
- Se o recurso não estiver configurado, configure-o.
Separador Propriedades
Para configurar ou alterar a conta de armazenamento ou o contêiner de blob vinculado ao recurso do Application Insights:
Vá para a guia Propriedades do recurso do Application Insights.
Selecione Alterar contêiner de Blob do mapa de origem.
Selecione um contêiner de blob diferente como seu contêiner de mapa de origem.
Selecione Aplicar.
Ver a pilha de chamadas não minificada
Para exibir a pilha de chamadas não minificada, selecione um item de Telemetria de Exceção no portal do Azure, localize os mapas de origem que correspondem à pilha de chamadas e arraste e solte os mapas de origem na pilha de chamadas no portal do Azure. O mapa de origem deve ter o mesmo nome que o arquivo de origem de um quadro de pilha, mas com uma map extensão.
Se você tiver problemas que envolvam o suporte de mapa de origem para aplicativos JavaScript, consulte Solucionar problemas de suporte de mapa de origem para aplicativos JavaScript.
Tremor de árvore
A agitação da árvore elimina o código não utilizado do pacote JavaScript final.
Para aproveitar a agitação da árvore, importe apenas os componentes necessários do SDK para seu código. Ao fazer isso, o código não utilizado não é incluído no pacote final, reduzindo seu tamanho e melhorando o desempenho.
Melhorias e recomendações para agitação de árvores
Na versão 2.6.0, substituímos e removemos o uso interno dessas classes auxiliares estáticas para melhorar o suporte a algoritmos de agitação de árvores. Ele permite que os pacotes npm soltem com segurança o código não utilizado.
CoreUtilsEventHelperUtilUrlHelperDateTimeUtilsConnectionStringParser
As funções agora são exportadas como raízes de nível superior dos módulos, tornando mais fácil refatorar seu código para melhorar a agitação da árvore.
As classes estáticas foram alteradas para objetos const que fazem referência às novas funções exportadas, e alterações futuras são planejadas para refatorar ainda mais as referências.
Árvore agitando funções preteridas e substituições
Esta seção só se aplica a você se você estiver usando as funções preteridas e quiser otimizar o tamanho do pacote. Recomendamos usar as funções de substituição para reduzir o tamanho e suportar todas as versões do Internet Explorer.
| Existente | Substituição |
|---|---|
| CoreUtils | @microsoft/applicationinsights-core-js |
| CoreUtils._canUseCookies | Nenhum. Não use, pois isso faz com que toda a referência CoreUtils seja incluída no seu código final. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().setEnabled(true/false) para definir o valor e appInsights.getCookieMgr().isEnabled() verificar o valor. |
| CoreUtils.isTypeof | isTypeof |
| CoreUtils.isUndefined | estáIndefinido |
| CoreUtils.isNullOrUndefined | éNuloOuIndefinido |
| CoreUtils.hasOwnProperty | hasOwnProperty |
| CoreUtils.isFunction | isFunction |
| CoreUtils.isObject | éObjeto |
| CoreUtils.isDate | isDate |
| CoreUtils.isArray | isArray |
| CoreUtils.isError | éErro |
| CoreUtils.isString | isString |
| CoreUtils.isNumber | isNúmero |
| CoreUtils.isBoolean | isbooleano |
| CoreUtils.toISOString | toISOString ou getISOString |
| CoreUtils.arrForEach | arrForEach |
| CoreUtils.arrIndexOf | arrIndexOf |
| CoreUtils.arrMapa | arrMapa |
| CoreUtils.arrReduce | arrReduzir |
| CoreUtils.strTrim | strTrim | |
| CoreUtils.objCreate | objCreateFn |
| CoreUtils.objKeys | objKeys |
| CoreUtils.objDefineAccessors | objDefineAccessors |
| CoreUtils.addEventHandler | addEventHandler |
| CoreUtils.dateNow | dateNow |
| CoreUtils.isIE | isIE |
| CoreUtils.disableCookies | desativarCookies A referência faz com que CoreUtils seja referenciado para compatibilidade com versões anteriores. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().setEnabled(false) |
| CoreUtils.newGuid | novoGUID |
| CoreUtils.perfNow | perfNow |
| CoreUtils.newId | novoId |
| CoreUtils.randomValue | Valor aleatório |
| CoreUtils.random32 | aleatório32 |
| CoreUtils.mwcRandomSeed | mwcRandomSeed |
| CoreUtils.mwcRandom32 | mwcRandom32 |
| CoreUtils.generateW3CId | gerarW3CId |
| EventHelper | @microsoft/applicationinsights-core-js |
| EventHelper.Anexar | anexarEvento |
| EventHelper.AttachEvent | anexarEvento |
| EventHelper.Desanexar | desanexarEvento |
| EventHelper.DetachEvent | desanexarEvento |
| Util | @microsoft/applicationinsights-common-js |
| Util.NotSpecified | strNãoEspecificado |
| Util.createDomEvent | createDomEvent |
| Util.disableStorage | utlDisableStorage |
| Util.isInternalApplicationInsightsEndpoint | éPontoFinalInternoDoApplicationInsights |
| Util.canUseLocalStorage | utlCanUseLocalStorage |
| Util.getStorage | utlGetLocalStorage |
| Util.setStorage | utlSetLocalStorage |
| Util.removeStorage | utlRemoveStorage |
| Util.canUseSessionStorage | utlCanUseSessionStorage |
| Util.getSessionStorageKeys | utlObterChavesDeArmazenamentoDeSessão |
| Util.getSessionStorage | utlGetSessionStorage |
| Util.setSessionStorage | utlSetSessionStorage |
| Util.removeSessionStorage | utlRemoveSessionStorage |
| Util.disableCookies | desativarCookies A referência faz com que CoreUtils seja referenciado para compatibilidade com versões anteriores. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().setEnabled(false) |
| Util.canUseCookies | canUseCookies A referência faz com que CoreUtils seja referenciado para compatibilidade com versões anteriores. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().isEnabled() |
| Util.disallowsSameSiteNone | uaProíbeMesmoLocalNenhum |
| Util.setCookie | coreSetCookie A referência faz com que CoreUtils seja referenciado para compatibilidade com versões anteriores. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().set(name: string, value: string) |
| Util.stringToBoolOrDefault | stringToBoolOrDefault |
| Util.getCookie | coreGetCookie A referência faz com que CoreUtils seja referenciado para compatibilidade com versões anteriores. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().get(name: string) |
| Util.deleteCookie | núcleoEliminarCookie A referência faz com que CoreUtils seja referenciado para compatibilidade com versões anteriores. Refatore o tratamento de cookies para usar o appInsights.getCookieMgr().del(name: string, path?: string) |
| Util.trim | strTrim | |
| Util.newId | novoId |
| Util.random32 | --- Sem substituição, refatore seu código para usar o núcleo random32(true) |
| Util.generateW3CId | gerarW3CId |
| Util.isArray | isArray |
| Util.isError | éErro |
| Util.isDate | isDate |
| Util.toISOStringParaIE8 | toISOString |
| Util.getIEVersion | obterVersãoIE |
| Util.msToTimeSpan | msToTimeSpan |
| Util.isCrossOriginError | isCrossOriginError |
| Util.dump | dumpObj |
| Util.getExceptionName | obterNomeDaExceção |
| Util.addEventHandler | anexarEvento |
| Util.IsBeaconApiSupported | éApiDeBeaconSuportado |
| Util.getExtension | getExtensionByName |
| UrlHelper | @microsoft/applicationinsights-common-js |
| UrlHelper.parseUrl | urlParseUrl |
| UrlHelper.getAbsoluteUrl | urlGetAbsoluteUrl |
| UrlHelper.getPathName | urlObterNomeDoCaminho |
| UrlHelper.getCompeteUrl | urlGetCompleteUrl |
| UrlHelper.parseHost | urlParseHost |
| UrlHelper.parseFullHost | urlParseFullHost |
| DateTimeUtils | @microsoft/applicationinsights-common-js |
| DateTimeUtils.Now | dateTimeUtilsNow |
| DateTimeUtils.GetDuration | dateTimeUtilsDuration |
| ConnectionStringParser | @microsoft/applicationinsights-common-js |
| ConnectionStringParser.parse | parseConnectionString |
Notificações do serviço
As notificações de serviço são um recurso integrado ao SDK para fornecer recomendações acionáveis para ajudar a garantir que sua telemetria flua ininterruptamente para o Application Insights. Você pode ver as notificações como uma mensagem de exceção no Application Insights. Garantimos que as notificações são relevantes para você com base nas configurações do SDK e ajustamos a verbosidade com base na urgência da recomendação. Recomendamos deixar as notificações de serviço ativadas, mas você pode desativar por meio da featureOptIn configuração.
Atualmente, nenhuma notificação ativa está sendo enviada.
As notificações de serviço são gerenciadas pelo JavaScript SDK, que sonda regularmente um arquivo JSON público para controlar e atualizar essas notificações. Para desativar a sondagem feita pelo SDK do JavaScript, desative o modo featureOptIn.
Resolução de Problemas
Consulte o artigo dedicado à resolução de problemas.
Próximos passos
- Para revisar as perguntas freqüentes, consulte Perguntas frequentes sobre a configuração do SDK do JavaScript.
- Controlar a utilização
- Tarefa de cópia de arquivo do Azure
- Referência de tipos de dados do Azure Monitor e código SDK para JavaScript SDK.