View on GitHub

manual-da-engenharia-para-codar

Este é o manual para compromissos de "código com" a engenharia.

Métricas

Visão Geral

As métricas fornecem um fluxo de dados quase em tempo real, informando operadores e partes interessadas sobre as funções que o sistema está executando, bem como sua saúde. Ao contrário do registro e do rastreamento, os dados métricos tendem a ser mais eficientes para transmitir e armazenar.

Métodos de Coleta

As abordagens de coleta de métricas se enquadram em duas categorias amplas: métricas de envio e métricas de busca. Métricas de envio significam que o componente de origem envia os dados para um serviço remoto ou agente. Azure Monitor e statsd do Etsy são exemplos de métricas de envio. Algumas vantagens das métricas de envio incluem:

Algumas compensações com essa abordagem são:

No caso das métricas de busca, cada componente de origem publica um ponto de extremidade para o agente de métricas se conectar e coletar medidas. Prometheus e seu ecossistema de ferramentas são um exemplo de métricas no estilo de busca. Benefícios experimentados usando uma configuração de métricas de busca podem incluir:

Itens de preocupação para alguns podem incluir:

Melhores Práticas

Quando devo usar métricas em vez de logs?

Logs vs Métricas vs Rastreamentos aborda algumas orientações de alto nível sobre quando utilizar dados métricos e quando usar dados de log. Ambos desempenham um papel valioso na criação de sistemas observáveis.

O que deve ser monitorado?

Medições críticas do sistema relacionadas à saúde da aplicação/máquina, que geralmente são excelentes candidatas a alertas. Trabalhe com seus colegas de engenharia e devops para identificar as métricas, mas elas podem incluir:

Medições importantes relacionadas aos negócios, que impulsionam relatórios para partes interessadas. Consulte as várias partes interessadas do componente, mas alguns exemplos podem incluir:

Rótulos de Dimensão

Os sistemas de métricas modernos hoje geralmente definem uma única métrica de série temporal como a combinação do nome da métrica e seu dicionário de rótulos de dimensão. Rótulos são uma excelente maneira de distinguir uma instância de uma métrica de outra, permitindo ainda a agregação e outras operações para análise. Alguns rótulos comuns usados em métricas podem incluir:

Observação: Como os rótulos de dimensão são usados para agregações e operações de agrupamento, não use strings exclusivas ou com alta cardinalidade como o valor de um rótulo. O valor do rótulo é significativamente reduzido para relatórios e, em muitos casos, tem um impacto negativo no desempenho do sistema de métricas usado para rastreá-lo.

Ferramentas Recomendadas