Partilhar via


Métricas pré-agregadas e baseadas em log no Application Insights

Nota

A documentação a seguir depende da API clássica do Application Insights. O plano de longo prazo para o Application Insights é coletar dados usando OpenTelemetry. Para obter mais informações, consulte Habilitar o Azure Monitor OpenTelemetry para aplicativos .NET, Node.js, Python e Java.

Este artigo explica a diferença entre métricas "tradicionais" do Application Insights baseadas em logs e métricas pré-agregadas. Ambos os tipos de métricas estão disponíveis para os usuários do Application Insights. Cada um deles traz um valor exclusivo no monitoramento da integridade do aplicativo, diagnósticos e análises. Os desenvolvedores que estão instrumentando aplicativos podem decidir qual tipo de métrica é mais adequado para um cenário específico. As decisões são baseadas no tamanho do aplicativo, no volume esperado de telemetria e nos requisitos de negócios para precisão de métricas e alertas.

Métricas baseadas no registo

No passado, o modelo de dados de telemetria de monitoramento de aplicativos no Application Insights se baseava exclusivamente em alguns tipos predefinidos de eventos, como solicitações, exceções, chamadas de dependência e exibições de página. Os desenvolvedores podem usar o SDK para emitir esses eventos manualmente escrevendo código que invoca explicitamente o SDK. Ou podem contar com a coleta automática de eventos da autoinstrumentação. Em ambos os casos, o back-end do Application Insights armazena todos os eventos coletados como logs. Os painéis do Application Insights no portal do Azure atuam como uma ferramenta analítica e de diagnóstico para visualizar dados baseados em eventos de logs.

Usar logs para reter um conjunto completo de eventos pode trazer grande valor analítico e diagnóstico. Por exemplo, você pode obter uma contagem exata de solicitações para uma URL específica com o número de usuários distintos que fizeram essas chamadas. Ou você pode obter rastreamentos de diagnóstico detalhados, incluindo exceções e chamadas de dependência para qualquer sessão de usuário. Ter esse tipo de informação pode melhorar a visibilidade da integridade e do uso do aplicativo. Também pode reduzir o tempo necessário para diagnosticar problemas com um aplicativo.

Ao mesmo tempo, coletar um conjunto completo de eventos pode ser impraticável ou mesmo impossível para aplicações que geram um grande volume de telemetria. Para situações em que o volume de eventos é muito alto, o Application Insights implementa várias técnicas de redução de volume de telemetria que reduzem o número de eventos coletados e armazenados. Estas técnicas incluem amostragem e filtragem. Infelizmente, reduzir o número de eventos armazenados também diminui a precisão das métricas que, nos bastidores, devem executar agregações de tempo de consulta dos eventos armazenados em logs.

Nota

No Application Insights, as métricas baseadas na agregação em tempo de consulta de eventos e medições armazenados em logs são chamadas de métricas baseadas em log. Essas métricas geralmente têm muitas dimensões das propriedades do evento, o que as torna superiores para análises. A precisão dessas métricas é afetada negativamente pela amostragem e filtragem.

Métricas pré-agregadas

Além das métricas baseadas em log, no final de 2018, a equipe do Application Insights enviou uma visualização pública das métricas armazenadas em um repositório especializado otimizado para séries temporais. As novas métricas não são mais mantidas como eventos individuais com muitas propriedades. Em vez disso, eles são armazenados como séries temporais pré-agregadas e apenas com dimensões-chave. Essa alteração torna as novas métricas superiores no momento da consulta. A recuperação de dados acontece mais rapidamente e requer menos poder de computação. Como resultado, novos cenários são habilitados, como alertas quase em tempo real sobre dimensões de métricas e painéis mais responsivos.

Importante

Métricas baseadas em log e pré-agregadas coexistem no Application Insights. Para diferenciar os dois, na experiência do usuário do Application Insights, as métricas pré-agregadas agora são chamadas de métricas padrão. As métricas tradicionais dos eventos foram renomeadas para métricas baseadas em log.

Os SDKs mais recentes (SDK do Application Insights 2.7 ou posterior para .NET) pré-agregam métricas durante a coleta. Esse processo se aplica a métricas padrão enviadas por padrão, portanto, a precisão não é afetada pela amostragem ou filtragem. Ele também se aplica a métricas personalizadas enviadas usando GetMetric, o que resulta em menos ingestão de dados e menor custo.

Para os SDKs que não implementam a pré-agregação (ou seja, versões mais antigas dos SDKs do Application Insights ou para instrumentação do navegador), o back-end do Application Insights ainda preenche as novas métricas agregando os eventos recebidos pelo ponto de extremidade de coleta de eventos do Application Insights. Embora você não se beneficie do volume reduzido de dados transmitidos por fio, ainda pode usar as métricas pré-agregadas e experimentar um melhor desempenho e suporte ao alerta dimensional quase em tempo real com SDKs que não pré-agregam métricas durante a coleta.

O ponto de extremidade de coleta pré-agrega eventos antes da amostragem de ingestão. Por esse motivo, a amostragem de ingestão nunca afeta a precisão das métricas pré-agregadas, independentemente da versão do SDK que você usa com seu aplicativo.

Tabela de métricas pré-agregadas suportadas pelo SDK

