Middle
როგორ დავაყენოთ მომხმარებლები მეტრიკების გადაცემისთვის Prometheus-კენ?
sobes.tech AI
პასუხი AI-სგან
პრომეთუსისთვის მეტრიკების გადაცემისთვის აუცილებელია ექსპორტერების (Exporters) გამოყენება. ექსპორტერები — ეს მცირე სერვისებია, რომლებიც ღია HTTP-ენდპოინტს ახსნიან, სადაც მეტრიკები იმ ფორმატშია, რომელიც Prometheus-ს გასაგებია.
ძირითადი გზები:
-
რეგულარული და მესამე მხარის ექსპორტერების გამოყენება:
- არსებობს მზადეული ექსპორტერები მრავალი პოპულარული სერვისისა და სისტემისთვის:
node_exporter(ოპერაციული სისტემის მეტრიკები),mysqld_exporter(MySQL-ის მეტრიკები),kube-state-metrics(Kubernetes-ის მეტრიკები) და სხვა. - კონფიგურაცია მოიცავს ექსპორტერის ინსტალაციას მიზნობრივ სერვერზე და მის მისამართის მითითებას Prometheus-ის კონფიგურაციაში.
- არსებობს მზადეული ექსპორტერები მრავალი პოპულარული სერვისისა და სისტემისთვის:
-
აპლიკაციების ინსტრუმენტაცია:
- დეველოპერები შეუძლიათ დაამატონ კოდი თავიანთ აპლიკაციებში პირდაპირ მეტრიკების გამოსატანად.
- Prometheus-ის პროექტი უზრუნველყოფს კლიენტურ ბიბლიოთეკებს სხვადასხვა პროგრამირების ენებისთვის (Go, Java, Python, Ruby და სხვა).
- ამ ბიბლიოთეკებს შეუძლიათ შექმნან გამოთვლელები (counters), სენსორები (gauges), ჰისტოგრამები (histograms) და მიმოხილვები (summaries), და შემდეგ გახსნან HTTP-ენდპოინტი Prometheus-ისთვის მეტრიკების შეგროვებისთვის.
-
Textfile Collector (
node_exporter-ისთვის):node_exporter-ს აქვსtextfileკოლექტორი, რომელიც შეუძლია წაიკითხოს მეტრიკები ფაილებიდან გარკვეულ ფორმატში.- ეს სასარგებლოა პერიოდული სკრიპტებისთვის ან დავალებებისთვის, რომლებიც გენერირებენ მეტრიკებს.
-
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ტებს მეტრიკების შეგროვებისთვის.