מעקב אחר הפעלות

במאמר הזה מוסבר איך:

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

כדי לעקוב אחרי יומני הביצוע, חשוב לוודא שאתם מבצעים את הפעולות הבאות:

  1. נכנסים לדף Dataform במסוף Google Cloud .

    כניסה ל-Dataform

  2. בוחרים מאגר או יוצרים מאגר.

  3. בוחרים או יוצרים סביבת עבודה לפיתוח.

  4. מפעילים הרצה לפחות פעם אחת.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לצפייה ביומני הביצוע, בקשו מהאדמין לתת לכם את התפקידים הבאים ב-IAM:

  • עריכה ב-Dataform ‏(roles/dataform.editor) במאגר של Dataform שבו מתבצע מעקב אחרי הפעלות של תהליכי עבודה
  • אימות ההגדרה של הרצה: משתמש בחשבון שירות (roles/iam.serviceAccountUser) בחשבון השירות בהתאמה אישית

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

התפקיד צפייה ביומנים (roles/logging.viewer) ב-IAM נותן הרשאת קריאה בלבד לכל התכונות של Cloud Logging. במאמר בקרת גישה באמצעות IAM תוכלו לקרוא מידע נוסף על ההרשאות והתפקידים בניהול הזהויות והרשאות הגישה (IAM) שחלים על נתוני הרישום ביומן.

כדי ליצור ולנהל התראות מבוססות-יומנים, ודאו שתפקיד ה-IAM שלכם כולל את ההרשאות שמתוארות במאמר התפקידים שנדרשים כדי ליצור כללי מדיניות של התראות מבוססות-יומנים ולהשתמש בהם.

מעקב אחרי יומני הביצוע

בקטע הזה מוסבר איך להציג את יומני ההפעלה ב-Dataform.

אתם יכולים לראות את היומנים של כל ההפעלות שהופעלו במאגר, ואת היומנים של ההפעלות שהופעלו בסביבת עבודה ב-24 השעות האחרונות.

בדיקת יומני הביצוע של המאגר

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

  1. נכנסים לדף Dataform במסוף Google Cloud .

    כניסה ל-Dataform

  2. עוברים למאגר.

  3. לוחצים על Workflow Execution Logs.

  4. כדי לראות את פרטי ההפעלה, לוחצים על ההפעלה.

  5. כדי לראות את הפרטים של פעולה מסוימת, לוחצים על הצגת פרטים.

בדיקת יומני הביצוע של סביבת העבודה

כדי לראות את היומנים של 1,000 ההפעלות האחרונות שהופעלו בסביבת עבודה ב-24 השעות האחרונות, מבצעים את הפעולות הבאות:

  1. נכנסים לדף Dataform במסוף Google Cloud .

    כניסה ל-Dataform

  2. עוברים למאגר ובוחרים את סביבת העבודה.

  3. בסביבת העבודה, לוחצים על Executions (הפעלות).

  4. כדי לראות את פרטי ההפעלה, לוחצים עליה.

  5. כדי לראות פרטים של פעולה בתוך ההפעלה, לוחצים על הצגת פרטים.

הצגת יומני Logging של Dataform

בקטע הזה מוסבר איך להציג את יומני Cloud Logging של הפעלות של תהליכי עבודה ב-Dataform.

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

צפייה ביומנים

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

