במאמר הזה מוסבר איך:
- מעקב אחרי יומני הביצוע.
- צפייה ביומני Logging של Dataform
- קישור בין משימות BigQuery להפעלות של תהליכי עבודה.
- הגדרת התראות על הפעלות כושלות של תהליכי עבודה.
לפני שמתחילים
כדי לעקוב אחרי יומני הביצוע, חשוב לוודא שאתם מבצעים את הפעולות הבאות:
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים מאגר או יוצרים מאגר.
בוחרים או יוצרים סביבת עבודה לפיתוח.
מפעילים הרצה לפחות פעם אחת.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לצפייה ביומני הביצוע, בקשו מהאדמין לתת לכם את התפקידים הבאים ב-IAM:
- עריכה ב-Dataform (
roles/dataform.editor) במאגר של Dataform שבו מתבצע מעקב אחרי הפעלות של תהליכי עבודה -
אימות ההגדרה של הרצה:
משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות בהתאמה אישית
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
התפקיד צפייה ביומנים (roles/logging.viewer) ב-IAM נותן הרשאת קריאה בלבד לכל התכונות של Cloud Logging. במאמר בקרת גישה באמצעות IAM תוכלו לקרוא מידע נוסף על ההרשאות והתפקידים בניהול הזהויות והרשאות הגישה (IAM) שחלים על נתוני הרישום ביומן.
כדי ליצור ולנהל התראות מבוססות-יומנים, ודאו שתפקיד ה-IAM שלכם כולל את ההרשאות שמתוארות במאמר התפקידים שנדרשים כדי ליצור כללי מדיניות של התראות מבוססות-יומנים ולהשתמש בהם.
מעקב אחרי יומני הביצוע
בקטע הזה מוסבר איך להציג את יומני ההפעלה ב-Dataform.
אתם יכולים לראות את היומנים של כל ההפעלות שהופעלו במאגר, ואת היומנים של ההפעלות שהופעלו בסביבת עבודה ב-24 השעות האחרונות.
בדיקת יומני הביצוע של המאגר
כדי לראות את היומנים של כל ההפעלות שהופעלו במאגר, מבצעים את השלבים הבאים:
נכנסים לדף Dataform במסוף Google Cloud .
עוברים למאגר.
לוחצים על Workflow Execution Logs.
כדי לראות את פרטי ההפעלה, לוחצים על ההפעלה.
כדי לראות את הפרטים של פעולה מסוימת, לוחצים על הצגת פרטים.
בדיקת יומני הביצוע של סביבת העבודה
כדי לראות את היומנים של 1,000 ההפעלות האחרונות שהופעלו בסביבת עבודה ב-24 השעות האחרונות, מבצעים את הפעולות הבאות:
נכנסים לדף Dataform במסוף Google Cloud .
עוברים למאגר ובוחרים את סביבת העבודה.
בסביבת העבודה, לוחצים על Executions (הפעלות).
כדי לראות את פרטי ההפעלה, לוחצים עליה.
כדי לראות פרטים של פעולה בתוך ההפעלה, לוחצים על הצגת פרטים.
הצגת יומני Logging של Dataform
בקטע הזה מוסבר איך להציג את יומני Cloud Logging של הפעלות של תהליכי עבודה ב-Dataform.
כל הפעלה של תהליך עבודה ב-Dataform מתועדת באמצעות רישום ביומן. הרישום ביומן מופעל באופן אוטומטי להפעלות של תהליכי עבודה ב-Dataform, ויכול להיות שתחויבו על הרישום ביומן. מידע נוסף זמין במאמר התמחור של Dataform.
צפייה ביומנים
כדי לראות את היומנים, נכנסים לדף Logs Explorer.
למידע על סינון יומני Logging ב-Logs Explorer, קראו את המאמר הצגת יומנים באמצעות Logs Explorer.
היומנים של Dataform נוספים לאינדקס לפי מאגר Dataform.
פורמט היומן
הודעות היומן של הפעלת תהליך העבודה נשלחות מ-Dataform בפורמט הבא:
{
"insertId": "14ip1tza5",
"jsonPayload": {
"terminalState": "SUCCEEDED",
"workflowInvocationId": "1678383230-ac4ed48c-eb70-4555-b2b0-cda54d13edfa",
"@type": "type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry"
},
"resource": {
"type": "dataform.googleapis.com/Repository",
"labels": {
"repository_id": "repository-name-example",
"resource_container": "PROJECT_ID",
"location": "us-central1"
}
},
"timestamp": "2023-03-09T17:34:06.965981805Z",
"severity": "INFO",
"logName": "projects/project-name-example/logs/dataform.googleapis.com%2Fworkflow_invocation_completion",
"receiveTimestamp": "2023-03-09T17:34:07.362371980Z"
}
מה מתועד ביומן
רשומות ביומן של Dataform מכילות מידע שימושי למעקב אחרי הפעלות של תהליכי עבודה ולאיתור באגים בהן.
הרשומות ביומן מכילות את סוגי המידע הבאים:
receiveTimestamprelease_config_idrepository_idresource_containerworkflow_invocation_idworkflow_config_id-
severity: יכול להיותINFO,WARNINGאוERROR -
terminalState: יכול להיותSUCCEEDED,CANCELEDאוFAILED timestamp@type
יומני השירות של Dataform מספקים אירועי הפעלה ברמה גבוהה, כמו יומני השלמה של הפעלת תהליך עבודה. עם זאת, יומני השירות האלה לא כוללים מזהי משימות ספציפיים ב-BigQuery או ביצוע פעולות ברמת הטבלה. כדי לאחזר פרטי ביצוע מפורטים ברמת הפעולה ואת מזהי המשימות התואמים ב-BigQuery להפעלה של תהליך עבודה, קראו את המאמר התאמה בין משימות ב-BigQuery להפעלות של תהליכי עבודה.
הגדרת מדדים והתראות באמצעות Cloud Monitoring
אתם יכולים להשתמש ב-Monitoring כדי לצפות במגמות ביומנים ולקבל התראות כשמתקיימים תנאים מסוימים שהגדרתם.
כדי לספק ל-Monitoring נתונים מהיומנים, Logging מציע את האפשרויות הבאות:
- מדדים מבוססי-יומנים, שבהם אפשר להשתמש באופן הבא:
- כדי ליצור כללי מדיניות התראות שיודיעו לכם על שינויים לאורך זמן.
- כדי ליצור תרשימים שמציגים שינויים לאורך זמן.
- התראות מבוססות-יומן, שמודיעות לכם בכל פעם שאירוע ספציפי מופיע ביומן.
מידע נוסף על מדדים מבוססי-יומנים והתראות מבוססות-יומנים זמין במאמר מעקב אחרי היומנים.
במאמר הגדרת התראות על הפעלות כושלות של תהליכי עבודה מוסבר איך מגדירים התראות מבוססות-יומנים להפעלות של תהליכי עבודה ב-Dataform.
קישור בין משימות ב-BigQuery להפעלות של תהליכי עבודה
יומני השירות של Dataform בסוג המשאב dataform.googleapis.com/Repository מספקים אירועים ברמה גבוהה של הפעלת תהליך עבודה, כמו יומני השלמה של הפעלת תהליך עבודה. עם זאת, יומני השירות האלה לא כוללים ביצועים של פעולות ברמת הטבלה או מזהי משימות ספציפיים של BigQuery.
כש-Dataform מריץ פעולות כמו יצירה או עדכון של טבלאות, תצוגות או טענות נכונות (assertions), הוא שולח משימות ב-BigQuery ומצרף אוטומטית תוויות לכל משימה. אתם יכולים גם לאחזר את מזהה המשימה ב-BigQuery לכל פעולה ישירות מ-Dataform API, על ידי קריאה ל-method workflowInvocations.query ובדיקת השדה bigqueryAction.jobId.
בטבלה הבאה מפורטות תוויות המפתח ש-Dataform מצרף למשימות ב-BigQuery:
| מפתח התווית | תיאור |
|---|---|
dataform_workflow_execution_id |
המזהה המטוהר של הפעלת תהליך העבודה ב-Dataform. |
dataform_repository_id |
המזהה המטוהר של מאגר Dataform. |
dataform_workflow_execution_action_id_database |
פרויקט היעד (מסד הנתונים) של הפעולה. |
dataform_workflow_execution_action_id_schema |
מערך הנתונים (הסכימה) של היעד של הפעולה. |
dataform_workflow_execution_action_id_name |
השם של טבלת היעד, התצוגה או ההצהרה של הפעולה. |
כדי לקשר בין משימות ב-BigQuery ופרטי הפעלה ברמת הפעולה לבין הפעלה של תהליך עבודה:
משיגים את מזהה ההפעלה של תהליך העבודה להרצה. כדי לחפש את המזהה ב-Logs Explorer, שולחים שאילתה לאחד מסוגי היומנים הבאים של Dataform:
יומני
workflow_invocation_completion(מופעלים כברירת מחדל): מעתיקים את הערך של השדהjsonPayload.workflowInvocationIdמרשומת היומן:resource.type="dataform.googleapis.com/Repository" resource.labels.repository_id="REPOSITORY_ID" log_id("dataform.googleapis.com/workflow_invocation_completion")יומני הביקורת של
CreateWorkflowInvocationData Access (אם יומני הביקורת של Data Access מופעלים לפעולות שלDATA_WRITE): מעתיקים את הקטעWORKFLOW_INVOCATION_IDבסוף השדהprotoPayload.resourceName:resource.type="dataform.googleapis.com/Repository" resource.labels.repository_id="REPOSITORY_ID" log_id("cloudaudit.googleapis.com/data_access") protoPayload.methodName:"Dataform.CreateWorkflowInvocation"
מחליפים את
REPOSITORY_IDבמזהה של מאגר Dataform.כדי למצוא את המשימות התואמות ב-BigQuery, אתם יכולים לשלוח שאילתה ליומני הביקורת של BigQuery ב-Logs Explorer או לתצוגה
INFORMATION_SCHEMA.JOBSב-BigQuery. בחרו אחת מהאפשרויות הבאות:Logs Explorer
נכנסים לדף Logs Explorer במסוף Google Cloud .
בחלונית Query, מזינים את השאילתה הבאה:
resource.type="bigquery_project" protoPayload.metadata.jobChange.job.jobConfig.labels.dataform_workflow_execution_id="WORKFLOW_INVOCATION_ID"
מחליפים את
WORKFLOW_INVOCATION_IDבמזהה ההפעלה של תהליך העבודה.לוחצים על Run query.
השאילתה מחזירה רשומות ביומן של משימות BigQuery לאותה הפעלה של תהליך העבודה. בכל רשומה ביומן, השדה
protoPayload.metadata.jobChange.job.jobNameמכיל את שם המשאב של המשימה ב-BigQuery, והשדותjobStatsו-jobStatusמספקים נתונים סטטיסטיים על הביצוע ופרטים על הסטטוס.
BigQuery Studio
נכנסים לדף BigQuery Studio במסוף Google Cloud .
בעורך השאילתות, מריצים את השאילתה הבאה:
SELECT job_id, creation_time, state, error_result, total_bytes_billed, (SELECT value FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_action_id_schema') AS target_schema, (SELECT value FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_action_id_name') AS target_name, query FROM `region-LOCATION`.INFORMATION_SCHEMA.JOBS WHERE DATE(creation_time) = CURRENT_DATE() AND EXISTS ( SELECT 1 FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_id' AND value = 'WORKFLOW_INVOCATION_ID' );מחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: המיקום ב-BigQuery שבו המשימות רצו, למשלusאוeu. -
WORKFLOW_INVOCATION_ID: המזהה של הפעלת תהליך העבודה.
-
הגדרת התראות על הפעלות שנכשלו של תהליכי עבודה
בקטע הזה מוסבר איך להגדיר התראות מבוססות-יומנים להפעלות שנכשלו של תהליכי עבודה ב-Dataform באמצעות Logs Explorer.
אתם יכולים להשתמש ב-Monitoring כדי לצפות במגמות ביומני הרישום של הפעלות של תהליכי עבודה ב-Dataform, ולקבל התראות כשמתקיימים התנאים שאתם מגדירים.
כל הפעלה של תהליך עבודה ב-Dataform מתועדת באמצעות רישום ביומן. הרישום ביומן מופעל באופן אוטומטי להפעלות של תהליכי עבודה ב-Dataform, ויכול להיות שתחויבו על הרישום ביומן. מידע נוסף זמין במאמר התמחור של Dataform.
כדי לקבל התראות כשמתרחשת שגיאה בהפעלה של תהליך עבודה ב-Dataform, אתם יכולים ליצור התראות מבוססות-יומן.
אפשר ליצור התראות מבוססות-יומנים מהדף Logs Explorer במסוף Google Cloud או באמצעות Monitoring API. בקטע הזה מוסבר איך ליצור התראות מבוססות-יומנים על כשל בהפעלת תהליך עבודה ב-Dataform באמצעות Logs Explorer.
כדי להגדיר התראות מבוססות-יומנים להפעלות שנכשלו של תהליכי עבודה ב-Dataform:
במסוף Google Cloud , בוחרים באפשרות Logging ואז ב-Logs Explorer.
בחלונית Query, לוחצים על Show query ומזינים את השאילתה הבאה:
resource.type="dataform.googleapis.com/Repository" jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry" jsonPayload.terminalState="FAILED"השאילתה הזו מתריעה על כל ההפעלות שנכשלו של תהליכי עבודה ב-Dataform.
אופציונלי: כדי לסנן הפעלות של תהליכי עבודה שנכשלו לפי הגדרת גרסה, מוסיפים את הטקסט הבא לשאילתה:
jsonPayload.releaseConfigId="RELEASE_CONFIGURATION_ID"מחליפים את
RELEASE_CONFIGURATION_IDבמזהה של הגדרת הגרסה.אופציונלי: כדי לסנן הפעלות של תהליכי עבודה שנכשלו לפי הגדרות אישיות של תהליך עבודה, מוסיפים את הטקסט הבא לשאילתה:
jsonPayload.workflowConfigId="WORKFLOW_CONFIGURATION_ID"מחליפים את
WORKFLOW_CONFIGURATION_IDבמזהה של הגדרת תהליך העבודה.
השאילתה הבאה שולחת התראה כשנכשלת הפעלה של תהליך עבודה ב-Dataform שקשורה גם להגדרת הגרסה
dailyוגם להגדרת תהליך העבודהproduction:resource.type="dataform.googleapis.com/Repository" jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry" jsonPayload.terminalState="FAILED" jsonPayload.releaseConfigId="daily" jsonPayload.workflowConfigId="production"אופציונלי: כדי לאמת את השאילתה, משתמשים באפשרות Run query בחלונית Query results.
בכותרת של החלונית Query results, לוחצים על Create alert. אם החלון צר, יכול להיות שהאפשרות Create alert תופיע בתפריט Actions.
בחלונית Alert details, נותנים שם ותיאור להתראה:
בשדה שם ההתראה, נותנים שם להתראה. לדוגמה:
Dataform: workflow failure.מזינים תיאור להתראה. אפשר גם לכלול מידע שיעזור לנמען של ההתראה לאבחן את הבעיה. המחרוזת הבאה מסכמת את הסיבה להתראה:
Log-based alert in project ${project} detected a failed Dataform workflow.במאמר הוספת הערות להתראות באמצעות מסמכים שמוגדרים על ידי המשתמש מוסבר איך לעצב ולהתאים את התוכן של השדה הזה.
כדי לעבור לשלב הבא, לוחצים על הבא.
בחלונית Choose logs to include in the alert, לוחצים על Preview logs כדי לבדוק את השאילתה והתוצאות.
מומלץ ליצור את השאילתה בחלונית Query ב-Logs Explorer. השאילתה שיצרתם בחלונית Query מוצגת גם בחלונית הזו.
אם צריך, אפשר לערוך את השאילתה בחלונית הזו. אם עורכים את השאילתה, צריך לבדוק את התוצאות בלחיצה על Preview logs.
לוחצים על הבא.
בוחרים את משך הזמן המינימלי בין ההתראות. הערך הזה מאפשר לכם לקבוע כמה התראות תקבלו מההתראה הזו אם היא תופעל כמה פעמים. בדוגמה הזו, בוחרים באפשרות 5 min.
אופציונלי: בוחרים את משך הזמן לסגירה אוטומטית של האירוע. כברירת מחדל, משך הזמן לסגירה אוטומטית של אירוע מוגדר ל-7 ימים.
לוחצים על הבא.
בוחרים ערוץ התראות אחד או יותר. בדוגמה הזו, בוחרים ערוץ התראות באימייל.
אם כבר הגדרתם ערוץ התראות באימייל, אתם יכולים לבחור אותו מהרשימה. אם לא, לוחצים על Manage notification channels ומוסיפים ערוץ אימייל. איך יוצרים ומנהלים ערוצי התראות
לוחצים על Save.
ההתראה מבוססת-היומן מוכנה לבדיקה. במאמר בדיקת הדוגמה למדיניות התראות מבוססות-יומנים מוסבר איך בודקים את ההתראה.
המאמרים הבאים
- מידע נוסף על הפעלה ידנית של הרצות
- איך מתזמנים הפעלות באמצעות Workflows ו-Cloud Scheduler
- איך מגדירים שינויים של הגדרות ברירת המחדל של הידור באמצעות Dataform API
- מידע על יומני ביקורת של Cloud ועל Monitoring.
- מידע על התמחור של Logging