Middle
Jak eksportujący przekazują metryki?
sobes.tech AI
Odpowiedź od AI
Eksporterzy używają różnych protokołów i formatów do przesyłania metryk do systemów monitorowania, takich jak Prometheus, Grafana i innych. Główne podejścia:
-
Protokół Prometheus:
- Eksporter uruchamia serwer HTTP na określonym porcie.
- System monitorowania (np. serwer Prometheus) okresowo "skrapuje" (pobiera) metryki z tego serwera HTTP.
- Format danych jest tekstowy, specyficzny dla Prometheus, gdzie każdy wiersz reprezentuje metrykę z etykietami i wartością.
# HELP go_gc_duration_seconds Podsumowanie czasów trwania pauz garbage collectora w Go. # TYPE go_gc_duration_seconds summary 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 przez gRPC lub inne frameworki RPC:
- Bardziej wydajny pod względem rozmiaru i parsowania format danych.
- Często używany w systemach o dużym obciążeniu lub przy przesyłaniu danych przez sieci o ograniczonej przepustowości.
- Wymaga zdefiniowania struktury metryk w plikach
.proto.
-
JSON przez API HTTP:
- Popularny format, który jest łatwy do parsowania przez wiele systemów.
- Eksporter udostępnia API HTTP, przez które można pobrać metryki w formacie JSON.
{ "metrics": [ { "name": "http_requests_total", "labels": { "method": "GET", "status": "200" }, "value": 1024 } ] } -
Protokół OpenTelemetry (OTLP):
- Ustandaryzowany protokół do zbierania telemetrii (metryki, ścieżki, logi).
- Obsługuje przesyłanie danych przez gRPC lub HTTP.
- Protokoły danych bazują na Protobuf.
-
Proprietarne protokoły:
- Niektóre systemy monitorowania lub agenci używają własnych protokołów do przesyłania danych, zoptymalizowanych pod kątem ich specyficznych potrzeb.
Wybór protokołu zależy od systemu monitorowania, typu eksportera, wymagań dotyczących wydajności i elastyczności. Najbardziej powszechnym podejściem w ekosystemie Prometheus jest skrapowanie metryk w natywnym formacie tekstowym przez HTTP.