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, який, у свою чергу клієнт графіту (зокрема, вуглецю демон). Тому що пакет perfmetrics посилає UDP-пакети Statsd, perfmetrics Не додає ніяких затримок введення / виводу для додатків і маленькою завантаженням процесора. Він може працювати однаково добре в різьбовій (синхронно) або програмного забезпечення (асинхронний), керованої подіями.
Використання
Іспользуйте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: // локальний: 8125 ")
для I В xrange (1000):
І NBSP; MyFunction ()
І NBSP ;. MyClass () MyMethod ()
Якщо ви запустите цей код, він буде стріляти 2000 пакетів UDP в порт 8125. Однак, якщо ви вже встановили графіту і Statsd, всі ці пакети будуть проігноровані і впав. Падіння це добре: ви не хочете, щоб ваш обробки заявки на провал або сповільнити тільки тому, що продуктивність вашої системи контролю зупиняється або не працює.
Встановіть Графіт і Statsd отримувати і графік метрики. Один хороший спосіб, щоб встановити їх в graphite_buildout приклад на GitHub, який встановлює графіту і Statsd в призначеному для користувача місці без кореневого доступу.
Threading
У той час як більшість програм відправити метрики з будь-якого потоку на один сервер глобального Statsd, деякі програми необхідно використовувати інший сервер Statsd для кожного потоку. Якщо вам потрібно тільки сервер глобального Statsd, використовуйте функцію set_statsd_client при запуску програми. Якщо вам потрібно використовувати інший сервер Statsd для кожного потоку, використовуйте об'єкт statsd_client_stack в кожному потоці. Використовуйте поштовх, поп, і чіткі методи.
Графіт Поради
Графіт зберігає кожен показник, оскільки часового ряду з декількома резолюціями. Друга резолюція зразок graphite_buildout магазини 10 протягом 48 годин, 1 година резолюції протягом 31 днів, і резолюції 1 день протягом 5 років. Для отримання грубозернистою значення з дрібнозернистого вартості, графіт обчислює середнє значення (середнє) для кожного проміжку часу.
Тому що графіт обчислює середні значення неявно, самий розумний спосіб для лікування лічильники в графіт як "хітів в секунду" значення. Таким чином, граф не може виробляти правильні результати незалежно від того, який дозвіл рівень використовує.
Лікування лічильники, як парад в секунду призводить до небажаних наслідків, однак. Якщо деякі метрики бачить 1000 хіт шип в одну секунду, а потім падає до нуля протягом принаймні 9 секунд, графіт діаграма для цього показника буде викид 100, що не 1000, оскільки графіт отримує метрики кожні 10 секунд і шип виглядає графіт як 100 звернень в секунду протягом періоду часу 10.
Якщо ви хочете, щоб ваш графік, що демонструє 1000 хіти замість 100 запитів в секунду, застосувати функцію Графіт HitCount (), використовуючи дозвіл 10 або більше секунд. Функція HitCount перетворює в секунду значень для апроксимації вихідних імпульсів хітом. Будьте впевнені, щоб забезпечити значення, досить великий, щоб бути представлені щонайменше однієї ширини пікселя на отриманого графа дозволу, в іншому випадку графіт буде обчислити середні попадання пунктам і виробляти збиває з пантелику графа.
Це, як правило, має сенс лікувати нульові значення в графіті нулю, хоча це не за умовчанням; за замовчуванням, графіт нічого не малює для значень NULL. Ви можете включити цей варіант для кожного графіка.
Довідкова документація
Декоратори
metric
І NBSP; Повідомляє Statsd використанням UDP кожен раз, коли викликається функція. Відправляє як виклик лічильники і тимчасову інформацію. Назва метрики направленому Statsd становить <модуль>. <Ім'я функції>.
metricmethod
І NBSP; Какmetric, але ім'я Statsd метрики <модуль класу> <ім'я класу> <ім'я методу> ...
Метрична (стат = None, швидкість = 1, метод = False, вважати = True, терміни = True)
І NBSP; декоратор або контекст менеджер з варіантами.
І NBSP; стат ім'я метрики для відправки; встановити його на None, щоб використовувати ім'я функції або методу. Швидкість дозволяє зменшити кількість пакетів, що відправляються на Statsd, вибравши випадкову вибірку; Наприклад, встановити його на 0,1, щоб відправити одну десяту частину пакетів. Якщо параметр методу, правда, ім'я метрики за замовчуванням на основі імені класу методу, а не імені модуля. Встановлення лічильника Брехня відключає лічильника статистики, відправлені Statsd. Установка часу Брехня відключає статистику синхронізації, відправлені Statsd.
І NBSP; використання зразка в якості декоратора:
І NBSP; Metric ('frequent_func ", швидкість = 0,1, час = False)
І NBSP; Def frequent_func ():
І NBSP; "" "Зробіть що-небудь швидкий і часто" ""
І NBSP; використання в якості зразка менеджером контексту:
І NBSP; Def do_something ():
І NBSP; з метрикою ('doing_something'):
І NBSP; передача
І NBSP; Якщо perfmetrics посилає пакети занадто часто, UDP пакети можуть бути втрачені і продуктивність додатків можуть бути порушені. Ви можете зменшити кількість пакетів і навантаження на процесори з допомогою метрики декоратор з параметрами замість метрики або metricmethod. Приклад декоратор вище використовує частоту дискретизації і статичний ім'я метрики. Він також відключає збір інформації синхронізації.
І NBSP; При використанні метричної як менеджер контекстного, ви повинні надати параметр стат або нічого не буде записано.
Функції
statsd_client ()
І NBSP; Повернення поточної конфігурації StatsdClient. Повертає внутріпотоковой клієнта, якщо такий є, або глобальний клієнт, якщо він є, або Ні.
set_statsd_client (client_or_uri)
І NBSP; Встановлює глобальну StatsdClient. Client_or_uri може бути StatsdClient, statsd: // URI, або Ні.
statsd_client_from_uri (URI)
І NBSP; Створити StatsdClient з URI. Типовий URI є statsd: // локальний: 8125. Підтримувані додаткові параметри запиту є префікс і gauge_suffix. Префікс за умовчанням є порожнім і gauge_suffix замовчуванням .. Дивіться документацію StatsdClient для отримання додаткової інформації про gauge_suffix.
Методи StatsdClient
Код Python можна відправити користувальницькі метрики спочатку отримання поточної StatsdClient, використовуючи метод statsd_client (). Зверніть увагу, що statsd_client () не повертає None, якщо клієнт не був налаштований.
Більшість із зазначених нижче способів є додаткові ставки і БУФ параметри. Параметр ставка, при установці на значення менше 1, викликає StatsdClient відправити випадкову вибірку пакетів, а не кожен пакет. Якщо параметр BUF є списком, StatsdClient додає вміст пакету в список BUF, а не послати пакет, що робить можливим, щоб відправити кілька оновлень в одному пакеті. Майте на увазі, що розмір UDP пакетів обмежена (межа варіюється залежно від мережі, але 1000 байт, як правило, хороше припущення), і будь-які додаткові байти будуть ігноруватися мовчки.
часу (стат, вартість, ставка = 1, ЬіЕ НЕ = None)
І NBSP; Запис інформації часу. стат ім'я метрики для запису і значення вимірювання часу в мілісекундах. Зверніть увагу, що Statsd підтримує кілька точок даних для кожного часової метрики, так часові показники можуть зайняти більше місця, ніж лічильники або датчиків.
Датчик (стат, вартість, суфікс = None, швидкість = 1, ЬіЕ НЕ = None)
І NBSP; оновити значення калібру. стат ім'я метрики для запису і значення нового значення міра. Датчик являє собою постійне значення, наприклад розміру пулу. Тому що датчики з різних машин часто суперечать, суфікс зазвичай застосовується для оцінки імена. Якщо параметр суфікс рядка (у тому числі порожній рядок), то вона перекриває калібру суфіксом.
інкр (стат, вважайте = 1, швидкість = 1, ЬіЕ НЕ = None)
І NBSP; приріст лічильника на кіл. Слід зазначити, що Statsd очищає всі значення лічильника кожен раз, коли він посилає метрики в графіт, який зазвичай відбувається кожні 10 секунд. Якщо необхідно постійне значення, то воно може бути більш доцільно використовувати датчик замість лічильника.
ВЗЦЗ (стат, вважайте = 1, швидкість = 1, ЬіЕ НЕ = None)
І NBSP; Зменшення лічильника за кількістю.
sendbuf (ЬіЕ)
І NBSP; Вислати вміст списку BUF для Statsd

Що нового У цьому випуску:

  • Додана опція піраміди. Твін та аналогічні додатки WSGI фільтр, який встановлює клієнта Statsd для кожного запиту.

Що нового у версії 0.9.4 :.

  • Оптимізація використання зменшених ставок зразка

Що нового у версії 0.9.2:

  • Метрична тепер можна використовувати або як декоратор або менеджер контексту.
  • Зроблено підпис StatsdClient більше як StatsClient Джеймса Сокіл-х років.

Вимоги

  • Python

Схожі програми

Sshguard
Sshguard

12 May 15

MultiTail
MultiTail

27 Sep 15

Amon
Amon

14 Apr 15

Інші програми розробника Shane Hathaway

oauth2sample
oauth2sample

14 Apr 15

Yasso
Yasso

14 Apr 15

slowlog
slowlog

20 Feb 15

perfmetrics

Коментар не знайдено
додати коментар
Включіть картинки!