Sobes.tech
Middle

Prometheus'te кандай метрик түрлөрүн билесиз?

sobes.tech AI

AIден жооп

Prometheus төрт негизги метрик түрүн колдойт:

  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, 'Суроо узактыгы секунддарда.')
    

Метрикалык түрүн тандоо маалыматтын табигатына жана көзделген көзөмөлгө жараша болот.