perfmetrics

البرمجيات قطة:
perfmetrics
تفاصيل البرنامج:
الإصدار: 0.9.5
تاريخ إيداع: 20 Feb 15
المطور: Shane Hathaway
ترخيص: حرر
شعبية: 4

Rating: nan/5 (Total Votes: 0)

وperfmetrics يوفر طريقة بسيطة لإضافة مقاييس الأداء برنامج للمكتبات وتطبيقات بيثون على & nbsp؛. استخدام perfmetrics للعثور على الاختناقات الحقيقية في تطبيق الإنتاج.
حزمة perfmetrics هو عميل للشيطان Statsd التي كتبها Etsy، الذي هو بدوره عميل من الجرافيت (على وجه التحديد، والخفي الكربون). لأن حزمة perfmetrics ترسل حزم UDP إلى Statsd، perfmetrics يضيف أي تأخير I / O للتطبيقات والقليل من النفقات العامة وحدة المعالجة المركزية. ويمكن أن تعمل بشكل جيد على قدم المساواة في الخيوط (متزامن) أو الحدث يحركها (غير المتزامن) والبرمجيات.
استعمال
استخدام الديكورmetric وmetricmethod للالتفاف وظائف والأساليب التي يجب أن ترسل توقيت والدعوة إلى إحصاءات Statsd. إضافة الديكور إلى أي وظيفة أو الأسلوب الذي يمكن أن يكون عنق الزجاجة، بما في ذلك وظائف المكتبة.
عينة:
من perfmetrics استيراد متري
من perfmetrics استيراد metricmethod
metric
myfunction مواطنه ():
وnbsp؛ "كرة" "هل شيء يمكن أن تكون مكلفة" ""
الفئة MyClass (كائن):
على & nbsp؛metricmethod
على & nbsp؛ مواطنه mymethod (النفس):
وnbsp؛ "كرة" "هل بعض الشيء ربما مكلفة الآخرين" ""
التالي، أخبر perfmetrics كيفية الاتصال Statsd. (حتى قمت بذلك، الديكور ليس لها أي أثر.) ومن الناحية المثالية، يجب أن التطبيق الخاص بك قراءة Statsd URI من ملف التكوين في وقت بدء التشغيل، ولكن المثال أدناه يستخدم URI الثابت تلوينها لالبساطة:
من perfmetrics استيراد set_statsd_client
set_statsd_client ('statsd: // المضيف المحلي: 8125')
لأنني في xrange (1000):
على & nbsp؛ myfunction ()
على & nbsp؛. MyClass () mymethod ()
إذا قمت بتشغيل هذا الرمز، فإنه سيتم إطلاق 2000 حزم UDP في ميناء 8125. ومع ذلك، إلا إذا كنت قد قمت بالفعل بتثبيت الجرافيت وStatsd، سيتم تجاهل كل تلك الحزم وإسقاطها. إسقاط شيء جيد: كنت لا تريد تطبيق الإنتاج الخاص إلى فشل أو إبطاء لمجرد نظام لرصد الأداء الخاص بك يتم إيقاف أو لا يعمل.
تثبيت الجرافيت وStatsd لتلقي والرسم البياني المقاييس. طريقة واحدة جيدة لتثبيتها هي المثال graphite_buildout في جيثب، الذي يثبت الجرافيت وStatsd في موقع مخصص دون وصول الجذر.
خيوط
في حين أن معظم البرامج ترسل المقاييس من أي موضوع إلى خادم 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 تحويل في الثانية القيم لتقريب التهم ضرب الخام. تأكد من توفير قيمة قرار كبيرة بما يكفي لتكون ممثلة من قبل عرض بكسل واحد على الأقل على الرسم البياني الناتج، وإلا سوف الجرافيت حساب متوسطات التهم ضرب وإنتاج الرسم البياني مربكة.
فإنه عادة ما المنطقي لعلاج القيم الخالية في الجرافيت صفر، على الرغم من أن الأمر ليس افتراضي؛ افتراضيا، الجرافيت يرسم شيئا للقيم فارغة. يمكنك تشغيل هذا الخيار لكل الرسم البياني.
إشارة الوثائق
ديكور
metric
على & nbsp؛ تخطر Statsd باستخدام UDP في كل مرة يتم استدعاء الدالة. يرسل كلتا الحالتين الاتصال والمعلومات توقيت. اسم متري إرسالها إلى Statsd هو <وحدة>. <اسم الدالة>.
metricmethod
على & nbsp؛ مثلmetric، ولكن اسم Statsd متري هو <حدة نمطية للفئة> <اسم الفئة> <اسم الأسلوب>...
متري (القانون الأساسي = بلا، ومعدل = 1، طريقة = خطأ، عد = صحيح، توقيت = صحيح)
على & nbsp؛ والديكور أو سياق مدير مع الخيارات.
على & nbsp؛ القانون الأساسي هو اسم متري لإرسال؛ تعيين إلى لا شيء لاستخدام اسم وظيفة أو الأسلوب. معدل يتيح لك تقليل عدد الحزم المرسلة إلى Statsd من خلال اختيار عينة عشوائية؛ على سبيل المثال، لأنها مجموعة 0.1 لارسال احد على عشرة من الحزم. إذا كانت المعلمة طريقة صحيحة، ويستند اسم المتري الافتراضية على اسم الفئة طريقة بدلا من اسم الوحدة النمطية. وضع العد إلى خطأ تعطيل إحصاءات مكافحة إرسالها إلى Statsd. تحديد توقيت لخطأ تعطيل إحصاءات توقيت إرسالها إلى Statsd.
على & nbsp؛ استخدام عينة كما الديكور:
على & nbsp؛Metric ('frequent_func'، ومعدل = 0.1، توقيت = خطأ)
على & nbsp؛ مواطنه frequent_func ():
وnbsp؛ "كرة" "هل شيء سريع ومتكرر" ""
على & nbsp؛ استخدام عينة كمدير السياق:
على & nbsp؛ 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: // أوري، أو لا شيء.
statsd_client_from_uri (أوري)
على & nbsp؛ إنشاء StatsdClient من URI. وstatsd نموذجي URI: // المضيف المحلي: 8125. بدعم معلمات الاستعلام الاختيارية هي البادئة وgauge_suffix. البادئة الافتراضية هي فارغة وgauge_suffix الافتراضي هو .. راجع وثائق StatsdClient لمزيد من المعلومات حول gauge_suffix.
طرق StatsdClient
كود الثعبان يمكن أن ترسل القياسات المخصصة عن طريق الحصول لأول مرة StatsdClient الحالية باستخدام طريقة statsd_client (). لاحظ أن statsd_client () إرجاع بلا إذا تم تكوين أي عميل.
معظم الأساليب أدناه لديها معدل وBUF المعلمات الاختيارية. المعلمة المعدل، عند تعيينها إلى قيمة أقل من 1، يسبب StatsdClient لإرسال عينة عشوائية من الحزم وليس كل حزمة. إذا كانت المعلمة BUF هي قائمة، StatsdClient بإلحاق محتويات الحزمة إلى قائمة BUF بدلا من إرسال الحزمة، مما يجعل من الممكن لإرسال تحديثات متعددة في حزمة واحدة. نضع في اعتبارنا أن حجم حزم UDP يقتصر (الحد يختلف من قبل الشبكة، ولكن 1000 بايت وعادة ما يكون تخمين جيد) وسيتم تجاهل أي بايت إضافية بصمت.
توقيت (القانون الأساسي، والقيمة، ومعدل = 1، BUF = لا يوجد)
على & nbsp؛ سجل المعلومات توقيت. القانون الأساسي هو اسم متري لتسجيل والقيمة هي قياس توقيت في ميلي ثانية. لاحظ أن يحافظ Statsd عدة نقاط البيانات لكل متري توقيت، لذلك مقاييس توقيت يمكن أن تتخذ المزيد من مساحة القرص من عدادات أو أجهزة القياس.
مقياس (القانون الأساسي، والقيمة، لاحقة = بلا، ومعدل = 1، BUF = لا يوجد)
على & nbsp؛ تحديث قيمة قياس. القانون الأساسي هو اسم متري لتسجيل والقيمة هي قيمة مقياس جديدة. مقياس يمثل قيمة المستمرة مثل حجم التجمع. لأن مقاييس من أجهزة مختلفة في كثير من الأحيان الصراع، يتم تطبيق لاحقة عادة لقياس الأسماء. إذا كانت المعلمة لاحقة هي سلسلة (بما في ذلك سلسلة فارغة)، فإنه يتجاوز احقة مقياس الافتراضية.
incr (القانون الأساسي، عد = 1، ومعدل = 1، BUF = لا يوجد)
على & nbsp؛ زيادة عداد من العد. لاحظ أن Statsd يزيل كل قيم العداد في كل مرة يرسل المقاييس لالجرافيت، والذي يحدث عادة كل 10 ثانية. إذا كنت في حاجة الى القيمة الثابتة، قد يكون من الأنسب استخدام مقياس بدلا من عداد.
decr (القانون الأساسي، عد = 1، ومعدل = 1، BUF = لا يوجد)
على & nbsp؛ إنقاص عداد من العد.
sendbuf (BUF)
على & nbsp؛ إرسال محتويات القائمة BUF إلى Statsd

ما هو الجديد في هذا الإصدار:

وأضاف لتوين الهرم اختياري ويشبه التطبيق مرشح WSGI أن يضع العميل Statsd. لكل طلب.

ما هو الجديد في الإصدار 0.9.4:

محسن استخدام خفض معدلات عينة.

ما هو الجديد في الإصدار 0.9.2:

متري ويمكن الآن أن تستخدم إما الديكور أو مدير السياق.
صنع توقيع StatsdClient أشبه StatsClient جيمس Socol ل.

المتطلبات:

بيثون

برامج مماثلة

SysUsage
SysUsage

14 Apr 15

OS-SIM
OS-SIM

11 May 15

PGP
PGP

3 Jun 15

البرامج الأخرى من المطور Shane Hathaway

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

slowlog
slowlog

20 Feb 15

Yasso
Yasso

14 Apr 15

oauth2sample
oauth2sample

14 Apr 15

تعليقات ل perfmetrics

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!