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:
-
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.
- Existem exporters prontos para muitos serviços e sistemas populares:
-
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.
-
Textfile Collector (para
node_exporter):node_exportertem um coletortextfileque pode ler métricas de ficheiros num formato específico.- Isto é útil para scripts periódicos ou tarefas que geram métricas.
-
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 doPushgateway.
# 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.