.
perfmetrics Python kitabxana və ərizə & nbsp proqram performans ölçümlerini əlavə etmək üçün sadə bir yol təqdim edir; istifadə perfmetrics istehsal proqram əsl çətinlikləri tapmaq üçün.
perfmetrics paketi öz növbəsində Graphite bir müştəri (xüsusilə, Carbon daemon) və Etsy tərəfindən Statsd daemon, bir müşteri. Perfmetrics paketi Statsd UDP paket göndərir, çünki perfmetrics ərizə və az CPU yerüstü heç bir I / O gecikmələrə edir. Bu yivli (sinxron) və ya hadisə idarə (asynchronous) proqram eyni işləyə bilər.
istifadə
Statsd statistika vaxtı göndərmək və zəng etməlidir funksiyaları və metodları kesmekmetric vəmetricmethod dekoratörlerin istifadə edin. Kitabxana funksiyaları, o cümlədən bir turtleneck ola bilər hər hansı bir funksiyası və ya metodu dekoratörlerin əlavə edin.
Nümunə:
perfmetrics olan metrik idxal
perfmetrics idxal metricmethod dən
metric
def myfunction ():
& Nbsp; "" "bahalı ola bilər bir şey etməyin" ""
class MyClass (obyekt):
& Nbsp;metricmethod
& Nbsp; def mymethod (özünü):
& Nbsp; "" "bəzi digər bəlkə bahalı şey" ""
Növbəti necə Statsd qoşulmaq perfmetrics demək. (Siz qədər, bəzəyi heç bir təsiri yoxdur.) İdeal halda, sizin başlanğıc vaxt konfiqurasiya faylı Statsd URI oxumaq lazımdır ərizə, lakin aşağıda nümunə ağır kodlu URI sadəlik üçün istifadə edir:
perfmetrics idxal set_statsd_client dən
set_statsd_client (statsd: // localhost: 8125)
xrange (1000) i üçün:
& Nbsp; myfunction ()
& Nbsp;. MyClass () mymethod ()
Ki, kodu run, bu, Lakin port 8125. 2000-ci UDP paket yanğın Əgər siz artıq Qrafit və Statsd yüklü halda, bu paket bütün rədd və kəsiləcək. Bırakma yaxşı bir şey deyil: siz istehsal proqram uğursuz və ya performans monitorinq sistemi dayandırılır və ya iş deyil, çünki yalnız aşağı yavaş istəmirəm.
Install Graphite və Statsd almaq və ölçümlerini graph. Onları yüklemek üçün yaxşı bir yol kök çıxışı olmayan xüsusi bir yer Qrafit və Statsd quraşdırır github da graphite_buildout nümunəsidir.
Threading
Ən proqramları bir qlobal Statsd server hər hansı bir mövzu ölçümlerini göndərmək baxmayaraq, bir sıra proqramlar hər mövzu üçün müxtəlif Statsd server istifadə etmək lazımdır. Yalnız qlobal Statsd server ehtiyac varsa, proqram başlanğıc set_statsd_client funksiyası istifadə edin. Hər bir mövzu üçün müxtəlif Statsd server istifadə etmək lazımdır, hər mövzu statsd_client_stack obyekt istifadə edin. Push, pop, və aydın üsulları istifadə edin.
Qrafit haqqında
Qrafit mağazaları Çox qətnamə ilə bir zaman seriyası kimi hər metrik. 48 saat, 31 gün üçün 1 saat həlli, və 5 il üçün 1 gün həlli üçün nümunə graphite_buildout mağazaları 10 ikinci qətnamə. Gözəl dənəvər dəyər bir qaba dənəvər dəyər istehsal, Qrafit hər zaman span üçün orta dəyəri (orta) hesablayır.
Graphite dolayısı orta dəyərlər hesablayır Çünki Graphite da counters müalicə üçün ən həssas yol dəyəri bir "saniyədə Xit" kimi. Bu yolla, bir grafik olursa olsun istifadə edən qətnamə səviyyəsi doğru nəticələr istehsal edə bilər.
İkinci uğursuz nəticələri var hər xit Lakin, counters müalicə. Bir metrik bir ikinci 1000 hit sünbül görür, onda ən azı 9 saniyə sıfıra düşür Graphite ölçümlerini hər 10 saniyə alır və sünbül görünür bəri, o metrik üçün Graphite chart, 100 sünbül deyil, 1000 göstərəcək 10 ikinci dövr ərzində saniyədə 100 Xit kimi Graphite.
Siz graph 1000 Xit daha çox saniyədə 100 Xit göstərmək istəyirsinizsə, 10 saniyə və ya daha çox qətnamə istifadə edərək, Graphite hitcount () funksiyası tətbiq olunur. hitcount funksiyası xam hit sayar yaxınlaşdığı başına ikinci dəyərlər çevirir. Başqa Graphite hit sayar orta hesablamaq və bir confusing graph istehsal edəcək, nəticədə graph ən azı bir pixel eni təmsil etmək üçün kifayət qədər böyük bir qətnamə dəyər təmin etmək üçün əmin olun.
Bu adətən default deyil baxmayaraq, sıfır kimi Grafit null dəyərlər müalicəsi üçün əhəmiyyət kəsb edir; ismarıcları, Qrafit null dəyərlər üçün heç bir şey çəkir. Siz hər graph üçün bu seçimi yandırmaq olar.
Reference Documentation
Decorators
metric
& Nbsp; bildirir Statsd funksiyası adlanır hər dəfə UDP istifadə edərək. Zəng sayar və vaxtı məlumat, həm də göndərir. Statsd göndərilən metrik adı
metricmethod
& Nbsp; Likemetric, lakin Statsd metrik adı
Metrik (stat = Yox, dərəcəsi = 1, üsul = False, saymaq = Doğrudur, vaxtı = True)
& Nbsp; variantları ilə bir decorator və ya kontekstində meneceri.
& Nbsp; stat göndərmək üçün metrik adı; funksiyası və ya metodu adı istifadə Yox seçin. dərəcəsi bir təsadüfi nümunə seçərək Statsd göndərilən paketlərin sayının azaldılması imkan verir; Məsələn, paketlərin bir onuncu göndərmək üçün 0,1 seçin. Metodu parametr doğru deyil, default metrik adı Metodu sinif adı çox modul adı əsaslanır. False üçün count qurulması Statsd göndərilən counter statistics aradan bırakır. False üçün vaxtı qurulması Statsd göndərilən vaxtı statistika aradan bırakır.
& Nbsp; decorator kimi Nümunə istifadə:
& Nbsp;Metric (frequent_func "dərəcəsi = 0.1, vaxtı = False)
& Nbsp; def frequent_func ():
& Nbsp; "" "" "tez-tez sürətli bir şey etmək və"
& Nbsp; kontekstində meneceri kimi Nümunə istifadə:
& Nbsp; dəf) (do_something:
& Nbsp; Metrik ilə ("doing_something):
& Nbsp; pass
& Nbsp; perfmetrics çox tez-tez paket göndərir, UDP paket itirilmiş ola bilər və tətbiqi performance təsir edə bilər. Siz paketlərin sayı və variantları əvəzinə metrik və ya metricmethod ilə Metrik decorator istifadə CPU yerüstü azalda bilər. decorator Yuxarıdakı misal nümunə dərəcəsi və statik metrik adını istifadə. O, həmçinin informasiya vaxtı toplanması aradan bırakır.
& Nbsp; kontekstində meneceri kimi Metrik istifadə edərkən, stat parametri təmin etməlidir və ya heç bir şey qeyd olunacaq.
Funksiyaları
statsd_client ()
& Nbsp; hazırda yapılandırılmış StatsdClient qayıt. Bir və ya None olduqda qlobal müştəri var bir, və ya mövzu yerli müştəri qaytarır.
set_statsd_client (client_or_uri)
& Nbsp; qlobal StatsdClient seçin. // URI və ya None: client_or_uri bir StatsdClient, bir statsd ola bilər.
statsd_client_from_uri (Uri)
& Nbsp; bir URI bir StatsdClient yaradın. Tipik URI statsd olunur: // localhost: 8125. Desteklenen isteğe sorğu parametrləri prefiks və gauge_suffix var. Mənim prefiks boş və default gauge_suffix gauge_suffix haqqında daha ətraflı məlumat üçün StatsdClient sənədlər .. edir.
StatsdClient üsulları
Python kodu ilk statsd_client () metodu istifadə edərək cari StatsdClient əldə xüsusi ölçümlerini göndərə bilərsiniz. Heç bir müştəri konfiqurasiya edilibsə Heç qaytarır) (ki, statsd_client unutmayın.
Aşağıdakı üsulları çox isteğe dərəcəsi və BUF parametrləri var. dəyəri az 1 müəyyən zaman dərəcəsi parametri, paketlərin təsadüfi nümunə deyil hər paket göndərmək üçün StatsdClient səbəb olur. BUF parametr siyahısı varsa, StatsdClient BUF siyahısına paket məzmunu appends daha çox mümkün bir paket çox yenilikləri göndərmək üçün edilməsi, paket göndərin. UDP paket ölçüsü məhduddur (limit şəbəkə dəyişir, lakin 1000 bytes adətən yaxşı tahmin edir) və hər hansı əlavə bytes səssizcə rədd ediləcək ki, unutmayın.
vaxtı (Yox = BUF stat, dəyəri dərəcəsi = 1)
& Nbsp; Record vaxtı məlumat. stat qeyd metrik adı və dəyəri ms vaxtı ölçü deyil. Belə ki, vaxtı ölçümlerini counters və ya cihazlar daha çox disk edə bilər, Statsd hər vaxtı metrik üçün bir neçə data xal saxlayır unutmayın.
gauge (Yox = BUF stat, dəyəri şəkilçi = Yox, dərəcəsi = 1)
& Nbsp; bir gauge dəyəri yeniləyin. stat qeyd metrik adı və dəyəri yeni gauge dəyəri. A gauge belə bir hovuz ölçüsü kimi davamlı dəyərini əks etdirir. Müxtəlif tez-tez maşın qarşıdurma cihazlar, bir şəkilçi ümumiyyətlə adları ölçmek üçün tətbiq olunur. Şəkilçi parametri (boş string daxil olmaqla) string varsa, bu default gauge şəkilçi yalnış düçar edər.
incr (Yox = BUF stat, sayı = 1 dərəcəsi = 1)
& Nbsp; sayı ilə bir counter artım. Statsd bütün counter dəyərlər adətən hər 10 saniyə olur, qrafit ölçümlerini göndərir hər zaman təmizləyir unutmayın. Bir davamlı dəyər lazımdır, bu, bir counter əvəzinə bir gauge istifadə etmək daha uyğun ola bilər.
DECR (Yox = BUF stat, 1 = saymaq dərəcəsi = 1)
& Nbsp; count azalma qarşı.
sendbuf (BUF)
& Nbsp; Statsd üçün BUF siyahısı məzmunu göndər
Bu azad yeni nədir:
- isteğe Piramida əlavə edib. arasında və hər bir sorğu üçün Statsd müştəri müəyyən oxşar wsgi filter app.
versiya 0.9.4 yeni nədir.
- aşağı nümunə dərəcələri istifadə
nədir versiya 0.9.2-ci Yeni
- Metrik indi ya decorator kimi istifadə edilə bilər və ya kontekstində meneceri.
- daha James Socol nin StatsClient kimi StatsdClient imzasını etdi.
tələblər
- Python
Şərhlər tapılmadı