perfmetrics

Software screenshot:
perfmetrics
Software detaljer:
Version: 0.9.5
Upload dato: 20 Feb 15
Udvikler: Shane Hathaway
Licens: Gratis
Popularitet: 4

Rating: nan/5 (Total Votes: 0)

perfmetrics giver en enkel måde at tilføje software effektivitetsmålinger til Python biblioteker og applikationer. & Nbsp; Brug perfmetrics at finde de sande flaskehalse i en produktion ansøgning.
Den perfmetrics pakke er en klient af Statsd daemon ved Etsy, som igen er en klient af grafit (specifikt Carbon dæmonen). Fordi perfmetrics pakken sender UDP-pakker til Statsd, perfmetrics tilføjer ingen I / O forsinkelser applikationer og lidt CPU overhead. Det kan arbejde lige så godt i gevind (synkron) eller hændelsesstyret (asynkron) software.
Anvendelse
Brugmetric ogmetricmethod dekoratører til wrap funktioner og metoder, der skal sende timing og kalder statistik til Statsd. Tilsæt dekoratører til en funktion eller metode, der kunne være en flaskehals, herunder bibliotekets funktioner.
Prøve:
fra perfmetrics importerer metrisk
fra perfmetrics import metricmethod
metric
def minFunktion ():
& Nbsp; "" "Gør noget, der kunne være dyrt" ""
class MinKlasse (objekt):
& Nbsp;metricmethod
& Nbsp; def mymethod (selv-):
& Nbsp; "" "Har nogle andre muligvis dyre ting" ""
Dernæst fortæller perfmetrics hvordan du tilslutter til Statsd. (Indtil du gør det, dekoratører har ingen effekt.) Ideelt set din ansøgning bør læse Statsd URI fra en konfigurationsfil ved start tid, men nedenstående eksempel bruger en hard-kodet URI for enkelhed:
fra perfmetrics import set_statsd_client
set_statsd_client ('statsd: // localhost: 8125')
for jeg i xrange (1000):
& Nbsp; minFunktion ()
& Nbsp;. MinKlasse () mymethod ()
Hvis du kører denne kode, vil det brand 2000 UDP-pakker på port 8125. Men medmindre du allerede har installeret Graphite og Statsd vil alle disse pakker ignoreres og faldt. Dropper er en god ting: du ikke ønsker din produktion program til at mislykkes eller bremse, bare fordi din præstation overvågningssystem er stoppet eller ikke fungerer.
Installer Graphite og Statsd at modtage og afbilde målinger. En god måde at installere dem er graphite_buildout eksempel på GitHub, der installerer Grafit og Statsd i en brugerdefineret placering uden root-adgang.
Threading
Mens de fleste programmer sender målinger fra enhver tråd til en enkelt global Statsd server, har brug for nogle programmer til at bruge en anden Statsd server for hver tråd. Hvis du kun har brug for en global Statsd server, skal du bruge set_statsd_client funktion på ansøgning opstart. Hvis du skal bruge en anden Statsd server for hver tråd, skal du bruge statsd_client_stack objekt i hver tråd. Brug push, pop, og klare metoder.
Graphite Tips
Graphite gemmer hver metrik som en tidsserie med flere resolutioner. Prøven graphite_buildout butikker 10 sekunder opløsning i 48 timer, 1 time opløsning i 31 dage, og en dag opløsning i 5 år. For at producere et grovkornet værdi fra en finkornet værdi, grafit beregner middelværdien (gennemsnit) for hver tidsperiode.
Fordi Graphite beregner middelværdier implicit, den mest fornuftige måde at behandle tællere i Graphite er som en "hits i sekundet" værdi. På den måde kan en graf producere korrekte resultater uanset hvilken opløsning niveau det bruger.
Behandling tællere som hits per sekund har uheldige konsekvenser, dog. Hvis nogle metrisk ser en 1000 hit spike i et sekund, så falder til nul i mindst 9 sekunder, Graphite chart for at metrisk viser en stigning på 100, ikke 1000, da Graphite modtager målinger hvert 10. sekund og spike ser ud til at Graphite ligesom 100 hits i sekundet over en 10 sekunders periode.
Hvis du vil have din graf viser 1000 hits snarere end 100 hits i sekundet, anvende Graphite hitcount () funktion, ved hjælp af en opløsning på 10 sekunder eller mere. Den hitcount -funktionen konverterer pr-sekund-værdier at tilnærme rå hit tæller. Vær sikker på at give en opløsning værdi stor nok til at være repræsenteret af mindst én pixel bredde på den resulterende graf, ellers Graphite vil beregne gennemsnit af hit tæller og producere en forvirrende graf.
Det er normalt fornuftigt at behandle NULL-værdier i Graphite som nul, selv om det er ikke standard; som standard, trækker Graphite intet for NULL-værdier. Du kan slå denne mulighed for hver graf.
Reference Dokumentation
Dekoratører
metric
& Nbsp; Meddeler Statsd hjælp UDP, hver gang funktionen kaldes. Sender både opkald tæller og timing information. Navnet på det metriske sendt til Statsd er . .
metricmethod
& Nbsp; Ligesommetric, men navnet på Statsd metrikken er ...
Metric (stat = Ingen, hastighed = 1, metode = False, tæller = True, timing = True)
& Nbsp; En dekoratør eller kontekst manager med muligheder.
& Nbsp; stat er navnet på den parameter for at sende; sæt den til Ingen for at bruge navnet på den funktion eller metode. sats kan du reducere antallet af pakker, der sendes til Statsd ved at vælge en tilfældig stikprøve; for eksempel sætte den til 0,1 for at sende en tiendedel af pakkerne. Hvis metoden parameter er sandt, er det som standard metrisk navn baseret på metoden klasse navn i stedet for modulnavnet. Indstilling tælle til False deaktiverer tæller statistik sendt til Statsd. Indstilling timing at False deaktiverer statistikken timing sendt til Statsd.
& Nbsp; Sample brug som dekoratør:
& Nbsp;Metric (»frequent_func«, sats = 0,1, timing = False)
& Nbsp; def frequent_func ():
& Nbsp; "" "Gør noget hurtigt og ofte" ""
& Nbsp; Sample brug som en kontekst leder:
& Nbsp; def do_something ():
& Nbsp; med Metric (doing_something):
& Nbsp; pass
& Nbsp; Hvis perfmetrics sender pakker for ofte, kan UDP-pakker tabt, og programmets ydeevne kan påvirkes. Du kan reducere antallet af pakker og CPU-overhead ved brug af Metric dekoratør med muligheder i stedet for metriske eller metricmethod. Den dekoratør eksempel ovenfor anvender en samplingfrekvens og en statisk metrisk navn. Det deaktiverer også indsamling af timing information.
& Nbsp; Når du bruger Metric som en kontekst manager, skal du angive den statistiske parameter eller intet vil blive registreret.
Funktioner
statsd_client ()
& Nbsp; Retur den aktuelt konfigureret StatsdClient. Returnerer tråd-lokal klient, hvis der er en, eller den globale kunde, hvis der er en, eller Ingen.
set_statsd_client (client_or_uri)
& Nbsp; Indstil globale StatsdClient. Den client_or_uri kan være en StatsdClient, en statsd: // URI eller Ingen.
statsd_client_from_uri (URI)
& Nbsp; Opret en StatsdClient fra en URI. En typisk URI er statsd: // localhost: 8125. Understøttede valgfrie søgeparametre er præfiks og gauge_suffix. Standard præfiks er tom og standard gauge_suffix er .. Se StatsdClient dokumentationen for mere information om gauge_suffix.
StatsdClient Metoder
Python kode kan sende brugerdefinerede målinger ved først at få den aktuelle StatsdClient hjælp af statsd_client () metode. Bemærk at statsd_client () returnerer Ingen, hvis ingen klient er konfigureret.
De fleste af metoderne herunder har valgfri sats og BUF parametre. Satsen parameter, når den er indstillet til en værdi mindre end 1, årsager StatsdClient at sende en tilfældig stikprøve af pakker i stedet for hver pakke. Hvis buf parameter er en liste, StatsdClient vedhæfter indhold pakken til den buf listen i stedet sende pakken, hvilket gør det muligt at sende flere opdateringer i en enkelt pakke. Husk på, at størrelsen af ​​UDP-pakker er begrænset (grænsen afhænger af netværket, men 1000 bytes er normalt en god gæt), og eventuelle ekstra bytes vil blive ignoreret lydløst.
timing (stat, værdi, hastighed = 1, BUF = Ingen)
& Nbsp; Optag timing information. stat er navnet på den parameter for at registrere og værdi er den timing måling i millisekunder. Bemærk at Statsd fastholder flere datapunkter for hvert timing metrisk, så timing målinger kan tage mere diskplads end tællere eller målere.
gauge (stat, værdi, suffiks = Ingen, hastighed = 1, BUF = Ingen)
& Nbsp; Opdatere en gauge værdi. STAT er navnet på det metriske at optage og værdi er den nye sporvidde værdi. En måler repræsenterer en vedvarende værdi, såsom en pool størrelse. Fordi målere fra forskellige maskiner ofte konflikt, er en endelse normalt anvendes til at måle navne. Hvis suffikset parameteren er en streng (herunder en tom streng), tilsidesætter standard gauge endelsen.
INCR (stat, tæller = 1, sats = 1, BUF = Ingen)
& Nbsp; tilvækst en tæller med tæller. Bemærk at Statsd rydder alle tællerværdier hver gang det sender de målinger til grafit, hvilket normalt sker hvert 10. sekund. Hvis du har brug for en vedholdende værdi, kan det være mere hensigtsmæssigt at anvende en sporvidde i stedet for en tæller.
DECR (stat, tæller = 1, sats = 1, BUF = Ingen)
& Nbsp; Decrement en tæller med tæller.
sendbuf (BUF)
& Nbsp; Send indholdet af buf liste Statsd

Hvad er nyt i denne udgivelse:

  • Tilføjet en valgfri Pyramid. tween og en lignende WSGI filter app, der opsætter Statsd klient for hver anmodning.

Hvad er nyt i version 0.9.4:.

  • Optimeret anvendelse af reducerede sample rates

Hvad er nyt i version 0.9.2:

  • Metrisk kan nu bruges som enten en dekoratør eller en kontekst manager.
  • Lavet underskrift StatsdClient mere som James Socol s StatsClient.

Krav :

  • Python

Lignende software

Surveilr
Surveilr

15 Apr 15

jWatchdog
jWatchdog

20 Feb 15

Xosview
Xosview

19 Feb 15

ZUPS
ZUPS

11 May 15

Andre software developer Shane Hathaway

slowlog
slowlog

20 Feb 15

Yasso
Yasso

14 Apr 15

oauth2sample
oauth2sample

14 Apr 15

Kommentarer til perfmetrics

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!