מבצע מעקב

אופטימיזציה של הביצועים מתחילה בזיהוי מדדי מפתח, בדרך כלל קשורים לזמן אחזור ולתפוקת נתונים. הוספת מעקב כדי לתעד את המדדים האלה ולעקוב אחריהם חושפת נקודות חולשה באפליקציה. בעזרת מדדים אפשר לבצע אופטימיזציה כדי לשפר את מדדי הביצועים.

בנוסף, בכלים רבים למעקב אפשר להגדיר התראות לגבי המדדים, כדי לקבל עדכון כשמגיעים לסף מסוים. לדוגמה, תוכלו להגדיר התראה שתודיע לכם כשאחוז הבקשות שנכשלו יגדל ב-x% מהרמות הרגילות. כלי המעקב יכולים לעזור לכם לזהות איך נראים ביצועים רגילים, ולזהות עליות חדות חריגות בזמן האחזור, במספר השגיאות ובמדדים מרכזיים אחרים. היכולת לעקוב אחרי המדדים האלה חשובה במיוחד במסגרות זמן קריטיות לעסק, או אחרי שקוד חדש הועבר לסביבת הייצור.

זיהוי מדדי זמן אחזור

חשוב לוודא שממשק המשתמש מגיב במהירות האפשרית, תוך התחשבות בעובדה שהמשתמשים מצפים לסטנדרטים גבוהים עוד יותר מאפליקציות לנייד. צריך למדוד את זמן האחזור ולעקוב אחריו גם בשירותים לקצה העורפי, במיוחד כי הוא עלול לגרום לבעיות בתפוקת הנתונים אם לא בודקים אותו.

המדדים המוצעים למעקב כוללים את האפשרויות הבאות:

  • משך הבקשה
  • משך הבקשה ברמת הפירוט של מערכת המשנה (למשל, קריאות ל-API)
  • משך המשימה

זיהוי מדדי תעבורה

קצב העברת הנתונים הוא מדד של המספר הכולל של הבקשות שמולאו בפרק זמן נתון. יכול להיות שזמן האחזור של תת-מערכות ישפיע על קצב העברת הנתונים, ולכן יכול להיות שתצטרכו לבצע אופטימיזציה של זמן האחזור כדי לשפר את קצב העברת הנתונים.

ריכזנו כאן כמה הצעות למדדים שאפשר לעקוב אחריהם:

  • שאילתות לשנייה (QPS)
  • גודל הנתונים המועברים בכל שנייה
  • מספר פעולות הקלט/פלט לשנייה
  • ניצול משאבים, כמו שימוש במעבד (CPU) או בזיכרון
  • גודל עומס העבודה שצבר לעיבוד, כמו pub/sub או מספר השרשור

לא רק הממוצע

טעות נפוצה במדידה של ביצועים היא התמקדות רק במקרה הממוצע. הנתון הזה שימושי, אבל הוא לא מספק תובנות לגבי ההתפלגות של זמן האחזור. מדד טוב יותר למעקב הוא האחוזונים של הביצועים, לדוגמה, האחוזון ה-50/75/90/99 של מדד מסוים.

באופן כללי, אפשר לבצע אופטימיזציה בשני שלבים. קודם כול, מבצעים אופטימיזציה לפי זמן האחזור של ה-90 percentile. לאחר מכן, כדאי לבדוק את ה-percentile ה-99 – שנקרא גם זמן אחזור בחלק העורפי (tail) – החלק הקטן של הבקשות שהשלמתן נמשכת הרבה יותר זמן.

מעקב בצד השרת לקבלת תוצאות מפורטות

בדרך כלל עדיף לבצע יצירת פרופילים בצד השרת למעקב אחר מדדים. בצד השרת בדרך כלל קל יותר להטמיע כלי למדידת ביצועים, הוא מאפשר גישה לנתונים מפורטים יותר והוא פחות חשוף להפרעות מבעיות קישוריות.

מעקב אחר דפדפנים לצורך שקיפות מקצה לקצה

יצירת פרופילים של דפדפנים יכולה לספק תובנות נוספות לגבי חוויית משתמשי הקצה. אפשר לראות אילו דפים כוללים בקשות איטיות, ואז לבדוק את הנתונים האלה בצד השרת לצורך ניתוח נוסף.

מערכת Google Analytics מספקת מעקב מובנה אחרי זמני הטעינה של דפים בדוח זמני הטעינה של דפים. כך תוכלו לראות כמה תצוגות מפורטות שיעזרו לכם להבין את חוויית המשתמש באתר, במיוחד:

  • זמני טעינה של דפים
  • זמני הטעינה של הפניות אוטומטיות
  • זמני תגובה של שרתים

מעקב בענן

יש הרבה כלים שאפשר להשתמש בהם כדי לתעד ולעקוב אחרי מדדי הביצועים של האפליקציה. לדוגמה, אפשר להשתמש ב-Google Cloud Logging כדי לתעד מדדי ביצועים בפרויקט ב-Google Cloud, ולאחר מכן להגדיר מרכזי בקרה ב-Google Cloud Monitoring כדי לעקוב אחרי המדדים המתועדים ולפלח אותם.

במדריך בנושא רישום ביומן מופיעה דוגמה לרישום ביומן Google Cloud Logging ממתווך מותאם אישית בספריית הלקוח של Python. הנתונים האלה זמינים ב-Google Cloud, כך שתוכלו ליצור מדדים על סמך הנתונים ביומן כדי לקבל תובנות על האפליקציה דרך Google Cloud Monitoring. כדי ליצור מדדים באמצעות היומנים שנשלחים ל-Google Cloud Logging, תוכלו להיעזר במדריך ליצירת מדדים מותאמים אישית שמבוססים על יומנים.

לחלופין, אפשר להשתמש בספריות של לקוח Monitoring כדי להגדיר מדדים בקוד ולשלוח אותם ישירות ל-Monitoring, בנפרד מהיומנים.

דוגמה למדדים מבוססי-יומנים

נניח שאתם רוצים לעקוב אחרי הערך is_fault כדי להבין טוב יותר את שיעורי השגיאות באפליקציה. אפשר לחלץ את הערך is_fault מהיומנים למדד מונה חדש, ErrorCount.

הגדרת מדדים

מסננים ותוויות במדדים

ב-Cloud Logging, תוויות מאפשרות לקבץ את המדדים לקטגוריות על סמך נתונים אחרים ביומני. אפשר להגדיר תווית לשדה method שנשלח ל-Cloud Logging כדי לראות את פירוט מספר השגיאות לפי שיטת Google Ads API.

אחרי שמגדירים את המדד ErrorCount ואת התווית Method, אפשר ליצור תרשים חדש בלוח הבקרה של Monitoring כדי לעקוב אחרי ErrorCount, שמקובץ לפי Method.

מרכז הבקרה ErrorCount

התראות

ב-Cloud Monitoring ובכלים אחרים אפשר להגדיר כללי מדיניות התראות שמציינים מתי ואיך ההתראות צריכות להופיע על סמך המדדים שלכם. להוראות להגדרת התראות ב-Cloud Monitoring, אפשר לעיין במדריך בנושא התראות.