SDKs de produção atuais Métricas padrão (pré-agregação SDK) Métricas personalizadas (sem pré-agregação SDK) Métricas personalizadas (com pré-agregação SDK)
.NET Core e .NET Framework Suportado (v2.13.1+) Suportado via TrackMetric Suportado (v2.7.2+) via GetMetric
Java Não suportado Suportado via TrackMetric Não suportado
Node.js Suportado (v2.0.0+) Suportado via TrackMetric Não suportado
Python Não suportado Suportado Parcialmente suportado via OpenCensus.stats

Nota

A implementação de métricas para Python usando OpenCensus.stats é diferente de GetMetric. Para obter mais informações, consulte a documentação do Python sobre métricas.

Tabela de métricas pré-agregadas suportadas sem código

SDKs de produção atuais Métricas padrão (pré-agregação SDK) Métricas personalizadas (sem pré-agregação SDK) Métricas personalizadas (com pré-agregação SDK)
ASP.NET Suportado 1 Não suportado Não suportado
ASP.NET Core Suportado 2 Não suportado Não suportado
Java Não suportado Não suportado Suportado
Node.js Não suportado Não suportado Não suportado
  1. ASP.NET autoinstrumentação em máquinas virtuais/conjuntos de dimensionamento de máquinas virtuais e no local emite métricas padrão sem dimensões. O mesmo é verdadeiro para o Serviço de Aplicativo do Azure, mas o nível de coleta deve ser definido como recomendado. O SDK é necessário para todas as dimensões.
  2. ASP.NET autoinstrumentação principal no Serviço de Aplicativo emite métricas padrão sem dimensões. O SDK é necessário para todas as dimensões.

Use a pré-agregação com métricas personalizadas do Application Insights

Você pode usar a pré-agregação com métricas personalizadas. Os dois principais benefícios são:

  • Configurar e alertar sobre uma dimensão de uma métrica personalizada
  • Reduzir o volume de dados enviados do SDK para o ponto de extremidade de coleta do Application Insights

Há várias maneiras de enviar métricas personalizadas do SDK do Application Insights. Se sua versão do SDK oferece GetMetric e TrackValue, esses métodos são a maneira preferida de enviar métricas personalizadas. Nesse caso, a pré-agregação acontece dentro do SDK. Essa abordagem reduz o volume de dados armazenados no Azure e também o volume de dados transmitidos do SDK para o Application Insights. Caso contrário, use o método trackMetric, que pré-agrega eventos métricos durante a ingestão de dados.

Métricas personalizadas, dimensões e pré-agregação

Todas as métricas enviadas usando OpenTelemetry, trackMetric ou chamadas de API GetMetric e TrackValue são armazenadas automaticamente em logs e repositórios de métricas. Essas métricas podem ser encontradas na tabela customMetrics no Application Insights e no Metrics Explorer no namespace de métricas personalizadas chamado "azure.applicationinsights". Embora a versão baseada em log da métrica personalizada sempre mantenha todas as dimensões, a versão pré-agregada da métrica é armazenada por padrão sem dimensões. A retenção de dimensões de métricas personalizadas é um recurso de visualização que pode ser ativado na guia Uso e custo estimado selecionando Com dimensões em Enviar métricas personalizadas para o Azure Metric Store.

Captura de ecrã que mostra a utilização e os custos estimados.

Quotas

As métricas pré-agregadas são armazenadas como séries temporais no Azure Monitor. Aplicam-se cotas do Azure Monitor em métricas personalizadas .

Nota

Ultrapassar a quota pode ter consequências indesejadas. O Azure Monitor pode tornar-se pouco fiável na sua subscrição ou região. Para saber como evitar exceder a cota, consulte Limitações e considerações de design.

Por que a coleta de dimensões de métricas personalizadas está desativada por padrão?

A coleção de dimensões de métricas personalizadas é desativada por padrão porque, no futuro, o armazenamento de métricas personalizadas com dimensões será cobrado separadamente do Application Insights. O armazenamento das métricas personalizadas não dimensionais permanece gratuito (até uma cota). Você pode saber mais sobre as próximas mudanças no modelo de preços em nossa página oficial de preços.

Crie gráficos e explore métricas pré-agregadas padrão e baseadas em log

Use o explorador de métricas do Azure Monitor para plotar gráficos de métricas pré-agregadas e baseadas em log e para criar painéis com gráficos. Depois de selecionar o recurso do Application Insights desejado, use o seletor de namespace para alternar entre métricas padrão e baseadas em log. Você também pode selecionar um namespace de métrica personalizada.

Captura de tela que mostra o namespace Metric .

Modelos de preços para métricas do Application Insights

A ingestão de métricas no Application Insights, seja baseada em log ou pré-agregada, gera custos com base no tamanho dos dados ingeridos. Para obter mais informações, consulte Detalhes de preços dos Logs do Azure Monitor. Suas métricas personalizadas, incluindo todas as suas dimensões, são sempre armazenadas no repositório de logs do Application Insights. Além disso, uma versão pré-agregada de suas métricas personalizadas sem dimensões é encaminhada para o repositório de métricas por padrão.

Selecionar a opção Ativar alertas em dimensões métricas personalizadas para armazenar todas as dimensões das métricas pré-agregadas no repositório de métricas pode gerar custos extras com base nos preços das métricas personalizadas.

Próximos passos