Sobes.tech
Middle

რა ტიპის მეტრიკებს იცნობთ Prometheus-ში?

sobes.tech AI

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

პრომეთეუმი მხარს უჭერს ოთხ ძირითად ტიპის მეტრიკას:

  1. სათვლელი (Counter): მონოტონურად ზრდადი მნიშვნელობა, რომელიც მხოლოდ ზრდის ან რესტარტის დროს ნულზე გადაყვანას შეუძლია. გამოიყენება ინკრემენტული მოვლენების დასათვლელად, როგორიცაა მოთხოვნების, შეცდომების ან დასრულებული დავალებების რაოდენობა.
    // მაგალითი Go-ში
    var requestsTotal = prometheus.NewCounter(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "სულ HTTP მოთხოვნების რაოდენობა",
        },
    )
    
  2. სენსორი (Gauge): ნებისმიერი რიცხვითი მნიშვნელობა, რომელიც შეიძლება გაიზარდოს ან შემცირდეს. გამოიყენება მიმდინარე მდგომარეობის გაზომვაზე, მაგალითად, CPU დატვირთვა, მეხსიერების გამოყენება, აქტიური მომხმარებლების რაოდენობა ან რიგის ზომა.
    # Python-ში მაგალითი
    from prometheus_client import Gauge
    
    cpu_usage = Gauge('cpu_usage_percent', 'მიმდინარე CPU გამოყენება პროცენტებში')
    cpu_usage.set(55.5)
    
  3. ჰისტოგრამა (Histogram): ზომავს ნიმუშების განაწილებას (მაგალითად, მოთხოვნების პასუხის დრო) და აერთიანებს მათ კონფიგურირებადი კუპკების (buckets) მიხედვით. საშუალებას აძლევს მიიღოს მონაცემები თითოეულ კუპკში ნიმუშების რაოდენობისა და მათი ჯამური მნიშვნელობის შესახებ. გამოიყენება დაგვიანებების ანალიზისთვის.
    // Java-ში მაგალითი
    import io.prometheus.client.Histogram;
    
    static final Histogram requestLatencies = Histogram.build()
        .name("http_request_duration_seconds")
        .help("მოთხოვნის ხანგრძლივობა წამებში")
        .buckets(0.1, 0.5, 1.0, 2.5, 5.0, 10.0) // კუპკები
        .register();
    
  4. სიმიტრი (Summary): მსგავსია ჰისტოგრამის, მაგრამ კლიენტის მხარეზე ითვლის ნიმუშების კონფიგურირებადი კვანტილებს მოძრავ დროის ფანჯარაში. ასევე უზრუნველყოფს საერთო რაოდენობას და მათ ჯამს. გამოიყენება დაგვიანებების გაზომვაზე, როდესაც კვანტილები მნიშვნელოვანია, მაგრამ უნდა გაითვალისწინოს, რომ კლიენტის მხარის გამოთვლა მოითხოვს მეტ გამოთვლით რესურსს და შეიძლება გამოიწვიოს ნაკლებად ზუსტი კვანტილები აგრეგაციის დროს.
    # Ruby-ში მაგალითი
    require 'prometheus/client'
    
    requests_summary = Prometheus::Client::Summary.new(:request_duration_seconds, 'მოთხოვნის ხანგრძლივობა წამებში.')
    

მეტრიკის ტიპის არჩევა დამოკიდებულია მონაცემების ბუნებაზე, რომელიც უნდა იყოს მონიტორინგის ობიექტი.