Azure Application Insights - Live Metrics Stream Sample Telemetry

Azure Application Insights - Live Metrics Stream Sample Telemetry

Ola PessoALL,

Um dos melhores recursos do Azure Application Insights é o [Live Metrics Stream](https://docs.microsoft.com/pt-br/azure/azure-monitor/app/live-stream) que nos permite ter uma visão em tempo real dos nossos servidores.
Ha algum tempo o time do Azure decidiu implementar a autenticação obrigatória para a visualização de métricas no Live Stream.

O post de hoje é sobre como habilitar a telemetria novamente, uma vez que o live stream continua funcionando para a maioria dos usuários.

(Opcional) - Habilitar o Application Insights direto no código

Se voce habilitou o application insights direto no portal do azure e não instalou os pacotes na sua aplicação, voce precisará instalar o pacote Microsoft.ApplicationInsights.AspNetCore e habilitar o o serviço no Startup.cs

public void ConfigureServices(IServiceCollection services)
{
	services.AddApplicationInsightsTelemetry();
}

Criar uma chave de autenticação

No application insights temos a possibilidade de gerar uma API KEY para podermos fazer leituras das métricas e outras operações. Para visualizarmos os logs novamente precisaremos de uma chave que tenha suporte para autenticação.

No portal do azure, selecione o Application Insights que deseja criar a chave, depois selecione o menu API Access.

Clique em Create API Key no topo e de um nome para sua chave, a opção mais importante para nosso objetivo é Authenticate SDK Control Channel.

Copie a chave gerada para algum local seguro, uma vez gerada a chave nunca mais é mostrada no portal do Azure, em caso de perda teremos que gerar uma nova chave.

Autenticando o módulo QuickPulseTelemetryModule

Agora que temos nossa chave de autenticação, temos que configurar o módulo QuickPulseTelemetryModule para ler nossa chave e fazer a autenticação.

No meu appsettings.json eu criei uma entrada nova com a minha chave chamada APPLICATIONINSIGHTS_APIKEY, voce pode dar outro nome se quiser.

No método ConfigureServices adicione o seguinte código:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddApplicationInsightsTelemetry();

            services.ConfigureTelemetryModule<QuickPulseTelemetryModule>((module, o) =>
            {
                module.AuthenticationApiKey = Configuration.GetValue("APPLICATIONINSIGHTS_APIKEY", string.Empty);
            });

            services.AddControllers();
        }

All done! Agora basta republicar a aplicação e teremos nossa telemetria ativa novamente no live stream.

Para mais informações sobre o live stream e como personalizar os filtros de exibição, visite a documentação oficial:

Diagnosticar com informações de Aplicativo Azure de Live Metrics Stream
Monitore seu aplicativo Web em tempo real usando métrica personalizada e diagnostique problemas com um feed em tempo real de falhas, rastreamentos e eventos.