Métricas personalizadas no Azure Monitor (versão prévia)

O Azure disponibiliza algumas métricas para você imediatamente. Essas métricas são chamadas de padrão ou de plataforma. As métricas personalizadas são indicadores de desempenho ou métricas específicas da empresa que podem ser coletadas por meio da telemetria do seu aplicativo, do Agente do Azure Monitor, de uma extensão de diagnóstico executada em seus recursos do Azure ou de um sistema de monitoramento externo. Depois que as métricas personalizadas forem publicadas no Azure Monitor, você poderá navegar, consultar e alertar sobre elas ao lado das métricas padrão do Azure.

As métricas personalizadas do Azure Monitor estão atualmente em visualização pública.

Métodos para enviar métricas personalizadas

Métricas personalizadas podem ser enviadas ao Monitor do Azure por vários métodos:

Modelo de preços e retenção

Em geral, não há custo para ingerir métricas padrão (métricas de plataforma) em um repositório de métricas do Azure Monitor, mas as métricas personalizadas incorrem em custos quando entram na disponibilidade geral. As consultas à API de métricas geram custos. Para obter detalhes sobre quando a cobrança será habilitada para métricas personalizadas e consultas de métricas, confira a página de preços do Azure Monitor.

As métricas personalizadas são mantidas durante o mesmo período de tempo que as métricas de plataforma.

Observação

As métricas enviadas para Azure Monitor por meio do SDK do Application Insights são cobradas como dados de log ingeridos. Elas incorrerão em cobranças de métricas adicionais se o recurso Habilitar alertas em dimensões de métricas personalizadas do Application Insights tiver sido selecionado. Essa caixa de seleção envia dados para o banco de dados de métricas do Azure Monitor usando a API de métricas personalizadas para permitir o uso de alertas mais complexos. Saiba mais sobre o modelo de preços do Application Insights e os preços em sua região.

Definições de métricas personalizadas

Cada ponto de dados de métrica publicado contém informações de namespace, nome e dimensão. Na primeira vez que uma métrica personalizada for emitida para o Azure Monitor, uma definição de métrica serpa criada automaticamente. Então, essa nova definição de métrica poderá ser detectada em qualquer recurso em que a métrica é emitida por meio das definições de métrica. Não há necessidade de predefinir uma métrica personalizada no Monitor do Azure antes de ser emitida.

Observação

O Application Insights, a extensão de diagnósticos e o agente InfluxData Telegraf já estão configurados para emitir valores métricos em relação ao ponto final regional correto e transportar todas as propriedades precedentes em cada emissão.

Usando métricas personalizadas

Depois que as métricas personalizadas são enviadas ao Azure Monitor, você pode navegar por elas no portal do Azure e consultá-las por meio das APIs REST do Azure Monitor. Você também pode criar alertas para notificá-lo quando certas condições forem atendidas.

Observação

Você precisa ter uma função de leitor ou colaborador para exibir métricas personalizadas. Confira Leitor de Monitoramento.

Procurar suas métricas personalizadas no portal do Azure

  1. Acesse o portal do Azure.
  2. Selecione o painel Monitor.
  3. Selecione Métricas.
  4. Selecione um recurso em que você emitiu métricas personalizadas.
  5. Selecione o namespace de métricas para sua métrica personalizada.
  6. Selecione a métrica personalizada.

Para obter mais informações sobre como exibir métricas no portal do Azure, consulte Analisar métricas com o Gerenciador de métricas do Azure Monitor.

Latência e retenção de armazenamento

Uma métrica recém-adicionada ou uma dimensão recém-adicionada a uma métrica pode levar até três minutos para aparecer. Depois que os dados estão no sistema, eles devem aparecer em menos de 30 segundos 99% do tempo.

Se você excluir uma métrica ou remover uma dimensão, a alteração poderá levar de uma semana a um mês para ser excluída do sistema.

Cotas e limites

O Monitor do Azure impõe os seguintes limites de uso em métricas personalizadas:

Categoria Limite
Total de séries temporais ativas em uma assinatura por região 50.000
Chaves de dimensão por métrica 10
Tamanho da cadeia de caracteres para namespaces de métrica, nomes de métrica, chaves de dimensão e valores de dimensão 256 caracteres
O comprimento combinado de todos os nomes de métrica personalizados, usando a codificação UTF-8 64 KB

Uma série temporal ativa é definida como qualquer combinação exclusiva de métrica, chave de dimensão ou valor de dimensão que teve valores de métrica publicados nas últimas 12 horas.

Para entender o limite de 50.000 na série temporal, considere a seguinte métrica:

Tempo de resposta do servidor com as dimensões: Região, Departamento, CustomerID

Com essa métrica, se você tiver 10 regiões, 20 departamentos e 100 clientes, você terá 10 x 20 x 100 = 20.000 séries temporais.

Se você tiver 100 regiões, 200 departamentos e 2.000 clientes, isso equivalerá a 100 x 200 x 2.000 = 40 milhões de séries temporais, o que está muito acima do limite apenas para essa métrica.

