Partilhar via


Mapa de aplicações: Triagem de aplicações distribuídas

Os desenvolvedores usam mapas de aplicativos para representar a estrutura lógica de seus aplicativos distribuídos. Um mapa é produzido identificando os componentes individuais da aplicação com a sua roleName propriedade na name telemetria gravada. Círculos (ou nós) no mapa representam os componentes e linhas direcionais (conectores ou bordas) mostram as chamadas HTTP dos nós de origem para os nós de destino.

O Azure Monitor fornece o recurso Mapa de aplicativo para ajudá-lo a implementar rapidamente um mapa e identificar gargalos de desempenho ou pontos de falha em todos os componentes. Cada nó de mapa é um componente de aplicativo ou suas dependências e fornece KPI de integridade e status de alertas. Você pode selecionar qualquer nó para ver diagnósticos detalhados para o componente, como eventos do Application Insights. Se seu aplicativo usa serviços do Azure, você também pode selecionar diagnósticos do Azure, como recomendações do Consultor do Banco de Dados SQL.

O mapa do aplicativo também apresenta a visualização inteligente para ajudar com investigações rápidas de integridade do serviço.

Compreender os componentes

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.

Algumas considerações sobre componentes:

  • Os componentes são diferentes das dependências externas "observadas", como o SQL do Azure e os Hubs de Eventos do Azure, 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 recursos separados do Application Insights, mesmo que as assinaturas sejam diferentes. Eles também podem ser funções diferentes que se reportam a um único recurso do Application Insights. A experiência do mapa de visualização mostra os componentes independentemente de como eles estão configurados.

Explore o mapa do aplicativo

O mapa do aplicativo permite que você veja a topologia completa do aplicativo em vários níveis de componentes de aplicativos relacionados. Conforme descrito anteriormente, os componentes podem ser diferentes recursos do Application Insights, componentes dependentes ou diferentes funções em um único recurso. O mapa do aplicativo localiza componentes seguindo chamadas de dependência HTTP feitas entre servidores com o SDK do Application Insights instalado.

A experiência de mapeamento começa com a descoberta progressiva dos componentes dentro do aplicativo e suas dependências. Quando você carrega o mapa do aplicativo pela primeira vez, um conjunto de consultas é acionado para descobrir os componentes relacionados ao componente principal. À medida que os componentes são descobertos, uma barra de status mostra o número atual de componentes descobertos:

Captura de tela que mostra a carga inicial de um mapa de aplicativo no portal do Azure.

As seções a seguir descrevem algumas das ações disponíveis para trabalhar com o mapa do aplicativo no portal do Azure.

Atualizar os componentes de mapa

A opção Atualizar componentes do mapa aciona a descoberta de componentes e atualiza o mapa para mostrar todos os nós atuais. Dependendo da complexidade do seu aplicativo, a atualização pode levar um minuto para carregar:

Captura de tela que mostra como atualizar os componentes atuais em um mapa de aplicativo.

Quando todos os componentes do aplicativo são funções dentro de um único recurso do Application Insights, a etapa de descoberta não é necessária. A carga inicial neste cenário de aplicativo descobre todos os componentes.

Ver detalhes do componente

Um objetivo fundamental para a experiência de mapa de aplicativo é ajudá-lo a visualizar topologias complexas que têm centenas de componentes. Nesse cenário, é útil aprimorar a exibição de mapa com detalhes para um nó individual usando a opção Exibir detalhes . O painel de detalhes do nó mostra informações relacionadas, desempenho e experiência de triagem de falhas para o componente selecionado:

Captura de tela que mostra como exibir detalhes de um nó selecionado em um mapa de aplicativo.

Cada seção do painel inclui uma opção para ver mais informações em uma exibição expandida, incluindo falhas, desempenho e detalhes sobre solicitações e dependências com falha.

Investigar falhas

No painel de detalhes do nó, você pode usar a opção Investigar falhas para exibir todas as falhas do componente:

Captura de tela que mostra como selecionar a opção Investigar falhas no painel de detalhes do nó.

A visualização Falhas permite explorar dados de falha para operações, dependências, exceções e funções relacionadas ao componente selecionado:

