Mapa do aplicativo: aplicativos distribuídos por triagem
Os desenvolvedores usam mapas de aplicativos para representar a estrutura lógica de seus aplicativos distribuídos. Um mapa é produzido identificando os componentes individuais do aplicativo com a propriedade roleName
ou name
na telemetria registrada. Círculos (ou nós) no mapa representam os componentes e linhas direcionais (conectores ou bordas) indicam as chamadas HTTP de nós de origem para nós de destino.
O Azure Monitor disponibiliza o recurso Mapa do aplicativo para ajudar você a implementar rapidamente um mapa e localizar gargalos de desempenho ou ponto de acesso com falha em todos os componentes. Cada nó do mapa é um componente do aplicativo ou suas dependências, e oferece indicadores chave de desempenho (KPIs) de integridade e status de alertas. Você pode selecionar qualquer nó para ver diagnósticos detalhados do componente, como eventos do Application Insights. Se seu aplicativo usar os serviços do Azure, você também poderá selecionar o diagnóstico do Azure, como nas recomendações do Assistente do Banco de Dados SQL.
O Mapa do aplicativo também apresenta uma Exibição Inteligente para ajudar nas investigações rápidas de integridade do serviço.
Entender os componentes
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.
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, à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 recursos separados do Application Insights, mesmo que as assinaturas sejam diferentes. Eles também podem ser funções diferentes que relatam para um único recurso do Application Insights. A experiência do mapa de visualização mostra os componentes independentemente de como eles estão configurados.
Explorar o Mapa do aplicativo
O Mapa do aplicativo possibilita que você veja a topologia do aplicativo completa, abrangendo vários níveis de componentes de aplicativos relacionados. Como mencionado 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 os componentes seguindo qualquer chamada de dependência HTTP feita entre os 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. Ao carregar o Mapa de aplicativos pela primeira vez, dispara-se um conjunto de consultas 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:
As seções seguintes descrevem algumas das ações disponíveis para trabalhar com o Mapa do aplicativo no portal Azure.
Atualizar componentes do mapa
A opção Atualizar componentes do mapa dispara a descoberta de componentes e atualiza o mapa para exibir todos os nós atuais. Dependendo da complexidade do aplicativo, a atualização pode demorar um pouco para carregar:
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. O carregamento inicial nesse cenário de aplicativo descobre todos os componentes.
Exibir detalhes de componentes
Um dos principais objetivos da experiência com o Mapa de aplicativos é facilitar a visualização de topologias complexas que possuem centenas de componentes. Nesse contexto, é bastante útil aprimorar a exibição do mapa com detalhes de um nó específico através da opção Exibir detalhes. O painel de detalhes do nó mostra insights relacionados, desempenho e a experiência de triagem de falhas para o componente selecionado:
Cada seção do painel incluir uma opção para expandir a exibição e obter mais informações, incluindo falhas, desempenho e detalhes sobre dependências e requisições com falha.
Investigar falhas
No painel de detalhes do nó, a opção Investigar falhas permite visualizar todas as falhas do componente:
A exibição de Falhas possibilita que você explore os dados de falhas em operações, dependências, exceções e funções relacionadas ao 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:
A exibição de Desempenho permite explorar os dados de telemetria de operações, dependências e funções associadas ao componente selecionado:
Acessar detalhes e rastreamento de pilha
A opção Acessar detalhes no painel de detalhes do nó apresenta a experiência de transação de ponta a ponta do componente. Este painel permite a exibição de detalhes no nível da pilha de chamadas:
A página se abre para mostrar a exibição de Linha do tempo dos detalhes:
Você pode usar a opção Exibir tudo opções para ver os detalhes da pilha com informações de rastreamentos e eventos relacionados ao componente:
Exibir nos Logs (Análise)
No painel de detalhes do nó, você pode consultar e investigar mais a fundo os dados dos aplicativos com a opção Exibir nos Logs (Analytics):
A página Logs (Analytics) disponibiliza opções para explorar os registros das tabelas de telemetria do aplicativo com consultas e funções pré-definidas ou personalizadas. Você pode trabalhar com os dados ajustando o formato, além de salvar e exportar sua análise:
Exibir alertas e regras
A opção Exibir alertas no painel de detalhes do nó permite que você veja alertas ativos:
A página Alertas exibe alertas críticos e disparados:
A opção Regras de alerta na tela Alertas exibe as regras subjacentes que disparam os alertas:
Entender os nomes de funções na nuvem e nós
O Mapa do aplicativo usa a propriedade nome de função na nuvem para identificar os componentes do aplicativo no mapa. Para explorar como os nomes de funções na nuvem são aplicados aos nós dos componentes, observe um mapa de aplicativo que apresenta vários nomes de funções na nuvem.
O exemplo a seguir ilustra um mapa na Exibição hierárquica com cinco nós de componentes e conectores para nove nós dependentes. Cada nó possui um nome de função na nuvem.
O Mapa do aplicativo usa cores, realces e tamanhos distintos para os nós a fim de representar os dados e as relações entre os componentes do aplicativo:
Os nomes de funções na nuvem expressam os diferentes aspectos do aplicativo distribuído. Neste exemplo, algumas funções de aplicativo incluem
Contoso Retail Check
,Fabrikam-App
,fabrikam-loadfunc
,retailfabrikam-37ha6
eretailapp
.O círculo azul pontilhado em torno de um nó indica o último componente que foi selecionado. Neste caso, o último componente selecionado é o nó
Web
.Ao selecionar um nó para visualizar os detalhes, um círculo azul sólido ressalta o nó. No exemplo, o nó selecionado no momento é
Contoso Retail Reports
.Nós de componentes distantes ou não relacionados são exibidos em tamanho reduzido em comparação aos demais nós. Esses itens são esmaecidos na exibição para destacar o desempenho do componente que está selecionado no momento.
Neste exemplo, cada nome de função na nuvem também representa um recurso diferente e exclusivo do Application Insights com as próprias chaves de instrumentação. Como o proprietário desse aplicativo tem acesso a cada um desses quatro recursos diferentes do Application Insights, o Mapa do aplicativo consegue reunir um mapa das relações subjacentes.
Investigar instâncias de função na nuvem
Quando um nome de função na nuvem revela um problema em alguma parte do front-end web e você está executando vários servidores com balanceamento de carga nesse mesmo front-end, o uso de uma instância de função na nuvem pode ser útil. O Mapa do aplicativo permite que você visualize informações mais aprofundadas sobre um nó de componente por meio de consultas Kusto. Você pode investigar um nó para ver detalhes sobre instâncias de função na nuvem específicas. Essa abordagem ajuda a identificar se um problema está afetando todos os servidores do front-end web ou apenas instâncias específicas.
Um exemplo de situação em que talvez você queira substituir o valor de uma instância de função na nuvem é quando seu aplicativo está operando em um ambiente conteinerizado. Neste caso, talvez as informações sobre o servidor individual não sejam suficientes para localizar o problema específico.
Para obter mais informações sobre como substituir a propriedade de nome da função de nuvem com inicializadores de telemetria, confira Adicionar propriedades: ITelemetryInitializer.
Definir nomes de funções na nuvem
O mapa do aplicativo usa a propriedade nome de função na nuvem para identificar os componentes no mapa. Essa seção oferece exemplos de como definir ou substituir manualmente os nomes de funções na nuvem e alterar o que é exibido no mapa do aplicativo.
Observação
O Agente ou SDK 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 na nuvem e a instância de função na 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:
Gravar 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";
}
}
}
}
Aplicativos ASP.NET: inicializador de carga 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 aplicativos Web do ASP.NET é criar uma instância do 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());
}
Observação
Adicionar um inicializador usando a propriedade ApplicationInsights.config
ou TelemetryConfiguration.Active
não é válido para aplicativos do ASP.NET Core.
Aplicativos do ASP.NET Core: carregar um inicializador para TelemetryConfiguration
Para aplicativos do ASP.NET Core, para adicionar uma nova instância TelemetryInitializer
, adicione-a ao contêiner de Injeção de Dependência. O exemplo a seguir mostra essa abordagem. Adicione esse código ao método ConfigureServices
da classe Startup.cs
.
using Microsoft.ApplicationInsights.Extensibility;
using CustomInitializer.Telemetry;
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
}
Usar filtros do Mapa do aplicativo
Os filtros do Mapa do aplicativo são úteis para reduzir o número de nós e bordas visíveis no seu mapa. Esses filtros podem ser usados para reduzir o escopo do mapa e exibir uma visão mais enxuta e focada.
Para filtrar rapidamente, você pode usar a opção Filtrar neste nó no menu de contexto de qualquer nó no mapa:
Você também pode criar um filtro com a opção Adicionar filtro:
Selecione o tipo de filtro (nó ou conector) e as configurações desejadas, revise suas escolhas 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 demais. Você configura parâmetros para pesquisar as propriedades de nós no mapa que atendam uma condição específica. Quando um filtro de nó remove um nó, ele também elimina todos os conectores e bordas associados a esse nó.
Um filtro de nó possui três parâmetros para configurar:
Nós incluídos: os tipos de nós a serem analisados no mapa do aplicativo em busca de propriedades correspondentes. Existem quatro opções:
Nós, origens e destinos: todos os nós que atendem aos critérios de busca são incluídos no mapa de resultados. Todos os nós de origem e de destino associados aos nós correspondentes também são automaticamente incluídos no mapa de resultados, mesmo que as origens ou destinos não atendam aos critérios de pesquisa. Os nós de origem e destino são coletivamente chamados de nós conectados.
Nós e origens: mesmo comportamento dos 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: mesmo comportamento dos 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 busca.
Operador: tipo de teste condicional a ser aplicado nos valores de propriedade de cada nó. Existem quatro opções:
contains
: O valor da propriedade do nó contém o valor especificado no parâmetro Valor de pesquisa.!contains
: O valor da propriedade do nó não contém o valor especificado no parâmetro Valor de pesquisa.==
: O valor da propriedade do nó é igual ao valor especificado no parâmetro Valor de pesquisa.!=
: O valor da propriedade do nó não é igual ao valor especificado no parâmetro Valor de pesquisa.
aValor da pesquisa: a cadeia de caracteres de texto utilizada para o teste condicional do valor da propriedade. A lista de seleção do parâmetro mostra valores para nós existentes no mapa do aplicativo. Você pode escolher um valor na lista ou criar seu próprio valor. Insira seu valor personalizado no campo do parâmetro e selecione Criar opção ... na lista. Por exemplo, você pode inserir
test
e depois selecionar Criar opção "teste" na lista.
A imagem a seguir mostra um exemplo de um filtro aplicado a um mapa de aplicativos que mostra de 30 dias de dados. O filtro orienta o Mapa do aplicativo a pesquisar por nós e destinos conectados que possuam propriedades que contenham o texto "retailapp":
Os nós correspondentes e seus destinos conectados são incluídos no mapa de resultados:
Criar filtros de conector (borda)
Os filtros de conector permitem que você visualize apenas nós específicos com determinados conectores no mapa do aplicativo, ocultando todos os outros nós e conectores. Você configura parâmetros para pesquisar as propriedades de conectores no mapa que atendam uma condição específica. Quando um nó não possui conectores correspondentes, o filtro o elimina do mapa.
Um filtro de conector possui três parâmetros para configurar:
Filtrar conectores por: os tipos de conectores a serem analisados no mapa do aplicativo em busca de propriedades correspondentes. Existem quatro opções disponíveis. Sua seleção controla as opções disponíveis para os outros dois parâmetros.
Operador: o tipo de teste condicional a ser aplicado no valor de cada conector.
Valor: o valor de comparação usado no teste condicional do valor da propriedade. A lista de seleção do parâmetro contém valores relevantes para o mapa do aplicativo atual. Você pode escolher um valor na lista ou criar seu próprio valor. Por exemplo, você pode inserir
16
e depois selecionar Criar opção "16" na lista.
A tabela a seguir resume as opções de configuração com base na sua escolha para o parâmetro Filtrar conectores por.
Filtrar conectores por | Descrição | Parâmetro Operador | Parâmetro Valor | Uso |
---|---|---|---|---|
Conector de erro (destacado em vermelho) | Pesquisar conectores pela cor. A cor vermelha indica que o conector está em estado de erro. | == : igual a != : diferente de |
Sempre definido como Erros | Mostrar apenas conectores com erros ou apenas conectores sem erros. |
Taxa de Erros (0% a 100%) | Pesquisar conectores pela taxa média de erro (número de chamadas com falha dividido pelo número total de chamadas). O valor é mostrado em porcentagem. | >= maior que ou igual a <= menor que ou igual a |
A lista de seleção mostra as taxas de erro médias relacionadas aos conectores atuais no mapa do aplicativo. Escolha um valor da lista ou insira um valor personalizado seguindo o processo descrito anteriormente. | Mostrar conectores com taxas de falha maiores ou menores que o valor selecionado. |
Duração média da chamada (ms) | Pesquisar conectores pela duração média de todas as chamadas feitas através do conector. O valor é medido em milissegundos. | >= maior que ou igual a <= menor que ou igual a |
A lista de seleção mostra as durações médias relacionadas aos conectores atuais no mapa do aplicativo. Por exemplo, um valor de 1000 indica chamadas com duração média de 1 segundo. Escolha um valor da lista ou insira um valor personalizado seguindo o processo descrito anteriormente. |
Mostrar conectores com taxas de durações médias de chamadas maiores ou menores que o valor selecionado. |
Número de chamadas | Pesquisar conectores pelo número total de chamadas feitas através do conector. | >= maior que ou igual a <= menor que ou igual a |
A lista de seleção mostra o número total de chamadas relacionadas aos conectores atuais no mapa do aplicativo. Escolha um valor da lista ou insira um valor personalizado seguindo o processo descrito anteriormente. | Mostrar conectores com número de chamadas maiores ou menores que o valor selecionado. |
Indicadores de percentil para valor
Quando você filtra conectores pela Taxa de erro, Duração média da chamada ou Número de chamadas, algumas opções para o parâmetro Valor incluem a designação (Pxx)
. Este indicador representa o nível de percentil. Para um filtro de Duração média da chamada, você pode encontrar o valor 200 (P90)
. Essa opção indica que 90% de todos os conectores (independentemente do número de chamadas que representam) têm menos de 200 ms de duração da chamada.
Você pode visualizar as opções de Valor que contêm o nível de percentil inserindo P
no campo do parâmetro.
Revisar os filtros
Depois de fazer suas seleções, a seção Revisão do pop-up Adicionar filtro apresenta descrições textuais e visuais sobre seu filtro. O resumo ajuda a compreender a aplicação do seu filtro no mapa do aplicativo.
O exemplo a seguir mostra o resumo da Revisão de um filtro de nó que pesquisa nós e destinos com propriedades que contêm o texto "-west":
Este exemplo mostra o resumo de um filtro de conector que pequisa conectores (e os nós que eles conectam) com uma duração média de chamada igual ou superior a 42 ms:
Aplicar filtros ao mapa
Depois de configurar e revisar as definições do seu filtro, selecione Aplicar para criar o filtro. Você pode aplicar vários filtros ao mesmo mapa do aplicativo. No Mapa de Aplicativos, os filtros aplicados aparecem como pílulas acima do mapa:
A ação Remover em uma pílula de filtro permite deletar um filtro. Quando você exclui um filtro aplicado, a exibição do mapa é atualizada para remover a lógica do filtro.
O Mapa do aplicativo aplica a lógica dos filtros ao mapa de forma sequencial, começando pelo filtro mais à esquerda na lista. À medida que os filtros são aplicados, nós e conectores são removidos da exibição do mapa. Depois que um nó ou conector é removido do modo de exibição, não é possível que um filtro subsequente restaure o item.
Você pode alterar a configuração de um filtro aplicado selecionando a pílula do filtro. Conforme você modifica as configurações do filtro, o Mapa do aplicativo mostra uma prévia da exibição do mapa com a nova lógica para o filtro. Se decidir não aplicar as mudanças, pode usar a opção Cancelar para manter a exibição e os filtros atuais do mapa.
Explorar e salvar filtros
Quando você descobre um filtro interessante, é possível salvar o filtro para reutilizá-lo mais tarde com a opção Copiar Link ou Fixar no painel:
A opção Copiar link codifica todas as configurações de filtro atuais na URL copiada. Você pode salvar esse link nos favoritos do navegador ou compartilhá-lo com outras pessoas. Esta funcionalidade preserva o valor de duração nas configurações do filtro, mas não o tempo absoluto. Quando você usar o link mais tarde, o mapa do aplicativo gerado pode ser diferente do mapa que estava 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 para identificar nós com erros em suas chamadas HTTP.
As seções a seguir descrevem alguns filtros comuns que se aplicam à maioria dos mapas e que podem ser úteis para fixar em um painel.
Verificar erros importantes
Produza uma exibição de mapa que mostre somente de conectores com erros (destacados em vermelho) nas últimas 24 horas. Os filtros incluem o parâmetro Conector de erro combinado com a Exibição Inteligente:
A funcionalidade Exibição Inteligente é descrita mais adiante neste artigo.
Ocultar conectores de baixo tráfego
Oculte conectores de baixo tráfego sem erros da exibição do mapa, para que você possa focar rapidamente em questões mais importantes. Os filtros incluem conectores das últimas 24 horas com um Número de Chamadas maior que 2872 (P20):
Mostrar conectores de alto tráfego
Revele conectores de alto tráfego que também têm um alto tempo médio de duração de chamada. Esse filtro pode ajudar a identificar possíveis problemas de desempenho. Os filtros neste exemplo incluem conectores das últimas 24 horas com um Número de Chamadas maior que 10854 (P50) e um tempo de Duração Média da Chamada maior que 578 (P80):
Localizar componentes pelo nome
Localize componentes (nós e conectores) em seu aplicativo pelo nome, de acordo com a convenção de nomenclatura da propriedade roleName
do componente que você implementou. Você pode usar essa abordagem para visualizar uma parte específica de um aplicativo distribuído. O filtro pesquisa por Nós, Origens e Destinos nas últimas 24 horas que contenham o valor especificado. Neste exemplo, o valor de pesquisa é "west":
Remover componentes com ruídos
Defina filtros para esconder componentes com ruídos, 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 exibição do mapa. Neste exemplo, o filtro pesquisa por Nós, Origens e Destinos nas últimas 24 horas que não contêm o valor especificado "retail":
Procurar conectores suscetíveis a erros
Mostre apenas conectores que apresentam taxas de erro superiores a um valor específico. O filtro neste exemplo procura por conectores das últimas 24 horas com uma Taxa de erro superior a 3%:
Explorar a Exibição Inteligente
A funcionalidade Exibição Inteligente do Mapa do aplicativo foi criada para auxiliar nas investigações de integridade do serviço. Ela aplica o aprendizado de máquina para identificar rapidamente possíveis causas raiz de problemas, filtrando o ruído. O modelo de machine learning aprende com o comportamento histórico do Mapa do aplicativo a identificar anomalias e padrões dominantes que indicam as possíveis causas de um incidente.
Em aplicativos distribuídos grandes, há sempre algum grau de ruído proveniente de falhas "benignas", o que pode causar algum ruído no Mapa do aplicativo, na forma de muitas bordas vermelhas. A Exibição Inteligente mostra apenas as causas mais prováveis de falha de serviço e remove as bordas vermelhas de nó para nó (comunicação serviço a serviço) em serviços íntegros. A Exibição Inteligente destaca as bordas em vermelho que devem ser investigadas. Ela também oferece insights acionáveis para a borda realçada.
Existem vários benefícios em usar a Exibição Inteligente:
- Reduz o tempo de resolução realçando apenas falhas que precisam ser investigadas.
- Fornece insights acionáveis sobre por que uma determinada borda vermelha foi realçada.
- Permite que o Mapa do aplicativo seja usado diretamente para aplicativos distribuídos grandes (focando apenas em bordas marcadas em vermelho)
A Exibição Inteligente tem algumas limitações:
- Aplicativos distribuídos de grande escala podem demorar um pouco para carregar.
- Há suporte para períodos de até sete dias.
Trabalhar com a Exibição Inteligente
Um botão de alternância que está acima do mapa do aplicativo permite habilitar a Exibição Inteligente e controlar a sensibilidade na detecção de problemas:
A Exibição Inteligente utiliza o modelo de machine learning AIOps patenteado para destacar (em vermelho) os dados significativos e importantes no mapa de aplicativos. Diversos dados do aplicativo são utilizados para determinar quais dados destacar no mapa, incluindo taxas de falha, número de solicitações, durações, anomalias e tipo de dependência. Para comparar, a exibição padrão do mapa 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 alcançar o nível de confiança desejado nas bordas destacas.
Confidencialidade | Descrição |
---|---|
Alto | Menos bordas são destacadas. |
Médio | (Configuração padrão) Um número equilibrado de bordas é destacado. |
Baixa | Mais bordas são realçadas. |
Verificar insights acionáveis
Depois de habilitar a Exibição Inteligente, selecione uma borda destacada (vermelha) no mapa para visualizar os "insights acionáveis" do componente. Os insights são exibidos em um painel à direita e explicam o motivo pelo qual a borda está destacada.
Para iniciar a resolução de um problema, clique em Investigar falhas. Você pode analisar as informações sobre o componente no painel de Falhas para determinar se o problema detectado é a causa raiz.
Quando a Exibição Inteligente não destaca nenhuma borda no mapa do aplicativo, o modelo de machine learning não encontrou incidentes potenciais nas dependências do aplicativo.
Dicas de solução de problemas
Se você estiver enfrentando dificuldades para fazer o Mapa do aplicativo funcionar como esperado, revise as sugestões nas seções a seguir.
Aqui estão algumas recomendações gerais:
Use um SDK com suporte oficial. SDKs de comunidade ou sem suporte podem não dar suporte à correlação. Para obter uma lista de SDKs com suporte, confira Application Insights: idiomas, plataformas e integrações.
Atualize todos os componentes para a versão mais recente do SDK.
Atualize o Azure Functions para C# com o Azure Functions V2.
Garanta que o nome da função na nuvem está configurado corretamente.
Confirme se as dependências que estão faltando estão listadas como dependências autocoletadas. Se uma dependência não estiver listada, você pode rastreá-la manualmente com o comando rastrear chamada de dependência.
Excesso de nós no mapa
O Mapa do aplicativo adiciona um nó de componente para cada nome exclusivo de função na nuvem na telemetria da sua solicitação. O processo também adiciona uma nó de dependência para cada combinação única de tipo, destino e nome de função na nuvem.
Se você tiver mais de 10.000 nós na sua telemetria, o Mapa do aplicativo não conseguirá buscar todos os nós e conexões. Nesse cenário, a estrutura do seu mapa estará incompleta. Se isso acontecer, uma mensagem de aviso aparecerá ao exibir o mapa.
O Mapa do aplicativo pode renderizar no máximo 1.000 nós separados e desagrupados de uma só vez. O Mapa do aplicativo reduz a complexidade visual agrupando dependências que têm o mesmo tipo e os mesmos chamadores.
Se a sua telemetria tiver muitos nomes exclusivos de função na nuvem exclusivos ou muitos tipos de dependência, esse agrupamento será insuficiente e o mapa não será renderizado.
Para corrigir isso, você precisa mudar sua instrumentação a fim de definir corretamente os campos de nome de função na nuvem, tipo de dependência e destino de dependência. Confirme se o aplicativo segue 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 do recurso da dependência. Por exemplo, no caso de dependências HTTP, o valor é definido como 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 Azure Blob são tipos de dependência comuns. O valor não deve conter IDs exclusivas.
Cada finalidade do nome de função na nuvem deve seguir a descrição na seção Definir ou substituir o nome de função na nuvem.
Exibição Inteligente: borda não destacada
Talvez a Exibição Inteligente não destaque uma borda conforme o esperado, mesmo com uma configuração de baixa sensibilidade. Pode parecer que uma dependência está com falha, mas o modelo não a identifica como um incidente potencial. Aqui estão alguns cenários possíveis:
Se a dependência falhar com frequência, o modelo pode considerar a falha como um estado normal para o componente e, por isso, não destacar a borda. A Exibição Inteligente é focada na solução de problemas em tempo real.
Se a dependência tiver um impacto mínimo no desempenho geral do aplicativo, a Exibição Inteligente pode não considerar o componente durante a modelagem de aprendizado de máquina.
Se o seu caso for diferente desses, você pode utilizar a opção Comentários para relatar sua experiência e ajudar a aprimorar as versões futuras do modelo.
Exibição Inteligente: borda destacada
Quando a exibição inteligente destaca uma borda, os insights acionáveis fornecidos pelo modelo de machine learning devem identificar os problemas significativos que contribuem para a alta pontuação de probabilidade. É importante ter em mente que a recomendação não se baseia apenas em falhas, mas também em outros indicadores, como latência inesperada em fluxos dominantes.
Exibição Inteligente: não carrega
Se o Modo de exibição Inteligente não for carregado, defina o período configurado como seis dias ou menos.
Exibição Inteligente: Tempo de carregamento longo
Se a Exibição Inteligente demorar mais do que o esperado para carregar, evite selecionar a opção Atualizar componentes do mapa. Habilite a Exibição Inteligente somente para um único recurso do Application Insights.
Conteúdo relacionado
Saiba como a correlação funciona no Application Insights com a Correlação de telemetria.
Explore a experiência de diagnóstico de transação de ponta a ponta correlaciona a telemetria no servidor de todos os seus componentes monitorados do Application Insights em uma única exibição.
Dê suporte a cenários avançados de correlação em ASP.NET Core e ASP.NET com a opção Rastrear operações personalizadas.