במאמר הזה מוסבר איך להוסיף קוד של יכולת צפייה לאפליקציה באמצעות OpenTelemetry. OpenTelemetry מספקת ספריות של מכשור שמייצרות טלמטריה למסגרות פופולריות. אפשר להוסיף למדדי הטלמטריה שנוצרו על ידי הספרייה אינסטרומנטציה מותאמת אישית שמודדת את ההתנהגות הספציפית של האפליקציה.
העקרונות והמושגים שמתוארים במסמך הזה רלוונטיים לאפליקציות שנכתבו בכל השפות שנתמכות ב-OpenTelemetry. מידע נוסף על אינסטרומנטציה זמין במאמרי העזרה הבאים:
קוד לדוגמה, שהוא אותה אפליקציית Go שמתוארת בדוגמה למכשיר Go, זמין ב-GitHub. כדי לראות את הדוגמה המלאה, לוחצים על more_vert More (עוד) ואז בוחרים באפשרות View on GitHub (צפייה ב-GitHub).
לפני שמתחילים
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
יצירת עקבות בהתאמה אישית
כדי ליצור מעקבים בהתאמה אישית מהאפליקציה, מוסיפים קוד אינסטרומנטציה שיוצר טווחים של OpenTelemetry. ב-OpenTelemetry, טווחים הם אבני הבניין של עקבות.
כדי ליצור יחידה לוגית למעקב, בצע את הפעולות הבאות:
צריך לשנות את האפליקציה כדי לקבל
Tracerשל OpenTelemetry. ב-OpenTelemetry, tracer הוא יוצר של span. אפשר להשיג אובייקט 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