Sobes.tech
Middle

Como configurar os clientes para transmitir métricas ao Prometheus?

sobes.tech IA

Resposta da IA

Para transmitir métricas ao Prometheus, é necessário usar exporters. Os exporters são pequenos serviços que abrem um endpoint HTTP contendo métricas num formato compreensível pelo Prometheus.

Principais métodos:

  1. Uso de exporters oficiais e de terceiros:

    • Existem exporters prontos para muitos serviços e sistemas populares: node_exporter (métricas do sistema operativo), mysqld_exporter (métricas do MySQL), kube-state-metrics (métricas do Kubernetes), etc.
    • A configuração consiste na instalação do exporter no servidor alvo e na indicação do seu endereço na configuração do Prometheus.
  2. Instrumentação de aplicações:

    • Os desenvolvedores podem adicionar código às suas aplicações para expor métricas diretamente.
    • O Prometheus fornece bibliotecas clientes para várias linguagens de programação (Go, Java, Python, Ruby, etc.).
    • Estas bibliotecas permitem criar contadores, medidores, histogramas e sumários, e depois abrir um endpoint HTTP para a recolha pelo Prometheus.
  3. Textfile Collector (para node_exporter):

    • node_exporter tem um coletor textfile que pode ler métricas de ficheiros num formato específico.
    • Isto é útil para scripts periódicos ou tarefas que geram métricas.
  4. Pushgateway:

    • Pushgateway é usado para tarefas de curta duração ou por lote que não podem ser recolhidas diretamente pelo Prometheus (pois podem não existir no momento da recolha).
    • A aplicação envia as suas métricas para o Pushgateway, e o Prometheus recolhe os dados do Pushgateway.
# Exemplo de configuração do Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Nome da tarefa de recolha
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Lista de hosts/portas onde o node_exporter está a correr

  - job_name: 'application_metrics' # Tarefa para recolha de métricas da aplicação
    metrics_path: /metrics # Caminho onde a aplicação expõe métricas
    static_configs:
      - targets: ['application-host:8080'] # Endereço da aplicação

  - job_name: 'pushgateway' # Tarefa para recolha de métricas do Pushgateway
    honor_labels: true # Importante para o tratamento correto de etiquetas do Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Endereço do Pushgateway

Após configurar os exporters ou instrumentar as aplicações, o Prometheus irá periodicamente consultar (scraping) os endpoints indicados para recolher métricas.