Captura de tela que mostra o modo de exibição Falhas para um componente selecionado.

Investigar o desempenho

No painel de detalhes do nó, você pode solucionar problemas de desempenho com o componente selecionando a opção Investigar desempenho :

Captura de tela que mostra como selecionar a opção Investigar desempenho no painel de detalhes do nó.

A visualização Desempenho permite explorar dados de telemetria para operações, dependências e funções conectadas ao componente selecionado:

Captura de tela que mostra o modo de exibição Desempenho de um componente selecionado.

Ir para detalhes e rastreamento de pilha

A opção Ir para detalhes no painel de detalhes do nó exibe a experiência de transação de ponta a ponta para o componente. Este painel permite visualizar detalhes no nível da pilha de chamadas:

Captura de tela que mostra como selecionar a opção Ir para detalhes no painel de detalhes do nó.

A página é aberta para mostrar a visualização Linha do tempo para obter os detalhes:

Captura de tela que mostra o modo de exibição Detalhes de um componente selecionado.

Você pode usar a opção Exibir tudo para ver os detalhes da pilha com informações de rastreamento e evento para o componente:

Captura de tela que mostra a exibição Todos os rastreamentos e eventos para um componente selecionado.

Visualizar em logs (Analytics)

No painel de detalhes do nó, você pode consultar e investigar ainda mais os dados de seus aplicativos com a opção Exibir em logs (Analytics ):

Captura de tela que mostra como selecionar a opção Exibir em logs (Analytics) no painel de detalhes do nó.

A página Logs (Analytics) fornece opções para explorar os registros da tabela de telemetria do aplicativo com consultas e funções internas ou personalizadas. Você pode trabalhar com os dados ajustando o formato e salvando e exportando sua análise:

Captura de tela que mostra a tela Logs com um gráfico de linhas que resume a duração média de resposta de uma solicitação nas últimas 12 horas.

Ver alertas e regras

A opção Exibir alertas no painel de detalhes do nó permite que você veja alertas ativos:

Captura de tela que mostra como selecionar a opção Exibir alertas no painel de detalhes do nó.

A página Alertas mostra alertas críticos e disparados:

Captura de tela que mostra a lista de alertas para o componente selecionado.

A opção Regras de alerta na página Alertas mostra as regras subjacentes que fazem com que os alertas sejam acionados:

Captura de tela que mostra a lista de regras de alerta definidas para o componente selecionado.

Compreender nomes de funções e nós na nuvem

O mapa do aplicativo usa a propriedade do nome da função de nuvem para identificar os componentes do aplicativo em um mapa. Para explorar como os nomes de função de nuvem são usados com nós de componentes, examine um mapa de aplicativo que tenha vários nomes de função de nuvem presentes.

O exemplo a seguir mostra um mapa no modo de exibição hierárquico com cinco nós de componente e conectores para nove nós dependentes. Cada nó tem um nome de função de nuvem.

Captura de tela que mostra um mapa do aplicativo com vários nós e destaques de cores diferentes.

O mapa do aplicativo usa cores, destaques e tamanhos diferentes para os nós para representar os dados e as relações do componente do aplicativo:

  • Os nomes das funções de nuvem expressam os diferentes aspetos do aplicativo distribuído. Neste exemplo, algumas das funções do aplicativo incluem Contoso Retail Check, Fabrikam-App, fabrikam-loadfunc, retailfabrikam-37ha6e retailapp.

  • O círculo azul pontilhado ao redor de um nó indica o último componente selecionado. Neste exemplo, o último componente selecionado é o Web nó.

  • Quando você seleciona um nó para ver os detalhes, um círculo azul sólido realça o nó. No exemplo, o nó atualmente selecionado é Contoso Retail Reports.

  • Nós de componentes distantes ou não relacionados são mostrados menores em comparação com os outros nós. Esses itens são esmaecidos na exibição para destacar o desempenho do componente selecionado no momento.

  • Neste exemplo, cada nome de função de nuvem também representa um recurso exclusivo diferente do Application Insights com suas próprias chaves de instrumentação. Como o proprietário deste aplicativo tem acesso a cada um desses quatro recursos diferentes do Application Insights, o mapa do aplicativo pode costurar um mapa das relações subjacentes.

