מדיניות התראות שמבוססת על SQL ב-Observability Analytics מריצה מדי פעם שאילתות SQL על הנתונים שלכם ב-Cloud Trace, ושולחת לכם התראות כשהתוצאות עומדות בתנאים שציינתם. כללי המדיניות האלה פועלים במנוע של BigQuery ודורשים מערך נתונים מקושר ב-BigQuery.
למידע כללי על Observability Analytics, קראו את המאמר שאילתות וניתוח של נתוני מעקב באמצעות Observability Analytics.
איך פועלות מדיניות ההתראות
מדיניות התראות מתארת את הנסיבות שבהן אתם רוצים לקבל התראה, ואת האופן שבו אתם רוצים לקבל אותה. יש כמה גישות שונות שבהן אפשר להשתמש כדי לקבל התראה כשתוכן או דפוסים מופיעים בנתוני המעקב:
כדי לעקוב אחרי מספר ה-spans שנקלטו ב-Cloud Trace בכל חודש, אחרי השימוש במכסות ואחרי קצב קליטת ה-spans, אתם יכולים ליצור מדיניות התראות ב-Cloud Monitoring. אם אף פעם לא יצרתם מדיניות התראות, תוכלו לקרוא מידע מפורט על השימוש במסוף Cloud Monitoring במאמר יצירת מדיניות התראות.
כדי להציג או לחקור מעקבים או טווחי זמן ספציפיים, או להציג מאפיינים שמצורפים לטווחי זמן, משתמשים בדף Trace Explorer. למידע נוסף על הדף הזה, קראו את המאמר חיפוש ועיון במעקבים.
כדי לעקוב אחרי ניתוח נתונים מצטבר של נתוני המעקב, אפשר לשלב את Observability Analytics עם מדיניות התראות. בתרחיש הזה, אתם משתמשים בשאילתות SQL כדי לשלוח שאילתות לתצוגה
_AllSpansבקטגוריית הניראות שנקראת_Trace. לבסוף, יוצרים את מדיניות ההתראה כדי לעקוב אחרי התוצאות של שאילתת ה-SQL. מדיניות התראות מהסוג הזה נקראת מדיניות התראות מבוססת-SQL.במאמר סקירה כללית על אחסון מוסבר איך נתוני המעקב נשמרים.
בהמשך המאמר מוסבר איך להשתמש בכללי מדיניות התראה שמבוססים על SQL.
רכיבי מדיניות ההתראות
מדיניות התראות שמבוססת על SQL מכילה תנאי ולוח זמנים:
התנאי מכיל את השאילתה, שהיא שאילתת SQL ששולחת שאילתה לנתונים שלכם. התנאי גם מגדיר את הנסיבות שבהן תוצאת השאילתה תגרום ל-Monitoring ליצור התראה.
לוח הזמנים מגדיר את התדירות שבה מדיניות ההתראה מריצה את השאילתה שלה. התזמון גם מגדיר את הגודל של חלון המבט לאחור, שהוא מסנן שבוחר רק נתונים שהתקבלו מאז הפעם הקודמת שבה השאילתה הוערכה. לדוגמה, אם מגדירים את התזמון ל-60 דקות, השאילתה תופעל כל 60 דקות באמצעות חלון מבט לאחור שבוחר את הנתונים מ-60 הדקות האחרונות.
כללי מדיניות ההתראות כוללים גם רשימה של ערוצי התראות. כשהתנאי של מדיניות ההתראות מתקיים, Cloud Monitoring יוצר התראה ושולח אותה דרך הערוצים האלה. התראה היא רשומה של הנתונים שגרמו לעמידה בתנאי, יחד עם מידע רלוונטי אחר. המידע הזה יכול לעזור לכם לפתור בעיות שגרמו להתראה. אפשר לראות את ההתראה במסוף Google Cloud .
סוגי הערכות למדיניות התראות שמבוססת על SQL
תנאים שעוקבים אחרי תוצאה של שאילתת SQL תומכים בשני סוגים של הערכה:
סף מספר השורות: התנאי מתקיים כשמספר השורות בתוצאת השאילתה גדול מערך הסף, שווה לו או קטן ממנו.
Boolean: התנאי מתקיים כשעמודה בוליאנית ספציפית בטבלת התוצאות של השאילתה מכילה שורה כלשהי עם הערך
true.
בכללי מדיניות התראה שעוקבים אחרי תוצאה של שאילתת SQL יכול להיות רק תנאי אחד.
כללי מדיניות התראות ו-BigQuery
כדי שמדיניות התראה תוכל לשלוח שאילתות לנתוני המעקב, צריך להגדיר מערך נתונים מקושר ב-BigQuery. מערכי נתונים מקושרים של BigQuery מאפשרים ל-BigQuery לקרוא את נתוני המעקב, ומאפשרים לכם לבצע פונקציות של BigQuery על הנתונים שמוחזרים על ידי שאילתת ה-SQL.
כשמדיניות התראה מריצה שאילתת SQL, השאילתה הזו מופעלת במנוע BigQuery בפרויקט ב- Google Cloud שבו מוגדרת מדיניות ההתראה. כברירת מחדל, שאילתות שמופעלות במנוע של BigQuery משתמשות ב-slots על פי דרישה. משבצות על פי דרישה ומשבצות שמורות כפופות לתמחור של BigQuery.
אתם יכולים גם להגדיר הזמנות ייעודיות של יחידות קיבולת של BigQuery לפרויקט:
- יוצרים הזמנה עם משבצות ייעודיות או מזהים הזמנה קיימת.
- יצירת הקצאות של הזמנות לפרויקט.
חלון מבט לאחור וזמן הפצת ההתראות
כשמדיניות התראות מתוזמנת לבדיקת התנאי שלה, Observability Analytics מעכב את הרצת שאילתת ה-SQL בחמש דקות כדי לתת ל-Cloud Logging זמן להוסיף לאינדקס את הנתונים שהתקבלו במהלך חלון המבט לאחור. לדוגמה, אם מדיניות ההתראה משתמשת בחלון מבט לאחור שמסתיים בשעה 14:00, אז Observability Analytics לא מריצה את שאילתת ה-SQL עד השעה 14:05.
אם התנאי של ההתראה מתקיים אחרי הרצת השאילתה, יכול להיות שיעברו עד שתי דקות נוספות עד שההתראה תופץ במערכת.
שאילתות שנכשלו
שאילתות שמונפקות על ידי מדיניות התראה שמבוססת על SQL יכולות להיכשל מכמה סיבות, כולל:
חשבון השירות של Monitoring לא קיים יותר, או שאין לו יותר את ההרשאות הנדרשות לקריאת נתוני המעקב שנשלחה לגביהם שאילתה.
זמן הביצוע של השאילתה חורג מ-5 דקות.
אירעה שגיאה פנימית.
אם השאילתה נכשלת, נוצרת רשומה ביומן שמכילה את מזהה מדיניות ההתראה ואת סטטוס השגיאה. אפשר להשתמש במדיניות התראות מבוססת-יומנים כדי ליצור התראה כששגיאה נרשמת ביומן.
לפני שמתחילים
בקטע הזה אנחנו מניחים שיש לכם מערך נתונים מקושר ב-BigQuery לנתוני המעקב.
לפני שיוצרים מדיניות התראות שמבוססת על SQL, צריך לבצע את השלבים הבאים:
-
כדי לקבל את ההרשאות שנדרשות לשליחת שאילתות על נתוני מעקב וליצירת מדיניות התראות שמבוססת על SQL, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- עריכת מעקב (
roles/monitoring.editor) בפרויקט - SQL Alert Writer (
roles/logging.sqlAlertWriter) בפרויקט - משתמש ב-Observability Analytics (
roles/observability.analyticsUser) בפרויקט - גישה לתצוגת ניראות (
roles/observability.viewAccessor) בפרויקט או בתצוגת הניראות - BigQuery Data Viewer (
roles/bigquery.dataViewer) בפרויקט או במערך הנתונים המקושר - BigQuery Job User (
roles/bigquery.jobUser) בפרויקט
- עריכת מעקב (
מוודאים שחשבון השירות של Monitoring קיים ושהוקצו לו התפקידים הבאים:
- סוכן שירות למעקב (
roles/monitoring.notificationServiceAgent) בפרויקט. - BigQuery Data Viewer (
roles/bigquery.dataViewer) במערך הנתונים המקושר ב-BigQuery.
אם חשבון השירות של Monitoring לא קיים, קראו את המאמר פתרון בעיות: אין חשבון שירות של Monitoring.
- סוכן שירות למעקב (
- מגדירים את ערוצי ההתראות שבהם רוצים להשתמש כדי לקבל התראות. למטרות יתירות, מומלץ להגדיר כמה סוגים של ערוצי התראות. למידע נוסף, קראו את המאמר יצירה וניהול של ערוצי התראות.
יצירת מדיניות התראות שמבוססת על SQL
כדי ליצור מדיניות התראות שמבוססת על SQL:
המסוף
-
נכנסים לדף manage_search Observability Analytics במסוף Google Cloud :
כניסה לדף Observability Analytics
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
בדף Observability Analytics, מזינים בעורך השאילתות שאילתת SQL ששולחת שאילתה לנתוני המעקב.
בסרגל הכלים, לוחצים על Run on BigQuery (הרצה ב-BigQuery).
הכלי Observability Analytics מריץ את השאילתה במנוע של BigQuery ומציג את התוצאות בטבלה Results.
אם האפשרות Run on BigQuery לא מוצגת, לוחצים על settings Select query engine ואז על BigQuery. הלחצן Run query משתנה ל-Run on BigQuery.
בטבלה Results שבדף Observability Analytics, לוחצים על add_alert Create alert.
בדף Observability Analytics נפתח החלון Create sql alert policy, שבו השאילתה מופיעה בקטע SQL query.
בקטע Alert condition, מגדירים את התנאי ואת לוח הזמנים של מדיניות ההתראות.
מגדירים את פרטי ההתראה של מדיניות ההתראות.
מוסיפים ערוצי התראות ומגדירים את תוכן ההתראות, כמו שורת נושא בהתאמה אישית.
אופציונלי: מוסיפים תוויות למדיניות ההתראות ותיעוד.
לוחצים על הבא.
בודקים את מדיניות ההתראות ולוחצים על Save כדי ליצור אותה.
Terraform
מתקינים ומגדירים את Terraform בפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
ב-Cloud Shell, עוברים לספרייה שמכילה את ההגדרות של Terraform.
בתצורה של Terraform, מגדירים מופע של המשאב google_monitoring_alert_policy, כולל condition_sql.
ב-Cloud Shell, מזינים את הפקודה
terraform apply.
כדי לשנות את מדיניות ההתראות, עורכים את השינויים ואז מחילים מחדש את ההגדרות של Terraform. מידע נוסף זמין במאמר ניהול מדיניות התראות באמצעות Terraform.
מידע כללי על השימוש ב- Google Cloud עם Terraform מופיע במאמר Terraform עם Google Cloud.
REST
משתמשים ב-method alertPolicies.create כדי ליצור מדיניות התראות באופן פרוגרמטי. הסוג Condition של מדיניות ההתראה חייב להיות conditionSql, שהוא מופע של SqlCondition.
סוג התנאי הזה מאפשר להגדיר את התנאים של מדיניות ההתראות באמצעות SQL.
כדי להגדיר את לוח הזמנים, צריך להגדיר ערך periodicity לאחד מהשדות minutes, hours או days. לדוגמה, אם רוצים שהשאילתה תפעל כל 12 שעות, מגדירים את המחזוריות של השדה hours ל-12.
כדי להגדיר את התנאי, משתמשים בשדות הבאים:
-
boolean_test: מגדיר את מדיניות ההתראה כך שהתנאי שלה יתקיים כששורה של עמודה בוליאנית בטבלת תוצאות השאילתה מכילה ערך True. -
row_count_test: מגדיר את מדיניות ההתראה כך שהתנאי שלה יתקיים כשמספר השורות בטבלת תוצאות השאילתה יגיע לסף מסוים.
רשימה מלאה של השדות וההגדרות מופיעה במאמר SqlCondition במסמכי התיעוד של Cloud Monitoring API.
למידע נוסף על Monitoring API למדיניות התראות, קראו את המאמר ניהול מדיניות התראות באמצעות API.
מגבלות
- אפשר להגדיר תנאי אחד לכל מדיניות התראות שמבוססת על SQL.
- מדיניות התראות שמבוססות על SQL אי אפשר לשלוח שאילתות לתצוגת ניתוח נתונים.
שאילתות שמונפקות על ידי מדיניות התראה מבוססת-SQL נכשלות כשזמן הביצוע שלהן חורג מחמש דקות.
יכול להיות עיכוב של עד שבע דקות, בנוסף לזמן הרצת השאילתה, בין המועד שבו נקבעה השאילתה לבין המועד שבו נוצרה ההתראה.
רשימה מלאה של המגבלות שמשויכות למדיניות ההתראות מופיעה במאמר מגבלות המעקב.