perfmetrics

Screenshot Software:
perfmetrics
Detalii soft:
Versiune: 0.9.5
Incarca data: 20 Feb 15
Producător: Shane Hathaway
Licenţă: Gratuit
Popularitate: 4

Rating: nan/5 (Total Votes: 0)

perfmetrics oferă o modalitate simplă de a adăuga valorile de performanță de software pentru biblioteci Python și aplicații & nbsp;. Folositi perfmetrics pentru a găsi adevărații blocajele într-o aplicație de producție.
Pachetul perfmetrics este un client de daemon Statsd prin Etsy, care este la rândul său, un client de grafit (în special, demonul de carbon). Deoarece pachetul perfmetrics trimite pachete UDP la Statsd, perfmetrics adaugă fără întârzieri I / O pentru aplicații și puțin deasupra capului CPU. Se poate lucra la fel de bine în (sincron) sau software filetat determinate de un eveniment (asincron).
Utilizare
Utilizați decoratorimetric șimetricmethod să-și încheie funcții și metode care ar trebui să trimită calendarul și apel statisticile de Statsd. Adăugați decoratori la orice funcție sau metodă care ar putea fi o strangulare, inclusiv funcțiile de bibliotecă.
Exemplu:
de la perfmetrics import metric
de la perfmetrics metricmethod import
metric
def myFunction ():
& Nbsp; "" "Fă ceva care ar putea fi scump" ""
clasă MyClass (obiect):
& Nbsp;metricmethod
& Nbsp; def mymethod (auto):
& Nbsp; "" "Fă un alt lucru posibil scump" ""
Mai departe, spune perfmetrics cum să se conecteze la Statsd. (Până faci, decoratorilor nu au niciun efect.) În mod ideal, cererea dumneavoastră ar trebui să citească Statsd URI dintr-un fișier de configurare în timpul de pornire, dar exemplul de mai jos foloseste un hard-coded URI pentru simplitate:
de la perfmetrics set_statsd_client import
set_statsd_client ("statsd: // localhost: 8125")
for i in xrange (1000):
& Nbsp; myFunction ()
& Nbsp;. () Mymethod MyClass ()
Dacă aveți acel cod, se va declanșa 2000 pachete UDP la portul 8125. Cu toate acestea, dacă nu ați instalat deja grafit și Statsd, toate aceste pachete vor fi ignorate și a scăzut. Cădere este un lucru bun: nu vrei cererea dumneavoastră de producție să eșueze sau încetini doar pentru că sistemul de monitorizare a performanței este oprit sau nu funcționează.
Instalați grafit și Statsd să primească și grafic măsurătorile. O modalitate buna de a le instala este exemplul graphite_buildout la github, care instalează grafit și Statsd într-o locație personalizat, fără acces root.
Threading
În timp ce majoritatea programelor trimite valori de la orice fir la un singur server global Statsd, unele programe trebuie să utilizați un server Statsd diferit pentru fiecare fir. Dacă aveți nevoie de doar un server global Statsd, folosește funcția set_statsd_client la pornire aplicare. Dacă aveți nevoie să utilizați un server Statsd diferit pentru fiecare fir, utilizați obiectul statsd_client_stack în fiecare fir. Utilizați împinge, pop, și metodele de clare.
grafit sfaturi utile
Magazine grafit fiecare metrica ca o serie de timp cu mai multe rezoluții. Rezoluția doilea magazine graphite_buildout eșantion de 10 timp de 48 ore, rezoluție 1 oră timp de 31 de zile, iar rezoluția o zi timp de 5 ani. Pentru a produce o valoare de granulație grosieră de la o valoare granulat fin, grafit calculează valoarea medie (medie) pentru fiecare interval de timp.
Deoarece grafit calculează valorile medii implicit, modul cel mai sensibil de a trata contoare în grafit este ca o "hit-uri pe secundă" valoare. În acest fel, un grafic poate produce rezultate corecte, indiferent care rezoluție nivel se folosește.
Tratarea contoare ca spectaculos pe secundă are consecințe nefericite, cu toate acestea. Dacă unele metric vede un vârf 1000 hit intr-o secunda, apoi scade la zero timp de cel puțin 9 secunde, graficul Grafit pentru care metrica va arăta un vârf de 100, nu 1000, deoarece grafit primește valori la fiecare 10 secunde și Spike pare a Grafit ca 100 de puncte pe secundă pe o perioadă de 10 secunde.
Dacă doriți grafic pentru a arăta 1000 hit-uri, mai degrabă decât de 100 de puncte pe secundă, se aplică funcția de grafit hitcount (), folosind o rezolutie de 10 secunde sau mai mult. Funcția hitcount conversii pe secundă pentru a aproxima numărul de hit prime. Asigurați-vă că pentru a oferi o valoare suficient de mare rezoluție care urmează să fie reprezentat de cel puțin un pixel lățime pe grafic rezultat, în caz contrar grafit va calcula mediile de numărul de hit și produce un grafic confuz.
Se face, de obicei, sens pentru a trata valori nule în grafit la zero, deși că nu este implicit; în mod implicit, Grafit atrage nimic pentru valori nule. Puteți activa această opțiune pentru fiecare grafic.
Documentation referință
Decoratori
metric
& Nbsp; Notifică Statsd folosind UDP de fiecare dată când funcția este numit. Trimite ambele cazuri de apel și informațiile de sincronizare. Numele metricii trimis la Statsd este . .
metricmethod
& Nbsp; Cametric, dar numele a Statsd metrica este ...
Metric (stat = Nici una, rata = 1, metoda = False, conta = Adevărat, calendarul = True)
& Nbsp; Un manager de decorator sau context cu opțiuni.
& Nbsp; stat este numele metricii pentru a trimite; setați-l să Fără să folosească numele de funcția sau metoda. Rata de vă permite să reducă numărul de pachete trimise la Statsd prin selectarea unui eșantion aleatoriu; de exemplu, ea setat la 0,1 pentru a trimite o zecime din pachetele. În cazul în care parametrul metodă este adevărat, numele implicit metric se bazează pe numele de clasă metoda mai degrabă decât numele modulului. Stabilirea numărului de la False dezactivează statisticile contra trimise Statsd. Setarea sincronizare a False dezactivează statisticile de sincronizare trimise Statsd.
& Nbsp; utilizare Proba ca un decorator:
& Nbsp;Metric ("frequent_func ', rata = 0,1, calendarul = False)
& Nbsp; def frequent_func ():
& Nbsp; "" "Fă ceva rapid si frecvent" ""
& Nbsp; utilizare Proba ca un manager de context:
& Nbsp; def do_something ():
& Nbsp; cu Metric ('doing_something "):
& Nbsp; adversari
& Nbsp; Dacă perfmetrics trimite pachete prea des, pachete UDP se poate pierde și performanța cerere poate fi afectată. Puteți reduce numărul de pachete și regia CPU folosind decorator metric cu opțiuni loc de metrice sau metricmethod. Exemplul de mai sus decorator folosește o rată de eșantionare și un nume metric static. Aceasta dezactivează, de asemenea, colectarea de informații de sincronizare.
& Nbsp; Atunci când se utilizează metrice ca un manager de context, trebuie să furnizați parametrul stat sau nimic nu va fi inregistrata.
Funcții
statsd_client ()
& Nbsp; Reveniți StatsdClient configurat în prezent. Returnează client-fir local, dacă există unul, sau clientul la nivel mondial în cazul în care există, sau Niciunul.
set_statsd_client (client_or_uri)
& Nbsp; Setați StatsdClient global. Client_or_uri poate fi un StatsdClient, o statsd: // URI, sau Niciunul.
statsd_client_from_uri (uri)
& Nbsp; Creați un StatsdClient de un URI. Un URI tipic este statsd: // localhost: 8125. Parametri de interogare opționale acceptate sunt prefix și gauge_suffix. Prefixul implicit este gol și implicit gauge_suffix este .. consultați documentația StatsdClient pentru mai multe informații despre gauge_suffix.
StatsdClient Metode
Codul Python poate trimite valori personalizate prin obtinerea întâi StatsdClient curent folosind metoda statsd_client (). Rețineți că statsd_client () returnează Nu există dacă nu client a fost configurat.
Cele mai multe dintre metodele de mai jos au rata și BUF parametri opționali. Parametrul caz, când este setat la o valoare mai mică de 1, determină StatsdClient pentru a trimite un eșantion aleatoriu de pachete, mai degrabă decât fiecare pachet. În cazul în care parametrul buf este o listă, StatsdClient atașează conținutul de pachete pe lista buf, mai degrabă decât a trimite pachetul, făcând posibilă trimite mai multe actualizări într-un singur pachet. Țineți minte că mărimea pachetelor UDP este limitată (limita variază în funcție de rețea, dar 1000 bytes este, de obicei o presupunere bun) și orice bytes suplimentare vor fi ignorate în tăcere.
sincronizare (stat, valoare, rata = 1, buf = None)
& Nbsp; Se înregistrează informații de sincronizare. stat este numele metric pentru a înregistra și valoare nu este măsurarea sincronizare în milisecunde. Rețineți că Statsd susține mai multe puncte de date pentru fiecare metric calendarul, astfel încât valori de sincronizare poate dura mai mult spațiu pe disc mult de contoare sau manometre.
ecartament (stat, valoare, sufix = None, rata = 1, buf = None)
& Nbsp; Actualizati-o valoare ecartament. stat este numele metric pentru a înregistra și valoare nu este noua valoare ecartament. Un ecartament reprezintă o valoare persistente, cum ar fi o dimensiune piscină. Deoarece Calibre de la diverse masini adesea conflicte, un sufix se aplică de obicei pentru a măsura nume. În cazul în care parametrul sufixul este un șir (inclusiv un șir gol), aceasta suprascrie sufixul ecartament implicit.
incr (stat, conta = 1, rata = 1, buf = None)
& Nbsp; incrementa un contor de numărul de. Rețineți că Statsd reușește toate valorile contra de fiecare dată când trimite metrici de grafit, care se întâmplă de obicei la fiecare 10 secunde. Dacă aveți nevoie de o valoare persistent, poate fi mai potrivit să se utilizeze un indicator în loc de un contor.
DECR (stat, conta = 1, rata = 1, buf = None)
& Nbsp; Decrementați un contra-după numărul.
sendbuf (buf)
& Nbsp; Trimiteți conținutul listei buf a Statsd

Ce este nou în această versiune:

  • Adaugata o Pyramid opțional. Tween și o aplicație similară filtru WSGI care stabilește clientul Statsd pentru fiecare cerere.

Ce este nou în versiunea 0.9.4:.

  • Optimizat utilizarea ratelor de eșantionare reduse

Ce este nou în versiunea 0.9.2:

  • Metric pot acum fi folosit fie ca un decorator sau un manager de context.
  • Fabricat semnarea de StatsdClient mai mult ca StatsClient James Socol lui.

Cerințe :

  • Python

Software similare

Zorp
Zorp

20 Feb 15

spy
spy

14 Apr 15

Softflowd
Softflowd

3 Jun 15

Alte software-uri de dezvoltator Shane Hathaway

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

Yasso
Yasso

14 Apr 15

slowlog
slowlog

20 Feb 15

Comentarii la perfmetrics

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!