Investigue instâncias de função na nuvem

Quando um nome de função de nuvem revela um problema em algum lugar em seu frontend da Web e você está executando vários servidores com balanceamento de carga em seu frontend da Web, usar uma instância de função de nuvem pode ser útil. O mapa do aplicativo permite visualizar informações mais detalhadas sobre um nó de componente usando consultas Kusto. Você pode investigar um nó para exibir detalhes sobre instâncias de função de nuvem específicas. Essa abordagem ajuda a determinar se um problema afeta todos os servidores front-end da Web ou apenas instâncias específicas.

Um cenário em que você pode querer substituir o valor de uma instância de função de nuvem é quando seu aplicativo está sendo executado em um ambiente em contêiner. Nesse caso, as informações sobre o servidor individual podem não ser suficientes para localizar o problema específico.

Para obter mais informações sobre como substituir a propriedade de nome da função de nuvem por inicializadores de telemetria, consulte Adicionar propriedades: ITelemetryInitializer.

Definir nomes de função na nuvem

O mapa do aplicativo usa a propriedade de nome da função de nuvem para identificar os componentes no mapa. Esta seção fornece exemplos para definir ou substituir manualmente nomes de função na nuvem e alterar o que aparece no mapa do aplicativo.

Nota

O SDK ou Agente do Application Insights adiciona automaticamente a propriedade de nome da função de nuvem à telemetria emitida pelos componentes em um ambiente do Serviço de Aplicativo do Azure.

O trecho a seguir mostra as definições de esquema para a função de nuvem e a instância de função de nuvem:

[Description("Name of the role the application is a part of. Maps directly to the role name in Azure.")]
[MaxStringLength("256")]
705: string      CloudRole = "ai.cloud.role";

[Description("Name of the instance where the application is running. Computer name for on-premises, instance name for Azure.")]
[MaxStringLength("256")]
715: string      CloudRoleInstance = "ai.cloud.roleInstance";

Para as definições oficiais:

Escrever TelemetryInitializer personalizado

using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;

namespace CustomInitializer.Telemetry
{
    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            if (string.IsNullOrEmpty(telemetry.Context.Cloud.RoleName))
            {
                //set custom role name here
                telemetry.Context.Cloud.RoleName = "Custom RoleName";
                telemetry.Context.Cloud.RoleInstance = "Custom RoleInstance";
            }
        }
    }
}

ASP.NET apps: Carregar inicializador na TelemetryConfiguration ativa

No arquivo ApplicationInsights.config:

    <ApplicationInsights>
      <TelemetryInitializers>
        <!-- Fully qualified type name, assembly name: -->
        <Add Type="CustomInitializer.Telemetry.MyTelemetryInitializer, CustomInitializer"/>
        ...
      </TelemetryInitializers>
    </ApplicationInsights>

Um método alternativo para ASP.NET aplicativos Web é instanciar o inicializador no código. O exemplo a seguir mostra o código no arquivo Global.aspx.cs :

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;

    protected void Application_Start()
    {
        // ...
        TelemetryConfiguration.Active.TelemetryInitializers.Add(new MyTelemetryInitializer());
    }

Nota

Adicionar um inicializador usando a ApplicationInsights.config propriedade or TelemetryConfiguration.Active não é válido para aplicativos ASP.NET Core.

ASP.NET aplicativos principais: carregue um inicializador para TelemetryConfiguration

Para aplicativos ASP.NET Core, para adicionar uma nova TelemetryInitializer instância, adicione-a ao contêiner de injeção de dependência. O exemplo a seguir mostra essa abordagem. Adicione este código no ConfigureServices método da sua Startup.cs classe.

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;
 public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
}

Usar filtros de mapa de aplicativo

Os filtros de mapa de aplicativos ajudam a diminuir o número de nós e bordas visíveis no mapa. Esses filtros podem ser usados para reduzir o escopo do mapa e mostrar uma visão menor e mais focada.

