יצירת תרשים מתוצאות של שאילתת SQL

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

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

תרשים לדוגמה שמציג פירוט לפי שם השירות.

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

  1. 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

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

  3. Enable the Observability API.

    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

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

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

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

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

בחירת הנתונים ליצירת תרשים

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

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

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

    עוברים אל Observability Analytics

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

  2. בחלונית Query, מזינים שאילתה ולוחצים על Run.

  3. אחרי שהשאילתה מסתיימת, בכרטיסייה תוצאות בוחרים איך רוצים לראות את תוצאות השאילתה:

    • טבלה: עיצוב טבלאי בלבד.

    • תרשים: פורמט התרשים בלבד.

    • גם וגם: פורמט של תרשים וטבלה.

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

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

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

אפשר להתאים אישית את הגדרות התרשים על ידי שינוי סוג התרשים, בחירת המאפיין והמדד שיוצגו בתרשים והוספת פילוח. המאפיין Dimension משמש לקיבוץ או לסיווג של שורות, והוא הערך בציר ה-X. המדד, או הערך בציר ה-Y, הוא סדרת נתונים שמוצגת בתרשים ביחס לציר ה-Y.

שינוי סוג התרשים

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

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

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

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

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

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

  • טבלה: בטבלה מוצגת שורה אחת לכל שורה בתוצאת השאילתה. העמודות בטבלה מוגדרות על ידי פסוקית SELECT. אם אתם מתכננים להציג נתונים בטבלה בלוח בקרה, כדאי להשתמש בסעיף LIMIT כדי להגביל את מספר השורות בתוצאה לכמה מאות.

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

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

    אם רוצים לבצע את הצבירה לפי זמן כחלק מהשאילתה:

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

      נתוני יומן

      לדוגמה, השאילתה הבאה מחפשת בתצוגת יומן, מצמצמת את הנתונים לפי שעה, מגבילה את התוצאות וממיינת אותן:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10

      ההסבר הבא מתייחס למשמעות של השדות בביטוי הקודם:

      • PROJECT_ID: מזהה הפרויקט.
      • LOCATION: המיקום של תצוגת היומן או תצוגת ניתוח הנתונים.
      • BUCKET_ID: השם או המזהה של קטגוריה ביומן.
      • LOG_VIEW_ID: המזהה של תצוגת היומן, שמוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.

      נתוני מעקב

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

      SELECT TIMESTAMP_TRUNC(start_time, HOUR) AS hour,
         COALESCE(
            JSON_VALUE(resource.attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
         status.code AS status,
         COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
      GROUP BY hour, service_name, status
      ORDER BY hour DESC
      LIMIT 1000

      ההסבר הבא מתייחס למשמעות של השדות בביטוי הקודם:

      השאילתה הקודמת שימשה ליצירת הדמות שמוצגת בתחילת המסמך הזה. באיור הזה מוצגת גם הגדרת התרשים.

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

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

    • מגדירים את המדד לעמודה המספרית, ומגדירים את הפונקציה לnone.

    אם אתם רוצים להסתמך על Observability Analytics כדי לבצע את הצבירה לפי זמן בשבילכם, אתם צריכים לפעול באופן הבא:

    • מגדירים את בורר טווחי הזמן, שמשפיע על מספר השורות בתוצאת השאילתה.
    • מגדירים את המאפיין כך שיתאים לעמודה שמדווחת על יחידת הזמן. לדוגמה, אפשר להגדיר את התפריט הזה לtimestamp.
    • בתפריט Interval (מרווח), מגדירים מרווח צבירה ספציפי. לדוגמה, מגדירים את הערך של השדה הזה ל-1 hour. לא בוחרים באפשרות מרווח אוטומטי.
    • מגדירים את המדד לעמודה המספרית ובוחרים פונקציה כמו sum.

שינוי המאפיין והמדד

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

  • מאפיין

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

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

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

  • מדידה

    אפשר לבחור כמה מדדים בחלונית תצוגת תרשים. כשבוחרים מדד, צריך לבחור גם את פונקציית הצבירה שתתבצע על הערכים המקובצים שלו, כמו count,‏ sum,‏ average ו-percentile-99. לדוגמה, הפונקציה count-distinct מחזירה את מספר הערכים הייחודיים בעמודה נתונה.

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

הוספת פירוט

כדי לפצל סדרת נתונים אחת לכמה סדרות נתונים על סמך עמודה אחרת, מוסיפים פירוט.

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

נתוני יומן

לדוגמה, בהגדרות התרשים הבאות, השדה מאפיין מוגדר לסוג, השדה מדד מוגדר לספירת שורות והשדה פירוט מוגדר לחומרה:

תרשים לדוגמה שמכיל פירוט לפי חומרה.

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

נתוני מעקב

לדוגמה, בתרשים הבא מוצג מספר ה-spans שנוצרו על ידי כל שירות, יחד עם הנתונים שמפורטים לפי שם ה-span:

דוגמה ללוח בקרה שבו מוצג השימוש בקטגוריות של Cloud Storage.

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

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

דרישות להגדרה

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

  • השאילתה של התרשים כתובה ב-SQL, והיעד של השאילתה הוא נתוני מעקב.
  • התרשים משתמש בהמחשה של תרשים קו או תרשים עמודות.
  • התשובה trace_id והתשובה start_time הן חלק מתוצאות השאילתה.

כדי להסתיר את הדוגמאות, עוברים לסרגל הכלים של התרשים ובוחרים באפשרות הסתרת הדוגמאות.

איך המערכת יוצרת דוגמאות

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

  • למדדים סטטיסטיים כמו AVG ו-PERCENTILE: המערכת משווה בין ערכי טווח גולמיים לבין קו המגמה המשוער בתרשים, ומקבצת דגימות למאגרי סטיות. מדגם יחסי מכל מאגר מוצג במרווחים שווים לאורך זמן.
  • לספירות תדירות כמו COUNT: המערכת ממקמת את הדוגמאות לאורך הגבול העליון של חלון התרשים, ומפזרת אותן באופן שווה על פני הזמן ופירוטי סדרות הנתונים.

מגבלות

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

שמירת תרשים במרכז בקרה בהתאמה אישית

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

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

כדי לשמור את התרשים במרכז הבקרה:

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

    עוברים אל Observability Analytics

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

  2. מריצים שאילתה כדי ליצור תרשים, ואז לוחצים על שמירה במרכז הבקרה.

  3. בתיבת הדו-שיח שמירה בלוח הבקרה, מזינים שם לתרשים ובוחרים את לוח הבקרה שבו רוצים לשמור את התרשים.

  4. אופציונלי: כדי לראות את לוח הבקרה המותאם אישית, לוחצים על View dashboard (הצגת לוח הבקרה) בהודעה הקופצת.

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

עריכה של תרשים שנשמר במרכז בקרה מותאם אישית

אפשר לשנות תרשים אחרי ששומרים אותו בלוח הבקרה. מידע נוסף זמין במאמר בנושא שינוי ההגדרה של ווידג'ט. בתיבת הדו-שיח Configure widget, אפשר לבצע את הפעולות הבאות:

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

מגבלות

  • אם Google Cloud הפרויקט שלכם נמצא בתיקייה שמשתמשת ב-Assured Workloads, לא ניתן להציג את התרשימים שאתם יוצרים בלוח בקרה בהתאמה אישית.

  • מסננים ברמת לוח הבקרה לא חלים על תרשימים שנוצרו משאילתת SQL.

  • בעמודות שנבחרו צריכה להיות לפחות שורה אחת עם ערך שאינו null.

  • אם שומרים שאילתה ומשנים את הגדרות התרשים, הגדרות התרשים המותאמות אישית לא נשמרות.

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

  • כדי ליצור תרשים של נתיבי JSON, צריך להמיר אותם למחרוזות או למספרים.

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