Como coletar logs de autodiagnóstico para SDKs do Application Insights
Ao instrumentar um aplicativo por meio da instrumentação automática do Application Insights ou instrumentação manual com um SDK do Application Insights, você pode encontrar problemas com o próprio SDK do Application Insights. Nesse cenário, os logs de diagnóstico do SDK do Application Insights são necessários para detectar e diagnosticar problemas com o Application Insights.
Este artigo apresenta como coletar logs de autodiagnóstico para os seguintes SDKs do Application Insights:
- Application Insights .NET/.NET Core Framework SDK
- Application Insights Java 2.x
- Application Insights Java 3.x
Application Insights .NET/.NET Core Framework SDK
A partir da versão 2.18.0-beta2 do SDK do Application Insights .NET/.NET Core Framework, o recurso de "autodiagnóstico" é enviado para capturar logs do próprio SDK e gravá-los em um arquivo de log em um diretório especificado.
Configuração de autodiagnóstico
Configure o autodiagnóstico usando um arquivo chamado ApplicationInsightsDiagnostics.json que tem o seguinte conteúdo:
{
"LogDirectory": "<LogDirectory>",
"FileSize": <FileSize>,
"LogLevel": "<LogLevel>"
}
Observação
- O arquivo de configuração para autodiagnóstico deve ter parâmetros válidos para o SDK do Application Insights .NET/.NET Core Framework analisar. Se o arquivo for inválido ou malformado, o SDK o ignorará e o autodiagnóstico não será habilitado. No entanto, isso não afetará o funcionamento normal do aplicativo monitorado.
- Esse arquivo de configuração não deve ter mais de 4 KB (kilobytes). Caso contrário, apenas os primeiros 4 KB de conteúdo serão lidos.
- O SDK do Application Insights .NET/.NET Core Framework tentará ler o arquivo de configuração a cada 10 segundos e criar ou substituir circularmente o arquivo de log.
Aqui estão algumas explicações para os parâmetros de configuração:
Parâmetros de configuração | Descrição |
---|---|
LogDirectory |
O diretório em que o arquivo de log está armazenado. Pode ser um caminho absoluto ou um caminho relativo para o diretório de trabalho atual do aplicativo Web. Esse arquivo de log é nomeado como YearMonthDay-HourMinuteSecond.ExecutableName.ProcessId.log, por exemplo, 20220307-193542.w3wp.exe.7692.log. O nome do arquivo começa com o carimbo de data/hora gerado quando o arquivo é criado. |
FileSize |
Um inteiro positivo que especifica o tamanho do arquivo de log em KB. Esse valor deve estar entre 1 megabyte (MB) e 128 MB (inclusive) ou será arredondado para o limite superior ou inferior mais próximo. O arquivo de log não excederá esse tamanho máximo configurado. |
LogLevel |
O nível dos eventos a serem capturados. Esse valor deve corresponder a um dos campos do EventLevel . Níveis de gravidade mais baixos incluem níveis de gravidade mais altos (por exemplo, Warning inclui os Error níveis e Critical ). |
Autodiagnóstico para um aplicativo Web
Para habilitar o autodiagnóstico, vá para o diretório de trabalho atual do aplicativo Web e crie o arquivo de configuração ApplicationInsightsDiagnostics.json .
Para desativar o autodiagnóstico, exclua o arquivo de configuração. Mesmo enquanto o aplicativo Web está em execução, você pode habilitar ou desabilitar o autodiagnóstico sem a necessidade de reiniciar o aplicativo.
Na maioria dos casos, você pode descartar o arquivo junto com seu aplicativo. Aqui estão duas maneiras de encontrar o diretório de trabalho atual:
No Windows, use o Process Explorer.
Abra o Process Explorer, selecione o processo e abra a caixa de diálogo Propriedades . Encontre o diretório atual em Arquivo de imagem.
Chame os
GetCurrentDirectory
métodos andAppContext.BaseDirectory
para obter o diretório de trabalho atual.
Autodiagnóstico para o Aplicativo Web do Serviço de Aplicativo no Windows
Vá para o Aplicativo Web do Serviço de Aplicativo no portal do Azure.
Vá para a página Kudu selecionando Ferramentas>avançadas Go.
No painel do Kudu, selecione Depurar CMD do console>.
Navegue até o diretório em que está o Aplicativo Web do Serviço de Aplicativo, como D:\home\site\wwwroot.
Use o símbolo "+" na parte superior do painel do Kudu para criar um novo arquivo na pasta wwwroot e nomeie-o como ApplicationInsightsDiagnostics.json.
O arquivo ApplicationInsightsDiagnostics.json precisa ser colocado na <pasta drive>:\home\site\wwwroot . Nem todos os Aplicativos Web do Serviço de Aplicativo residem na mesma unidade. Alguns podem estar na unidade C: e alguns podem estar na unidade D:. Para encontrá-lo, verifique os campos Pasta do site e Pasta temporária na página padrão do Kudu.
Edite e adicione a seguinte configuração ao arquivo ApplicationInsightsDiagnostics.json :
{ "LogDirectory": "<drive>:\home\site\wwwroot", "FileSize": 5120, "LogLevel": "Verbose" }
Observação
O
LogDirectory
parâmetro deve ser definido como um local em <drive>:\home para facilitar o acesso, mas outros locais são válidos se houver acesso suficiente.Salve o arquivo.
Após 10 segundos, um novo arquivo de log, como 20220307-193542.w3wp.exe.7692.log, aparecerá na pasta wwwroot .
Exclua o arquivo de configuração ou renomeie-o para ApplicationInsightsDiagnostics.bak.
Após 10 segundos, o registro será interrompido.
Autodiagnóstico para o Aplicativo Web do Serviço de Aplicativo no Linux
No computador local, crie um arquivo e nomeie-o como ApplicationInsightsDiagnostics.json.
Edite o arquivo e adicione o seguinte conteúdo:
{ "LogDirectory": ".", "FileSize": 5120, "LogLevel": "Verbose" }
Salve o arquivo.
Vá para o Aplicativo Web do Serviço de Aplicativo no portal do Azure.
Vá para a página Kudu selecionando Ferramentas>avançadas Go.
Quando a sessão do navegador for iniciada, adicione
/newui
ao final do URL. O URL no navegador deve ser semelhante ahttps://<appname>.scm.azurewebsites.net/newui
.Pressione Enter. A página do Kudu com a nova interface do usuário será aberta.
No menu à esquerda, selecione Gerenciador de arquivos.
Selecione a pasta Site e, em seguida, selecione a pasta wwwroot .
Arraste e solte o arquivo ApplicationInsightsDiagnostics.json na pasta wwwroot .
Após 10 segundos, um novo arquivo de log aparecerá na pasta wwwroot , por exemplo, 20220307-193542.w3wp.exe.7692.log.
Exclua o arquivo de configuração ou renomeie-o para ApplicationInsightsDiagnostics.bak.
Após 10 segundos, o registro será interrompido.
Application Insights Java 2.x
Você pode coletar logs de diagnóstico para o Application Insights Java 2.6 ou uma versão anterior. Para fazer isso, adicione um <SDKLogger>
elemento no nó raiz do arquivo de configuração ApplicationInsights.xml (na pasta de recursos do seu projeto). <SDKLogger>
No elemento, você pode instruir o agente a gerar uma saída para um arquivo.
Aqui está um exemplo do arquivo ApplicationInsights.xml :
<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
<Level>TRACE</Level>
<UniquePrefix>AI</UniquePrefix>
<BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>
Para obter mais informações, consulte Solucionar problemas do Azure Application Insights em um projeto Web Java.
Application Insights Java 3.x
Você pode coletar logs de diagnóstico para o Application Insights Java 3.x usando a funcionalidade de "autodiagnóstico". Para fazer isso, consulte Autodiagnóstico.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.