Uma maneira rápida de filtrar é usar a opção Filtrar neste nó no menu de contexto para qualquer nó no mapa:

Captura de tela que mostra como filtrar o nó selecionado no mapa do aplicativo.

Você também pode criar um filtro com a opção Adicionar filtro :

Captura de tela que mostra como abrir a opção Adicionar filtro no mapa do aplicativo.

Selecione o tipo de filtro (nó ou conector) e as configurações desejadas, revise suas opções e aplique-as ao mapa atual.

Criar filtros de nó

Os filtros de nó permitem que você veja apenas determinados nós no mapa do aplicativo e oculte todos os outros nós. Você configura parâmetros para pesquisar as propriedades dos nós no mapa em busca de valores que correspondam a uma condição. Quando um filtro de nó remove um nó, o filtro também remove todos os conectores e bordas do nó.

Um filtro de nó tem três parâmetros para configurar:

  • Nós incluídos: Os tipos de nós a serem revisados no mapa do aplicativo para propriedades correspondentes. Tem quatro opções à escolha:

    • Nós, fontes e destinos: Todos os nós que correspondem aos critérios de pesquisa são incluídos no mapa de resultados. Todos os nós de origem e destino para os nós correspondentes também são incluídos automaticamente no mapa de resultados, mesmo que as fontes ou destinos não satisfaçam os critérios de pesquisa. Os nós de origem e de destino são coletivamente chamados de nós conectados .

    • Nós e fontes: o mesmo comportamento que nós, origens e destinos, mas os nós de destino não são incluídos automaticamente no mapa de resultados.

    • Nós e destinos: o mesmo comportamento que nós, origens e destinos, mas os nós de origem não são incluídos automaticamente no mapa de resultados.

    • Somente nós: todos os nós no mapa de resultados devem ter um valor de propriedade que corresponda aos critérios de pesquisa.

  • Operador: O tipo de teste condicional a ser executado nos valores de propriedade de cada nó. Tem quatro opções à escolha:

    • contains: O valor da propriedade node contém o valor especificado no parâmetro Search value .
    • !contains O valor da propriedade do nó não contém o valor especificado no parâmetro Search value .
    • ==: O valor da propriedade do nó é igual ao valor especificado no parâmetro Search value .
    • !=: O valor da propriedade do nó não é igual ao valor especificado no parâmetro Search value .
  • Valor de pesquisa: A cadeia de caracteres de texto a ser usada para o teste condicional do valor da propriedade. A lista suspensa para o parâmetro mostra valores para nós existentes no mapa do aplicativo. Você pode selecionar um valor na lista ou criar seu próprio valor. Insira seu valor personalizado no campo de parâmetro e selecione Criar opção ... na lista. Por exemplo, você pode inserir test e selecionar Criar opção "teste" na lista.

A imagem a seguir mostra um exemplo de um filtro aplicado a um mapa de aplicativo que mostra 30 dias de dados. O filtro instrui o mapa do aplicativo a procurar nós e destinos conectados que tenham propriedades que contenham o texto "retailapp":

Captura de tela que mostra como configurar um filtro de nó para corresponder ao texto 'retailapp'.

Os nós correspondentes e seus nós de destino conectados estão incluídos no mapa de resultados:

Captura de tela que mostra o mapa de resultados com nós e nós de destino que correspondem ao filtro de nós.

Criar filtros de conector (borda)

Os filtros de conector permitem que você veja apenas determinados nós com conectores específicos no mapa do aplicativo e oculte todos os outros nós e conectores. Você configura parâmetros para pesquisar as propriedades dos conectores no mapa em busca de valores que correspondam a uma condição. Quando um nó não tem conectores correspondentes, o filtro remove o nó do mapa.

Um filtro de conector tem três parâmetros para configurar:

  • Filtrar conectores por: Os tipos de conectores a serem revisados no mapa do aplicativo para propriedades correspondentes. Há quatro opções. Sua seleção controla as opções disponíveis para os outros dois parâmetros.

  • Operador: O tipo de teste condicional a ser executado no valor de cada conector.

  • Value: O valor de comparação a ser usado para o teste condicional do valor da propriedade. A lista suspensa para o parâmetro contém valores relevantes para o mapa do aplicativo atual. Você pode selecionar um valor na lista ou criar seu próprio valor. Por exemplo, você pode digitar 16 e selecionar Criar opção "16" na lista.

