שאילתה וניתוח של עקבות

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

אם רוצים לראות או לבדוק עקבות או טווחים ספציפיים, או לראות מאפיינים שמצורפים לטווחים, צריך להשתמש בדף Trace Explorer. מידע על הדף הזה זמין במאמר איתור עקבות ועיון בהם.

למעקב, אפשר לשלוח שאילתה לקטגוריית נתונים של יכולת תצפית בשם _Trace. תצוגה אחת, _AllSpans, זמינה לשליחת שאילתות. מידע נוסף על אופן האחסון של נתוני המעקב זמין במאמר סקירה כללית על אחסון.

מידע על מערכי נתונים מקושרים ב-BigQuery

לא צריך מערך נתונים מקושר ב-BigQuery כדי להריץ שאילתות על נתוני המעקב או על נתוני המעקב והיומן. בתרחישים כאלה, אפשר להשתמש בדף Observability Analytics. מידע על שליחת שאילתות לנתוני יומנים זמין במאמר שליחת שאילתות ליומנים וניתוח שלהם באמצעות Observability Analytics.

אתם צריכים מערך נתונים מקושר ב-BigQuery אם אתם רוצים לבצע את הפעולות הבאות:

במאמר הזה לא מוסבר איך ליצור מערך נתונים מקושר או איך להגדיר את Observability Analytics להרצת שאילתות במשבצות שמורות. מידע על הנושאים האלה זמין במאמר הפעלת שאילתה על מערך נתונים מקושר ב-BigQuery.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Observability API.

    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.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Observability API.

    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.

    Enable the API

  8. כדי לקבל את ההרשאות שדרושות לטעינת הדף Observability Analytics, לכתיבה, להרצה ולשמירה של שאילתות פרטיות בנתוני המעקב, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

    • Observability View Accessor (roles/observability.viewAccessor) בתצוגות הניראות שרוצים לשלוח אליהן שאילתות. התפקיד הזה תומך בתנאי IAM, שמאפשרים להגביל את ההרשאה לתצוגה ספציפית. אם לא מצרפים תנאי להענקת התפקיד, לחשבון המשתמש תהיה גישה לכל תצוגות הנתונים של יכולת התצפית.
    • Observability Analytics User (roles/observability.analyticsUser) on your project. התפקיד הזה כולל את ההרשאות שנדרשות לשמירה ולהרצה של שאילתות פרטיות, ולהרצה של שאילתות משותפות.
    • מציג היומנים (roles/logging.viewer) בפרויקט.

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

    יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הצגת הסכימה

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

כדי לזהות את הסכימה:

  1. נכנסים לדף Observability Analytics במסוף Google Cloud :

    עוברים אל Observability Analytics

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

  2. בתפריט Views, עוברים לקטע Traces ובוחרים באפשרות _Trace.Spans._AllSpans.

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

    מידע על הסכימה זמין במאמר סכימת אחסון לנתוני מעקב.

    אם לא מופיע תצוגה בשם _Trace.Spans._AllSpans, סימן שהפרויקטGoogle Cloud לא מכיל קטגוריה של נתונים שניתנים לצפייה בשם _Trace. מידע על פתרון הכשל הזה מופיע במאמר Trace storage initialization fails.

נתוני מעקב של שאילתות

בקטע הזה מוסבר על הגישות שבהן אפשר להשתמש כדי לשלוח שאילתות לנתוני העקבות:

  • טוענים שאילתה שהוגדרה על ידי המערכת, עורכים אותה ומריצים אותה.
  • מזינים ומריצים שאילתה מותאמת אישית. לדוגמה, אפשר להדביק שאילתה קיימת או לכתוב שאילתה חדשה. שאילתות מותאמות אישית יכולות לכלול הצטרפויות, שאילתות מקוננות ומשפטי SQL מורכבים אחרים. דוגמאות אפשר לראות בשאילתות SQL לדוגמה.
  • בוחרים אפשרויות בתפריט כדי ליצור שאילתה, ואז מריצים את השאילתה. הכלי Observability Analytics ממיר את הבחירות שלכם לשאילתת SQL, שאפשר גם לראות וגם לערוך.

