הצגת קורלציה בין מדדים לבין עקבות באמצעות נתונים לדוגמה

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

מידע על דוגמאות

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

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

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

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

לדוגמה, בדוגמה של אינסטרומנטציה Go נעשה שימוש ב-OpenTelemetry כדי לכתוב נתוני מדדים, נתוני מעקב ודוגמאות. בצילום המסך הבא מוצג הערך של המדד prometheus/http_server_duration_milliseconds/histogram אחרי כמה הרצות של האפליקציה:

דוגמה למפת חום שבה מוצגות כמה דוגמאות.

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

כשבוחרים את ההערה, מוצג ה-trace שמקושר לדוגמה:

דוגמה לפרטי העקבות של נתון מייצג.

אם המידע שמוצג לא מספיק מפורט, אפשר לבחור באפשרות View in Trace (הצגה ב-Trace), שתפתח את הדף Trace Explorer. בדף הזה אפשר לראות מאפייני מעקב ולגשת לקישורים לרשומות ביומן.

איך מפעילים את התכונה OpenTelemetry exemplars

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

  1. מגדירים את ה-SDK של OpenTelemetry למדדים ולמעקב.
  2. כדי לכלול נתונים לדוגמה באינסטרומנטציה המותאמת אישית, צריך לוודא שהמדד מתועד ביחידה לוגית למעקב, ושההקשר מועבר מהיחידה הלוגית למעקב עם מדידת המדד.

    לדוגמה, הפונקציה computeSubrequests פועלת לפי ההנחיות הקודמות. הפונקציה subRequestsHistogram.Record מופעלת אחרי tracer.Start ולפני span.End, שמופעלת מאוחר יותר. שימו לב גם שההקשר, ctx, מועבר מ-tracer.Start לפונקציה Record:

    func computeSubrequests(r *http.Request, subRequests int) error {
    	// Add custom span representing the work done for the subrequests
    	ctx, span := tracer.Start(r.Context(), "subrequests")
    	defer span.End()
    
    	// Make specified number of http requests to the /single endpoint.
    	for i := 0; i < subRequests; i++ {
    		if err := callSingle(ctx); err != nil {
    			return err
    		}
    	}
    	// record number of sub-requests made
    	subRequestsHistogram.Record(ctx, int64(subRequests))
    	return nil
    }
    

    מידע נוסף על הדוגמה הזו זמין במאמר בנושא הוספת מעקבים ומדדים מותאמים אישית לאפליקציה.

המאמרים הבאים