控制 Dataflow 記錄擷取作業

排除篩選器可讓您控制 Cloud Logging 擷取的 Dataflow 記錄量,同時仍提供詳細記錄以供偵錯。您可以使用排除篩選器,排除 Cloud Logging 擷取相符的記錄項目,或排除將相符的記錄項目轉送至接收器目的地。使用 Logging 查詢語言建立排除篩選器。 您可以使用記錄查詢語言,指定所選 Google Cloud 資源 (例如專案或資料夾) 中所有記錄項目的子集。

使用排除篩選器可減少 Dataflow 記錄擷取作業產生的 Cloud Logging 費用。如要進一步瞭解 Cloud Logging 的記錄檔擷取定價,請參閱 Cloud Logging 定價摘要。如要進一步瞭解排除篩選器的運作方式和限制,請參閱 Cloud Logging 說明文件中的「排除篩選器」。

Dataflow 工作會發出多種記錄類型。 本頁面說明如何篩選 Dataflow 工作記錄和工作站記錄。

建立記錄排除篩選器

這個範例會在 _Default Cloud Logging 接收器上建立排除篩選器。這個篩選器會排除所有 DEFAULTDEBUGINFONOTICE 嚴重程度的 Dataflow 記錄,避免這些記錄匯入 Cloud Logging。系統仍會擷取 WARNINGERRORCRITICALALERTEMERGENCY 嚴重程度記錄。如要進一步瞭解支援的記錄層級,請參閱「LogSeverity」。

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 權限

    開始前,請確認下列事項:

    • 您擁有 Google Cloud 專案,且能在記錄檔探索工具中查看專案的記錄檔。

    • 您具有來源專案的下列其中一個 IAM 角色,可從該專案路由傳送記錄。Google Cloud

      • 擁有者 (roles/owner)
      • 記錄管理員 (roles/logging.admin)
      • 記錄設定寫入者 (roles/logging.configWriter)

      這些角色包含的權限可讓您建立、刪除或修改接收器。如要瞭解如何設定 IAM 角色,請參閱 Logging 存取權控管指南

    • 你擁有支援目的地的資源,或可以建立資源。

      建立接收器之前,必須先透過 Google Cloud CLI、 Google Cloud 控制台或 Google CloudAPI 建立路由目的地。您可以在任何機構的任何 Google Cloud 專案中建立目的地。建立目的地前,請確認接收器的服務帳戶具備目的地的寫入權限

    新增排除篩選器

    下列步驟說明如何將 Cloud Logging 排除篩選器新增至 Dataflow 記錄。這項排除篩選器會從 Dataflow 工作中選取嚴重程度為 DEFAULTDEBUGINFONOTICE 的所有 Dataflow 記錄項目,但 Dataflow 工作名稱結尾為 debug 的工作除外。這個篩選器會排除這些記錄,避免擷取至 Default Cloud Logging bucket。

    1. 前往 Google Cloud 控制台的「記錄檔路由器」頁面:

      前往記錄檔路由器

    2. 找到含有 _Default 接收器的資料列,展開「動作」選項,然後按一下「編輯接收器」

    3. 在「選擇要從接收器排除的記錄檔」中,按一下「建立排除篩選器」「新增排除條件」

    4. 輸入排除篩選器的名稱。

    5. 在「建立排除篩選器」部分中,將下列文字貼到方塊中:

      resource.type="dataflow_step" AND
      labels."dataflow.googleapis.com/job_name"!~".*debug" AND
      severity=(DEFAULT OR DEBUG OR INFO OR NOTICE)
      
      • 第一行會選取 Dataflow 服務產生的所有記錄項目。
      • 第二行會選取 job_name 欄位結尾不是 debug 字串的所有記錄項目。
      • 第三行會選取嚴重程度為 DEFAULTDEBUGINFONOTICE 的所有記錄項目。
    6. 按一下「更新接收器」

    測試排除篩選器

    您可以執行範例 Dataflow 工作,然後查看記錄,確認篩選器是否正常運作。

    工作開始執行後,如要查看工作記錄,請完成下列步驟:

    1. 前往 Google Cloud 控制台的 Dataflow「Jobs」(工作) 頁面。

      前往「Jobs」(工作) 頁面

      畫面上會顯示 Dataflow 工作清單,清單中也會顯示工作的狀態。

    2. 選取職務。

    3. 在「Job details」(工作詳細資料) 頁面的「Logs」(記錄) 面板中,按一下「Show」(顯示)

    4. 確認「Job logs」(工作記錄) 面板中未顯示任何記錄,且「Worker logs」(工作站記錄) 面板中未顯示任何 DEFAULTDEBUGINFONOTICE 記錄。

    略過排除篩選器

    Dataflow 工作名稱 (job_name) 可在需要擷取產生的 Dataflow 記錄檔時,提供繞過機制。您可以使用這項功能重新執行失敗的工作,並擷取所有記錄資訊。

    在此情境中建立的篩選器會保留所有記錄項目,前提是 job_name 欄位結尾為 debug 字串。如要略過排除篩選器並顯示 Dataflow 工作的所有記錄,請在工作名稱後方附加 debug。舉例來說,如要略過排除篩選器,可以使用工作名稱 dataflow-job-debug

    比較記錄計數

    如要比較有排除篩選條件和沒有排除篩選條件時的記錄檔擷取量,請執行一個工作,並在工作名稱後方附加 debug,另一個工作則不附加。使用系統定義的記錄指標「記錄位元組」,查看及比較擷取資料。如要進一步瞭解如何查看擷取資料,請參閱「在 Metrics Explorer 中查看擷取資料」。

    建立外部目的地

    建立排除篩選器後,您可以選擇建立額外的 Cloud Logging 接收器。使用這個接收器,將整套 Dataflow 記錄重新導向至支援的外部目的地,例如 BigQuery、Pub/Sub 或 Splunk。

    在這種情況下,外部記錄檔不會儲存在記錄檔探索工具中,但會儲存在外部目的地。使用外部目的地可讓您進一步控管在 Logs Explorer 中儲存記錄檔所產生的費用。

    如要瞭解如何控管 Cloud Logging 轉送記錄的方式,請參閱設定及管理接收器。如要擷取外部目的地中的所有 Dataflow 記錄,請在「選擇要納入接收器的記錄」面板的「建構納入篩選器」欄位中,輸入下列篩選器運算式:

    resource.type="dataflow_step"
    

    如要尋找從 Cloud Logging 轉送至支援目的地的記錄項目,請參閱「查看接收器目的地中的記錄檔」。

    依嚴重性追蹤 Dataflow 記錄訊息

    排除篩選器不適用於使用者定義的記錄指標。這些指標會計算符合指定篩選器的記錄項目數,或記錄相符記錄項目內的特定值。如要依嚴重性追蹤 Dataflow 記錄訊息的計數,可以為 Dataflow 記錄建立記錄指標。即使記錄訊息排除在擷取範圍之外,系統仍會追蹤記錄。

    系統會針對使用者定義的記錄指標收費。如要查看定價資訊,請參閱「計費指標」。

    如要設定使用者定義的記錄指標,請參閱「建立計數器指標」。如要追蹤 Dataflow 記錄,請在「選取篩選條件」部分,於「建立篩選器」方塊中輸入下列文字:

    resource.type="dataflow_step"