Middle
Como é que os exportadores transmitem as métricas?
sobes.tech IA
Resposta da IA
Os exportadores usam vários protocolos e formatos para transmitir métricas para sistemas de monitoramento, como Prometheus, Grafana e outros. As principais abordagens:
-
Protocolo Prometheus:
- O exportador abre um servidor HTTP numa porta específica.
- O sistema de monitoramento (por exemplo, um servidor Prometheus) realiza periodicamente "scraping" (obter) métricas deste servidor HTTP.
- O formato de dados é de texto, específico para Prometheus, onde cada linha representa uma métrica com etiquetas e valor.
# HELP go_gc_duration_seconds Um resumo das durações de pausa do coletor de lixo do Go. # TYPE go_gc_duration_seconds resumo go_gc_duration_seconds{quantile="0"} 6.14e-06 go_gc_duration_seconds{quantile="0.25"} 1.0281e-05 go_gc_duration_seconds{quantile="0.5"} 1.2357e-05 -
Protobuf via gRPC ou outros frameworks RPC:
- Formato de dados mais eficiente em tamanho e análise.
- Frequentemente usado em sistemas de alta carga ou ao transmitir dados através de redes com capacidade limitada.
- Requer definir a estrutura das métricas em ficheiros
.proto.
-
JSON via API HTTP:
- Formato comum que é fácil de analisar por muitos sistemas.
- O exportador fornece uma API HTTP, através da qual se podem obter métricas em formato JSON.
{ "metrics": [ { "name": "http_requests_total", "labels": { "method": "GET", "status": "200" }, "value": 1024 } ] } -
Protocolo OpenTelemetry (OTLP):
- Protocolo padronizado para recolha de telemetria (métricas, traços, logs).
- Suporta transmissão de dados via gRPC ou HTTP.
- Os protocolos de dados baseiam-se em Protobuf.
-
Protocolos Proprietários:
- Alguns sistemas de monitoramento ou agentes usam seus próprios protocolos para transmitir dados, otimizados para as suas necessidades específicas.
A escolha do protocolo depende do sistema de monitoramento, do tipo de exportador, dos requisitos de desempenho e flexibilidade. A abordagem mais comum no ecossistema Prometheus é o scraping de métricas em formato de texto nativo via HTTP.