הרשומות ביומן מכילות את סוגי המידע הבאים:

  • receiveTimestamp
  • release_config_id
  • repository_id
  • resource_container
  • workflow_invocation_id
  • workflow_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 ופרטי הפעלה ברמת הפעולה לבין הפעלה של תהליך עבודה:

  1. משיגים את מזהה ההפעלה של תהליך העבודה להרצה. כדי לחפש את המזהה ב-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")
      
    • יומני הביקורת של CreateWorkflowInvocation Data 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.

  2. כדי למצוא את המשימות התואמות ב-BigQuery, אתם יכולים לשלוח שאילתה ליומני הביקורת של BigQuery ב-Logs Explorer או לתצוגה INFORMATION_SCHEMA.JOBS ב-BigQuery. בחרו אחת מהאפשרויות הבאות:

    Logs Explorer

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

      כניסה לדף Logs Explorer

    2. בחלונית Query, מזינים את השאילתה הבאה:

      resource.type="bigquery_project"
      protoPayload.metadata.jobChange.job.jobConfig.labels.dataform_workflow_execution_id="WORKFLOW_INVOCATION_ID"
      

      מחליפים את WORKFLOW_INVOCATION_ID במזהה ההפעלה של תהליך העבודה.

    3. לוחצים על Run query.

      השאילתה מחזירה רשומות ביומן של משימות BigQuery לאותה הפעלה של תהליך העבודה. בכל רשומה ביומן, השדה protoPayload.metadata.jobChange.job.jobName מכיל את שם המשאב של המשימה ב-BigQuery, והשדות jobStats ו-jobStatus מספקים נתונים סטטיסטיים על הביצוע ופרטים על הסטטוס.

    BigQuery Studio

    1. נכנסים לדף BigQuery Studio במסוף Google Cloud .

      כניסה ל-BigQuery Studio

    2. בעורך השאילתות, מריצים את השאילתה הבאה:

      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:

  1. במסוף Google Cloud , בוחרים באפשרות Logging ואז ב-Logs Explorer.

    כניסה לדף Logs Explorer

  2. בחלונית Query, לוחצים על Show query ומזינים את השאילתה הבאה:

        resource.type="dataform.googleapis.com/Repository"
        jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry"
        jsonPayload.terminalState="FAILED"
     

    השאילתה הזו מתריעה על כל ההפעלות שנכשלו של תהליכי עבודה ב-Dataform.

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

          jsonPayload.releaseConfigId="RELEASE_CONFIGURATION_ID"
      

      מחליפים את RELEASE_CONFIGURATION_ID במזהה של הגדרת הגרסה.

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

          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"
    
  3. אופציונלי: כדי לאמת את השאילתה, משתמשים באפשרות Run query בחלונית Query results.

  4. בכותרת של החלונית Query results, לוחצים על Create alert. אם החלון צר, יכול להיות שהאפשרות Create alert תופיע בתפריט Actions.

  5. בחלונית Alert details, נותנים שם ותיאור להתראה:

    1. בשדה שם ההתראה, נותנים שם להתראה. לדוגמה: Dataform: workflow failure.

    2. מזינים תיאור להתראה. אפשר גם לכלול מידע שיעזור לנמען של ההתראה לאבחן את הבעיה. המחרוזת הבאה מסכמת את הסיבה להתראה:

      Log-based alert in project ${project} detected a failed Dataform workflow.
      

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

  6. כדי לעבור לשלב הבא, לוחצים על הבא.

  7. בחלונית Choose logs to include in the alert, לוחצים על Preview logs כדי לבדוק את השאילתה והתוצאות.

    מומלץ ליצור את השאילתה בחלונית Query ב-Logs Explorer. השאילתה שיצרתם בחלונית Query מוצגת גם בחלונית הזו.

    אם צריך, אפשר לערוך את השאילתה בחלונית הזו. אם עורכים את השאילתה, צריך לבדוק את התוצאות בלחיצה על Preview logs.

  8. לוחצים על הבא.

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

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

  11. לוחצים על הבא.

  12. בוחרים ערוץ התראות אחד או יותר. בדוגמה הזו, בוחרים ערוץ התראות באימייל.

    אם כבר הגדרתם ערוץ התראות באימייל, אתם יכולים לבחור אותו מהרשימה. אם לא, לוחצים על Manage notification channels ומוסיפים ערוץ אימייל. איך יוצרים ומנהלים ערוצי התראות

  13. לוחצים על Save.

ההתראה מבוססת-היומן מוכנה לבדיקה. במאמר בדיקת הדוגמה למדיניות התראות מבוססות-יומנים מוסבר איך בודקים את ההתראה.

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