טעינה, עריכה והרצה של השאילתה שמוגדרת על ידי המערכת

  1. נכנסים לדף Observability Analytics במסוף Google Cloud :

    עוברים אל Observability Analytics

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

  2. בתפריט Views, עוברים לקטע Traces ובוחרים באפשרות _Trace.Spans._AllSpans.

    אם לא מופיע תצוגה בשם _Trace.Spans._AllSpans, סימן שהפרויקטGoogle Cloud לא מכיל קטגוריה של נתונים שניתנים לצפייה בשם _Trace. מידע על פתרון הכשל הזה מופיע במאמר Trace storage initialization fails.

  3. מבצעים אחת מהפעולות הבאות:

    • כדי לטעון שאילתה שמוגדרת על ידי המערכת ומבוססת על הכלי ליצירת שאילתות, שמאפשר להגדיר את השאילתה באמצעות בחירות בתפריט, מוודאים שבחלונית שאילתה מוצג הכלי ליצירת שאילתות. אם מוצג עורך SQL, לוחצים על  Builder.

    • כדי לטעון שאילתה שמוגדרת על ידי המערכת ומחלצת ערכי JSON, מוודאים שחלונית Query מציגה את עורך ה-SQL. אם בחלונית מוצג הכלי ליצירת שאילתות, לוחצים על  SQL.

  4. בחלונית סכימה, בוחרים באפשרות שאילתה ולוחצים על החלפה.

    בחלונית Query מוצגת שאילתה שמוגדרת על ידי המערכת. אם בחרתם במצב הכלי ליצירת שאילתות אבל אתם רוצים לראות את שאילתת ה-SQL, לוחצים על  SQL.

  5. אופציונלי: משנים את השאילתה.

  6. כדי להריץ את השאילתה, עוברים לסרגל הכלים ולוחצים על Run Query (הרצת שאילתה).

    תוצאות השאילתה מוצגות בטבלה ב-Observability Analytics. עם זאת, אפשר ליצור תרשים, ואפשר גם לשמור את הטבלה או התרשים במרכז בקרה בהתאמה אישית. מידע נוסף זמין במאמר בנושא יצירת תרשים של תוצאות שאילתת SQL.

    אם בסרגל הכלים מוצגת האפשרות Run in BigQuery, צריך להחליף את מנוע השאילתות של Observability Analytics למנוע ברירת המחדל. כדי לבצע את השינוי הזה, בסרגל הכלים של החלונית שאילתה, לוחצים על הגדרות ואז בוחרים באפשרות Analytics (ברירת מחדל).

הזנה והרצה של שאילתה בהתאמה אישית

