Sobes.tech
Middle

Ako exportéri prenášajú metriky?

sobes.tech AI

Odpoveď od AI

Exportéri používajú rôzne protokoly a formáty na prenos metrík do systémov monitorovania, ako sú Prometheus, Grafana a ďalšie. Hlavné prístupy:

  1. Protokol Prometheus:

    • Exportér otvára HTTP server na určenom porte.
    • Systém monitorovania (napríklad server Prometheus) periodicky "scrapuje" (získa) metriky z tohto HTTP servera.
    • Formát dát — textový, špecifický pre Prometheus, kde každý riadok predstavuje metriku s metkami a hodnotou.
    # HELP go_gc_duration_seconds Súhrn doby pozastavenia garbage collectora v jazyku 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 cez gRPC alebo iné RPC rámce:

    • Efektívnejší v hľadisku veľkosti a parsovania dát.
    • Často používaný v vysoko zaťažených systémoch alebo pri prenose dát cez sieť s obmedzenou šírkou pásma.
    • Vyžaduje definíciu štruktúry metrík v súboroch .proto.
  3. JSON cez HTTP API:

    • Bežný formát, ktorý je ľahko parsovateľný viacerými systémami.
    • Exportér poskytuje HTTP API, cez ktoré je možné získať metriky vo formáte JSON.
    {
      "metrics": [
        {
          "name": "http_requests_total",
          "labels": {
            "method": "GET",
            "status": "200"
          },
          "value": 1024
        }
      ]
    }
    
  4. OpenTelemetry Protocol (OTLP):

    • Štandardizovaný protokol na zber telemetrie (metrík, trace-ov, logov).
    • Podporuje prenos dát cez gRPC alebo HTTP.
    • Dátové protokoly sú založené na Protobuf.
  5. Proprietárne protokoly:

    • Niektoré systémy monitorovania alebo agenti používajú vlastné protokoly na prenos dát, optimalizované pre ich špecifické potreby.

Výber protokolu závisí od systému monitorovania, typu exportéra, požiadaviek na výkon a flexibilitu. Najbežnejším prístupom v ekosystéme Prometheus je scrapovanie metrík cez HTTP v jeho nativnom textovom formáte.