Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Application Insights coleta telemetria de seu aplicativo para ajudar a diagnosticar falhas e investigar transações lentas. Ele inclui quatro ferramentas essenciais:
Falhas – rastreia erros, exceções e falhas, oferecendo insights claros para resolução rápida de problemas e estabilidade aprimorada.
Desempenho – Identifica rapidamente e ajuda a resolver gargalos de aplicativo 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ção – ajuda a identificar rapidamente problemas em componentes por meio de uma visão abrangente dos detalhes da transação de ponta a ponta.
Juntas, essas ferramentas garantem a integridade e a eficiência contínuas dos aplicativos 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 grafo de 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 exibiçã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ê veja sua frequência e o número de usuários afetados, para ajudá-lo a concentrar seus esforços nos problemas com o maior impacto.
Observação
Além da telemetria pronta para uso enviada pelo Azure Monitor OpenTelemetry Distro 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 OpenTelemetry do Azure Monitor para aplicativos .NET, Java, Node.jse Python.
Filtrar telemetria
Filtros padrão
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 de Nuvem) ou computador/contêiner (Instância de Função de Nuvem) para exibir no menu 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 OpenTelemetry do Azure Monitor.
Adicionar filtros
Você pode filtrar eventos pelos valores de suas propriedades. As propriedades disponíveis dependem dos tipos de evento ou telemetria que você selecionou. Para adicionar um filtro:
Selecione
para adicionar um filtro.
No menu suspenso à 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 você deseja usar como filtro.
Observação
Observe que as contagens à direita dos valores de filtro mostram quantas ocorrências existem no atual conjunto filtrado.
Para adicionar outro filtro, selecione
novamente.
Como pesquisar telemetria
Você pode pesquisar operações específicas usando a pesquisa para filtrar itens... campo acima da lista de operações.
Usar dados de análise
Todos os dados coletados pelo Application Insights são armazenados no Log Analytics. Ele oferece uma linguagem de consulta avançada para analisar as solicitações que geraram a exceção que você está investigando.
Dica
O modo simples no Log Analytics oferece uma interface intuitiva de ponto e clique para analisar e visualizar dados de log.
No modo de exibição de desempenho, de falhas ou de pesquisa de transações, selecione Exibir em Logs na barra de navegação superior e escolha uma consulta no menu suspenso.
Esta ação leva você à exibição Logs, onde é possível modificar ainda mais a consulta ou selecionar outra na barra lateral.
Investigar telemetria
Para investigar a causa raiz de um erro ou exceção, você pode analisar a operação problemática para uma exibição detalhada de detalhes de 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 três principais tipos de exceção e as três principais dependências com falha para essa operação.
Em Detalhar, selecione o botão com o número de resultados filtrados para exibir uma lista de operações de amostra.
Selecione uma operação de exemplo para abrir a exibição de 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.
Analisar 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 exibições de página, operações de navegador e dependências. Coletar esses dados do navegador requer a adição de um script às páginas da Web.
Depois de adicionar o script, você pode acessar exibições de página e suas métricas de desempenho associadas selecionando a alternância navegador na exibição Desempenho ou Falhas .
Essa exibição fornece um resumo visual de várias telemetrias do aplicativo da perspectiva do navegador.
Para operações de navegador, a exibição de detalhes da transação de ponta a ponta mostra as Propriedades de Exibição de Página do cliente solicitando 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 determinados tipos 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ção
A experiência de diagnóstico de transação , também chamada de exibição de detalhes da transação de ponta a ponta , mostra um gráfico de Gantt da transação, que lista todos os eventos com 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 dá suporte a vários recursos. O Application Insights detecta o relacionamento subjacente e permite diagnosticar facilmente o componente, a dependência ou a exceção do aplicativo que causou uma desaceleração ou falha na transação.
Selecionar um evento específico revela suas propriedades, incluindo informações adicionais, como o comando subjacente ou a pilha de chamadas.
Essa exibição tem quatro partes principais:
Esse painel recolhível mostra os outros resultados que atendem aos critérios de filtro. Escolha qualquer resultado para atualizar os respectivos detalhes das três seções anteriores. Tentamos encontrar exemplos que têm mais probabilidade de ter detalhes disponíveis de todos os componentes, mesmo que a amostragem esteja em vigor em qualquer um deles. Esses exemplos são mostrados como sugestões.
Anotações de versão
As anotações sobre a versão marcam implantações e outros eventos importantes nos gráficos do Application Insights, permitindo a correlação de alterações com desempenho, falhas e uso.
Anotações automáticas com Azure Pipelines
Azure Pipelines cria uma anotação sobre a versão durante a implantação quando todas as condições a seguir forem verdadeiras:
- O recurso de destino está vinculado ao Application Insights por meio da configuração de aplicativo
APPINSIGHTS_INSTRUMENTATIONKEY
. - 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 Aplicativo do Azure | V3+ |
AzureFunctionApp | Azure Functions | Qualquer |
AzureFunctionAppContainer | Azure Functions para contêiner | Qualquer |
AzureWebAppContainer | Aplicativo Web para Contêineres do Azure | Qualquer |
AzureWebApp | Aplicativo Web do Azure | 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 na fase de implantação.
Abra um pipeline existente ou crie outro e selecione uma tarefa em Fases.
Adicione uma nova tarefa CLI do Azure.
Selecione a Assinatura do Azure. Defina Tipo de Script como PowerShell e Local do Script como Embutido.
Adicione o script do PowerShell da etapa 2 em Criar anotações sobre a versão com a CLI do Azure a Script Embutido.
Adicionar argumentos de script. Substitua os espaços reservados nos 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 de build e de versão. Clique em Salvar.-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 sobre a versão de qualquer processo, sem Azure DevOps.
Entre na CLI do Azure.
Salve o seguinte script 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 aparecerão 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 do Application Insights de destino. | Exemplo: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nome da nova anotação sobre a versão. | |
releaseProperties |
Metadados personalizados a serem anexados à anotação. | Opcional |
Exibir anotações
Observação
Anotações sobre a versão não estão disponíveis no painel Métricas.
O Application Insights exibe anotações sobre a versão nas seguintes experiências:
- Desempenho e Falhas
- Uso
- 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 as Configurações Avançadas e selecione Mostrar anotações. Selecione qualquer marcador de anotação para abrir os detalhes da versão, como solicitante, ramificação do controle do código-fonte, pipeline de lançamento e ambiente.
Perguntas frequentes
Esta seção fornece respostas para perguntas comuns.
Pesquisa de transação
O que é um componente?
Os componentes são partes dos seus aplicativos de microsserviços ou distribuídos que podem ser implantadas de modo independente. As equipes de desenvolvedores e operações têm visibilidade em nível de código ou acesso à telemetria gerada por esses componentes de aplicação.
- Os componentes são diferentes das dependências externas "observadas", como o SQL e os Hubs de Eventos, às 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 contêiner, função ou servidor.
- Os componentes podem ser chaves de instrumentação separadas do Application Insights, mesmo que as assinaturas sejam diferentes. Eles também podem ser funções diferentes que relatam para apenas uma 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?
Confira o resumo de Limites.
Como posso ver dados POST em minhas solicitações de servidor?
Não registramos os dados POST automaticamente, mas você pode usar TrackTrace ou chamadas de log. Coloque os dados de POSTAGEM no parâmetro de mensagem. Não é possível filtrar a mensagem da mesma maneira que as propriedades, mas o limite de tamanho é maior.
Por que minha pesquisa de funções do Azure não retorna resultados?
O Azure Functions não registra em log cadeias de caracteres de consulta de URL.
Diagnóstico de transação
Por que vejo um único componente no gráfico e os outros componentes são exibidos apenas como dependências externas sem detalhes?
Motivos possíveis:
- Os outros componentes são instrumentados com 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 estiverem instrumentados com os Kits de Desenvolvimento de Software (SDKs) mais recentes do Application Insights, avise-nos por meio do canal de feedback no canto superior direito.
Vejo linhas duplicadas para as dependências. Esse comportamento é esperado?
No momento, estamos mostrando a chamada de dependência de saída separada da solicitação de entrada. Normalmente, as duas chamadas parecem idênticas, apenas o valor da duração sendo diferente devido à viagem de ida e volta da rede. O ícone principal e o estilo distinto das barras de duração ajudam a diferenciá-las. Essa apresentação dos dados está confusa? Envie-nos seus comentários!
E quanto às distorções de relógio entre diferentes instâncias de componentes?
As linhas do tempo são ajustadas para as distorções do relógio no gráfico de transações. É possível visualizar os carimbos de data/hora exatos no painel de detalhes ou usando o Log Analytics.
Por que na nova experiência está faltando a maioria das consultas de itens relacionados?
Esse comportamento é por design. 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 abrange: toda a telemetria de cinco minutos antes e depois desse evento e a linha do tempo do usuário.
Há uma maneira de ver menos eventos por transação quando uso o SDK do 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 da Operação. Por padrão, o SDK do Application Insights para JavaScript cria uma 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 com a mesma operação.
Nesses cenários, você pode usar o Acompanhamento de Rota Automático para criar automaticamente novas operações de navegação em seu SPA. Você deve ativar enableAutoRouteTracking para que o sistema crie uma exibição de página sempre que a rota da URL for atualizada (exibição de página lógica ocorrer). Se você quiser atualizar manualmente a ID da operação, chame appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId()
. O disparo manual de um evento PageView também redefinirá 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 rastreada. Esse problema pode ocorrer porque as chamadas externas não foram instrumentadas, seja automaticamente ou manualmente. Também pode ocorrer porque o tempo gasto estava em processo, em vez de por causa de uma chamada externa.
Se todas as chamadas foram instrumentadas, em andamento é 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" ao navegar pelo Application Insights no portal do Azure?
Esse erro indica que o navegador não pôde chamar uma API exigida ou a API retornou uma resposta de falha. Para solucionar o comportamento, abra uma janela InPrivate do navegador e desabilite todas as extensões do navegador em execução e identifique se você ainda pode reproduzir o comportamento do portal. Se o erro do portal ainda ocorrer, tente testar com outros navegadores ou computadores, investigar problemas relacionados à rede ou ao Sistema de Nomes de Domínio (DNS) a partir do computador cliente onde as chamadas à API estão falhando. Se o erro do portal continuar, colete um rastreamento de rede do navegador enquanto reproduz o comportamento inesperado. Depois, abra um caso de suporte no portal do Azure.
Próximas etapas
- Saiba mais sobre como usar o Mapa do Aplicativo para detectar gargalos de desempenho e hotspots de falha em todos os componentes do seu aplicativo.
- Saiba mais sobre como usar a exibição Disponibilidade para configurar testes recorrentes, a fim de monitorar a disponibilidade e a capacidade de resposta do aplicativo.
- Saiba como usar o Log Analytics e gravar consultas complexas para obter insights mais profundos dos dados de telemetria.
- Saiba como enviar logs e telemetria personalizada ao Application Insights para monitoramento mais abrangente.
- Para obter uma introdução ao monitoramento de tempo de atividade e capacidade de resposta, consulte a visão geral da disponibilidade.