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. Métricas personalizadas são indicadores de desempenho ou métricas específicas de negócios que podem ser coletadas por meio da telemetria do 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 junto às 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:
- Use o SDK do Azure Application Insights para instrumentar o aplicativo enviando a telemetria personalizada ao Azure Monitor.
- Instale o agente do Azure Monitor em sua máquina virtual ou conjunto de dimensionamento de máquinas virtuais do Azure para Windows ou Linux e use uma regra de coleta de dados para enviar contadores de desempenho para as métricas do Azure Monitor.
- Instale a extensão do Diagnóstico do Azure na VM do Azure, no conjunto de dimensionamento de máquinas virtuais, na VM clássica ou no serviço de nuvem clássico. Em seguida, envie contadores de desempenho ao Azure Monitor.
- Instale o agente do InfluxData Telegraf em sua VM Linux do Azure. Envie métricas usando o plug-in de saída do Azure Monitor.
- Envie métricas personalizadas diretamente para a API REST do Azure Monitor.
Modelo de preços e retenção
Em geral, não há nenhum 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 gerarão custos quando entrarem em 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
Para proporcionar uma melhor experiência, as métricas personalizadas enviadas ao Azure Monitor pela API Clássica do Application Insights (SDKs) são sempre armazenadas no Log Analytics e no Repositório de Métricas. O custo para você armazenar essas métricas se baseia apenas no volume ingerido pelo Log Analytics. Não há custo adicional para os dados armazenados no Repositório de Métricas.
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
- Acesse o portal do Azure.
- Selecione o painel Monitor.
- Selecione Métricas.
- Selecione um recurso em que você emitiu métricas personalizadas.
- Selecione o namespace de métricas para sua métrica personalizada.
- 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, isso resultará em 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.
- Navegue até a seção Monitor do portal do Azure.
- Selecione Métricas no lado esquerdo.
- Em Selecionar um escopo, verifique a assinatura aplicável e os grupos de recursos.
- Em Refinar escopo, escolha Uso de Métrica Personalizado e o local desejado.
- Selecione o botão Aplicar.
- 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, considerando 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: