perfmetrics

צילום מסך תוכנה:
perfmetrics
פרטי תוכנה:
גרסה: 0.9.5
טען תאריך: 20 Feb 15
מפתחים: Shane Hathaway
רשיון: ללא תשלום
פופולריות: 60

Rating: 5.0/5 (Total Votes: 1)

perfmetrics מספק דרך פשוטה להוסיף מדדי ביצועי תוכנה לספריות ויישומי פייתון & nbsp;. Perfmetrics השימוש כדי למצוא את צווארי הבקבוק האמיתיים ביישום ייצור.
Perfmetrics החבילה היא לקוח של daemon Statsd ידי Etsy, אשר בתורו לקוח של גרפיט (במיוחד, daemon פחמן). מכיוון שחבילת perfmetrics שולחת מנות UDP לStatsd, perfmetrics מוסיף שום עיכובי I / O ליישומים ולמעל מעבד קטן. זה יכול לעבוד באותה מידה גם באו תוכנת הברגה (סינכרוני) מונע אירוע (אסינכרוני).
שימוש
השתמש מעצביmetric ו@metricmethod לעטוף פונקציות ושיטות שצריכה לשלוח עיתוי וקוראים סטטיסטיקה לStatsd. הוסף את המעצבים לכל פונקציה או שיטה שיכולה להיות צוואר בקבוק, כוללים פונקציות ספרייה.
לדוגמא:
מperfmetrics לייבא מטרי
מmetricmethod יבוא perfmetrics
metric
myfunction def ():
& Nbsp; "" "תעשה משהו שעלולה להיות יקר" ""
הכיתה MyClass (אובייקט):
& Nbsp;metricmethod
& Nbsp; def mymethod (עצמי):
& Nbsp; "" "האם משהו אולי יקר אחר" ""
בשלב הבא, אומר לי perfmetrics כיצד להתחבר לStatsd. (עד שתעשו כן, יש לי המעצבים אין כל השפעה.) באופן אידיאלי, היישום שלך צריך לקרוא את URI Statsd מקובץ הגדרות בזמן אתחול, אבל הדוגמא שלהלן משתמשת URI בקידוד קשיח לפשטות:
מset_statsd_client יבוא perfmetrics
set_statsd_client ('statsd: // localhost: 8125 ")
לi בxrange (1000):
& Nbsp; myfunction ()
& Nbsp;. () Mymethod MyClass ()
אם אתה מפעיל קוד זה, זה יהיה לפטר 2,000 מנות 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 שנים. כדי לייצר ערך גרגירים גס מערך גרגירים עדין, גרפיט מחשב את הערך הממוצע (ממוצעת) לכל פרק זמן.
בגלל גרפיט מחשב ערכים ממוצעים במשתמע, הדרך ההגיונית ביותר לטיפול בדלפקים בגרפיט היא כ" להיטים לשנייה "ערך. בדרך זו, גרף יכול לייצר תוצאות נכונות לא משנה באיזו רזולוציה ברמה שהיא משתמשת.
טיפול בדלפקים כפוגע ליש השלכות מצערות שני, עם זאת. אם חלק מטרי רואה עלייה חדה 1,000 להיט בשנייה אחת, ואז נופל לאפס לפחות 9 שניות, תרשים גרפיט למדד שיראה קפיצה של 100, לא 1000, מאז גרפיט מקבל מדדים כל 10 שניות וספייק נראה ל גרפיט כמו לשנייה 100 להיטים על פני תקופה של 10 שניות.
אם אתה רוצה הגרף שלך כדי להראות 1000 כניסות ולא לשנייה 100 להיטים, להחיל את פונקצית hitcount גרפיט (), ברזולוציה של 10 שניות או יותר. פונקצית hitcount המרת ערכים לשנייה משוערת ספירת להיט גלם. הקפד לספק ערך רזולוציה גדול מספיק כדי להיות מיוצג על ידי רוחב פיקסל אחד לפחות על הגרף וכתוצאה מכך, אחרת גרפיט יהיה לחשב ממוצעים של ספירה פגע ולייצר גרף מבלבל.
בדרך כלל זה הגיוני לטיפול בערכי null בגרפיט כמו אפס, אם כי זה לא ברירת המחדל; כברירת מחדל, גרפיט שואב שום דבר לערכי null. אתה יכול להפעיל אפשרות שעבור כל גרף.
תיעוד הפניה
מעצבים
metric
& Nbsp; מודיע Statsd באמצעות UDP בכל פעם הפונקציה נקראת. שולח שני סעיפי שיחה ומידע עיתוי. שמו של המדד נשלח לStatsd הוא <מודול>. <שם פונקציה>.
metricmethod
& Nbsp;metric כמו, אבל את שמו של מדד Statsd הוא <מודול מחלקה> <שם מחלקה> <שם שיטה>...
מדד (stat = אין, שיעור = 1, שיטה = False, לספור = True, עיתוי = True)
& Nbsp; מנהל מעצב או הקשר עם אפשרויות.
& Nbsp; stat הוא שמו של המדד לשלוח; להגדיר אותו לאף אחד להשתמש בשם של הפונקציה או שיטה. שיעור מאפשר לך להפחית את מספר המנות שנשלחו לStatsd על ידי בחירת מדגם אקראי; למשל, להגדיר אותו ל -0.1 לשלוח עשירית מהמנות. אם פרמטר השיטה נכון, שם מטרי ברירת המחדל מבוסס על שם המחלקה של השיטה ולא את שם המודול. הגדרת ספירה לFalse משביתה את סטטיסטיקת הדלפק נשלחה לStatsd. הגדרת תזמון כדי False משביתה את סטטיסטיקת העיתוי נשלחה ל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 עלולים ללכת לאיבוד וביצועי היישומים עשויים להיות מושפעים. אתה יכול לצמצם את מספר המנות ומעל CPU באמצעות המעצב מטרי עם אפשרויות במקום מטרי או metricmethod. דוגמא המעצב מעל משתמשת קצב דגימה ושם מטרי סטטי. זה גם הופך את האוסף של עיתוי מידע.
& Nbsp; בעת שימוש במטרי כמנהל הקשר, עליך לספק את פרמטר stat או שום דבר לא יירשם.
פונקציות
statsd_client ()
& Nbsp; חזור StatsdClient מוגדר כעת. מחזיר את הלקוח החוט-מקומי אם יש אחד, או לקוח הגלובלי אם יש אחד, או אף אחד.
set_statsd_client (client_or_uri)
& Nbsp; הגדר את StatsdClient הגלובלי. Client_or_uri יכול להיות StatsdClient, statsd: // URI, או אף אחד.
statsd_client_from_uri (אורי)
& Nbsp; יצירת StatsdClient מURI. URI טיפוסי statsd: // localhost: 8125. פרמטרים שאילתא אופציונליים נתמכים הם קידומת וgauge_suffix. קידומת ברירת המחדל היא ריקה וgauge_suffix ברירת המחדל הוא .. עיין בתיעוד StatsdClient לקבלת מידע נוסף על gauge_suffix.
שיטות StatsdClient
קוד פייתון יכול לשלוח מדדים מותאמים אישית על ידי מקבל את StatsdClient הנוכחי תוך שימוש בשיטת statsd_client () הראשון. הערה statsd_client ש() מחזיר אף אם אין לקוח הוגדר.
רוב השיטות שלהלן פרמטרים שיעור וbuf אופציונליים. פרמטר השיעור, כאשר מוגדר ערך פחות מ 1, גורם StatsdClient לשלוח דגימה אקראית של מנות ולא כל חבילה. אם פרמטר buf הוא רשימה, StatsdClient מצרף את תוכן החבילה לרשימת buf ולא לשלוח את המנה, כך שניתן לשלוח עדכונים מרובים במנה בודדת. זכור כי גודל מנות UDP מוגבל (המגבלה משתנה בהתאם לרשת, אבל 1,000 בתים הוא בדרך כלל ניחוש טוב) וכל בתים נוספים יתעלמו בשקט.
עיתוי (stat, ערך, שיעור = 1, buf = אין)
& Nbsp; מידע עיתוי רשומה. Stat הוא שמו של המדד להקליט וערך הוא מדידת העיתוי באלפיות שני. שים לב שStatsd שומר כמה נקודות נתונים עבור כל מדד עיתוי, כך מדדי תזמון יכולים לקחת יותר שטח דיסק מאשר מונים או מדדים.
מד (stat, ערך, סיומת = אין, שיעור = 1, buf = אין)
& Nbsp; עדכון ערך מד. Stat הוא שמו של המדד להקליט וערך הוא ערך מד החדש. מד מייצג ערך מתמשך כגון גודל בריכה. בגלל מדדים ממכונות שונות לעתים קרובות סכסוך, סיומת מיושמות בדרך כלל כדי לאמוד את השמות. אם פרמטר הסיומת היא מחרוזת (כולל מחרוזת ריקה), היא עוקפת את סיומת מד ברירת מחדל.
אינקר (stat, לספור = 1, שיעור = 1, buf = אין)
& Nbsp; תוספת דלפק על ידי ספירה. שים לב שStatsd מנקה את כל ערכי הדלפק בכל פעם שהוא שולח את המדדים לגרפיט, אשר בדרך כלל קורה כל 10 שניות. אם אתם זקוקים לערך מתמשך, זה יכול להיות יותר מתאים לשימוש מד במקום דלפק.
decr (stat, לספור = 1, שיעור = 1, buf = אין)
& Nbsp; הפחת דלפק על ידי ספירה.
sendbuf (buf)
& Nbsp; שלח את התוכן של רשימת buf לStatsd

מה חדש בהודעה זו:

  • נוסף פירמידה אופציונלית. tween ויישום מסנן WSGI דומה שמגדיר את הלקוח Statsd לכל בקשה.

מה חדש בגרסה 0.9.4:.

  • אופטימלי לשימוש בקצב דגימה מופחתת

מה חדש בגרסה 0.9.2:

  • מטרי יכול כעת לשמש גם מעצב או מנהל הקשר.
  • Made החתימה של StatsdClient יותר כמו StatsClient של ג'יימס סוקול.

דרישות :

  • Python

תוכנה דומה

djmount
djmount

3 Jun 15

qtmib
qtmib

17 Feb 15

תוכנות אחרות של יזם Shane Hathaway

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

oauth2sample
oauth2sample

14 Apr 15

Yasso
Yasso

14 Apr 15

תגובות ל perfmetrics

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!