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:
Use o modelo de resumo de mensagem agendado do Application Insights do Azure Functions no cenário de Monitoramento. Esta função usa SendGrid para enviar o e-mail.
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
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.
Depois que o novo aplicativo Azure Functions terminar a implantação, selecione Acessar o recurso.
Selecionar Nova Função.
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.
Insira um endereço de email de destinatário apropriado para o seu relatório e selecione Criar.
SelecioneConfiguração de>recursos da Plataforma de >Aplicativos de Funções.
Crie três novas configurações de aplicativo com os valores correspondentes apropriados
AI_APP_ID
,AI_APP_KEY
eSendGridAPI
. Selecione Salvar.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.
Selecione Integrar. Em Saídas, selecione SendGrid ($return).
Sob Configuração de Aplicativo Chave SendGridAPI, selecione a configuração de aplicativo SendGridAPI recém-criada.
Executar e testar o aplicativo de funções.
Verificar seu e-mail para confirmar que a mensagem foi enviada ou recebida com êxito.
SendGrip com Azure
Este passos apenas aplicam se você não tiver já uma conta SendGrip configurada.
No portal do Azure, selecione Criar um recurso. Pesquise Entrega de Email do SendGrid e selecione Criar. Preencha as instruções do SendGrid.
Em Contas SendGrid, selecione Gerenciar.
Essa ação abre o site do SendGrid. Selecione Configurações>Chaves API.
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.
Copie toda a chave. Esse valor é o que você precisa nas configurações do aplicativo de funções como o valor para
SendGridAPI
.