אינסטרומנטציה מתייחסת לקוד הספציפי שיוצר או אוסף נתונים על התנהגות זמן הריצה של האפליקציה. בתוך האפליקציה, אינסטרומנטציה, כמו זו שמסופקת על ידי OpenTelemetry, יכולה לאסוף מידע ספציפי לדומיין על זמן הריצה של השפה, על המסגרת או על הלוגיקה של האפליקציה, ואז לשלוח את הנתונים האלה ל Google Cloud פרויקט או ליעד אחר. הנתונים האלה, שנקראים גם טלמטריה, כוללים מדדים, יומנים ועקבות.
מדדים ברמת המערכת, כמו שימוש במעבד, שימוש בזיכרון ושימוש בדיסק, חשובים לזיהוי בעיות באפליקציה, אבל הם לא מספקים תובנות רבות לגבי בעיות ברמת האפליקציה. אינסטרומנטציה יכולה לעזור לאפליקציה שלכם ליצור את הנתונים שאתם צריכים כדי לאבחן את שורש הבעיה, כי הטלמטריה שמתקבלת מראה לכם מה קורה בתוך האפליקציה. לדוגמה, יומנים כוללים לרוב הקשר לגבי התוכנית, כמו הודעת שגיאה ספציפית או מעקב אחר מחסנית (stacktrace), והמיקום בקוד המקור. באופן דומה, עקבות מבוזרים עוזרים להבין איך כמה שירותים מקיימים אינטראקציה כשמעבדים בקשות. המדדים מאפשרים לקבל התראה אם האפליקציה לא מתנהגת כמו שצריך.
הטמעה של כלי מדידה באפליקציה כוללת יצירה של טלמטריה ושליחה שלה למקום שבו אפשר לאחסן את הנתונים ולבצע עליהם שאילתות. לדוגמה, יכול להיות שהאינסטרומנטציה שלכם תשלח טלמטריה לפרויקט Google Cloud . שירותי Google Cloud Observability עוזרים לכם לאסוף, לנתח ולקשר נתוני טלמטריה. הם גם מספקים הגדרות ברירת מחדל מובנות שיעזרו לכם להתחיל מהר יותר, כמו מרכזי בקרה ומדיניות התראות שמוגדרים כברירת מחדל. מידע נוסף על Google Cloud Observability זמין במאמר בנושא Observability in Google Cloud.
האיור הבא ממחיש כיצד אפליקציה משתמשת באינסטרומנטציה כדי ליצור ולשלוח טלמטריה למערכת אחסון:
כפי שמודגם באיור הקודם, קוד האינסטרומנטציה קיים בתהליך של האפליקציה ומתקשר עם האפליקציה כדי ליצור נתוני טלמטריה. לאחר מכן, מסגרת האינסטרומנטציה מייצאת את נתוני הטלמטריה למערכת אחסון מוגדרת. באיור, מערכת האחסון היא הפרויקט שלכם. Google Cloud
מידע על מסגרות אינסטרומנטציה שאינן ספציפיות לספק
גם אם אתם מתכננים לשלוח נתוני טלמטריה רק אל Google Cloud, מומלץ להשתמש במסגרת ניהול מכשירים (Instrumentation) בקוד פתוח שאינה ספציפית לספק מסוים, כדי לנהל את האפליקציות שלכם. יש כמה יתרונות חשובים לשימוש בסוגים האלה של מסגרות:
- ללא נעילת ספק
- מסגרות שאינן ספציפיות לספק מסוים לא קשורות לספק מסוים, והן מספקות מודל נתונים משלהן לטלמטריה שנוצרת. לכן, אתם יכולים לשלוח נתונים לכמה ספקים, ובדרך כלל אתם יכולים לשנות את הספק שבו אתם משתמשים בלי לשנות את הקוד.
- נהלים סטנדרטיים לאיסוף טלמטריה
- מסגרות שתוכננו היטב, כמו OpenTelemetry, מספקות גישה סטנדרטית לאיסוף טלמטריה מאפליקציות. אפשר להשתמש באותו מבנה לאפליקציות שנכתבו בשפות נתמכות. בנוסף, בגלל שהמסגרת היא סטנדרטית, אפשר לאסוף ולהשוות את נתוני הטלמטריה מכל השירותים.
- ספריות שניתן להפעיל אותן יחד
- מסגרות של אינסטרומנטציה כוללות מערכת אקולוגית עשירה של ספריות שאוספות אותות טלמטריה, והספריות האלה פועלות יחד. לדוגמה, OpenTelemetry מספקת ספריות לאיסוף נתוני מעקב ולאיסוף נתוני מדדים. אפשר להשתמש בספרייה אחת או בשתי הספריות.
המלצות כלליות
בקטע הזה יש המלצות כלליות לגבי הטמעה של כלי מדידה באפליקציה. להנחיות ספציפיות ל- Google Cloud, ראה בחירת גישה לאינסטרומנטציה.
כדי לאסוף מדדים, מומלץ להשתמש ב-OpenTelemetry או ב-Prometheus:
OpenTelemetry הוא פרויקט קוד פתוח שמספק מסגרת מאוחדת לאינסטרומנטציה של אפליקציות. היא גם מספקת ספריות של אינסטרומנטציה לספריות פופולריות. OpenTelemetry מספקת סוכן עצמאי, OpenTelemetry Collector, שיכול לקבל, לשנות ולייצא טלמטריה. קובץ התצורה של OpenTelemetry Collector קובע את ההתנהגות של OpenTelemetry Collector. כדי לשלוח טלמטריה לנציג או ישירות למערכת אחסון, משתמשים ב-OpenTelemetry Protocol (OTLP).
Prometheus היא מערכת פופולרית לניטור קוד פתוח. אתם יכולים להשתמש בספריות הלקוח של Prometheus כדי ליצור מדדים מהאפליקציה שלכם, ויש מערכת אקולוגית של צד שלישי של ספריות אינסטרומנטציה למסגרות פופולריות. לקוחות Prometheus חושפים את המדדים שלהם כנקודת קצה (endpoint) של HTTP שאפשר לגרד באמצעות סוכן.
כדי לאסוף עקבות, מומלץ להשתמש ב-OpenTelemetry.
כדי לאסוף יומנים, מומלץ להשתמש במסגרת שאפשר להגדיר אותה כך שתפיק יומנים מובְנים ב-JSON עבור Cloud Logging. לכתיבת נתוני יומן, מומלץ:
Google Cloud solutions
Google Cloud Observability מספק אפשרויות גמישות לאיסוף טלמטריה:
דוגמאות קוד שמראות איך להטמיע באפליקציה את האפשרות לשלוח נתוני טלמטריה אל Google Cloud:
כדי ללמוד איך לאסוף נתונים של זמן אחזור מהאפליקציות שלכם ולצפות בהם, אפשר לעיין במאמר בנושא הצגת זמן האחזור של בקשות באפליקציה.
מידע על הפתרון המנוהל באופן מלא, מרובה העננים וחוצה הפרויקטים של Prometheus זמין במאמר בנושא השירות המנוהל של Google Cloud ל-Prometheus. Google Cloud
מידע על הגדרת סוכן תפעול זמין במאמרי העזרה הבאים:
המאמרים הבאים
מידע נוסף על Google Cloud Observability זמין במאמר בנושא Observability in Google Cloud.