במאמר הזה מוסבר איך אפשר להשתמש ב-Log Analytics כדי להעריך את נפח ניתן לחיוב של הרשומות ביומן. אתם יכולים לכתוב שאילתות שמדווחות על נפח ניתן לחיוב ומצברות אותו לפי מאפיינים שונים, כמו סוג המשאב או שם האפליקציה, ואז ליצור תרשים של תוצאות השאילתה ולהציג אותן.
איך שולחים שאילתה לגבי נפח ניתן לחיוב
הנפח שניתן לחיוב של רשומה ביומן, שהוא הגודל שמדווח לחיוב ב-Cloud, זמין דרך השדה storage_bytes.
בשאלות, אפשר להשתמש בשדה storage_bytes באותו אופן שבו משתמשים בכל שדה סכימה שסוג הנתונים שלו הוא INTEGER.
לדוגמה, אפשר לכלול אותו בסעיפים SELECT, בהצהרות CASE ובביטויי טבלה נפוצים.
למידע נוסף לגבי שליחת שאילתות על היומנים, ראו את המאמרים הבאים:
מערכת החיוב ב-Cloud משתמשת בנפח ניתן לחיוב כדי לקבוע את העלויות, ולכן אפשר לכתוב שאילתות שיעזרו לכם להבין את מקורות העלויות. לדוגמה, אתם יכולים לכתוב שאילתות שיעזרו לכם לקבוע אילו אפליקציות כותבות הכי הרבה רשומות ביומן. כדי להבין איך נפח ניתן לחיוב קשור לעלות, אפשר לעיין בקטעים בנושא Cloud Logging בדף מחירון Google Cloud Observability.
הנפח שניתן לחיוב של רשומה ביומן הוא לא הגודל של אובייקט LogEntry שנשלח אל Cloud Logging API. הנפח הניתן לחיוב כולל בייטים שנדרשים לסריאליזציה ולמטא-נתונים.
לפני שמתחילים
בקטע הזה מתוארים השלבים שצריך להשלים כדי להשתמש ב-Log Analytics.
הגדרת מאגרי יומנים
מוודאים ששדרגתם את מאגרי היומנים לשימוש ב-Log Analytics:
-
נכנסים לדף Logs Storage במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
- לכל קטגוריה ביומן שיש לה תצוגת יומנים שרוצים לשלוח אליה שאילתה, מוודאים שבעמודה Log Analytics available מופיעה האפשרות Open. אם הכפתור שדרוג מוצג, לוחצים עליו וממלאים את תיבת הדו-שיח.
הגדרת תפקידים והרשאות ב-IAM
בקטע הזה מתוארים התפקידים או ההרשאות של IAM שנדרשים לשימוש ב-Log Analytics:
-
כדי לקבל את ההרשאות שדרושות לשימוש בכלי לניתוח יומנים ולשאילתות של תצוגות יומנים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
כדי להריץ שאילתה על דלי היומנים
_Requiredו-_Default: מציג היומנים (roles/logging.viewer) -
כדי לשלוח שאילתה לכל תצוגות היומן בפרויקט:
בעל הרשאת גישה לתצוגת יומנים (
roles/logging.viewAccessor)
כדי להגביל חשבון משתמש לתצוגת יומן ספציפית, אפשר להוסיף תנאי IAM להענקת התפקיד Logs View Accessor (גישה לתצוגת יומנים) ברמת הפרויקט, או להוסיף קישור IAM לקובץ המדיניות של תצוגת היומן. מידע נוסף זמין במאמר בנושא שליטה בגישה לתצוגת יומן.
אלה אותן הרשאות שנדרשות כדי לצפות ברשומות ביומן בדף Logs Explorer. מידע על תפקידים נוספים שנדרשים כדי לשלוח שאילתות לתצוגות של מאגרי מידע שהוגדרו על ידי המשתמש או כדי לשלוח שאילתות לתצוגה
_AllLogsשל קטגוריה ביומן_Defaultזמין במאמר בנושא תפקידים ב-Cloud Logging. -
כדי להריץ שאילתה על דלי היומנים
-
כדי לקבל את ההרשאות שנדרשות להפעלת שאילתות בתצוגות ניתוח נתונים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Observability Analytics User (
roles/observability.analyticsUser) בפרויקט.
שאילתות לדוגמה
בקטע הזה מפורטות דוגמאות לשאילתות שמנתחות נתונים מתצוגת יומן יחידה.
אם אתם מאחסנים נתונים בכמה תצוגות של יומנים ואתם רוצים לחשב ערכים מצטברים של נתונים שמאוחסנים בתצוגות האלה, אתם צריכים להשתמש בהצהרה UNION.
אפשר להריץ שאילתות על רשומות ביומן באמצעות הדף Log Analytics או בכל מקום שבו אפשר להריץ שאילתות על מערכי נתונים ב-BigQuery, כולל הדפים BigQuery Studio ו-Looker Studio, וכלי שורת הפקודה של BigQuery.
כדי להשתמש בשאילתות לדוגמה:
בדף Log Analytics: מחליפים את VIEW בשם של תצוגת היומן. הפורמט הוא
project_ID.region.bucket_ID.view_ID.מערכי נתונים ב-BigQuery: מחליפים את VIEW בנתיב לטבלה במערך הנתונים המקושר.
שליחת שאילתה לגבי נפח היומן לפי אפליקציה
כדי לחשב את מספר הבייטים הכולל ליום, לכל אפליקציה, עבור רשומות ביומן שנכתבו לגבי משאב של Google Kubernetes Engine ושכוללות מטען ייעודי (payload) בפורמט JSON, משתמשים בשאילתה הבאה:
SELECT
timestamp_trunc(timestamp,DAY) as day,
JSON_VALUE(labels["k8s-pod/app"]) as app_id,
SUM(storage_bytes) as total_bytes
FROM
`VIEW`
WHERE
json_payload IS NOT NULL
AND resource.type="k8s_container"
GROUP BY ALL
כדי להציג את הנתונים באופן ויזואלי, אפשר ליצור תרשים.
בדוגמה הבאה, הנתונים מוצגים בתרשים עמודות מוערם. כל עמודה בתרשים מציגה את המספר הכולל של הבייטים שמאוחסנים, מאורגנים לפי אפליקציה. בדוגמה הזו, אפליקציית frontend יוצרת את הכי הרבה נתוני יומן:
שליחת שאילתה לגבי נפח היומן לפי שם היומן
כדי להציג את מספר הבייטים המאוחסנים ואת שם היומן של כל רשומה ביומן שיש לה מטען ייעודי (payload) בפורמט JSON, ושנכתבה לגבי משאב של Google Kubernetes Engine, משתמשים בשאילתה הבאה:
SELECT
log_id AS log_name,
storage_bytes
FROM
`VIEW`
WHERE
json_payload IS NOT NULL
AND resource.type="k8s_container"
השאילתה הקודמת לא צוברת את התוצאות, אלא יש שורה אחת לכל רשומה ביומן, והשורה הזו מכילה שם יומן ומספר הבייטים המאוחסנים. אם יוצרים תרשים של הנתונים האלה, אפשר לראות את החלק מנתוני היומן שנכתב ביומנים שונים:
מהתרשים הקודם אפשר לראות שרוב נתוני היומן נכתבים ליומן שנקרא stdout.
שימוש בכלי שורת הפקודה של BigQuery כדי לשלוח שאילתה לגבי נפח היומן לפי שם היומן
אפשר לכלול את השדה storage_bytes בשאילתות שמריצים דרך הדף BigQuery Studio או באמצעות כלי שורת הפקודה של BigQuery.
השאילתה הבאה מדווחת על שם היומן ומספר הבייטים המאוחסנים עבור כל רשומה ביומן:
bq query --use_legacy_sql=false 'SELECT log_id as log_name,
storage_bytes FROM `VIEW`'
התוצאה של השאילתה הזו דומה לתוצאה הבאה:
+----------+---------------+
| log_name | storage_bytes |
+----------+---------------+
| stdout | 716 |
| stdout | 699 |
| stdout | 917 |
| stdout | 704 |
כל שורה תואמת לרשומה אחת ביומן. הערך בעמודה storage_bytes הוא הנפח שניתן לחיוב עבור רשומת היומן הזו.
מגבלות
השדה storage_bytes זמין רק אם מתקיימים התנאים הבאים:
- קטגוריה ביומן שודרגה לשימוש ב-Log Analytics.
השאילתה מופעלת בדף Log Analytics או בכל מקום שבו אפשר להריץ שאילתות על מערכי נתונים של BigQuery, כולל הדפים BigQuery Studio ו-Looker Studio, וכלי שורת הפקודה של BigQuery.
הרשומה ביומן נכתבה ב-1 בינואר 2024 או אחרי התאריך הזה.