Sobes.tech
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:

  1. 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
    
  2. 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.
  3. 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
        }
      ]
    }
    
  4. 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.
  5. 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.