Novamente, esse limite não é para uma métrica individual. É para a soma de todas essas métricas em uma assinatura e região.

Siga as etapas abaixo para ver o total atual de métricas da série temporal ativa e mais informações para ajudar na solução de problemas.

  1. Navegue até a seção Monitor do portal do Azure.
  2. Selecione Métricas no lado esquerdo.
  3. Em Selecionar um escopo, verifique a assinatura aplicável e os grupos de recursos.
  4. Em Refinar escopo, escolha Uso de Métrica Personalizado e o local desejado.
  5. Selecione o botão Aplicar.
  6. Escolha série temporal ativa, limite de série temporal ativa ou série temporal limitada.

Há um limite de 64 KB no comprimento combinado de todos os nomes de métricas personalizadas, supondo utf-8 ou 1 byte por caractere. Se o limite de 64 KB for excedido, os metadados de métricas adicionais não estarão disponíveis. Os nomes de métrica para métricas personalizadas adicionais não aparecerão no portal do Azure nos campos de seleção e não serão retornados pela API em solicitações de definições de métrica. Os dados de métricas continuarão disponíveis e poderão ser consultados.

Se o limite for excedido, reduza o número de métricas que você está enviando ou reduza o comprimento de seus nomes. Depois disso, levará até dois dias para que os novos nomes de métricas apareçam.

Para evitar atingir o limite, não inclua aspectos variáveis ou dimensionais nos nomes de métrica. Por exemplo, as métricas para uso de CPU do servidor CPU_server_12345678-319d-4a50-b27e-1234567890ab e CPU_server_abcdef01-319d-4a50-b27e-abcdef012345 devem ser definidas como métrica CPU e com uma dimensão Server.

Limitações e considerações de design

Usar o Application Insights para fins de auditoria. O pipeline de telemetria do Application Insights é otimizado para minimizar o impacto no desempenho e limitar o tráfego de rede do monitoramento do seu aplicativo. Como tal, ele limitará ou fará amostragem (usa apenas um percentual de sua telemetria e ignora o restante) se o conjunto de dados inicial se tornar grande demais. Devido a esse comportamento, você não pode usá-lo para fins de auditoria, pois alguns registros provavelmente serão removidos.

Métricas com uma variável no nome. Não use uma variável como parte do nome da métrica. Em vez disso, use uma constante. Sempre que a variável alterar seu valor, o Azure Monitor gera uma nova métrica. O Azure Monitor atinge rapidamente o limite do número de métricas. Em geral, quando desenvolvedores querem incluir uma variável no nome da métrica, eles realmente querem acompanhar várias séries temporais em uma métrica e devem usar dimensões em vez dos nomes de métrica variável.

Dimensões de métrica de alta cardinalidade. As métricas com muitos valores válidos em uma dimensão (uma alta cardinalidade) têm chance muito maior de atingir o limite de 50 mil. Em geral, você nunca deve usar um valor de alteração constante em uma dimensão. O carimbo de data/hora, por exemplo, nunca deve ser uma dimensão. Você poderá usar o servidor, o cliente ou a ID do produto (product ID), mas somente se você tiver um número menor de cada um desses tipos.

Como um teste, pergunte se você em algum momento transformará esses dados em um grafo. Se você tiver dez ou talvez até mesmo 100 servidores, pode ser útil vê-los em um grafo para comparação. Mas se você tivesse 1.000, o grafo resultante provavelmente seria difícil ou impossível de ler. A melhor prática é manter menos de 100 valores válidos. O uso de até 300 é uma área cinza. Se você precisar ultrapassar esse valor, use logs personalizados do Azure Monitor em vez disso.

Se você tiver uma variável no nome ou em uma dimensão de alta cardinalidade, os seguintes problemas podem ocorrer:

  • As métricas tornam-se não confiáveis devido à limitação.
  • O Metrics Explorer não funcionará.
  • Alertas e notificações tornam-se imprevisíveis.
  • Os custos podem aumentar inesperadamente. A Microsoft não está cobrando por métricas personalizadas com dimensões enquanto esse recurso está em visualização pública. Quando as cobranças começarem no futuro, você terá encargos inesperados. O plano é cobrar pelo consumo de métricas com base no número de séries temporais monitoradas e no número de chamadas à API feitas.

Se o nome da métrica ou o valor da dimensão for preenchido com um identificador ou dimensão de alta cardinalidade por engano, você poderá corrigi-lo facilmente removendo a parte da variável.

Mas se a alta cardinalidade for essencial para seu cenário, as métricas agregadas provavelmente não serão a escolha certa. Alternar para usar logs personalizados (ou seja, chamadas à API trackMetric com trackEvent). No entanto, considere que os logs não agregam valores para que cada entrada seja armazenada. Como resultado, se você tiver um grande volume de logs em um pequeno período de tempo (1 milhão por segundo, por exemplo), isso poderá causar atrasos de redução e ingestão.

Próximas etapas

Use métricas personalizadas de vários serviços: