perfmetrics

Софтуер снимки:
perfmetrics
Софтуер детайли:
Версия: 0.9.5
Дата на качване: 20 Feb 15
Розробник: Shane Hathaway
Разрешително: Безплатно
Популярност: 60

Rating: 5.0/5 (Total Votes: 1)

perfmetrics предоставя лесен начин за добавяне на показатели за ефективността на софтуера да Python библиотеки и приложения & Nbsp;. Използвайте perfmetrics да намерят истинските тесните места в производството заявление.
Пакетът perfmetrics е клиент на демона Statsd от Etsy, която на свой ред е абонат на Graphite (конкретно, Carbon демон). Защото perfmetrics пакет изпраща UDP пакети за Statsd, perfmetrics не прибавя I / O забавяния на приложения и малко натоварването на процесора. Тя може да работи еднакво добре в чат (синхронно) или възникнали от събития (асинхронно) софтуер.
<Силен> Usage
Използвайтеmetric иmetricmethod декоратори да приключи функции и методи, които трябва да изпратят времето и наричат ​​статистиката да Statsd. Добави декораторите на всяка функция или метод, който може да бъде претрупана, включително библиотечни функции.
Извадка:
от perfmetrics внасят метричен
от perfmetrics внос metricmethod
metric
Def myfunction ():
& Nbsp; "" "Направи нещо, което може да се окаже скъпо" ""
клас MyClass (обект):
& Nbsp;metricmethod
& Nbsp; Def mymethod (самостоятелно):
& Nbsp; "" "Направи някои други евентуално скъпо нещо" ""
На следващо място, кажете perfmetrics как да се свърже с Statsd. (Докато не го направите, декораторите нямат ефект.) В идеалния случай, молбата Ви да прочетете Statsd URI от файл конфигурация по време на стартиране, но примера по-долу използва твърд кодирани URI за простота:
от perfmetrics внос set_statsd_client
set_statsd_client ("statsd: // Localhost: 8125)
защото в xrange (1000):
& Nbsp; myfunction ()
& Nbsp;. MyClass () mymethod ()
Ако се сблъскате с този код, ще уволни 2000 UDP пакети в пристанището 8125. Въпреки това, освен ако вече сте инсталирали Graphite и Statsd, всички тези пакети ще бъдат игнорирани и пусна. Отпадането е хубаво нещо: не искате вашето производство молба да се провали или забави, само защото вашата система за мониторинг на изпълнението е спряно или не работи.
Инсталирайте Graphite и Statsd да получава и графиката показатели. Един добър начин да ги инсталирате е graphite_buildout примера на GitHub, която инсталира Graphite и Statsd в предпочитано от вас място без корен достъп.
<Силен> Threading
Докато повечето програми изпращат показатели от всяка нишка на единна глобална Statsd сървър, някои програми трябва да използвате различен Statsd сървъра за всяка нишка. Ако имате нужда от само една глобална Statsd сървър, използвайте функцията за set_statsd_client при стартиране заявление. Ако трябва да използвате различен Statsd сървъра за всяка нишка, използвайте statsd_client_stack обекта във всяка нишка. Използвайте тласък, поп, и ясни методи.
<Силен> Графит Съвети
Графит магазина всеки показател като времеви редове с множество резолюции. Примерни graphite_buildout магазини 10секунди Разделителната за 48 часа, на 1 час резолюция за 31 дни, и 1 ден резолюция продължение на 5 години. За да се произведе едрозърнести стойност от глоба зърна стойност, Graphite изчислява средната стойност (средно) за всеки период от време.
Защото Graphite изчислява средните стойности по подразбиране, най-разумният начин за лечение на гишетата в Graphite е като "хитове в секунда" стойност. По този начин, графика, може да доведе до правилни резултати без значение коя резолюция ниво го използва.
Лечение броячи като удари в секунда има лоши последствия, обаче. Ако някои метрични вижда 1000 хит скок за една секунда, след това пада до нула, за най-малко 9 секунди, графиката Graphite за този показател ще покаже скок на 100, а не 1000, тъй Graphite получава показатели на всеки 10 секунди, а острието изглежда да Graphite като 100 попадения в секунда над втория период 10.
Ако искате вашата Графика на 1000 попадения, а не 100 попадения в секунда, прилага функцията на Graphite hitcount (), като се използва резолюция от 10 секунди или повече. Функцията hitcount превръща стойности в секунда, за да се сближат сурови обвинения хит. Бъдете сигурни, за да се осигури стойност резолюция достатъчно голям, за да бъде представляван от най-малко един пиксел ширина на получената крива, в противен случай Graphite ще изчисли средна на хитови обвинения и произведе объркващо графика.
Тя обикновено има смисъл да се отнасяме нула стойности в Graphite като нула, макар че не е по подразбиране; по подразбиране, Graphite равенства нищо за нула стойности. Можете да включите тази опция за всяка графика.
<Силен> справочна документация
Декоратори
metric
& Nbsp; уведоми Statsd използвайки UDP всеки път, функцията се нарича. Изпраща двете повиквания картина и синхронизираща информация. Името на метриката изпратена до Statsd е <модул>. <Име на функция>.
metricmethod
& Nbsp; Подобноmetric, но името на Statsd метриката е <клас модул> <име на клас> <име на метод>...
Metric (Stat = None, скорост = 1, метод = False, брои = True, времето = True)
& Nbsp; декоратор или контекст мениджър с опции.
& Nbsp; Stat е името на метриката да изпрати; задайте Няма да използвам името на функцията или метода. скорост ви позволява да се намали броят на пакети, изпратени до Statsd като изберете произволна извадка; например, да го настроите до 0.1, за да изпратите една десета от пакетите. Ако параметърът метод е вярно, метрични името по подразбиране се основава на името на метода клас, а не името на модула. Задаване на броя на False забранява статистиката контра изпратени до Statsd. Настройка на времето на False забранява статистиката на времето, изпратени до Statsd.
& Nbsp; използване Sample като декоратор:
& Nbsp;Metric ("frequent_func", скорост = 0.1, времето = False)
& Nbsp; Def frequent_func ():
& Nbsp; "" "Направи нещо бързо и често" ""
& Nbsp; използване Sample като контекст за управление на:
& Nbsp; Def do_something ():
& Nbsp; с Metric ("doing_something"):
& Nbsp; пас
& Nbsp; Ако perfmetrics изпраща пакети твърде често, UDP пакети могат да бъдат загубени и работата на приложенията могат да бъдат засегнати. Можете да намалите броя на пакетите и натоварването на процесора при използване на Metric декоратор с опции вместо метрична или metricmethod. Примерът на декоратор горе използва скорост на пробата и статичен показател име. Той също така се забранява събирането на информация за времето.
& Nbsp; При използване Metric като контекст за управление, трябва да предоставите на параметъра Stat или нищо няма да бъде записано.
Функции
statsd_client ()
& Nbsp; Върнете момента е конфигуриран StatsdClient. Връща клиента на конци-местен, ако има такъв, или глобалното клиента, ако има такъв, или няма.
set_statsd_client (client_or_uri)
& Nbsp; Определете световната StatsdClient. The client_or_uri може да бъде StatsdClient, а statsd: // URI, или няма.
statsd_client_from_uri (URI)
& Nbsp; Създаване на StatsdClient от URI. Типичен URI е statsd: // Localhost: 8125. Поддържани параметри по избор от заявките са префикс и gauge_suffix. Префикс по подразбиране е празна и gauge_suffix по подразбиране е .. Вижте документацията StatsdClient за повече информация относно gauge_suffix.
StatsdClient Методи
Python код може да изпраща персонализираните показатели от първия удар текущата StatsdClient по метода на statsd_client (). Имайте предвид, че statsd_client () връща None, ако никой клиент не е конфигуриран.
Повечето от методите по-долу има избираеми параметри проценти и Buf. Параметърът скорост, когато е настроен на стойност по-малко от 1, причинява StatsdClient изпращане на случайна извадка на пакети, а не всеки пакет. Ако параметърът Buf е списък, StatsdClient добавя съдържанието на пакета към списъка на Buf отколкото изпрати пакета, което прави възможно да се изпрати на няколко актуализации на един пакет. Имайте предвид, че размерът на UDP пакети е ограничено (ограничението варира от мрежата, но 1000 байта обикновено е добър предполагам) и всички допълнителни байтове, ще бъдат игнорирани мълчаливо.
синхронизация (Stat, стойност, скорост = 1, Buf = NONE)
& Nbsp; Record времето информация. Stat е името на метриката за записване и стойност е измерването на времето в милисекунди. Имайте предвид, че Statsd поддържа няколко точки от данни за всеки тайминг показател, толкова времеви показатели може да отнеме повече дисково пространство, отколкото броячи или габарити.
габарит (Stat, стойност, наставка = None, скорост = 1, Buf = NONE)
& Nbsp; Актуализиране стойност габарит. Stat е името на метриката за записване и стойност е стойността на новия габарит. A габарит представлява постоянна стойност, като например размер басейн. Тъй като габарити от различни машини често конфликти, наставка обикновено се прилагат за да прецени имена. Ако параметърът наставката е низ (включително празен низ), тя има предимство наставка габарит подразбиране.
Увеличаване на скоростта (Stat, брои = 1, скорост = 1, Buf = NONE)
& Nbsp; нарастване от брояч по броя. Имайте предвид, че Statsd изчиства всички насрещни стойности всеки път го изпраща показателите за графит, което обикновено се случва на всеки 10 секунди. Ако имате нужда от постоянна стойност, тя може да бъде по-подходящо да се използва манометър вместо брояч.
ОВЦС (Stat, брои = 1, скорост = 1, Buf = NONE)
& Nbsp; Намаляване на насрещно по броя.
sendbuf (Buf)
& Nbsp; Изпращане на съдържанието на списъка на Buf да Statsd

Какво ново в тази версия:

  • Добавена е опция Pyramid. ду и подобен WSGI филтър приложение, което създава клиента Statsd за всяка заявка.

Какво ново във версия 0.9.4:.

  • Оптимизиран за използването на намалени ставки на пробите

Какво ново във версия 0.9.2:

  • Metric вече може да се използва както като декоратор или контекст мениджър.
  • Създадено подписа на StatsdClient повече като StatsClient James Socol си.

<силни> Изисквания :

  • Python

Подобен софтуер

Ortro
Ortro

14 Apr 15

W3Perl
W3Perl

17 Feb 15

Products.ZNagios
Products.ZNagios

11 May 15

Друг софтуер на разработчика Shane Hathaway

slowlog
slowlog

20 Feb 15

Yasso
Yasso

14 Apr 15

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

oauth2sample
oauth2sample

14 Apr 15

Коментари към perfmetrics

Коментари не е намерена
добавите коментар
Включете на изображения!