本文說明如何啟用、產生及查看 Batch 工作的 Cloud Logging 記錄。
您可以透過記錄取得有助於分析工作的資訊。舉例來說,記錄檔可協助您偵錯失敗的工作。
請注意,只有在工作開始執行後,且工作已啟用記錄功能時,系統才會產生記錄檔。 如要分析沒有記錄檔的工作,請改為查看狀態事件。
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
-
如要取得使用記錄分析作業所需的權限,請要求管理員授予下列 IAM 角色:
-
如何建立工作:
-
批次工作編輯者 (
roles/batch.jobsEditor
) 專案 -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 在作業的服務帳戶上,預設為預設 Compute Engine 服務帳戶
-
批次工作編輯者 (
-
如要查看記錄,請按照下列步驟操作:
在專案中點選「記錄檢視器」 (
roles/logging.viewer
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
如何建立工作:
啟用作業的記錄功能
如要允許系統為工作產生記錄,請在建立工作時,從 Cloud Logging 啟用記錄功能:
- 如果您使用 Google Cloud 控制台建立工作,系統一律會啟用 Cloud Logging 的記錄。
如果您使用 gcloud CLI 或 Batch API 建立工作,系統預設會停用 Cloud Logging 的記錄。如要啟用 Cloud Logging 的記錄,請在建立工作時,為
logsPolicy
欄位加入下列設定:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
為工作撰寫及產生記錄
為工作啟用 Cloud Logging 記錄時,Cloud Logging 會自動產生為工作寫入的任何記錄。具體來說,Batch 工作可有下列記錄類型:
代理程式記錄 (
batch_agent_logs
):Batch 服務代理程式活動的記錄。如果工作已啟用記錄功能,Batch 會自動為每個工作寫入代理程式記錄。
工作記錄 (
batch_task_logs
):您已將工作可執行檔設定為寫入標準輸出 (stdout
) 串流或標準錯誤 (stderr
) 串流的任何資料記錄。您可以選擇為已啟用記錄功能的每個工作撰寫工作記錄。
查看工作的記錄
您可以使用 Google Cloud 控制台、gcloud CLI、Logging API、Go、Java、Python 或 C++,查看工作記錄。
主控台
如要使用 Google Cloud 控制台查看工作的記錄,請執行下列操作:
gcloud
如要使用 gcloud CLI 查看記錄,請使用 gcloud logging read
指令:
gcloud logging read "QUERY"
其中 QUERY
是批次記錄的查詢,包含批次篩選參數。
API
如要使用 Logging API 查看記錄,請使用 entries.list
方法:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
更改下列內容:
PROJECT_ID
:專案的專案 ID。QUERY
:Batch 記錄的查詢,其中包含 Batch 篩選器參數。
Go
Go
詳情請參閱 Batch Go API 參考說明文件。
如要向 Batch 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
Java
詳情請參閱 Batch Java API 參考說明文件。
如要向 Batch 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
Python
詳情請參閱 Batch Python API 參考說明文件。
如要向 Batch 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
C++
C++
詳情請參閱 Batch C++ API 參考說明文件。
如要向 Batch 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
篩選 Batch 記錄
您可以編寫查詢,其中包含一或多個下列篩選參數,以及零或多個布林運算子 (AND
、OR
和 NOT
),藉此篩選批次記錄。
如要篩選特定工作的記錄,請指定該工作的專屬 ID (UID):
labels.job_uid=JOB_UID
其中
JOB_UID
是工作 UID。如要取得工作 UID,請查看工作詳細資料。如要篩選特定類型的 Batch 記錄,請指定記錄類型:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
更改下列內容:
PROJECT_ID
:要查看記錄的專案專案 ID。BATCH_LOG_TYPE
:要查看的批次記錄類型,可以是工作記錄 (batch_task_logs
) 或代理程式記錄 (batch_agent_logs
)。
如要篩選含有自訂狀態事件的記錄,請指定記錄必須定義
jsonPayload.batch/custom/event
欄位:jsonPayload.batch"/"custom"/"event!=NULL_VALUE
如要篩選一或多個特定嚴重程度的記錄,請指定下列比較:
severityCOMPARISON_OPERATORSEVERITY_ENUM
更改下列內容:
COMPARISON_OPERATOR
:比較運算子,例如>=
。SEVERITY_ENUM
:LogSeverity
列舉,說明記錄的嚴重程度,例如ERROR
。
如需更多篩選選項,請參閱 Cloud Logging 查詢語言說明文件。
後續步驟
- 進一步瞭解如何排解問題。
- 進一步瞭解 Cloud Logging。
- 瞭解如何編寫工作記錄。
- 瞭解如何匯出工作資訊。
- 瞭解如何刪除工作。