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

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

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

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

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

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

במאמר הזה לא מוסבר איך ליצור מערך נתונים מקושר ב-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, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

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

    • Observability View Accessor (roles/observability.viewAccessor) on the observability views that you want to query. התפקיד הזה תומך בתנאי IAM, שמאפשרים להגביל את ההרשאה לתצוגה ספציפית. אם לא מצרפים תנאי למתן התפקיד, לחשבון המשתמש תהיה גישה לכל תצוגות הנתונים של יכולת התצפית.
    • משתמש עם הרשאת ניתוח נתוני יכולת צפייה (roles/observability.analyticsUser) בפרויקט. התפקיד הזה כולל את ההרשאות שנדרשות לשמירה ולהרצה של שאילתות פרטיות, ולהרצה של שאילתות משותפות.

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

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

הצגת הסכימה

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

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

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

    עוברים אל Observability Analytics

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

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

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

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

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

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

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

  • טוענים שאילתה שהוגדרה על ידי המערכת, עורכים אותה ומריצים אותה.
  • מזינים ומריצים שאילתה בהתאמה אישית. לדוגמה, אפשר להדביק שאילתה קיימת או לכתוב שאילתה חדשה. שאילתות בהתאמה אישית יכולות לכלול הצטרפויות, שאילתות מקוננות ומשפטי 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 נכשל.

  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 (ברירת מחדל).

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

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

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

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

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

  1. בתפריט עמודות, בוחרים בשדות 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_duration_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

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