A tabela a seguir resume as opções de configuração com base na sua escolha para os conectores de filtro por parâmetro.

Filtrar conectores por Description Parâmetro do operador Parâmetro do valor Utilização
Conector de erro (vermelho realçado) Procure conectores com base em sua cor. A cor vermelha indica que o conector está em um estado de erro. ==: Igual a
!=: Não é igual a
Sempre definido como Erros Mostrar apenas conectores com erros ou apenas conectores sem erros.
Taxa de erro (0% - 100%) Procure conectores com base na sua taxa de erro média (o número de chamadas falhadas dividido pelo número de todas as chamadas). O valor é expresso em percentagem. >= Maior ou igual a
<= Inferior ou igual a
A lista suspensa mostra as taxas de erro médias relevantes para os conectores atuais no mapa do aplicativo. Escolha um valor na lista ou insira um valor personalizado seguindo o processo descrito anteriormente. Mostrar conectores com taxas de falha maiores ou menores do que o valor selecionado.
Duração média da chamada (ms) Procure conectores com base na duração média de todas as chamadas através do conector. O valor é medido em milissegundos. >= Maior ou igual a
<= Inferior ou igual a
A lista suspensa mostra durações médias relevantes para os conectores atuais no mapa do aplicativo. Por exemplo, um valor de 1000 refere-se a chamadas com uma duração média de 1 segundo. Escolha um valor na lista ou insira um valor personalizado seguindo o processo descrito anteriormente. Mostrar conectores com taxas médias de duração de chamada maiores ou menores do que o valor selecionado.
Contagem de chamadas Procure conectores com base no número total de chamadas através do conector. >= Maior ou igual a
<= Inferior ou igual a
A lista suspensa mostra o total de contagens de chamadas relevantes para os conectores atuais no mapa do aplicativo. Escolha um valor na lista ou insira um valor personalizado seguindo o processo descrito anteriormente. Mostrar conectores com contagens de chamadas maiores ou menores do que o valor selecionado.

Indicadores de percentis para o valor

Quando você filtra conectores pela taxa de erro, duração média da chamada ou contagem de chamadas, algumas opções para o parâmetro Value incluem a (Pxx) designação. Este indicador mostra o nível percentil. Para um filtro de duração média da chamada, poderá ver o valor 200 (P90). Esta opção significa que 90% de todos os conectores (independentemente do número de chamadas que representam) têm menos de 200 ms de duração de chamada.

Você pode ver as opções Valor que incluem o nível de percentil inserindo P no campo de parâmetro.

Reveja os seus filtros

Depois de fazer as seleções, a seção Revisão do pop-up Adicionar filtro mostra descrições textuais e visuais sobre o filtro. A exibição de resumo pode ajudá-lo a entender como seu filtro se aplica ao mapa do aplicativo.

O exemplo a seguir mostra o resumo de revisão para um filtro de nó que procura nós e destinos com propriedades que têm o texto "-west":

Captura de tela que mostra a seção Revisão com informações sobre o filtro de nó configurado.

Este exemplo mostra o resumo de um filtro de conector que procura conectores (e os nós que eles conectam) com uma duração média de chamada igual ou superior a 42 ms:

Captura de tela que mostra a seção Revisão com informações sobre o filtro de conector configurado.

Aplicar filtros ao mapa

Depois de definir e rever as definições do filtro, selecione Aplicar para criar o filtro. Você pode aplicar vários filtros ao mesmo mapa de aplicativo. No mapa de aplicativos, os filtros aplicados são exibidos como pílulas acima do mapa:

Captura de tela que mostra as pílulas de filtro acima do mapa do aplicativo.

A ação Remover em uma pílula de filtro permite excluir um filtro. Quando você exclui um filtro aplicado, a visualização de mapa é atualizada para subtrair a lógica do filtro.

