Sobes.tech
Middle

როგორ დავაყენოთ მომხმარებლები მეტრიკების გადაცემისთვის Prometheus-კენ?

sobes.tech AI

პასუხი AI-სგან

პრომეთუსისთვის მეტრიკების გადაცემისთვის აუცილებელია ექსპორტერების (Exporters) გამოყენება. ექსპორტერები — ეს მცირე სერვისებია, რომლებიც ღია HTTP-ენდპოინტს ახსნიან, სადაც მეტრიკები იმ ფორმატშია, რომელიც Prometheus-ს გასაგებია.

ძირითადი გზები:

  1. რეგულარული და მესამე მხარის ექსპორტერების გამოყენება:

    • არსებობს მზადეული ექსპორტერები მრავალი პოპულარული სერვისისა და სისტემისთვის: node_exporter (ოპერაციული სისტემის მეტრიკები), mysqld_exporter (MySQL-ის მეტრიკები), kube-state-metrics (Kubernetes-ის მეტრიკები) და სხვა.
    • კონფიგურაცია მოიცავს ექსპორტერის ინსტალაციას მიზნობრივ სერვერზე და მის მისამართის მითითებას Prometheus-ის კონფიგურაციაში.
  2. აპლიკაციების ინსტრუმენტაცია:

    • დეველოპერები შეუძლიათ დაამატონ კოდი თავიანთ აპლიკაციებში პირდაპირ მეტრიკების გამოსატანად.
    • Prometheus-ის პროექტი უზრუნველყოფს კლიენტურ ბიბლიოთეკებს სხვადასხვა პროგრამირების ენებისთვის (Go, Java, Python, Ruby და სხვა).
    • ამ ბიბლიოთეკებს შეუძლიათ შექმნან გამოთვლელები (counters), სენსორები (gauges), ჰისტოგრამები (histograms) და მიმოხილვები (summaries), და შემდეგ გახსნან HTTP-ენდპოინტი Prometheus-ისთვის მეტრიკების შეგროვებისთვის.
  3. Textfile Collector (node_exporter-ისთვის):

    • node_exporter-ს აქვს textfile კოლექტორი, რომელიც შეუძლია წაიკითხოს მეტრიკები ფაილებიდან გარკვეულ ფორმატში.
    • ეს სასარგებლოა პერიოდული სკრიპტებისთვის ან დავალებებისთვის, რომლებიც გენერირებენ მეტრიკებს.
  4. Pushgateway:

    • Pushgateway გამოიყენება მოკლევადიანი ან პაკეტური დავალებებისთვის, რომლებიც პირდაპირ ვერ შეგროვდება Prometheus-ის მიერ (რადგან შეიძლება არ არსებობდეს შეგროვების დროს).
    • პროგრამა აგზავნის თავის მეტრიკებს Pushgateway-ს, ხოლო Prometheus აგროვებს მონაცემებს Pushgateway-დან.
# Prometheus-ის კონფიგურაციის მაგალითი (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # დავალების სახელი
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # სერვერების/პორტების სია, სადაც მუშაობს `node_exporter`

  - job_name: 'application_metrics' # აპლიკაციის მეტრიკების შეგროვების დავალება
    metrics_path: /metrics # გზა, სადაც აპლიკაცია გამოდის მეტრიკებს
    static_configs:
      - targets: ['application-host:8080'] # აპლიკაციის მისამართი

  - job_name: 'pushgateway' # მეტრიკების შეგროვების დავალება Pushgateway-დან
    honor_labels: true # მნიშვნელოვანია Pushgateway-ის ნიშნების სწორად დამუშავებისთვის
    static_configs:
      - targets: ['pushgateway-host:9091'] # Pushgateway-ის მისამართი

კონფიგურაციის შემდეგ, ექსპორტერების ან აპლიკაციების ინსტრუმენტაციის შემდეგ, Prometheus პერიოდულად იჭერს მითითებულ endpoinტებს მეტრიკების შეგროვებისთვის.