Automatizar relatórios personalizados com dados do Application Insights

Relatórios periódicos ajudam a manter uma equipe informada sobre como seus serviços críticos de negócios estão indo. Desenvolvedores, equipes de DevOps/SRE e seus gerentes podem ser produtivos com relatórios automatizados que entregam insights confiáveis sem a necessidade de todas as pessoas fazerem logon no portal. Tais relatórios podem também ajudar a identificar aumentos graduais dos níveis de latência, carregamento ou falha que podem não disparar nenhuma regra de alerta.

Cada empresa tem suas próprias necessidades de relatório, tais como:

  • Agregações percentis específicas de métricas ou métricas personalizadas em um relatório.
  • Diferentes relatórios diariamente, semanalmente e mensalmente para resumos de dados para diferentes públicos.
  • Segmentação por atributos personalizados como região, ou ambiente.
  • Recursos de IA agrupados em um único relatório, mesmo que estejam em diferentes assinaturas ou grupos de recursos.
  • Separar relatórios que contenham métricas confidenciais enviados para públicos confidenciais.
  • Relatórios para stakeholders que talvez não tenham acesso aos recursos do portal.

Observação

O e-mail de resumo semanal do Application Insights não permite qualquer personalização e será descontinuado em favor das opções de personalização listadas aqui. O último e-mail de resumo semanal foi enviado em 11 de junho de 2018. Configure uma das opções a seguir para obter relatórios personalizados semelhantes. Use a consulta sugerida neste artigo.

Automatizar e-mails de relatório personalizados

Você pode consultar programaticamente dados do Application Insights para gerar relatórios personalizados em um agendamento. As seguintes opções podem ajudá-lo a começar rapidamente:

Exemplo de consulta para um e-mail de resumo semanal

A consulta seguinte mostra a junção de vários conjuntos de dados para um e-mail de resumo semanal como um relatório. É possível personalizá-lo conforme necessário e usá-lo com uma das opções listadas anteriormente para automatizar um relatório semanal.

let period=7d;
requests
| where timestamp > ago(period)
| summarize Row = 1, TotalRequests = sum(itemCount), FailedRequests = sum(toint(success == 'False')),
    RequestsDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
| join (
dependencies
| where timestamp > ago(period)
| summarize Row = 1, TotalDependencies = sum(itemCount), FailedDependencies = sum(success == 'False'),
    DependenciesDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
) on Row | join (
pageViews
| where timestamp > ago(period)
| summarize Row = 1, TotalViews = sum(itemCount)
) on Row | join (
exceptions
| where timestamp > ago(period)
| summarize Row = 1, TotalExceptions = sum(itemCount)
) on Row | join (
availabilityResults
| where timestamp > ago(period)
| summarize Row = 1, OverallAvailability = iff(isnan(avg(toint(success))), '------', tostring(toint(avg(toint(success)) * 10000) / 100.0)),
    AvailabilityDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
) on Row
| project TotalRequests, FailedRequests, RequestsDuration, TotalDependencies, FailedDependencies, DependenciesDuration, TotalViews, TotalExceptions, OverallAvailability, AvailabilityDuration

Relatório de resumo agendado de Application Insights

  1. Criar um aplicativo do Azure Functions. O Application Insights Ligado é necessário somente se você quiser monitorar seu novo aplicativo Azure Functions com o Application Insights.

    Consulte a documentação do Azure Functions para saber como criar um aplicativo de funções.

  2. Depois que o novo aplicativo Azure Functions terminar a implantação, selecione Acessar o recurso.

  3. Selecionar Nova Função.

    Captura de tela que mostra Criar uma nova função.

  4. Selecionar o modelo de resumo agendado do Application Insights.

    Observação

    Por padrão, os aplicativos de funções são criados com a versão de runtime 3.x. Você deve direcionar a versão de runtime1.x do Azure Functions para usar o modelo de resumo agendado do Application Insights. Acesse Configuração>Configurações de runtime de função para alterar a versão de runtime. Captura de tela que mostra a guia Configurações de runtime de função.

    Captura de tela que mostra o Novo Modelo do Application Insights de função.

  5. Insira um endereço de email de destinatário apropriado para o seu relatório e selecione Criar.

    Captura de tela que mostra as Configurações de Função.

  6. SelecioneConfiguração de>recursos da Plataforma de >Aplicativos de Funções.

    Captura de tela que mostra as configurações de Aplicativo de Funções do Azure.

  7. Crie três novas configurações de aplicativo com os valores correspondentes apropriados AI_APP_ID, AI_APP_KEY e SendGridAPI. Selecione Salvar.

    Captura de tela que mostra a interface de integração de Funções.

    Você pode encontrar os valores AI_ em Acesso de API para o recurso do Application Insights que deseja relatar. Se você não tiver uma Chave API do Application Insights, use a opção Criar Chave de API.

    • AI_APP_ID = Application ID

    • AI_APP_KEY = API Key

    • SendGridAPI =SendGrid API Key

      Observação

      Se não tiver uma conta SendGrid, você poderá criar uma. Para obter mais informações, consulte Associações do SendGrid do Azure Functions para a documentação do SendGrid para o Azure Functions. Se você quiser uma breve explicação sobre como configurar SendGrid e gerar uma chave de API, ela será fornecida no final deste artigo.

  8. Selecione Integrar. Em Saídas, selecione SendGrid ($return).

    Captura de tela que mostra Saídas.

  9. Sob Configuração de Aplicativo Chave SendGridAPI, selecione a configuração de aplicativo SendGridAPI recém-criada.

    Captura de tela que mostra SendGridAPI.

  10. Executar e testar o aplicativo de funções.

    Captura de tela que mostra Teste.

  11. Verificar seu e-mail para confirmar que a mensagem foi enviada ou recebida com êxito.

    Captura de tela que mostra a linha de assunto do email.

SendGrip com Azure

Este passos apenas aplicam se você não tiver já uma conta SendGrip configurada.

  1. No portal do Azure, selecione Criar um recurso. Pesquise Entrega de Email do SendGrid e selecione Criar. Preencha as instruções do SendGrid.

    Captura de tela que mostra o botão Criar do SendGrid.

  2. Em Contas SendGrid, selecione Gerenciar.

    Captura de tela que mostra o botão Gerenciar.

  3. Essa ação abre o site do SendGrid. Selecione Configurações>Chaves API.

    Captura de tela que mostra as Chaves de API em Configurações.

  4. Para criar uma chave de API, selecione Criar & Exibição. Examine a documentação do SendGrid sobre acesso restrito para determinar que nível de permissões é apropriado para sua chave de API. O Acesso Completo é selecionado aqui apenas como exemplo.

    Captura de tela que mostra Acesso Total.

  5. Copie toda a chave. Esse valor é o que você precisa nas configurações do aplicativo de funções como o valor para SendGridAPI.

    Captura de tela que mostra o painel Chave de API Criada.