O mapa do aplicativo aplica a lógica de filtro ao seu mapa sequencialmente, começando pelo filtro mais à esquerda na lista. À medida que os filtros são aplicados, nós e conectores são removidos da visualização de mapa. Depois que um nó ou conector é removido da exibição, um filtro subsequente não pode restaurar o item.

Você pode alterar a configuração de um filtro aplicado selecionando a pílula do filtro. À medida que você altera as configurações de filtro, o mapa do aplicativo mostra uma visualização da visualização do mapa com a nova lógica de filtro. Se decidir não aplicar as alterações, pode utilizar a opção Cancelar para a vista de mapa e filtros atuais.

Captura de ecrã da pré-visualização da vista de mapa que mostra as definições de filtro atualizadas.

Explore e guarde filtros

Quando você descobrir um filtro interessante, poderá salvá-lo para reutilizá-lo mais tarde com a opção Copiar link ou Fixar no painel :

Captura de tela que mostra as duas opções para reutilizar filtros no mapa do aplicativo.

  • A opção Copiar link codifica todas as configurações de filtro atuais no URL copiado. Você pode salvar este link nos favoritos do seu navegador ou compartilhá-lo com outras pessoas. Esse recurso preserva o valor de duração nas configurações de filtro, mas não o tempo absoluto. Quando você usa o link mais tarde, o mapa do aplicativo produzido pode ser diferente do mapa presente no momento em que o link foi capturado.

  • A opção Fixar no painel adiciona o mapa do aplicativo atual a um painel, juntamente com seus filtros atuais. Uma abordagem de diagnóstico comum é fixar um mapa com um filtro de conector de erro aplicado. Você pode monitorar seu aplicativo em busca de nós com erros em suas chamadas HTTP.

As seções a seguir descrevem alguns filtros comuns que se aplicam à maioria dos mapas e podem ser úteis para fixar em um painel.

Verifique se há erros importantes

Produza uma visualização de mapa apenas de conectores com erros (destacado em vermelho) nas últimas 24 horas. Os filtros incluem o parâmetro Error connector combinado com o modo de exibição inteligente:

Captura de ecrã dos filtros para mostrar apenas os erros realçados a vermelho nas últimas 24 horas e a vista inteligente está ativada.

O recurso Modo de exibição inteligente é descrito posteriormente neste artigo.

Ocultar conectores de baixo tráfego

Oculte conectores de baixo tráfego sem erros da visualização de mapa, para que você possa se concentrar rapidamente em problemas mais significativos. Os filtros incluem conectores nas últimas 24 horas com uma contagem de chamadas superior a 2872 (P20):

Captura de ecrã dos filtros para mostrar apenas os erros realçados a vermelho nas últimas 24 horas para conectores com uma contagem de chamadas superior a 2872.

Mostrar conectores de alto tráfego

Revele conectores de alto tráfego que também têm um tempo médio de duração de chamada alto. Este filtro pode ajudar a identificar potenciais problemas de desempenho. Os filtros neste exemplo incluem conectores nas últimas 24 horas com uma contagem de chamadas maior que 10854 (P50) e tempo médio de duração da chamada maior que 578 (P80):

Captura de ecrã de filtros para mostrar conectores nas últimas 24 horas com uma contagem de chamadas superior a 10854 e uma duração média de chamadas superior a 578 ms.

Localizar componentes por nome

Localize componentes (nós e conectores) em seu aplicativo pelo nome de acordo com sua implementação da convenção de nomenclatura da propriedade do componente roleName . Você pode usar essa abordagem para ver a parte específica de um aplicativo distribuído. O filtro procura nós, fontes e destinos nas últimas 24 horas que contenham o valor especificado. Neste exemplo, o valor da pesquisa é "west":

Captura de tela de filtros para mostrar nós e conectores nas últimas 24 horas com propriedades que incluem o termo oeste.

Remover componentes barulhentos

Defina filtros para ocultar componentes barulhentos removendo-os do mapa. Às vezes, os componentes do aplicativo podem ter nós dependentes ativos que produzem dados que não são essenciais para a visualização de mapa. Neste exemplo, o filtro procura nós, fontes e destinos nas últimas 24 horas que não contêm o valor especificado "varejo":

