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), საიდანაც მათ იღებს მონიტორინგის სისტემა.

პრომეთეუმში მეტრიკების ექსპორტის მაგალითი (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-ისთვის გასაგებია ფორმატში.