Skip to main content

Definições

Tipos de métricas

Para o prometheus ainda não existe diferença entre os tipos de métricas. Ele converte todas as métricas para série temporal.

  • Counter
    • Um contador é uma métrica cumulativa que representa um único contador de aumento monotônico cujo valor só pode aumentar ou ser redefinido para zero na reinicialização.
  • Gauge
    • Um medidor é uma métrica que representa um único valor numérico que pode subir e descer arbitrariamente.
  • Histogram
    • Um histograma mostra observações (geralmente coisas como durações de solicitação ou tamanhos de resposta) e as conta em baldes configuráveis. Ele também fornece uma soma de todos os valores observados.
  • Summary
    • Semelhante a um histograma , um resumo mostra observações (geralmente coisas como durações de solicitação e tamanhos de resposta). Embora também forneça uma contagem total de observações e uma soma de todos os valores observados, ele calcula quantis configuráveis ​​em uma janela de tempo variável.

Modelo de dados

Cada série temporal é identificada exclusivamente por seu nome de métrica e pares de valores-chave opcionais chamados labels. O nome da métrica especifica o recurso geral de um sistema que é medido (por exemplo http_requests_total, o número total de solicitações HTTP recebidas). Pode conter letras e dígitos ASCII, bem como sublinhados e dois-pontos. Deve corresponder ao regex [a-zA-Z_:][a-zA-Z0-9_:]*.

1 - Somente pode ser usado letras maiusculas e minusculas, numeros e undeline(_) 2 - Não se deve iniciar uma metrica com underline, pois elas representam métricas de uso interno do prometheus. 3 - O dois pontos (:) são reservados para regras de gravação definidas pelo usuário. Eles não devem ser usados ​​por exportadores ou instrumentação direta. 4 - Os valores de labels podem conter qualquer caractere Unicode.

Os labels ativam o modelo de dados dimensionais do Prometheus: qualquer combinação de labels para o mesmo nome de métrica identifica uma instanciação dimensional específica dessa métrica (por exemplo: todas as solicitações HTTP que usaram o método POST para o /api/tracksmanipulador). A linguagem de consulta permite filtragem e agregação com base nessas dimensões. Alterar qualquer valor de labels, incluindo adicionar ou remover uma label, criará uma nova série temporal.

Uma label com um valor vazio é considerado não existente.

As amostras formam os dados reais da série temporal. Cada amostra consiste em:

  • um valor float64
  • um carimbo de data/hora com precisão de milissegundos

Dado um nome de métrica e um conjunto de labels, as séries temporais são frequentemente identificadas usando esta notação:

<metric name>{<label name>=<label value>, ...}

Por exemplo, uma série temporal com o nome da métrica api_http_requests_total e as labels method="POST" e handler="/messages"poderia ser escrita assim:

api_http_requests_total{method="POST", handler="/messages"}

Esta é a mesma notação que o OpenTSDB usa.

Jobs vs Instances

Nos termos do Prometheus, um endpoint que você pode fazer o scrape é chamado de instância, geralmente correspondendo a um único processo. Uma coleção de instâncias com o mesmo propósito, um processo replicado para escalabilidade ou confiabilidade, por exemplo, é chamada de job.

Por exemplo, um job de servidor de API com quatro instâncias replicadas:

  • job: api-server
    • instance 1: 1.2.3.4:5670
    • instance 2: 1.2.3.4:5671
    • instance 3: 5.6.7.8:5670
    • instance 4: 5.6.7.8:5671

Quando o Prometheus faz o scrape em um target, ele anexa alguns rótulos automaticamente à série temporal scraped que serve para identificar o target:

  • job: O nome do job configurado que o target pertence.
  • ìnstance: O <host>:<port> da url que foi feita o scrape