פתרון בעיות של שגיאות בזמן הריצה של כללים
שגיאות בזמן ריצה יכולות להתרחש במהלך הפעלת כלל ולמנוע את ההפעלה המוצלחת של הכלל. במסמך הזה מוסבר איך לפתור כמה בעיות נפוצות בזמן ריצה.
כדי למנוע שגיאות בזמן ריצה, מומלץ לבדוק את הכללים לפני הפריסה. לוחצים על הפעלת בדיקה בכלי לעריכת כללים. אם מזוהה שגיאה, לוחצים על הקישור לשגיאה כדי לראות פרטים.
אם מתרחשת שגיאה במהלך הפעלת הכלל, לוחצים על הקישור לשגיאה בדף זיהויים כדי לראות פרטים.
שגיאות בתחביר ובאופן הלוגי של השאילתה
השגיאות האלה מתרחשות כשמבנה השאילתה לא תקין, מורכב מדי או כשנעשה שימוש בסוגי נתונים לא תואמים.
| הודעת השגיאה | הסיבה הבסיסית | רזולוציה |
|---|---|---|
Too many `OR` and `AND` operations
|
השאילתה מכילה ביטויים או לוגיקה עם קינון עמוק שחורגים ממגבלות נפח הזיכרון במחסנית. | מפשטים את התנאים של הכלל. פירוק לוגיקה מורכבת לחלקים קטנים יותר. |
Query is too long
|
השאילתה דורשת יותר מדי מקום במחסנית לעיבוד. | מפצלים את הלוגיקה לכמה כללים. |
Accessing a new field that did not exist for this time range
|
הכלל מתייחס לשדה שנוסף לאחרונה לסכימה, אבל הכלל פועל על טווח זמן שבו השדה הזה לא היה קיים. | משנים את טווח הזמן כך שיתחיל אחרי שהשדה הופיע. משנים את הכלל כך שיטפל במקרים שבהם השדה הוא null או חסר. |
Invalid subnet CIDR
|
חלק מהפונקציות נתקלו בטווח Classless Inter-Domain Routing (CIDR) שלא ניתן לניתוח | בודקים את הפורמט של טווחי CIDR בכלל. |
Invalid IP address
|
חלק מהפונקציות נתקלו בכתובת IP לא תקינה. | מוודאים שערך השדה מכיל כתובת IP בפורמט תקין. |
Map access for reading label does not support duplicate map keys
|
חלק מהפונקציות ניסו לגשת לאלמנטים ממבנה שדומה למפה (לדוגמה, שדות נוספים) שבהם יש מפתחות כפולים (מה שלא מותר בפעולה). | בודקים את מקור הנתונים כדי לראות אם יש מפתחות כפולים. להתאים את הלוגיקה של הכלל כדי לטפל במאפיין הזה של הנתונים. |
Invalid regular expression
|
הביטוי הרגולרי שבו נעשה שימוש בפונקציות כמו re.regex() הוא בעל מבנה שגוי.
|
מתקנים את התחביר של הביטוי הרגולרי. |
Invalid re.replace()
|
שימוש שגוי ב-re.regex(), לרוב בגלל חוסר התאמה בין תת-ביטויים שמוקפים בסוגריים לבין הפניות במחרוזת ההחלפה.
|
מוודאים שסכימת השכתוב ב-re.regex() תואמת לתת-הביטויים שבסוגריים בביטוי הרגולרי.
|
Integer overflow in sum() aggregation
|
סכום הערכים חורג מהמגבלה המקסימלית של מספרים שלמים רגילים. | מבצעים המרה של השדה לסוג נתונים של נקודה צפה לפני שמבצעים את הסכימה (לדוגמה, משתמשים ב-sum(0.0 + $e.field)).
|
Cannot complete [arithmetic/mod] operation between unsigned and signed integer
|
השגיאה נגרמת מניסיון לבצע פעולות חשבוניות (+, -, *, /, MOD) בין סוגים שונים של מספרים שלמים.
|
משתמשים ב-cast.as_int() או ב-cast.as_uint() כדי להמיר שדה אחד כך שיתאים לשדה השני.
|
מגבלות על משאבים ושגיאות ביצועים
השגיאות האלה מציינות שהשאילתה כבדה מדי לעיבוד על ידי המערכת.
| הודעת השגיאה | הסיבה הבסיסית | רזולוציה |
|---|---|---|
Request was throttled, please try again later
|
הכלל דורש יותר זיכרון או כוח עיבוד ממה שהוקצה לו (לרוב בגלל צירופים מורכבים, צבירות גדולות או סינון לא מספיק). | מוסיפים מסננים ספציפיים יותר לקטע האירועים. |
Not enough memory for aggregation
|
הייתה חריגה מהמכסה של aggregate_memory_limit.
|
כדי לבצע אופטימיזציה של צבירות, צריך לצמצם את מספר המפתחות בקטע match. |
Spilled bytes exceed limit
|
השאילתה מנסה לעבד יותר מדי אירועים. | מבצעים אופטימיזציה של השאילתה על ידי הוספת מסננים, למשל לפי metadata.log_type.
|
Your query resource usage is exceeding its allocation
|
השאילתה בוטלה על ידי מנהל המשאבים כי היא השתמשה ביותר מדי משאבים. | מבצעים אופטימיזציה של השאילתה על ידי הוספת מסננים, למשל לפי metadata.log_type.
|
גישה לנתונים ושגיאות מערכת
השגיאות האלה הן לרוב זמניות או קשורות לאחסון הנתונים בעורף האתר.
| הודעת השגיאה | הסיבה הבסיסית | רזולוציה |
|---|---|---|
Error reading files
|
בעיות זמניות בגישה לנתונים הבסיסיים. | כדאי לחכות קצת ואז לנסות שוב. אם השגיאה נמשכת, צריך לפנות לתמיכה. |
Error reading database
|
בעיות זמניות בגישה לנתונים הבסיסיים. | כדאי לנסות שוב אחרי זמן מה. אם השגיאה נמשכת, צריך לפנות לתמיכה. |
Internal error
|
בעיה חולפת במערכת. | כדאי לחכות קצת ואז לנסות שוב. אם השגיאה נמשכת, צריך לפנות לתמיכה. |
Unknown error
|
הודעת שגיאה שמוצגת כברירת מחדל כשקוד שגיאה פנימי ספציפי לא מוגדר. | כדאי לחכות קצת ואז לנסות שוב. אם השגיאה נמשכת, צריך לפנות לתמיכה. |
Request was throttled, please try again later
|
יש עומס רב על המערכת. | כדאי לחכות קצת ואז לנסות שוב. |
שגיאות לא ידועות בסביבת זמן הריצה
יכול להיות שתיתקלו בשגיאות לא ידועות בזמן הריצה, בלי תיאור. אם זה קורה, צריך לפנות אל התמיכה של Google SecOps.
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.