A pesquisa de transação é um recurso do Application Insights que você usa para localizar e explorar itens individuais de telemetria, como exibições de página, exceções ou solicitações da Web. Você também pode exibir rastreamentos de log e eventos que tenha codificado.
Para consultas mais complexas sobre os dados, use o Log Analytics.
Onde você vê o Search?
Você pode encontrar Pesquisar no portal do Azure ou no Visual Studio.
No portal do Azure
Você pode abrir a pesquisa de transação na guia Visão Geral do Application Insights do seu aplicativo. Também é possível selecionar Pesquisar em Investigar no menu à esquerda.
Acesse 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 que você tenha codificado. Na parte superior da lista Resultados, há um gráfico de resumo que mostra a contagem de eventos ao longo do tempo.
Recolha o menu suspenso ou selecione Atualizar para ver os novos eventos.
No Visual Studio
No Visual Studio, há também uma janela da Pesquisa do Application Insights. É mais útil exibir eventos de telemetria gerados pelo aplicativo que você está depurando. Contudo, ele também pode mostrar os eventos coletados do seu aplicativo publicado no Portal do Azure.
Abra a janela do Application Insights Search no Visual Studio:
A janela Pesquisa do Application Insights tem os mesmos recursos que o portal da Web:
A guia Controlar Operação está disponível ao abrir uma solicitação ou uma exibição de página. Uma “operação” é uma sequência de eventos associada 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 Controlar Operação mostra graficamente o tempo e a duração desses eventos em relação à exibição de solicitação ou página.
Inspecionar itens individuais
Selecione qualquer item de telemetria para ver os campos-chave e itens relacionados.
A exibição de detalhes da transação de ponta a ponta é aberta.
Filtrar tipos de evento
Abra o menu suspenso Tipos de eventos e escolha os tipos de evento que você quer ver. Para restaurar os filtros posteriormente, selecione Redefinir.
Os tipos de evento são:
- Rastreamento: logs de diagnóstico, incluindo as chamadas TrackTrace, log4Net, NLog e System.Diagnostic.Trace.
- Solicitar: solicitações HTTP recebidas pelo seu aplicativo para servidores, 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 de resposta.
- Exibição da página: telemetria enviada pelo cliente da Web, usada para criar relatórios de exibição de página.
- Evento Personalizado: se você tiver inserido chamadas
TrackEvent()
para monitorar o uso, você poderá pesquisá-las aqui.
- Exceção: exceções não percebidas no servidor e aquelas que você registra usando
TrackException()
.
- Dependência: chamadas do aplicativo para servidores para outros serviços, como APIs REST ou bancos de dados e chamadas AJAX do seu código de cliente.
- Disponibilidade: resultados dos testes de disponibilidade
Filtrar pelos valores de propriedade
Você pode filtrar eventos pelos valores de suas propriedades. As propriedades disponíveis dependem dos tipos de evento que você selecionou. Selecione Filtrar para começar.
Não escolher nenhum valor para uma determinada propriedade tem o mesmo efeito que escolher todos os valores. Ele desativará a filtragem nessa propriedade.
Observe que as contagens à direita dos valores de filtro mostram quantas ocorrências existem no atual conjunto filtrado.
Encontrar eventos com a mesma propriedade
Para localizar todos os itens com o mesmo valor da propriedade, insira-os na caixa de Pesquisa ou selecione a caixa de seleção ao examinar as propriedades na guia Filtro.
Pesquisar os dados
Observação
Para gravar consultas mais complexas, abra Logs (Analytics) na parte superior do painel Pesquisa.
Você pode pesquisar termos em qualquer um dos valores de propriedade. Essa funcionalidade é útil se você grava eventos personalizados com valores de propriedade.
Você talvez queira definir um tempo de intervalo, já que pesquisas em um intervalo mais curto são mais rápidas.
Pesquisar por palavras inteiras, não subcadeias de caracteres. Use aspas para delimitar caracteres especiais.
String |
Não encontrado |
Encontrado |
ControladorInicial.Sobre |
home
controller
out |
homecontroller
about
"homecontroller.about" |
Estados Unidos |
Uni
ted |
united
states
united AND states
"united states" |
As seguintes expressões de pesquisa podem ser usadas:
Exemplo de consulta |
Efeito |
apple |
Encontre todos os eventos no período cujos campos incluem a palavra apple . |
apple AND banana
apple banana |
Encontrar eventos que contêm as duas palavras. Use AND em maiúsculas, não and . Forma abreviada. |
apple OR banana |
Encontrar eventos que contêm uma das duas palavras. Use OR , não or . |
apple NOT banana |
Encontre eventos que contêm uma das palavras, mas não a outra. |
amostragem
Se o aplicativo gerar telemetria relevante e usar o SDK do ASP.NET 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 dos eventos. Ele seleciona ou desmarca eventos relacionados à mesma solicitação como um grupo, permitindo que você navegue entre eventos relacionados.
Saiba mais sobre amostragem.
Criar um item de trabalho
Você pode criar um bug no GitHub ou Azure DevOps com os detalhes de qualquer item de telemetria.
Acesse a exibiçã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 executar essa etapa, será solicitado que você configure um link para sua conta e projeto do Azure DevOps. Também é possível configurar o link na guia Itens de Trabalho.
Enviar mais telemetria para o Application Insights
Além de telemetria da caixa enviada pelo SDK do Application Insights, você pode:
Capturar rastreamentos de log da sua estrutura de registros favorita no .NET ou Java. Isso significa que você pode pesquisar os rastreamentos de log e correlacioná-los com outros eventos, exceções e visualizações de página.
Escrever código para enviar eventos personalizados, visualizações de página e exceções.
Saiba como enviar logs e telemetria personalizada para o Application Insights.
Perguntas frequentes
Encontre respostas para dúvidas comuns.
Que quantidade de dados é mantida?
Veja o Resumo de limites.
Como consultar dados de POSTAGEM nas minhas solicitações de servidor?
Nós não registramos os dados de POST automaticamente, mas você pode usar chamadas de log ou TrackTrace. 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 do Azure Functions não retornou nenhum resultado?
O Azure Functions não registra em log cadeias de caracteres de consulta de URL.
A experiência de diagnóstico unificado correlaciona automaticamente a telemetria no servidor de todos os seus componentes monitorados do Application Insights em uma única exibição. Não faz diferença se você tem 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.
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 operações e desenvolvedores têm acesso ou visibilidade nível de código para telemetria gerada por esses componentes de aplicativos.
- 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.
Observação
Não encontra os links dos itens relacionados? Toda a telemetria relacionada está no lado esquerdo, nas seções superior e inferior.
Experiência de diagnóstico de transação
Essa exibição tem quatro partes principais:
- uma lista de resultados
- um gráfico de transações entre componentes
- uma lista em cronograma de todas as telemetrias relacionadas a essa operação
- o painel de detalhes do item de telemetria selecionado, se houver
Gráfico de transações entre componentes
Esse gráfico fornece uma linha do tempo com barras horizontais durante as solicitações e as dependências entre componentes. As exceções coletadas também são marcadas na linha do tempo.
- A linha superior neste gráfico representa o ponto de entrada. Essa é a solicitação de entrada para o primeiro componente chamado nesta transação. A duração é o tempo total decorrido para a conclusão da transação.
- Todas as chamadas para dependências externas são linhas não recolhíveis simples, 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 é exibida na lateral. Selecione qualquer linha para ver os detalhes.
Observação
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 esta ID de operação
Esta seção mostra uma exibição de lista plana em uma sequência de tempo de toda a telemetria relacionada a essa transação. Ela também mostra os eventos personalizados e os rastreamentos que não são exibidos no gráfico de transações. Você pode filtrar a lista para ver a telemetria gerada por uma chamada/componente específico. É possível selecionar qualquer item de telemetria nessa lista para ver os detalhes correspondentes na lateral.
Detalhes da telemetria selecionada
Esse painel recolhível mostra os detalhes de qualquer item selecionado no gráfico de transações ou na lista. Mostrar tudo lista todos os atributos padrão que são coletados. Todos os atributos personalizados são listados separadamente abaixo do 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. Abrir rastreamentos do criador de perfil ou Abrir instantâneo de depuração mostram diagnósticos no nível do código nos painéis de detalhes correspondentes.
Resultados da Pesquisa
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.
.NET Profiler e Depurador de Snapshot
.NET Profiler ou Snapshot Debugger ajuda com diagnósticos em nível de código de problemas de desempenho e falhas. Com essa experiência, você pode ver rastreamentos ou instantâneos do .NET Profiler de qualquer componente com uma única seleção.
Se você não conseguir fazer o .NET Profiler funcionar, entre em contato serviceprofilerhelp@microsoft.com.
Caso não consiga usar o Depurador de Instantâneos, entre em contato com snapshothelp@microsoft.com.
Perguntas frequentes
Esta seção fornece respostas para perguntas comuns.
Por que vejo apenas um 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 são recursos separados do Application Insights, verifique se você tem acesso.
Se você tiver acesso e os componentes estiverem instrumentados com os SDKs mais recentes do Application Insights, avise-nos através do canal de comentários no canto superior direito.
Eu 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!
O que significa o relógio distorcer entre instâncias do componente diferentes?
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.
Este comportamento ocorre 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 Application Insights para JavaScript?
A experiência de diagnóstico de transação mostra toda a telemetria em apenas uma operação que compartilha uma ID de 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 SPA (aplicativo de página única), somente um evento de exibição de página é gerado e apenas uma ID de operação é usada para todas as telemetrias geradas. 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ê precisa ativar enableAutoRouteTracking para que uma exibição de página seja gerada sempre que a rota de URL for atualizada (ocorre a exibição de página lógica). 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 dos detalhes da transação não são somadas à 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. Depois, identifique se você ainda pode reproduzir o comportamento do portal. Se o erro do portal ainda ocorrer, tente testar com outros navegadores ou outros computadores, investigue o DNS ou outros problemas relacionados à rede do computador cliente em que as chamadas à 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 abra um caso de suporte no portal do Azure.