Sobes.tech
Middle

Jak exportéři předávají metriky?

sobes.tech AI

Odpověď od AI

Exportéři používají různé protokoly a formáty pro přenos metrik do systémů monitorování, jako jsou Prometheus, Grafana a další. Hlavní přístupy:

  1. Protokol Prometheus:

    • Exportér otevře HTTP server na určitém portu.
    • Monitorovací systém (například server Prometheus) periodicky "scrapuje" (získává) metriky z tohoto HTTP serveru.
    • Formát dat je textový, specifický pro Prometheus, kde každý řádek představuje metriku s štítky a hodnotou.
    # HELP go_gc_duration_seconds Souhrn dob trvání pauz garbage collectoru v 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 přes gRPC nebo jiné RPC frameworky:

    • Efektivnější formát dat z hlediska velikosti a parsování.
    • Často používaný ve vysoce zatížených systémech nebo při přenosu dat přes sítě s omezenou kapacitou.
    • Vyžaduje definici struktury metrik v .proto souborech.
  3. JSON přes HTTP API:

    • Rozšířený formát, který je snadno parsovatelný mnoha systémy.
    • Exportér poskytuje HTTP API, přes které lze získat metriky ve formátu JSON.
    {
      "metrics": [
        {
          "name": "http_requests_total",
          "labels": {
            "method": "GET",
            "status": "200"
          },
          "value": 1024
        }
      ]
    }
    
  4. Protokol OpenTelemetry (OTLP):

    • Standardizovaný protokol pro sběr telemetrie (metriky, trace, logy).
    • Podporuje přenos dat přes gRPC nebo HTTP.
    • Datové protokoly jsou založeny na Protobuf.
  5. Proprietární protokoly:

    • Některé systémy monitorování nebo agenti používají vlastní protokoly pro přenos dat, optimalizované pro jejich specifické potřeby.

Výběr protokolu závisí na monitorovacím systému, typu exportéru, požadavcích na výkon a flexibilitu. Nejrozšířenější přístup v ekosystému Prometheus je scraping metrik v nativním textovém formátu přes HTTP.