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

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

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

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

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

בקטע הזה מתוארים השלבים שצריך להשלים כדי להשתמש ב-Observability Analytics.

הגדרת קטגוריות ביומן

מוודאים ששדרגתם את מאגרי היומנים כדי להשתמש ב-Observability Analytics:

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

    כניסה אל Logs Storage

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

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

הגדרת תפקידים והרשאות ב-IAM

בקטע הזה מתוארים התפקידים או ההרשאות של IAM שנדרשים לשימוש ב-Observability Analytics:

  • כדי לקבל את ההרשאות שדרושות לשימוש ב-Observability Analytics ולשאילתות של תצוגות יומן, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

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

    אלה אותן הרשאות שנדרשות כדי לצפות ברשומות ביומן בדף Logs Explorer. מידע על תפקידים נוספים שנדרשים כדי לשלוח שאילתות לתצוגות של קטגוריות שהוגדרו על ידי המשתמש או כדי לשלוח שאילתות לתצוגה _AllLogs של קטגוריה ביומן _Default זמין במאמר בנושא תפקידים ב-Cloud Logging.

  • כדי לקבל את ההרשאות שנדרשות לשליחת שאילתות לתצוגות ניתוח נתונים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Observability Analytics User (roles/observability.analyticsUser) בפרויקט.

  • כדי לקבל את ההרשאות שנדרשות ליצירת תרשימים, צריך לבקש מהאדמין להקצות לכם את התפקיד Monitoring Editor (‏roles/monitoring.editor) ב-IAM בפרויקט.

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

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

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

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

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

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

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

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

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

  • מאפיין

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

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

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

  • מדידה

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

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

הוספת פירוט

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

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

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

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

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

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

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

אם הווידג'ט מכיל שאילתת 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, צריך להמיר אותם למחרוזות או למספרים.

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

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

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

    עוברים אל Observability Analytics

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

  2. מזהים את שם הטבלה של תצוגת היומן שרוצים לשלוח לה שאילתה.

    כדי לזהות את השם הזה, עוברים לרשימה Log views, מאתרים את תצוגת היומן ובוחרים באפשרות Query. בחלונית Query (שאילתה) מאוכלסת שאילתת ברירת מחדל, שכוללת את שם הטבלה של תצוגת היומן שנשלחת אליה שאילתה. שם הטבלה הוא בפורמט project_ID.region.bucket_ID.view_ID.

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

  3. מחליפים את VIEW בשם הטבלה של תצוגת היומן שרוצים להריץ עליה שאילתה, ואז מעתיקים את השאילתה.

  4. מדביקים את השאילתה בחלונית Query ולוחצים על Run query.

תרשים של רשומות ביומן לפי מיקום וחומרה

השאילתה הבאה בוחרת את location ואת severity, כשהמיקום מוגדר כמחרוזת:

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `VIEW`
WHERE resource.labels.location IS NOT NULL

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

תרשים לדוגמה שמציג רשומות ביומן לפי מיקום וחומרה.

בצילום המסך הקודם, הגדרת התרשים היא:

  • סוג התרשים: תרשים עמודות אופקי
  • מאפיין: location, עם מגבלה של 10
  • מדד: ספירת שורות
  • פירוט: severity, עם מגבלה של חמישה

יצירת תרשים של יומני הביקורת Data Access ב-BigQuery

השאילתה הבאה מסננת יומני ביקורת של BigQuery data_access ובוחרת שדות מסוימים, כמו user_email,‏ ip,‏ auth_permission ו-job_execution_project. לדוגמה, אפשר ליצור תרשים שמציג את תדירות השימוש ב-BigQuery API של כל גורם ראשי לאורך זמן.

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `VIEW` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

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

תרשים לדוגמה של יומני ביקורת של גישה לנתונים ב-BigQuery

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

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

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