Captura de tela de filtros para mostrar nós e conectores nas últimas 24 horas com propriedades que não incluem o termo varejo.

Procure conectores propensos a erros

Mostrar apenas conectores com taxas de erro mais altas do que um valor específico. O filtro neste exemplo procura conectores nas últimas 24 horas que tenham uma taxa de erro superior a 3%:

Captura de ecrã de filtros para mostrar conectores nas últimas 24 horas com uma taxa de erro superior a 3%.

Explore a vista inteligente

O recurso de visualização inteligente para o mapa do aplicativo foi projetado para ajudar nas investigações de integridade do serviço. Ele aplica aprendizado de máquina para identificar rapidamente possíveis causas de problemas, filtrando o ruído. O modelo de aprendizado de máquina aprende com o comportamento histórico do mapa do aplicativo para identificar padrões dominantes e anomalias que indicam causas potenciais de um incidente.

Em grandes aplicativos distribuídos, há sempre algum grau de ruído proveniente de falhas "benignas", o que pode fazer com que o mapa de aplicativos seja barulhento ao mostrar muitas bordas vermelhas. O modo de exibição inteligente mostra apenas as causas mais prováveis de falha de serviço e remove bordas vermelhas nó a nó (comunicação serviço a serviço) em serviços íntegros. A visão inteligente destaca as bordas em vermelho que devem ser investigadas. Ele também oferece insights acionáveis para a borda destacada.

Há muitos benefícios em usar o modo de exibição inteligente:

  • Reduz o tempo de resolução, destacando apenas as falhas que precisam ser investigadas
  • Fornece informações acionáveis sobre por que uma determinada borda vermelha foi destacada
  • Permite que o mapa de aplicativos seja usado para grandes aplicativos distribuídos sem problemas (concentrando-se apenas nas bordas marcadas em vermelho)

A vista inteligente tem algumas limitações:

  • Grandes aplicativos distribuídos podem levar um minuto para carregar.
  • São suportados prazos de até sete dias.

Trabalhar com a vista inteligente

Uma alternância acima do mapa do aplicativo permite ativar a visualização inteligente e controlar a sensibilidade de deteção de problemas:

Captura de ecrã que mostra como ativar a vista inteligente para o mapa da aplicação e controlar a sensibilidade de deteção.

A visualização inteligente usa o modelo patenteado de aprendizado de máquina AIOps para destacar (vermelho) os dados significativos e importantes em um mapa de aplicativos. Vários dados de aplicativo são usados para determinar quais dados destacar no mapa, incluindo taxas de falha, contagens de solicitações, durações, anomalias e tipo de dependência. Para comparação, a visualização de mapa padrão utiliza apenas a taxa de falha bruta .

O mapa do aplicativo destaca as bordas em vermelho de acordo com sua configuração de sensibilidade. Você pode ajustar a sensibilidade para atingir o nível de confiança desejado nas bordas destacadas.

Sensibilidade Description
Alto Menos arestas são realçadas.
Medium (Configuração padrão) Um número equilibrado de arestas é realçado.
Baixo Mais arestas são destacadas.

Verifique informações acionáveis

Depois de ativar a Visualização inteligente, selecione uma borda realçada (vermelha) no mapa para ver os "insights acionáveis" do componente. As informações são exibidas em um painel à direita e explicam por que a borda está realçada.

Captura de tela que mostra os insights acionáveis para a borda selecionada no mapa do aplicativo.

Para começar a solucionar um problema, selecione Investigar falhas. Você pode revisar as informações sobre o componente no painel Falhas para determinar se o problema detetado é a causa raiz.

Quando o modo de exibição inteligente não destaca nenhuma borda no mapa do aplicativo, o modelo de aprendizado de máquina não encontrou incidentes potenciais nas dependências do seu aplicativo.

Sugestões de resolução de problemas

Se você estiver tendo problemas para fazer com que o mapa do aplicativo funcione conforme o esperado, revise as sugestões nas seções a seguir.

