Sobes.tech
Junior — Middle

Ինչպե՞ս են իրականացնում մետրիկների փոխանցման մեթոդները արտահանողները։

sobes.tech AI

Պատասխան AI-ից

Экспортյորների կողմից մետրիկների փոխանցման մեթոդները սովորաբար իրականացվում են պրոտոկոլների և ձևաչափերի միջոցով, որոնք թույլ են տալիս հավաքել և փոխանցել մոնիտորինգի տվյալները հավաքագրման համակարգերին (օրինակ, Prometheus):

Հիմնական փոխանցման մեթոդները՝

  1. Pull մոդել (բերել) — արտահանողը տրամադրում է HTTP վերջնակետ, որի վրա մոնիտորինգի համակարգը ժամանակ առ ժամանակ ուղարկում է հարցումներ և ստանում է արդիական մետրիկներ, օրինակ՝ Prometheus-ի արտահայտման ձևաչափով:
import (
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
    "net/http"
)

func main() {
    http.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":2112", nil)
}
  1. Push մոդել (ուղարկում) — արտահանողը ուղղակիորեն ուղարկում է մետրիկները մոնիտորինգի սերվերին API կամ պրոտոկոլների միջոցով (օրինակ՝ Pushgateway Prometheus-ում):

  2. Միջնորդ բրոքերների օգտագործում — մետրիկները ուղարկվում են հաղորդագրությունների հերթ (Kafka, RabbitMQ), որտեղից դրանք վերցնում է մոնիտորինգի համակարգը:

Այսպիսով, մետրիկների արտահանումը Prometheus-ում (pull մոդել) օրինակ՝

import (
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
    "net/http"
)

func main() {
    http.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":2112", nil)
}

Այստեղ արտահանողը սկսում է HTTP սերվեր, որը հարցի դեպքում վերադարձնում է մետրիկները Prometheus-ի համար հասկանալի ձևաչափով։