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 Application Insights coleta telemetria do seu aplicativo para ajudar a diagnosticar falhas e investigar transações lentas. Inclui quatro ferramentas essenciais:
Falhas - Rastreia erros, exceções e falhas, oferecendo informações claras para uma solução rápida de problemas e maior estabilidade.
Desempenho - Identifica rapidamente e ajuda a resolver gargalos de aplicativos exibindo tempos de resposta e contagens de operações.
Pesquisa de transações - Permite que os usuários localizem e examinem itens de telemetria individuais, como exibições de página, exceções e eventos personalizados.
Diagnóstico de transações - Ajuda a identificar rapidamente problemas em componentes por meio de uma visão abrangente dos detalhes completos das transações.
Juntas, essas ferramentas garantem a integridade e a eficiência contínuas das aplicações web. Você pode usá-los para identificar problemas ou aprimoramentos que teriam mais impacto sobre os usuários.
Para acessar o modo de exibição Falhas no Application Insights, selecione o gráfico Solicitações com falha no painel Visão geral ou Falhas na categoria Investigar no menu de recursos.
Você também pode acessar a exibição de falhas no Mapa do Aplicativo selecionando um recurso e, em seguida, Investigar falhas na seção de triagem.
Observação
Você pode acessar o diagnóstico de transação por meio de qualquer uma das outras três experiências. Para obter mais informações, consulte Investigar telemetria.
Visão geral
A visualização Falhas mostra uma lista de todas as operações com falha coletadas para seu aplicativo com a opção de detalhar cada uma delas. Ele permite que você visualize sua frequência e o número de usuários afetados, para ajudá-lo a concentrar seus esforços nos problemas com maior impacto.
Observação
Além da telemetria pronta para uso enviada pela Distro OpenTelemetry do Azure Monitor ou pelo SDK do JavaScript, você pode adicionar e modificar a telemetria (por exemplo, eventos personalizados).
Para obter mais informações, consulte Adicionar e modificar o Azure Monitor OpenTelemetry para aplicativos .NET, Java, Node.jse Python.
Telemetria do filtro
Filtros predefinidos
Todas as experiências permitem filtrar a telemetria por intervalo de tempo. Além disso, cada experiência vem com seu próprio filtro padrão:
Você pode selecionar qual serviço (Nome da Função na Nuvem) ou máquina/contêiner (Instância da Função na Nuvem) será exibido no menu de filtro Funções . Essa ação permite isolar problemas ou tendências de desempenho em partes específicas do seu aplicativo.
Para saber como definir o Nome da Função de Nuvem e a Instância de Função de Nuvem, consulte Configurar o Azure Monitor OpenTelemetry.
Adicionar filtros
Você pode filtrar eventos nos valores de suas propriedades. As propriedades disponíveis dependem dos tipos de evento ou telemetria selecionados. Para adicionar um filtro:
Selecione
para adicionar um filtro.
Na lista suspensa à esquerda, selecione uma propriedade.
Na lista suspensa central, selecione um dos seguintes operadores:
=
,!=
,contains
, ounot contains
.Na lista suspensa à direita, selecione todos os valores de propriedade que pretende filtrar.
Observação
Observe que as contagens à direita dos valores do filtro mostram quantas ocorrências existem no conjunto filtrado atual.
Para adicionar outro filtro, selecione
novamente.
Telemetria de pesquisa
Você pode pesquisar operações específicas usando o campo Pesquisar para filtrar itens... acima da lista de operações.
Usar dados analíticos
Todos os dados coletados pelo Application Insights são armazenados no Log Analytics. Ele fornece uma linguagem de consulta avançada para analisar as solicitações que geraram a exceção que você está investigando.
Sugestão
O modo simples no Log Analytics oferece uma interface intuitiva de apontar e clicar para analisar e visualizar dados de log.
Na exibição de desempenho, falhas ou pesquisa de transações, selecione Exibir em Logs na barra de navegação superior e escolha uma consulta no menu suspenso.
Essa ação leva você para a visualização Logs , onde você pode modificar ainda mais a consulta ou selecionar uma diferente na barra lateral.
Investigar telemetria
Para investigar a causa raiz de um erro ou exceção, você pode detalhar a operação problemática para obter uma exibição detalhada de detalhes da transação de ponta a ponta que inclui dependências e detalhes de exceção.
Selecione uma operação para exibir os 3 principais códigos de resposta, os 3 principais tipos de exceção e as 3 principais dependências com falha dessa operação.
Em Detalhar, selecione o botão com o número de resultados filtrados para exibir uma lista de operações de exemplo.
Selecione uma operação de exemplo para abrir a visualização Detalhes da transação de ponta a ponta .
Observação
As amostras sugeridas contêm telemetria relacionada de todos os componentes, mesmo que a amostragem esteja em vigor em qualquer um deles.
Analise o desempenho e as falhas do lado do cliente
Se você instrumentar suas páginas da Web com o Application Insights, poderá obter visibilidade sobre visualizações de página, operações do navegador e dependências. A recolha destes dados do navegador requer a adição de um script às suas páginas Web.
Depois de adicionar o script, você pode acessar as exibições de página e suas métricas de desempenho associadas selecionando a opção Navegador na visualização Desempenho ou Falhas .
Esta vista fornece um resumo visual de várias telemetrias da sua aplicação a partir da perspetiva do browser.
Para operações do navegador, a exibição de detalhes da transação de ponta a ponta mostra as Propriedades de Exibição de Página do cliente que solicita a página, incluindo o tipo de navegador e sua localização. Essas informações podem ajudar a determinar se há problemas de desempenho relacionados a tipos específicos de clientes.
Observação
Assim como os dados coletados para o desempenho do servidor, o Application Insights disponibiliza todos os dados do cliente para análise profunda usando logs.
Experiência de diagnóstico de transações
A experiência de diagnóstico de transações, também chamada de visualização de detalhes completos da transação, mostra um gráfico de Gantt da transação que lista todos os eventos com a sua duração e código de resposta.
Essa experiência de diagnóstico correlaciona automaticamente a telemetria do lado do servidor de todos os componentes monitorados do Application Insights em uma única exibição e oferece suporte a vários recursos. O Application Insights deteta a relação subjacente e permite diagnosticar facilmente o componente, a dependência ou a exceção do aplicativo que causou uma lentidão ou falha na transação.
A seleção de um evento específico revela suas propriedades, incluindo informações adicionais, como o comando subjacente ou a pilha de chamadas.
Esta vista tem quatro partes principais:
Este painel recolhível mostra os outros resultados que atendem aos critérios de filtro. Selecione qualquer resultado para atualizar os respetivos detalhes das três seções anteriores. Tentamos encontrar amostras com maior probabilidade de ter os detalhes disponíveis de todos os componentes, mesmo que a amostragem esteja em vigor em qualquer um deles. Estas amostras são apresentadas como sugestões.
Anotações de versão
As anotações de lançamento marcam implantações e outros eventos significativos nos gráficos do Application Insights, permitindo a correlação das alterações com o desempenho, falhas e uso.
Anotações automáticas com o Azure Pipelines
O Azure Pipelines cria uma anotação de versão durante a implantação quando todas as seguintes condições forem verdadeiras:
- O recurso de destino vincula-se ao Application Insights por meio da configuração do
APPINSIGHTS_INSTRUMENTATIONKEY
aplicativo. - O recurso do Application Insights está na mesma assinatura que o recurso de destino.
- A implantação usa uma das seguintes tarefas do Azure Pipelines:
Código da tarefa | Nome da tarefa | Versions |
---|---|---|
AzureAppServiceSettings | Configurações do Serviço de Aplicativo do Azure | Qualquer |
AzureRmWebAppDeployment | Serviço de Aplicações do Azure | V3+ |
AzureFunctionApp | Funções do Azure | Qualquer |
AzureFunctionAppContainer | Azure Functions para contêiner | Qualquer |
AzureWebAppContainer | Aplicativo Web do Azure para contêineres | Qualquer |
AzureWebApp | Azure Web App | Qualquer |
Observação
Se você ainda usar a tarefa de implantação de anotação do Application Insights mais antiga, exclua-a.
Configurar anotações em um pipeline usando um script embutido
Se você não usar as tarefas da seção anterior, adicione um script embutido no estágio de implantação.
Abra um pipeline existente ou crie um novo e selecione uma tarefa em Estágios.
Adicione uma nova tarefa da CLI do Azure .
Selecione a assinatura do Azure. Defina Tipo de Script como PowerShell e Local do Script como Inline.
Adicione o script do PowerShell da etapa 2 em Criar anotações de versão com a CLI do Azure ao Script Inline.
Adicione argumentos de script. Substitua espaços reservados entre colchetes angulares.
-aiResourceId "<aiResourceId>" ` -releaseName "<releaseName>" ` -releaseProperties @{"ReleaseDescription"="<a description>"; "TriggerBy"="<Your name>" }
O exemplo a seguir mostra metadados que você pode definir no argumento opcional
releaseProperties
usando variáveis build e release. Selecione Guardar.-releaseProperties @{ "BuildNumber"="$(Build.BuildNumber)"; "BuildRepositoryName"="$(Build.Repository.Name)"; "BuildRepositoryProvider"="$(Build.Repository.Provider)"; "ReleaseDefinitionName"="$(Build.DefinitionName)"; "ReleaseDescription"="Triggered by $(Build.DefinitionName) $(Build.BuildNumber)"; "ReleaseEnvironmentName"="$(Release.EnvironmentName)"; "ReleaseId"="$(Release.ReleaseId)"; "ReleaseName"="$(Release.ReleaseName)"; "ReleaseRequestedFor"="$(Release.RequestedFor)"; "ReleaseWebUrl"="$(Release.ReleaseWebUrl)"; "SourceBranch"="$(Build.SourceBranch)"; "TeamFoundationCollectionUri"="$(System.TeamFoundationCollectionUri)" }
Criar anotações de versão com a CLI do Azure
Use o seguinte script do PowerShell para criar uma anotação de versão de qualquer processo, sem o Azure DevOps.
Entre na CLI do Azure.
Salve o script a seguir como
CreateReleaseAnnotation.ps1
.param( [parameter(Mandatory = $true)][string]$aiResourceId, [parameter(Mandatory = $true)][string]$releaseName, [parameter(Mandatory = $false)]$releaseProperties = @() ) # Function to ensure all Unicode characters in a JSON string are properly escaped function Convert-UnicodeToEscapeHex { param ( [parameter(Mandatory = $true)][string]$JsonString ) $JsonObject = ConvertFrom-Json -InputObject $JsonString foreach ($property in $JsonObject.PSObject.Properties) { $name = $property.Name $value = $property.Value if ($value -is [string]) { $value = [regex]::Unescape($value) $OutputString = "" foreach ($char in $value.ToCharArray()) { $dec = [int]$char if ($dec -gt 127) { $hex = [convert]::ToString($dec, 16) $hex = $hex.PadLeft(4, '0') $OutputString += "\u$hex" } else { $OutputString += $char } } $JsonObject.$name = $OutputString } } return ConvertTo-Json -InputObject $JsonObject -Compress } $annotation = @{ Id = [GUID]::NewGuid(); AnnotationName = $releaseName; EventTime = (Get-Date).ToUniversalTime().GetDateTimeFormats("s")[0]; Category = "Deployment"; #Application Insights only displays annotations from the "Deployment" Category Properties = ConvertTo-Json $releaseProperties -Compress } $annotation = ConvertTo-Json $annotation -Compress $annotation = Convert-UnicodeToEscapeHex -JsonString $annotation $accessToken = (az account get-access-token | ConvertFrom-Json).accessToken $headers = @{ "Authorization" = "Bearer $accessToken" "Accept" = "application/json" "Content-Type" = "application/json" } $params = @{ Headers = $headers Method = "Put" Uri = "https://management.azure.com$($aiResourceId)/Annotations?api-version=2015-05-01" Body = $annotation } Invoke-RestMethod @params
Observação
Defina Categoria como Implantação ou as anotações não aparecem no portal do Azure.
Chame o script e passe valores para os parâmetros. O -releaseProperties
parâmetro é opcional.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Argument | Definition | Observação |
---|---|---|
aiResourceId |
ID do recurso de destino do Application Insights. | Exemplo: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nome da nova anotação de versão. | |
releaseProperties |
Metadados personalizados para anexar à anotação. | Opcional |
Ver anotações
Observação
As anotações de versão não estão disponíveis no painel Métricas .
O Application Insights exibe anotações de versão nas seguintes experiências:
- Desempenho e falhas
- Utilização
- Pastas de trabalho (para qualquer visualização de série temporal)
As anotações são visualizadas como marcadores na parte superior dos gráficos.
Para habilitar anotações em uma pasta de trabalho, abra Configurações Avançadas e selecione Mostrar anotações. Selecione qualquer marcador de anotação para abrir detalhes da versão, como solicitante, ramificação do controle do código-fonte, pipeline de liberação e ambiente.
Perguntas frequentes
Esta secção fornece respostas a perguntas comuns.
Pesquisa de transações
O que é um componente?
Os componentes são partes implantáveis de forma independente do seu aplicativo distribuído ou de microsserviço. Os desenvolvedores e as equipes de operações têm visibilidade em nível de código ou acesso à telemetria gerada por esses componentes do aplicativo.
- Os componentes são diferentes das dependências externas "observadas", como SQL e hubs de eventos, aos quais sua equipe ou organização pode não ter acesso (código ou telemetria).
- Os componentes são executados em qualquer número de instâncias de servidor, função ou contêiner.
- Os componentes podem ser chaves de instrumentação separadas do Application Insights, mesmo que as assinaturas sejam diferentes. Os componentes também podem ser funções diferentes que se reportam a uma única chave de instrumentação do Application Insights. A nova experiência mostra detalhes em todos os componentes, independentemente de como foram configurados.
Quantos dados são retidos?
Consulte o resumo dos limites.
Como posso ver os dados POST nos meus pedidos de servidor?
Não registramos os dados POST automaticamente, mas você pode usar o TrackTrace ou registrar chamadas. Coloque os dados POST no parâmetro message. Não é possível filtrar a mensagem da mesma forma que filtra as propriedades, mas o limite de tamanho é maior.
Por que minha pesquisa do Azure Function não retorna resultados?
O Azure Functions não registra cadeias de caracteres de consulta de URL.
Diagnóstico de transações
Por que vejo um único componente no gráfico e os outros componentes só aparecem como dependências externas sem detalhes?
Razões potenciais:
- Os outros componentes são instrumentados com o Application Insights?
- Eles estão usando o SDK estável mais recente do Application Insights?
- Se esses componentes forem recursos separados do Application Insights, valide se você tem acesso. Se você tiver acesso e os componentes forem instrumentados com os SDKs (Software Development Kits) mais recentes do Application Insights, informe-nos através do canal de feedback no canto superior direito.
Vejo linhas duplicadas para as dependências. Esse comportamento é esperado?
Atualmente, estamos mostrando a chamada de dependência de saída separada da solicitação de entrada. Normalmente, as duas chamadas parecem idênticas, com apenas o valor de duração sendo diferente por causa da viagem de ida e volta da rede. O ícone principal e o estilo distinto das barras de duração ajudam a diferenciá-las. Esta apresentação dos dados é confusa? Dê-nos a sua opinião!
E quanto aos desvios de relógio em diferentes instâncias de componentes?
As linhas do tempo são ajustadas para distorções de relógio no gráfico de transações. Você pode ver os carimbos de data/hora exatos no painel de detalhes ou usando o Log Analytics.
Porque é que na nova experiência estão em falta a maioria das consultas de itens relacionados?
Este comportamento é intencional. Todos os itens relacionados, em todos os componentes, já estão disponíveis no lado esquerdo nas seções superior e inferior. A nova experiência tem dois itens relacionados que o lado esquerdo não cobre: toda a telemetria de cinco minutos antes e depois deste evento e a linha do tempo do usuário.
Existe uma maneira de ver menos eventos por transação quando uso o SDK JavaScript do Application Insights?
A experiência de diagnóstico de transação mostra toda a telemetria em uma única operação que compartilha uma ID de operação. Por padrão, o SDK do Application Insights para JavaScript cria uma nova operação para cada exibição de página exclusiva. Em um aplicativo de página única (SPA), apenas um evento de exibição de página é criado e um único ID de operação é usado para toda a telemetria gerada. Como resultado, muitos eventos podem estar correlacionados à mesma operação.
Nesses cenários, você pode usar o Rastreamento Automático de Rotas para criar automaticamente novas operações para navegação em seu SPA. Você deve ativar enableAutoRouteTracking para que o sistema crie uma exibição de página cada vez que a rota de URL for atualizada (a exibição de página lógica ocorre). Se quiser atualizar manualmente o ID da operação, chame appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId()
. Acionar manualmente um evento PageView também redefine a ID da operação.
Por que as durações de detalhes da transação não se somam à duração da solicitação superior?
O tempo não explicado no gráfico de Gantt é o tempo que não é coberto por uma dependência controlada. Esse problema pode ocorrer porque as chamadas externas não foram instrumentadas, automaticamente ou manualmente. Também pode ocorrer porque o tempo gasto estava em processo e não por causa de uma chamada externa.
Se todas as chamadas foram instrumentadas, no processo está a causa raiz provável para o tempo gasto. Uma ferramenta útil para diagnosticar o processo é o .NET Profiler.
E se eu vir a mensagem "Erro ao recuperar dados" enquanto navego pelo Application Insights no portal do Azure?
Este erro indica que o browser não conseguiu chamar uma API necessária ou a API devolveu uma resposta de falha. Para solucionar o comportamento, abra uma janela InPrivate do navegador e desative todas as extensões do navegador em execução e, em seguida, identifique se ainda é possível reproduzir o comportamento do portal. Se o erro do portal ainda ocorrer, tente testar com outros navegadores ou outras máquinas, investigue o DNS (Sistema de Nomes de Domínio) ou outros problemas relacionados à rede na máquina cliente em que as chamadas de API estão falhando. Se o erro do portal continuar, colete um rastreamento de rede do navegador enquanto reproduz o comportamento inesperado. Em seguida, abra um caso de suporte no portal do Azure.
Próximos passos
- Saiba mais sobre como usar o Mapa de Aplicativos para identificar gargalos de desempenho e pontos críticos de falha em todos os componentes do seu aplicativo.
- Saiba mais sobre como usar o modo de exibição Disponibilidade para configurar testes recorrentes para monitorar a disponibilidade e a capacidade de resposta do seu aplicativo.
- Saiba como usar o Log Analytics e escrever consultas complexas para obter informações mais detalhadas de seus dados de telemetria.
- Saiba como enviar logs e telemetria personalizada para o Application Insights para um monitoramento mais abrangente.
- Para obter uma introdução ao monitoramento do tempo de atividade e da capacidade de resposta, consulte a Visão geral da disponibilidade.