ייצוא ל-BigQuery

במסמך הזה מתוארים כמה מאפיינים של מערך הנתונים ב-BigQuery שנוצר כשמייצאים עקבות מ-Cloud Trace ל-BigQuery.

סכימה

הסכימה של הטבלה שבה מאוחסנים נתוני המעקב נקבעת לפי ההגדרה של Trace V2 API של Span.

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

שמירת נתונים

אתם מגדירים את מדיניות שמירת הנתונים של טבלאות BigQuery. מידע על ניהול טבלאות ונתונים בטבלאות זמין במאמר עבודה עם טבלאות.

סוג הטבלה

אם מגדירים sink לייצוא של יומני מעקב ל-BigQuery,‏ Trace מגדיר טבלה מחולקת למחיצות (Partitions) לפי זמני כתיבת הנתונים. מידע מפורט על טבלאות עם חלוקה למחיצות, כולל איך ליצור, לנהל, לשלוח שאילתות ולמחוק את הטבלאות האלה, זמין במאמר עבודה עם טבלאות עם חלוקה למחיצות.

שאילתות לדוגמה

בשליחת השאילתות הבאות, DATASET הוא שם מערך הנתונים ב-BigQuery ו-MY_TABLE הוא שם הטבלה במערך הנתונים הזה.

  • כדי להציג את כל העמודות בטבלה עבור התאריך 20 בנובמבר 2019, ולהגביל את התוצאה ל-10 שורות, מריצים את השאילתה:

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
  • כדי להציג את כל המחיצות שזמינות בטבלה, מריצים את השאילתה:

    SELECT
      _PARTITIONTIME as pt
    FROM
      `DATASET.MY_TABLE`
    GROUP BY 1

שאילתת HipsterShop

‫HipsterShop היא אפליקציית הדגמה שזמינה ב-GitHub.

השאילתה הבאה לדוגמה ממחישה איך אפשר להשתמש בשאילתות BigQuery כדי לאסוף מידע שלא זמין בקלות באמצעות ממשק Trace.

השאילתה הפנימית מוצאת את כל טווחי הזמן שתואמים לביטוי הרגולרי שצוין, שהתקבלו ב-2 בדצמבר 2019. השאילתה החיצונית בוחרת את הפריטים הבאים להצגה:

  • name
  • מספר טווחי התאריכים שתואמים
  • מספר מזהי העקבות הייחודיים
  • הכמויות ה-50, ה-90 וה-99
  • נתיב HTTP
  • הודעת השגיאה

התוצאות מוצגות ממוינות לפי מספר המעקב:

SELECT t0.span.displayName.value, count(t0.span.spanId) as spanCount, count(distinct traceId) as traceCount,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(50)] as p50,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(95)] as p95,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(99)] as p99,
t0.span.attributes.attributeMap._http_path,
t0.span.attributes.attributeMap._error_message
FROM (
SELECT *,
REGEXP_EXTRACT(span.name, r"./traces/([a-f0-9]+).") as traceId,
TIMESTAMP_DIFF(span.endTime,span.startTime, MILLISECOND) as milliseconds
FROM `hipstershop-demo.Hipstershop_trace_export.cloud_trace`
WHERE DATE(_PARTITIONTIME) = "2019-12-02") AS t0
WHERE t0.span.parentSpanId is NULL
GROUP by t0.span.displayName.value, t0.span.attributes.attributeMap._http_path,t0.span.attributes.attributeMap._error_message
ORDER BY traceCount DESC
LIMIT 1000
 

עבור התקנה ספציפית של האפליקציה הזו, תוצאת השאילתה היא כפי שמוצג:

הצגת התשובה לשאילתה הקודמת.

צפייה בנתוני מעקב

כדי להציג את נתוני העקבות באמצעות ממשק BigQuery, בוחרים את הטבלה עם העקבות שייצאתם.