A pesquisa de transações é um recurso do Application Insights que você usa para localizar e explorar itens de telemetria individuais, como exibições de página, exceções ou solicitações da Web. Você também pode exibir rastreamentos de log e eventos codificados.
Para consultas mais complexas sobre seus dados, use o Log Analytics.
Onde você vê a Pesquisa?
Você pode encontrar a Pesquisa no portal do Azure ou no Visual Studio.
No portal do Azure
Você pode abrir a pesquisa de transações na guia Visão geral do Application Insights do seu aplicativo. Você também pode selecionar Pesquisar em Investigar no menu à esquerda.
Vá para o menu suspenso Tipos de eventos para ver uma lista de itens de telemetria, como solicitações de servidor, exibições de página e eventos personalizados codificados. A parte superior da lista Resultados tem um gráfico de resumo mostrando contagens de eventos ao longo do tempo.
Volte para fora do menu suspenso ou selecione Atualizar para obter novos eventos.
No Visual Studio
No Visual Studio, há também uma janela de Pesquisa do Application Insights. É mais útil para exibir eventos de telemetria gerados pelo aplicativo que você está depurando. Mas também pode mostrar os eventos recolhidos da sua aplicação publicada no portal do Azure.
Abra a janela Pesquisa do Application Insights no Visual Studio:
A janela Pesquisa do Application Insights tem recursos semelhantes ao portal da Web:
A guia Rastrear Operação está disponível quando você abre uma solicitação ou uma exibição de página. Uma "operação" é uma sequência de eventos associados a uma única solicitação ou exibição de página. Por exemplo, chamadas de dependência, exceções, logs de rastreamento e eventos personalizados podem fazer parte de uma única operação. A guia Rastrear operação mostra graficamente o tempo e a duração desses eventos em relação à solicitação ou à exibição de página.
Inspecionar itens individuais
Selecione qualquer item de telemetria para ver os campos-chave e os itens relacionados.
A visualização de detalhes da transação de ponta a ponta é aberta.
Filtrar tipos de eventos
Abra o menu suspenso Tipos de evento e escolha os tipos de evento que deseja ver. Se quiser restaurar os filtros mais tarde, selecione Repor.
Os tipos de evento são:
- Rastreamento: logs de diagnóstico, incluindo chamadas TrackTrace, log4Net, NLog e System.Diagnostic.Trace.
- Solicitação: solicitações HTTP recebidas pelo seu aplicativo de servidor, incluindo páginas, scripts, imagens, arquivos de estilo e dados. Esses eventos são usados para criar os gráficos de visão geral de solicitação e resposta.
- Exibição de página: Telemetria enviada pelo cliente Web usada para criar relatórios de exibição de página.
- Evento personalizado: Se você inseriu chamadas para
TrackEvent()
monitorar o uso, você pode pesquisá-las aqui.
- Exceção: exceções não detetadas no servidor e as exceções que você registra usando
TrackException()
o .
- Dependência: chamadas do aplicativo do servidor para outros serviços, como APIs REST ou bancos de dados, e chamadas AJAX do código do cliente.
- Disponibilidade: Resultados dos testes de disponibilidade
Filtrar valores de propriedade
Você pode filtrar eventos nos valores de suas propriedades. As propriedades disponíveis dependem dos tipos de evento selecionados. Selecione Filtrar para iniciar.
Escolher nenhum valor de uma propriedade específica tem o mesmo efeito que escolher todos os valores. Ele desativa a filtragem nessa propriedade.
Observe que as contagens à direita dos valores do filtro mostram quantas ocorrências existem no conjunto filtrado atual.
Encontre eventos com a mesma propriedade
Para localizar todos os itens com o mesmo valor de propriedade, insira-o na caixa Pesquisar ou marque a caixa de seleção quando procurar propriedades na guia Filtro .
Pesquisar os dados
Nota
Para escrever consultas mais complexas, abra Logs (Analytics) na parte superior do painel Pesquisar .
Você pode pesquisar termos em qualquer um dos valores de propriedade. Esse recurso é útil se você escrever eventos personalizados com valores de propriedade.
Talvez você queira definir um intervalo de tempo porque as pesquisas em um intervalo mais curto são mais rápidas.
Procure palavras completas, não substrings. Use aspas para incluir caracteres especiais.
String |
Não encontrado |
Encontrado |
HomeController.Sobre |
home
controller
out |
homecontroller
about
"homecontroller.about" |
Estados Unidos da América |
Uni
ted |
united
states
united AND states
"united states" |
Você pode usar as seguintes expressões de pesquisa:
Consulta de exemplo |
Efeito |
apple |
Encontre todos os eventos no intervalo de tempo cujos campos incluem a palavra apple . |
apple AND banana
apple banana |
Encontre eventos que contenham ambas as palavras. Use capital AND , não and . Forma curta. |
apple OR banana |
Encontre eventos que contenham qualquer uma das palavras. Use OR , não or . |
apple NOT banana |
Encontre eventos que contenham uma palavra, mas não a outra. |
Amostragem
Se seu aplicativo gerar telemetria significativa e usar ASP.NET SDK versão 2.0.0-beta3 ou posterior, ele reduzirá automaticamente o volume enviado ao portal por meio de amostragem adaptável. Este módulo envia apenas uma fração representativa de eventos. Ele seleciona ou desmarca eventos relacionados à mesma solicitação de um grupo, permitindo que você navegue entre eventos relacionados.
Saiba mais sobre a amostragem.
Criar item de trabalho
Você pode criar um bug no GitHub ou no Azure DevOps com os detalhes de qualquer item de telemetria.
Vá para a visualização de detalhes da transação de ponta a ponta selecionando qualquer item de telemetria. Em seguida, selecione Criar item de trabalho.
Na primeira vez que fizer esta etapa, você será solicitado a configurar um link para sua organização e projeto do Azure DevOps. Você também pode configurar o link na guia Itens de Trabalho .
Enviar mais telemetria para o Application Insights
Além da telemetria pronta para uso enviada pelo SDK do Application Insights, você pode:
Capture rastreamentos de log de sua estrutura de log favorita em .NET ou Java. Isso significa que você pode pesquisar seus rastreamentos de log e correlacioná-los com visualizações de página, exceções e outros eventos.
Escreva código para enviar eventos personalizados, exibições de página e exceções.
Saiba como enviar logs e telemetria personalizada para o Application Insights.
Perguntas mais frequentes
Encontre respostas a perguntas comuns.
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.
A experiência de diagnóstico unificado correlaciona automaticamente a telemetria do lado do servidor de todos os componentes monitorados do Application Insights em uma única exibição. Não importa se você tem 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.
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.
Nota
Você está perdendo os links de itens relacionados? Toda a telemetria relacionada está no lado esquerdo nas seções superior e inferior .
Experiência de diagnóstico de transações
Esta vista tem quatro partes principais:
- uma lista de resultados
- um gráfico de transações entre componentes
- uma lista de sequência temporal de toda a telemetria relacionada com esta operação
- o painel de detalhes para qualquer item de telemetria selecionado
Gráfico de transações entre componentes
Este gráfico fornece uma linha do tempo com barras horizontais durante solicitações e dependências entre componentes. Quaisquer exceções coletadas também são marcadas na linha do tempo.
- A linha superior deste gráfico representa o ponto de entrada. É a solicitação de entrada para o primeiro componente chamado nesta transação. A duração é o tempo total necessário para a conclusão da transação.
- Todas as chamadas para dependências externas são linhas simples não recolhíveis, com ícones que representam o tipo de dependência.
- As chamadas para outros componentes são linhas recolhíveis. Cada linha corresponde a uma operação específica invocada no componente.
- Por padrão, a solicitação, dependência ou exceção selecionada aparece ao lado. Selecione qualquer linha para ver seus detalhes.
Nota
As chamadas para outros componentes têm duas linhas. Uma linha representa a chamada de saída (dependência) do componente chamador. A outra linha corresponde à solicitação de entrada no componente chamado. O ícone principal e o estilo distinto das barras de duração ajudam a diferenciá-las.
Toda a telemetria com este ID de operação
Esta seção mostra uma exibição de lista simples em uma sequência de tempo de toda a telemetria relacionada a essa transação. Ele também mostra os eventos e rastreamentos personalizados que não são exibidos no gráfico de transações. Você pode filtrar essa lista para telemetria gerada por um componente ou chamada específico. Você pode selecionar qualquer item de telemetria nesta lista para ver os detalhes correspondentes ao lado.
Detalhes da telemetria selecionada
Este painel recolhível mostra os detalhes de qualquer item selecionado do gráfico de transações ou da lista. Mostrar todas as listas de todos os atributos padrão que são coletados. Todos os atributos personalizados são listados separadamente no conjunto padrão. Selecione o botão de reticências (...) na janela de rastreamento da pilha de chamadas para obter uma opção para copiar o rastreamento. Os rastreamentos abertos do criador de perfil e o instantâneo de depuração aberto mostram diagnósticos no nível de código nos painéis de detalhes correspondentes.
Resultados da pesquisa
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.
.NET Profiler e depurador de instantâneo
O .NET Profiler ou o Depurador de Instantâneo ajudam com diagnósticos em nível de código de problemas de desempenho e falha. Com essa experiência, você pode ver rastreamentos ou instantâneos do .NET Profiler de qualquer componente com uma única seleção.
Se não conseguir que o .NET Profiler funcione, contacte serviceprofilerhelp@microsoft.com.
Se não conseguir que o Depurador de Instantâneos funcione, contacte snapshothelp@microsoft.com.
Perguntas mais frequentes
Esta secção fornece respostas a perguntas comuns.
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 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 às distorções 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.
Este comportamento é a predefinição. 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 é gerado 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 uma exibição de página seja gerada sempre 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 navega 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 ou outros problemas relacionados à rede da máquina cliente em que as chamadas de API estão falhando. Se o erro do portal continuar e precisar de mais investigação, colete um rastreamento de rede do navegador enquanto reproduz o comportamento inesperado do portal e, em seguida, abra um caso de suporte do portal do Azure.