במסמך הזה מתואר הפורמט שבו מאוחסנים טווחים של מעקב. הפורמט של הנתונים בדרך כלל עקבי עם קובצי הפרוטו שמוגדרים על ידי פרוטוקול OpenTelemetry OTLP. עם זאת, יכול להיות ששדות יומרו מסוג נתונים ספציפי ל-OpenTelemetry לסוג נתונים של JSON לפני האחסון.
Telemetry API משתמש ב-OpenTelemetry OTLP Protocol.
הפרוטוקול הזה מסתמך על הקבצים trace_service.proto ו-trace.proto. מידע על מגבלות השדות זמין במאמר מגבלות של Telemetry API.
Cloud Trace API לא משתמש בפרוטוקול OpenTelemetry OTLP, ומגדיר פורמט נתונים קנייני. נתונים שמועברים אל Google Cloud הפרויקט שלכם דרך ה-API הזה מומרים לפורמט שמתואר במסמך הזה. עם זאת, חלות המגבלות של Cloud Trace API.
פורמט אחסון של טווח
| שדה | תיאור | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trace_id |
מזהה ייחודי גלובלי של המעקב.
המזהה הזה הוא ערך מספרי של 128 ביט בפורמט של מחרוזת הקסדצימלית בגודל 16 בייט. לדוגמה:
ערך מספרי של אפס לא תקין. ה- |
||||||||||||||||
span_id |
חובה. מזהה של התג span.
המזהה חייב להיות ייחודי בתוך עקבה.
המזהה הזה הוא ערך מספרי בן 64 ביט
בפורמט של מחרוזת הקסדצימלית באורך 8 בתים.
לדוגמה, ערך מספרי של אפס לא תקין. |
||||||||||||||||
trace_state |
השדה הזה תואם לכותרת ספריות OpenTelemetry מתעדות באופן אוטומטי את הערך של הכותרת |
||||||||||||||||
parent_span_id |
זה שינוי אופציונלי. מזהה את הפעולה שהפעילה את הטווח הזה. בטווח 'root' מזהה טווח האב מוגדר כ-null. הקשר בין טווחי זמן הורה-צאצא משמש כלי ויזואליזציה לבניית מבנה העץ. |
||||||||||||||||
name |
חובה. שם הפעולה שבוצעה. השם יכול להיות שם של method או שם אחר של אתר לכל קריאה. אם משתמשים באותו שם לאותו קובץ הפעלה ולאותה נקודת קצה, קל יותר לקשר בין טווחי זמן שונים במעקב. שיטות מומלצות מפורטות במאמר איך לתת שמות לטווחים. שם הטווח עובר ניקוי ומוצג במסוף Google Cloud . |
||||||||||||||||
kind |
מציין איפה במערכת התרחשה הפעולה. הערך תואם לספירה OpenTelemetry: Span Kind:
|
||||||||||||||||
start_time |
חובה. שעת ההתחלה של יחידה לוגית למעקב, מעוגלת לננו-שנייה הקרובה ביותר. |
||||||||||||||||
start_time_unix_nano |
זמן ההתחלה בננו-שניות, לפי ראשית זמן יוניקס (Unix epoch). |
||||||||||||||||
end_time |
חובה. שעת הסיום של יחידה לוגית למעקב, מעוגלת לננו-שנייה הקרובה ביותר. |
||||||||||||||||
end_time_unix_nano |
זמן הסיום בננו-שניות, לפי ראשית זמן יוניקס (Unix epoch). |
||||||||||||||||
receive_time |
חובה. השעה שבה התקבל הטווח, מעוגלת לננו-שנייה הקרובה ביותר. |
||||||||||||||||
receive_time_unix_nano |
זמן הסיום בננו-שניות, לפי ראשית זמן יוניקס (Unix epoch). |
||||||||||||||||
duration_unix_nano |
משך הזמן בננו-שניות. |
||||||||||||||||
attributes |
כל מאפיין הוא צמד מפתח/ערך. התכונות שזמינות לכם תלויות בנתוני העקבות. מבנה המאפיינים תואם לתקן OpenTelemetry. מידע נוסף זמין במאמר OpenTelemetry: Attributes. ב-OpenTelemetry מוגדרות מוסכמות סמנטיות למאפיינים. מידע נוסף על המוסכמות האלה זמין במאמר בנושא מוסכמות סמנטיות של מעקב. דוגמאות למאפיינים: "yourcompany.your.own.key": "your own value" "network.protocol.name": "http" "network.protocol.version": "1.1" "http.response.status_code": "200" "network.peer.address": "REDACTED" |
||||||||||||||||
dropped_attributes_count |
מספר המאפיינים שהמערכת פסלה. יכול להיות שמאפיינים ייפסלו כי המפתחות שלהם ארוכים מדי או כי יש יותר מדי מאפיינים. אם הערך הוא אפס, לא נמחקו מאפיינים. יכול להיות שהערך הזה מוגדר על ידי מכשור בצד הלקוח או על ידי אפליקציה. השרת יכול להגדיל את הערך. |
||||||||||||||||
events |
אירוע שמתרחש בנקודת זמן מסוימת. כל אירוע מכיל את השדות הבאים.
|
||||||||||||||||
dropped_events_count |
מספר האירועים שהושלכו. יכול להיות שהאירועים יימחקו כי יש יותר מדי אירועים. אם הערך הוא אפס, לא נמחקו אירועים. |
||||||||||||||||
links |
קישורים שמשויכים לטווח. קישורים הם הפניות מיחידה לוגית למעקב זו ליחידה לוגית למעקב אחרת באותו מעקב או במעקב אחר. קישורים מספקים מנגנון לקורלציה בין טווחי זמן ממעקב אחד לבין טווחי זמן במעקב אחר. לדוגמה, נניח שפעולה אחת גורמת להתרחשות של פעולה אסינכרונית. בתרחיש הזה יש שני עקבות, אחד לפעולה המקורית ואחד לפעולה האסינכרונית. אפשר להשתמש בקישורים כדי ליצור קורלציה בין הטווחים בעקבות האלה. כל קישור מכיל את השדות הבאים.
|
||||||||||||||||
dropped_links_count |
מספר הקישורים שהושלכו. יכול להיות שקישורים יימחקו כי יש יותר מדי קישורים. אם הערך הוא אפס, לא נמחקו קישורים. |
||||||||||||||||
status |
בשדה הזה מתועד סטטוס ההשלמה של טווח.
הערך של שדה המשנה
שדה המשנה |
||||||||||||||||
resource |
בשדה הזה מצוינת התשתית או מערכת האירוח שממנה נאספה הטלמטריה או שהטלמטריה מתייחסת אליה. לדוגמה, נניח שיש אפליקציה שפועלת ב-Google Kubernetes Engine. המאפיינים של המשאב הזה יכולים לכלול את שם התהליך ואת מרחב השמות. השדה הזה מכיל את שדות המשנה הבאים:
מידע נוסף זמין במאמר OpenTelemetry: Resources. |
||||||||||||||||
instrumentation_scope |
בשדה הזה מצוין הרכיב של הספרייה או רכיב באפליקציה עבור לדוגמה, נניח שהאפליקציה checkout-service נפרסה ב-Cloud Run, כלומר יחידה לוגית למעקב של לקוח, כמו WritePaymentInfoToStripe, יכולה להיות יחידה לוגית למעקב שמדווחת על ידי payment-processor-library, שנמצא בתוך שירות Cloud Run שנקרא checkout-service. השדה הזה מכיל את שדות המשנה הבאים:
מידע נוסף זמין במאמר בנושא OpenTelemetry: Instrumentation scope. |
||||||||||||||||
resource_schema_link |
השדות האלה חייבים להיות כתובת URL בפורמט של מחרוזת. השדות האלה מכילים כתובת URL שמחזירה קובץ סכימה של משאב. הפורמט של קובץ הסכימה והנתונים מוגדר על ידי OpenTelemetry. מידע נוסף זמין במאמר בנושא OpenTelemetry: Schemas. אפשר להגדיר את השדות האלה רק כשמשתמשים ב-Telemetry API. ממשק ה-API הזה לא מאמת שהנתונים תואמים לסכימה שהוגדרה. |
||||||||||||||||
scope_schema_link |
השדות האלה חייבים להיות כתובת URL בפורמט של מחרוזת. השדות האלה מכילים כתובת URL שמחזירה קובץ סכימה להיקף. הפורמט של קובץ הסכימה והנתונים מוגדר על ידי OpenTelemetry. מידע נוסף זמין במאמר בנושא OpenTelemetry: Schemas. אפשר להגדיר את השדות האלה רק כשמשתמשים ב-Telemetry API. ממשק ה-API הזה לא מאמת שהנתונים תואמים לסכימה שהוגדרה. |
||||||||||||||||
apphub |
תוויות ספציפיות לאפליקציה זמינות כשמרווחי זמן של מעקב נוצרים על ידי אפליקציות של App Hub, כשהאפליקציות האלה פועלות בתשתית נתמכת או כשהן מוגדרות למעקב. מידע נוסף על מעקב אחר אפליקציות ומתי התוויות האלה זמינות אפשר למצוא במאמר סקירה כללית על מעקב אחר אפליקציות. השדה הזה מכיל את שדות המשנה
|