Middle
Ի՞նչ տեսակի մետրիկներ եք ճանաչում Prometheus-ում:
sobes.tech AI
Պատասխան AI-ից
Prometheus աջակցում է չորս հիմնական տեսակի մետրիկների.
- Հաշվիչ (Counter): Մոնոտոնիկ աճող արժեք, որը կարող է միայն աճել (կամ վերականգնվել զրոյին գործընթացի վերագործարկման ժամանակ): Օգտագործվում է ինկրեմենտալ իրադարձությունների հաշվարկի համար, ինչպիսիք են հարցումների, սխալների կամ ավարտված առաջադրանքների քանակը:
// Օրինակ Go-ում var requestsTotal = prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Ընդհանուր HTTP հարցումների քանակը", }, ) - Սենսոր (Gauge): Կանոնավոր թվային արժեք, որը կարող է ինչպես աճել, այնպես էլ նվազել: Օգտագործվում է ինչ-որ բանի ընթացիկ վիճակի չափման համար, օրինակ՝ CPU բեռ, հիշողության օգտագործում, ակտիվ օգտվողների քանակ կամ հերթի չափը:
# Python-ում օրինակ from prometheus_client import Gauge cpu_usage = Gauge('cpu_usage_percent', 'Ընթացիկ CPU օգտագործումը տոկոսներով') cpu_usage.set(55.5) - Հիստոգրամա (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(); - Սմիթ (Summary): Դրականորեն նման է հիստոգրամային, բայց հաճախորդի կողմում հաշվարկում է նմուշների կարգավորելի քվանտիլները մոծակային ժամանակային պատուհանում: Ներկայացնում է նաև ընդհանուր նմուշների քանակը և նրանց գումարը: Հարմար է ուշացման չափման համար, երբ կարևոր են քվանտիլները, սակայն հարկավոր է հաշվի առնել, որ հաճախորդի կողմի հաշվարկը պահանջում է ավելի մեծ հաշվարկային հզորություն և կարող է հանգեցնել ավելի քիչ ճշգրիտ քվանտիլների՝ հավաքագրման ժամանակ:
# Ruby-ում օրինակ require 'prometheus/client' requests_summary = Prometheus::Client::Summary.new(:request_duration_seconds, 'Հարցի տևողությունը վայրկյաններով')
Մետրիկայի տեսակի ընտրությունը կախված է տվյալների բնույթից, որոնք անհրաժեշտ է հետևել։