Eis algumas recomendações gerais:

  • Use um SDK oficialmente suportado. SDKs sem suporte ou da comunidade podem não oferecer suporte à correlação. Para obter uma lista de SDKs suportados, consulte Application Insights: idiomas, plataformas e integrações.

  • Atualize todos os componentes para a versão mais recente do SDK.

  • Ofereça suporte ao Azure Functions com C# atualizando para o Azure Functions V2.

  • Verifique se o nome da função de nuvem está configurado corretamente.

  • Confirme se todas as dependências ausentes estão listadas como dependências coletadas automaticamente. Se uma dependência não estiver listada, você poderá rastreá-la manualmente com uma chamada de dependência de rastreamento.

Muitos nós no mapa

O mapa do aplicativo adiciona um nó de componente para cada nome de função de nuvem exclusivo em sua telemetria de solicitação. O processo também adiciona um nó de dependência para cada combinação exclusiva de tipo, destino e nome de função na nuvem.

  • Se você tiver mais de 10.000 nós em sua telemetria, o mapa do aplicativo não poderá buscar todos os nós e links. Nesse cenário, sua estrutura de mapa está incompleta. Se esse cenário ocorrer, uma mensagem de aviso será exibida quando você exibir o mapa.

  • O mapa do aplicativo pode renderizar um máximo de 1.000 nós não agrupados separados de uma só vez. O mapa do aplicativo reduz a complexidade visual agrupando dependências quando elas têm o mesmo tipo e chamadores.

  • Se sua telemetria tiver muitos nomes de função de nuvem exclusivos ou muitos tipos de dependência, o agrupamento será insuficiente e o mapa não será renderizado.

Para corrigir esse problema, você precisa alterar sua instrumentação para definir corretamente o nome da função de nuvem, o tipo de dependência e os campos de destino de dependência. Confirme que a sua candidatura cumpre os seguintes critérios:

  • Cada destino de dependência representa o nome lógico de uma dependência. Em muitos casos, esse valor é equivalente ao nome do servidor ou recurso da dependência. Por exemplo, se houver dependências HTTP, o valor será o nome do host. O valor não deve conter IDs ou parâmetros exclusivos que mudam de uma solicitação para outra.

  • Cada tipo de dependência representa o tipo lógico de uma dependência. Por exemplo, HTTP, SQL ou Blob do Azure são tipos de dependência típicos. Esse valor não deve conter IDs exclusivos.

  • Cada finalidade de nome de função de nuvem aplica a descrição na seção Definir ou substituir nome de função de nuvem.

Vista inteligente: Borda não realçada

A visualização inteligente pode não destacar uma borda como esperado, mesmo com uma configuração de baixa sensibilidade. Uma dependência pode parecer estar falhando, mas o modelo não indica o problema como um incidente potencial. Aqui estão alguns cenários possíveis:

  • Se a dependência geralmente falhar, o modelo pode considerar a falha um estado padrão para o componente e não destacar a borda. A visão inteligente concentra-se na resolução de problemas em tempo real.

  • Se a dependência tiver um efeito mínimo no desempenho geral do aplicativo, o modo de exibição inteligente poderá ignorar o componente durante a modelagem de aprendizado de máquina.

Se o cenário for exclusivo, você poderá usar a opção Comentários para descrever sua experiência e ajudar a melhorar futuras versões do modelo.

Vista inteligente: Borda realçada

Quando a visualização inteligente destaca uma borda, os insights acionáveis do modelo de aprendizado de máquina devem identificar os problemas significativos que contribuem para a pontuação de alta probabilidade. Tenha em mente que a recomendação não se baseia apenas em falhas, mas em outros indicadores, como latência inesperada em fluxos dominantes.

Vista inteligente: Não carrega

Se o modo de exibição inteligente não carregar, defina o período de tempo configurado para seis dias ou menos.

Vista inteligente: Tempo de carregamento longo

Se o modo de exibição inteligente demorar mais para carregar do que o esperado, evite selecionar a opção Atualizar componentes do mapa. Habilite o modo de exibição inteligente somente para um único recurso do Application Insights.