כדי להזין שאילתת SQL, מבצעים את הפעולות הבאות:

  1. נכנסים לדף Observability Analytics במסוף Google Cloud :

    עוברים אל Observability Analytics

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

  2. בחלונית Query, לוחצים על  SQL.

    • כדי לציין טווח זמן, מומלץ להשתמש בבורר time-range. אם מוסיפים פסקה WHERE שמציינת את השדה timestamp, הערך הזה מבטל את ההגדרה בבורר טווחי הזמן והבורר מושבת.

    • דוגמאות אפשר לראות בשאילתות SQL לדוגמה.

    • בעורך ה-SQL מוצג השם המוגדר במלואו של התצוגה, שמופיע בפורמט הבא:_Trace.Spans._AllSpans

      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`

      השדות בביטוי הקודם מייצגים את המשמעויות הבאות:

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

  3. כדי להריץ את השאילתה, עוברים לסרגל הכלים ולוחצים על Run Query (הרצת שאילתה).

    תוצאות השאילתה מוצגות בטבלה ב-Observability Analytics. עם זאת, אפשר ליצור תרשים, ואפשר גם לשמור את הטבלה או התרשים במרכז בקרה בהתאמה אישית. מידע נוסף זמין במאמר בנושא יצירת תרשים של תוצאות שאילתת SQL.

    אם בסרגל הכלים מוצגת האפשרות Run in BigQuery, צריך להחליף את מנוע השאילתות של Observability Analytics למנוע ברירת המחדל. כדי לבצע את השינוי הזה, בסרגל הכלים של החלונית שאילתה, לוחצים על הגדרות ואז בוחרים באפשרות Analytics (ברירת מחדל).

איך בונים, עורכים ומריצים שאילתה

בממשק של הכלי ליצירת שאילתות אפשר ליצור שאילתה על ידי בחירה מתוך תפריטים. הכלי Observability Analytics ממיר את הבחירות שלכם לשאילתת SQL, שאפשר לראות ולערוך. לדוגמה, אפשר להתחיל להשתמש בממשק של כלי ליצירת שאילתות ואז לעבור לעורך SQL כדי לשפר את השאילתה.

תמיד אפשר להמיר את הבחירות בתפריט מתוך הממשק של כלי בניית השאילתות לשאילתת SQL ב-Observability Analytics. עם זאת, לא כל שאילתות ה-SQL יכולות להיות מיוצגות בממשק של כלי ליצירת שאילתות. לדוגמה, אי אפשר לייצג בממשק הזה שאילתות עם הצטרפויות.

כדי ליצור שאילתה:

  1. נכנסים לדף Observability Analytics במסוף Google Cloud :

    עוברים אל Observability Analytics

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

  2. אם בחלונית Query מוצג עורך SQL, בוחרים באפשרות Builder כדי לפתוח את החלונית הכלי ליצירת שאילתות.

  3. בתפריט מקור בוחרים את התצוגה שרוצים לשלוח לגביה שאילתה. הבחירות שלכם ממופות לסעיף FROM בשאילתת ה-SQL.

  4. אופציונלי: אפשר להשתמש בתפריטים הבאים כדי להגביל את טבלת התוצאות או לעצב אותה:

    • חיפוש בכל השדות: חיפוש מחרוזות תואמות. הבחירות שלכם ממופות לסעיף WHERE בשאילתת ה-SQL.

    • עמודות: בוחרים את העמודות שיופיעו בטבלת התוצאות. הבחירות שלכם ממופות לסעיפים SELECT בשאילתת ה-SQL.

      כשבוחרים שם שדה בתפריט הזה, נפתחת תיבת דו-שיח. בתיבת הדו-שיח הזו אפשר לבצע את הפעולות הבאות:

      • משתמשים בתפריט כדי לצבור או לקבץ את הנתונים.

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

      • המרת ערך מכל סוג לסוג נתונים אחר שצוין. מידע נוסף זמין במאמרי העזרה בנושא CAST.

      • חילוץ של מחרוזת משנה של ערכים באמצעות ביטויים רגולריים. מידע נוסף זמין במאמרי העזרה בנושא REGEXP_EXTRACT.

    • מסננים: מוסיפים מסננים כשרוצים להגביל את השאילתה ליחידות לוגיות למעקב שמכילות מאפיין ספציפי או מזהה יחידה לוגית למעקב. בתפריט מפורטות כל אפשרויות הסינון הזמינות. הבחירות שלכם ממופות לסעיף WHERE בשאילתת ה-SQL.

    • מיון לפי: הגדרת העמודות למיון, וקביעה אם המיון הוא בסדר עולה או בסדר יורד. הבחירות שלכם ממופות לסעיף ORDER BY בשאילתת ה-SQL.

    • Limit (מגבלה): הגדרת מספר השורות המקסימלי בטבלת התוצאות. הבחירות שלכם ממופות לסעיף LIMIT בשאילתת ה-SQL.

  5. כדי להריץ את השאילתה, עוברים לסרגל הכלים ולוחצים על Run Query (הרצת שאילתה).

    תוצאות השאילתה מוצגות בטבלה ב-Observability Analytics. עם זאת, אפשר ליצור תרשים, ואפשר גם לשמור את הטבלה או התרשים במרכז בקרה בהתאמה אישית. מידע נוסף זמין במאמר בנושא יצירת תרשים של תוצאות שאילתת SQL.

    אם בסרגל הכלים מוצגת האפשרות Run in BigQuery, צריך להחליף את מנוע השאילתות של Observability Analytics למנוע ברירת המחדל. כדי לבצע את השינוי הזה, בסרגל הכלים של החלונית שאילתה, לוחצים על הגדרות ואז בוחרים באפשרות Analytics (ברירת מחדל).

דוגמה: קיבוץ וצבירה של נתונים באמצעות הכלי ליצירת שאילתות

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

לכל שדה שבוחרים ברכיב Columns יש תפריט מצורף עם האפשרויות הבאות:

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

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

  1. בתפריט Columns (עמודות), בוחרים בשדות start_time,‏ name,‏ kind ו-duration_nano.
  2. כדי לקצר את שעת ההתחלה לשעה, מרחיבים את התפריט בעמודה start_time ובוחרים באפשרות Group By (קיבוץ לפי). מוודאים שהתפריט 'רמת הפירוט' מוגדר לשעה.
  3. לוחצים על אישור.

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

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

  4. מרחיבים את התפריט בשדה duration_nano, בוחרים באפשרות Aggregate ואז מגדירים את השדה Aggregation לערך Average.

    כשמריצים את השאילתה, כל שורה מתאימה לקבוצה, שמורכבת מזמן קטום, שם טווח וסוג טווח. הערך האחרון בכל שורה הוא משך הזמן הממוצע של כל הערכים בקבוצה הזו.

    התוצאות של השאילתה הזו אמורות להיראות כך:

    +-----------------------------------+----------------+----------+-----------------------+
    | Row | hour_timestamp              | span_name      | kind     | average_duation_nano  |
    |     | TIMESTAMP                   | STRING         | INTEGER  | FLOAT                 |
    +-----+-----------------------------+-----------+---------------+-----------------------+
    | 1   | 2025-10-09 13:00:00.000 EDT | http.receive   | 3        | 122138.22813990474
    | 2   | 2025-10-09 13:00:00.000 EDT | query.request  | 1        | 6740819304.390297
    | 3   | 2025-10-09 13:00:00.000 EDT | client.handler | 2        | 6739339098.409376
    
  5. השאילתה יכולה לכלול כמה צבירות. לדוגמה, כדי להוסיף עמודה שסופרת את מספר הערכים בכל קבוצה, מבצעים את הפעולות הבאות:

    1. ברכיב Columns (עמודות), לוחצים על Add column (הוספת עמודה).
    2. בוחרים באפשרות הכול (*).
    3. בתיבת הדו-שיח, בוחרים באפשרות צבירה, בוחרים באפשרות ספירה בשדה צבירה ואז בוחרים באפשרות החלה.

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

שאילתת ה-SQL שמתאימה לדוגמה הקודמת היא:

WITH
  scope_query AS (
  SELECT
    *
  FROM
    `PROJECT_ID.us._Trace.Spans._AllSpans` )
SELECT
  -- Report the truncated start time, span name, span kind, average duration and number
  -- of entries for each group.
  TIMESTAMP_TRUNC( start_time, HOUR ) AS hour_start_time,
  name AS span_name,
  kind,
  AVG( duration_nano ) AS average_duration_nano,
  COUNT( * ) AS count_all
FROM
  scope_query
GROUP BY
  TIMESTAMP_TRUNC( start_time, HOUR ),
  name,
  kind
LIMIT
  100

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