perfmetrics

Screenshot Software:
perfmetrics
Mga detalye ng Software:
Bersyon: 0.9.5
I-upload ang petsa: 20 Feb 15
Nag-develop: Shane Hathaway
Lisensya: Libre
Katanyagan: 4

Rating: nan/5 (Total Votes: 0)

perfmetrics nagbibigay ng isang simpleng paraan upang magdagdag ng mga sukatan ng pagganap ng software upang Python library at application. & Nbsp; Gamitin ang perfmetrics upang mahanap ang tunay na bottlenecks sa isang produksyon application.
Ang perfmetrics pakete ay isang client ng Statsd demonyo sa pamamagitan ng Etsy, na siya namang isang client ng Graphite (sa partikular, ang Carbon demonyo). Dahil ang perfmetrics pakete ay nagpapadala ng UDP packet sa Statsd, nagdaragdag perfmetrics hindi ako / O pagkaantala sa application at maliit na CPU overhead. Maaari itong gumana nang mahusay sa may sinulid (sabaysabay) o kaganapan-driven (asynchronous) software.
Paggamit
Gamitin angmetric atmetricmethod decorators upang wrap mga pag-andar at mga pamamaraan na dapat magpadala ng timing at tawagan ang mga istatistika sa Statsd. Idagdag ang decorators sa anumang pagpapaandar o pamamaraan na maaaring maging isang bottleneck, kabilang ang mga pag-andar library.
Halimbawa:
mula perfmetrics-import ng sukatan
mula sa pag-import perfmetrics metricmethod
metric
def myfunction ():
& Nbsp; "" "Gawin ang isang bagay na maaaring maging mahal" ""
klase MyClass (object):
& Nbsp;metricmethod
& Nbsp; def mymethod (sa sarili):
& Nbsp; "" "Gawin ilang iba pang mga posibleng mamahaling bagay" ""
Sunod, sabihin perfmetrics kung paano upang kumonekta sa Statsd. (Hanggang sa magawa mo, ang decorators ay walang epekto.) May perpektong, ang iyong application ay dapat basahin ang Statsd URI mula sa isang configuration file sa oras ng startup, ngunit ang mga halimbawa sa ibaba ay gumagamit ng isang hard-code na URI para sa pagiging simple:
mula sa pag-import perfmetrics set_statsd_client
set_statsd_client ('statsd: // localhost: 8125')
para i in xrange (1000):
& Nbsp; myfunction ()
& Nbsp;. MyClass () mymethod ()
Kung nagpapatakbo ka na ng code, ito ay sunog 2000 UDP packet sa port 8125. Gayunman, maliban kung na-install mo Graphite at Statsd, ang lahat ng mga packet ay mababalewala at bumaba. Pagbaba ay isang magandang bagay: na hindi mo nais ang iyong mga production application na mabigo o pabagalin dahil lang sa iyong pagganap system sa pagsubaybay ay huminto o hindi gumagana.
I-install ang Graphite at Statsd na tumanggap at i-graph ang mga sukatan. Isang mahusay na paraan upang i-install ang mga ito ay ang graphite_buildout Halimbawa sa github, na nai-install Graphite at Statsd sa isang pasadyang lokasyon nang wala ang ugat access.
threading
Habang ang karamihang mga programa magpadala ng sukatan mula sa anumang thread sa isang solong global Statsd server, ang ilang mga programa na kailangan gumamit ng ibang Statsd server para sa bawat thread. Kung kailangan mo lamang ng isang pandaigdigang Statsd server, gamitin ang function na set_statsd_client sa application startup. Kung kailangan mong gumamit ng ibang Statsd server para sa bawat thread, gamitin ang statsd_client_stack bagay sa bawat thread. Gamitin ang push, pop, at malinaw na pamamaraan.
Graphite Mga Tip
Graphite mga tindahan sa bawat sukatan bilang isang serye ng oras na may maramihang mga resolution. Ang sample na tindahan graphite_buildout 10 segundo resolusyon para sa 48 oras, 1 oras na resolusyon para sa 31 araw, at 1 araw ang resolusyon para sa 5 taon. Upang makabuo ng isang hindi tumpak na haspe halaga mula sa isang masarap na haspe halaga, Graphite computes ang halaga masama (average) para sa bawat tagal ng panahon.
Dahil Graphite computes masama halaga nang kataon lamang, ang pinaka-makabuluhang paraan upang tratuhin ang mga counter sa Graphite ay bilang isang "hit bawat segundo" halaga. Sa ganoong paraan, ang isang graph ay maaaring makabuo ng tamang mga resulta kahit na anong antas ng resolution gumagamit nito.
Treating counter bilang mga hit sa bawat segundo ay kapus-palad kahihinatnan, gayunpaman. Kung nakikita ng ilang mga sukatan ng 1000 hit spike sa isang segundo, pagkatapos ay bumaba sa zero para sa hindi bababa sa 9 na segundo, ang Graphite tsart para sa sukatang iyon ay magpapakita ng isang pagtaas ng 100, hindi 1000, dahil Graphite na natatanggap ng sukatan sa bawat 10 segundo at ang pagtaas hitsura sa Graphite tulad ng 100 mga hit sa bawat segundo sa loob ng isang 10 segundong tagal ng panahon.
Kung nais mo ang iyong mga graph upang ipakita ang 1000 hit sa halip na 100 mga hit sa bawat segundo, ilapat ang pag-andar Graphite hitcount (), gamit ang isang resolution ng 10 segundo o higit pa. Ang hitcount function na-convert per-ikalawang mga halaga upang matantiya ang mga raw na mga bilang ng hit. Maging sigurado na magbigay ng halaga resolution sapat na malaki para i-kinakatawan ng hindi bababa sa isang lapad pixel sa mga nagresultang graph, kung hindi man Graphite ay kino-compute average ng bilang ng hit at makabuo ng isang nakalilito graph.
Karaniwan itong saysay na ituturing null halaga sa Graphite bilang zero, kahit na ito ay hindi ang default; sa pamamagitan ng default, Graphite ay nakakakuha ng walang para sa mga halaga null. Maaari mong i-on ang pagpipiliang iyon para sa bawat graph.
Reference Documentation
Decorators
metric
& Nbsp; Inaabisuhan Statsd gamit ang UDP sa bawat oras na ang function ay tinatawag na. Nagpapadala ng parehong bilang ng tawag at impormasyon timing. Ang pangalan ng panukat na ipinadala sa Statsd ay . .
metricmethod
& Nbsp; Tulad ngmetric, ngunit ang pangalan ng Statsd sukatan ay ...
Sukatan (naaayos na istatistika = Wala, rate = 1, paraan = Mali, bilangin = True, timing = True)
& Nbsp; Ang isang dekorador o konteksto manager na may mga pagpipilian.
& Nbsp; naaayos na istatistika ay ang pangalan ng sukatan upang magpadala; itakda ito upang Wala na gamitin ang pangalan ng pag-andar o pamamaraan. rate ay nagbibigay-daan bawasan mo ang bilang ng mga packet na ipinadala sa Statsd sa pamamagitan ng pagpili ng random na sample; halimbawa, itakda ito sa 0.1 na magpadala ng 1/10 ng packet. Kung ang parameter na paraan ay totoo, ang default na pangalan sukatan ay batay sa pangalan ng klase ng mga pamamaraan sa halip na ang pangalan ng module. Ang pagtatakda ng bilang sa False hindi pinapagana ang counter istatistika ipinadala sa Statsd. Pagtatakda ng timing sa False hindi pinapagana ang mga istatistika ng tiyempo na ipinadala sa Statsd.
& Nbsp; Halimbawa ng paggamit bilang isang dekorador:
& Nbsp;Metric ('frequent_func', ang rate = 0.1, timing = Maling)
& Nbsp; def frequent_func ():
& Nbsp; "" "Gawin ang isang bagay mabilis at madalas" ""
& Nbsp; Halimbawa ng paggamit bilang isang konteksto manager:
& Nbsp; def do_something ():
& Nbsp; na may Sukatan ('doing_something'):
& Nbsp; pass
& Nbsp; Kung perfmetrics nagpapadala ng packet masyadong madalas, UDP packet ay maaaring mawala at ang pagganap ng application ay maaaring maapektuhan. Maaari mong bawasan ang bilang ng packet at ang overhead CPU gamit ang Metric dekorador na may mga pagpipilian sa halip na sukatan o metricmethod. Ang dekorador halimbawa sa itaas ay gumagamit ng isang sample rate at isang static na pangalan sukatan. Hindi rin pinapagana ang koleksyon ng mga tiyempo na impormasyon.
& Nbsp; Kapag ginagamit ang Sukatan bilang isang konteksto manager, dapat mong ibigay ang parameter na naaayos na istatistika o wala ay maitatala.
Mga Function
statsd_client ()
& Nbsp; Ibalik ang kasalukuyang naka-configure StatsdClient. Ibinabalik ang thread-lokal na kliyente kung may isa, o ang global kliyente kung may isa, o Wala.
set_statsd_client (client_or_uri)
& Nbsp; Itakda ang pandaigdigang StatsdClient. Client_or_uri ay maaaring maging isang StatsdClient, isang statsd: // URI, o Wala.
statsd_client_from_uri (URI)
& Nbsp; Lumikha ng StatsdClient mula sa isang URI. Isang tipikal na URI ay statsd: // localhost: 8125. Mga sinusuportahang opsyonal na parameter ng query ay prefix at gauge_suffix. Ang default na prefix ay walang laman at ang default na gauge_suffix ay .. Tingnan ang dokumentasyon StatsdClient para sa karagdagang impormasyon tungkol sa gauge_suffix.
StatsdClient Mga Pamamaraan
Python code ay maaaring magpadala ng mga custom na sukatan sa pamamagitan ng unang pagkuha ng mga kasalukuyang StatsdClient gamit ang statsd_client () method. Tandaan na statsd_client () ay nagbabalik Wala kung walang client ay na-configure.
Karamihan sa mga pamamaraan sa ibaba ay may opsyonal na mga parameter rate at buf. Ang parameter na rate, kapag itinakda sa halagang mas mababa sa 1, nagiging sanhi ng StatsdClient na magpadala ng random na sample ng packet kaysa sa bawat packet. Kung ang parameter na buf ay isang listahan, StatsdClient nagkakabit ng packet nilalaman sa listahan ng buf sa halip na ipadala ang packet, na ginagawang mas posible upang magpadala ng maramihang mga update sa iisang packet. Tandaan na ang sukat ng UDP packet ay limitado (nag-iiba ang limitasyon ng network, ngunit 1,000 bytes ay karaniwang isang magandang hula) at anumang dagdag na bytes ay hindi papansinin tahimik.
timing (naaayos na istatistika, halaga, rate = 1, buf = Wala)
& Nbsp; impormasyon timing Record. naaayos na istatistika ay ang pangalan ng sukatan upang i-record at halaga ay ang pagsukat timing sa millisecond. Tandaan na Statsd nagpapanatili ng ilang mga punto ng data para sa bawat sukatan timing, kaya timing sukatan ay maaaring tumagal ng higit pang puwang sa disk kaysa sa counter o gauges.
gauge (naaayos na istatistika, halaga, suffix = Wala, rate = 1, buf = Wala)
& Nbsp; I-update ang isang halaga gauge. naaayos na istatistika ay ang pangalan ng sukatan upang i-record at halaga ay ang bagong mga halaga ng gauge. Ang isang gauge ay kumakatawan sa isang paulit-ulit na halaga tulad ng isang laki ng pool. Dahil gauges mula sa iba't ibang machine madalas kontrahan, isang suffix ay karaniwang inilalapat upang masukat ang mga pangalan. Kung ang parameter na suffix ay isang string (kabilang ang isang walang laman na string), o-override ito ang default na sukatan suffix.
incr (naaayos na istatistika, ang bilang ng = 1, rate = 1, buf = Wala)
& Nbsp; ng pagdaragdag ng sagot sa pamamagitan ng bilang. Tandaan na Statsd na kini-clear ang lahat ng mga halaga sagot sa tuwing ito ay nagpapadala ng mga sukatan upang Graphite, na karaniwang mangyayari sa bawat 10 segundo. Kung kailangan mo ng paulit-ulit na halaga, maaaring ito ay mas naaangkop na gumamit ng isang panukat sa halip na isang counter.
decr (naaayos na istatistika, ang bilang ng = 1, rate = 1, buf = Wala)
& Nbsp; ng pagbawas ng sagot sa pamamagitan ng bilang.
sendbuf (buf)
& Nbsp; Ipadala ang mga nilalaman ng listahan buf sa Statsd

Ano ang bagong sa paglabas:

  • Idinagdag isang opsyonal na Pyramid. tween at isang katulad na app WSGI filter na nagse-set up ang Statsd client para sa bawat kahilingan.

Ano ang bagong sa bersyon 0.9.4:.

  • Na-optimize ang paggamit ng nabawasang sample rate

Ano ang bagong sa bersyon 0.9.2:

  • Sukatan ay maaari na ngayong gamitin bilang alinman sa isang dekorador o isang konteksto manager.
  • Ginawa ng pirma ng StatsdClient mas katulad James Socol ng StatsClient.

Mga Kinakailangan :

  • Python

Katulad na software

diskfree
diskfree

3 Jun 15

wmcpumon
wmcpumon

11 May 15

exede-status
exede-status

20 Feb 15

Iba pang mga software developer ng Shane Hathaway

oauth2sample
oauth2sample

14 Apr 15

Yasso
Yasso

14 Apr 15

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

Mga komento sa perfmetrics

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!