במאמר הזה מוסבר איך אפשר להשתמש בשירות המנוהל של Google Cloud ל-Prometheus כדי להטמיע נתוני Exemplar של Prometheus במדדי היסטוגרמה. צריך להשתמש באחת מהאפשרויות הבאות:
- גרסה 0.7.0 ואילך של השירות המנוהל ל-Prometheus
- גרסה 2.35.0-gmp.5-gke.0 ואילך של שירות מנוהל ל-Prometheus עם פריסה עצמית של איסוף
- OpenTelemetry Collector
בדרך כלל משתמשים בנתוני דוגמה כדי לשייך מזהי מעקב לנתוני מדדים שנאספים במרווח זמן מסוים, אבל אפשר להשתמש בהם כדי לשייך כל נתון שאינו מדד למדדים שנאספים. אחסון מידע על מעקב עם נתוני המדדים מאפשר לכם לזהות במהירות את המעקבים שקשורים לשינוי פתאומי בערכי המדדים. אתם לא צריכים להשוות באופן ידני בין מידע על מעקב לבין נתוני מדדים באמצעות חותמות זמן כדי לזהות מה קרה באפליקציה כשנתוני המדדים נרשמו.
השירות המנוהל ל-Prometheus תואם גם ל-Cloud Trace וגם לכלי מעקב של צד שלישי, כמו Grafana Tempo.
בצילום המסך הבא מוצג תרשים Grafana של קבוצות של קטגוריות היסטוגרמה ודוגמאות משויכות, עם דוגמה אחת מורחבת:
נתוני Exemplar ב-Prometheus בשירות המנוהל ל-Prometheus
Prometheus תומך בנתוני Exemplar באמצעות פורמט החשיפה OpenMetrics. לדוגמה של OpenMetrics יש את המבנה הבא:
- הערך של הדוגמה: חייב להיות מספר שלם או מספר נקודה צפה של 64 ביט.
- (אופציונלי) חותמת זמן: חייבת להיות שניות של ראשית זמן יוניקס (Unix Epoch), יכולה להיות שלילית.
- מספר תוויות לדוגמה, בדרך כלל כולל ערכים של
trace_idו-span_id. האורך הכולל של כל שמות התוויות והערכים לא יכול להיות יותר מ-128 תווים ב-UTF-8, או 128 rune באפליקציות Go.
השירות המנוהל של Google Cloud ל-Prometheus יכול לקלוט רק נתונים לדוגמה שמצורפים למדדי היסטוגרמה. אי אפשר להטמיע נתונים של ערכי דוגמה שמצורפים למדדי מונה. מדדי היסטוגרמה של Prometheus מומרים לסוג המקביל Distribution ב-Cloud Monitoring, שתומך בנתוני exemplars.
מדדים שאינם מדדי חלוקה ב-Cloud Monitoring לא תומכים בערכים לדוגמה.
הנתונים של המקרים לדוגמה נשארים זמינים לשאילתות למשך 24 חודשים. תקופת השמירה הזו ארוכה יותר מזו של Prometheus במעלה הזרם, שבו נתוני exemplars נשמרים רק בזמן שהנתונים נמצאים בזיכרון, בדרך כלל פחות מ-14 ימים. שירות מנוהל ל-Prometheus מאחסן נתונים לדוגמה עם סדרות הזמן, כך שהנתונים לדוגמה נשמרים בהתאם למדיניות שמירת הנתונים של סדרות הזמן. מידע נוסף על שמירת נתונים ב-Cloud Monitoring זמין במאמר שמירת נתונים.
הפעלת הטמעה של דוגמאות
אם אתם משתמשים בשירות מנוהל ל-Prometheus עם איסוף מנוהל בגרסה 0.7.0 ואילך, ההטמעה של נתונים לדוגמה מופעלת אוטומטית.
אם אתם משתמשים בשירות מנוהל ל-Prometheus עם איסוף בפריסה עצמית, אתם צריכים להפעיל את ההטמעה של נתוני exemplars כשאתם מפעילים את השרת, על ידי ציון דגל התכונה הבא:
--enable-feature=exemplar-storage
כתיבת מדדים עם נתונים לדוגמה
לכל לקוח של Prometheus יש הוראות משלו לשימוש נכון בנתוני exemplars באותו לקוח. כדי שהאפליקציה תחשוף מדדים בפורמט OpenMetrics כדי שמערכת Prometheus תסרוק אותם מנקודת הקצה /metrics של האפליקציה, צריך לפעול לפי ההוראות האלה. לדוגמה:
- דוגמה ל-Java ב-OpenTelemetry
- Prometheus Java client
- Prometheus Python client
- Prometheus Go client
שילוב עם Cloud Trace
אתם יכולים לכתוב היסטוגרמות של Prometheus עם נתונים לדוגמה שתואמים ל-Cloud Trace. אפשר להציג את הנתונים, כולל הדוגמאות, בתרשים מפת חום של Cloud Monitoring. בעזרת הדוגמאות אפשר לראות פרטים על טווחי המעקב הקשורים. אפשר גם לנתח את נתוני העקבות ב-Trace. מידע נוסף זמין במאמר בנושא הצגת נתונים לדוגמה בתרשים מפת חום.
כדי ליצור נתונים לדוגמה שתואמים ל-Trace, הנתונים לדוגמה שלכם ב-Prometheus צריכים לכלול את התוויות הבאות:
project_idtrace_idspan_id
אם הדוגמה כוללת את שלוש התוויות האלה, המערכת משתמשת בתוויות כדי ליצור אובייקט SpanContext שתואם ל-Trace, שמצורף לדוגמה שנוצרה עבור קטגוריית Distribution ב-Cloud Monitoring.
כל התוויות מלבד אלה שמרכיבות SpanContext
מלאות מתווספות לאובייקט DroppedLabels שמצורף לדוגמה לקטגוריית Distribution.
שאילתות של מדדים עם דוגמאות
ממשק ה-API של Prometheus חושף את נקודת הקצה api/v1/query_exemplars לשליפת נתונים של exemplars.
ממשקי שאילתות שהוגדרו לאינטראקציה עם השירות המנוהל של Google Cloud ל-Prometheus כוללים באופן אוטומטי שאילתות של נתונים לדוגמה. מידע על הגדרת ממשקי שאילתות מופיע במאמרים שאילתה באמצעות Grafana או שאילתה באמצעות Prometheus API או ממשק משתמש.