במאמר הזה מוסבר איך להוסיף קוד של יכולת ניטור לאפליקציה באמצעות OpenTelemetry. OpenTelemetry מספקת ספריות של מכשור שמייצרות טלמטריה למסגרות פופולריות. אפשר להוסיף למדדי הטלמטריה שנוצרו על ידי הספרייה מכשירים מותאמים אישית שמודדים את ההתנהגות הספציפית של האפליקציה.
העקרונות והמושגים שמתוארים במסמך הזה רלוונטיים לאפליקציות שנכתבו בכל השפות שנתמכות ב-OpenTelemetry. למידע נוסף על מכשור, אפשר לעיין במסמכים הבאים:
קוד לדוגמה, שהוא אותה אפליקציית Go שמתוארת בדוגמה למכשיר Go, זמין ב-GitHub. כדי לראות את הדוגמה המלאה, בסרגל הכלים של הדוגמה, לוחצים על הלוגו של GitHub.
לפני שמתחילים
מפעילים את Cloud Logging API, Cloud Monitoring API ו-Cloud Trace API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים
יצירת עקבות בהתאמה אישית
כדי ליצור מעקבים בהתאמה אישית מהאפליקציה, מוסיפים קוד אינסטרומנטציה שיוצר טווחים של OpenTelemetry. ב-OpenTelemetry, span הם אבני הבניין של עקבות.
כדי ליצור יחידה לוגית למעקב:
עליך לבצע שינויים באפליקציה כדי לקבל
Tracerשל OpenTelemetry. ב-OpenTelemetry, כלי למעקב הוא יוצר של טווחים. אפשר להשיג אובייקט Tracer כמו בדוגמה הבאה:שם ה-tracer, שמיוצג על ידי
scopeName, מזהה את היקף המכשור של העקבות שנוצרו.משתמשים במופע
tracerכדי ליצור טווחים. בדוגמת הקוד הבאה, הפונקציהcomputeSubrequestsיוצרת טווח בכל פעם שקוראים לה:בדוגמת הקוד הקודמת, ה-span שנוצר מהפונקציה
computeSubrequestsמייצג את העבודה שבוצעה על ידי הפונקציה כולה. הסיבה לכך היא שהשלב הראשון של הפונקציה הוא להתחיל טווח חדש באמצעותtracer.Startומילת המפתחdefer, והפונקציהspan.End()מוודאת שהטווח מסתיים רגע לפני שהפונקציה יוצאת.
יצירת מדדים מותאמים אישית
כדי ליצור מדדים מהאפליקציה, מוסיפים קוד מכשור שמתעד מדידות שבוצעו במהלך ההפעלה של האפליקציה.
כדי ליצור מדדים:
עליך לבצע שינויים באפליקציה כדי לקבל
Meterשל OpenTelemetry. ב-OpenTelemetry, אובייקט Meter מספק גישה לכלי מדידה לצורך תיעוד מדדים. אפשר להשיג מדד כמו בדוגמה הבאה:שם המונה, שמיוצג על ידי
scopeName, מזהה את היקף המדידה של המדדים שנוצרו.משתמשים במופע
meterכדי ליצור מכשירים שיכולים להקליט מדדים. לדוגמה, בקוד הבא אנחנו משתמשים ב-meterכדי ליצור OpenTelemetry Histogram:הקוד הקודם יוצר היסטוגרמה בשם
sleepHistogram.משתמשים במופע
sleepHistogramכדי לתעד את זמן השינה, שנקבע כשמפעילים את הפונקציהrandomSleep:המדדים שתועדו מהמכשירים האלה מיוצאים מהאפליקציה שלכם על סמך הגדרות הייצוא של OpenTelemetry.
המאמרים הבאים
- הצגת קורלציה בין מדדים ועקבות באמצעות דוגמאות מייצגות
- OpenTelemetry
- OpenTelemetry Instrumentation
- מודל נתוני המדדים של OpenTelemetry