airflow.providers.google.cloud.log.stackdriver_task_handler

與 Stackdriver 整合的處理器。

模組內容

類別

StackdriverTaskHandler

直接發出 Stackdriver 日誌 API 呼叫的處理器。

屬性

DEFAULT_LOGGER_NAME

airflow.providers.google.cloud.log.stackdriver_task_handler.DEFAULT_LOGGER_NAME = 'airflow'[source]
class airflow.providers.google.cloud.log.stackdriver_task_handler.StackdriverTaskHandler(gcp_key_path=None, scopes=_DEFAULT_SCOPESS, name=NOTSET, transport=BackgroundThreadTransport, resource=_GLOBAL_RESOURCE, labels=None, gcp_log_name=DEFAULT_LOGGER_NAME)[source]

基底類別: logging.Handler

直接發出 Stackdriver 日誌 API 呼叫的處理器。

這是一個 Python 標準的 logging 處理器,可用於將 Python 標準日誌訊息直接路由到 Stackdriver Logging API。

它也可以用於儲存執行中任務的日誌。若要執行此操作,您應將其設定為名稱為 “tasks” 的處理器。在這種情況下,它也將用於讀取日誌以在 Web UI 中顯示。

此處理器同時支援非同步和同步傳輸。

參數
  • gcp_key_path (str | None) – Google Cloud 憑證 JSON 檔案的路徑。如果省略,將使用基於應用程式預設憑證的授權。

  • scopes (collections.abc.Collection[str] | None) – 憑證的 OAuth 範圍。

  • name (str | airflow.utils.types.ArgNotSet) – Stackdriver Logging 中自訂日誌的名稱。預設為 ‘airflow’。Python logger 的名稱將在 python_logger 欄位中表示。

  • transport (type[google.cloud.logging.handlers.transports.Transport]) – 用於建立新傳輸物件的類別。它應從基礎 google.cloud.logging.handlers.Transport 類型擴展,並實作 :meth`google.cloud.logging.handlers.Transport.send`。預設為 google.cloud.logging.handlers.BackgroundThreadTransport。另一個選項是 google.cloud.logging.handlers.SyncTransport

  • resource (google.cloud.logging.Resource) – (選用) 日誌條目的監控資源,預設為全域資源類型。

  • labels (dict[str, str] | None) – (選用) 日誌條目的標籤映射。

property log_name[source]

傳回日誌名稱。

LABEL_TASK_ID = 'task_id'[source]
LABEL_DAG_ID = 'dag_id'[source]
LABEL_LOGICAL_DATE[source]
LABEL_TRY_NUMBER = 'try_number'[source]
LOG_VIEWER_BASE_URL = 'https://console.cloud.google.com/logs/viewer'[source]
LOG_NAME = 'Google Stackdriver'[source]
trigger_supported = True[source]
trigger_should_queue = False[source]
trigger_should_wrap = False[source]
trigger_send_end_marker = False[source]
emit(record)[source]

實際記錄指定的日誌記錄。

參數

record (logging.LogRecord) – 要記錄的記錄。

set_context(task_instance)[source]

設定記錄器以新增目前任務的相關資訊。

參數

task_instance (airflow.models.TaskInstance) – 目前執行的任務

read(task_instance, try_number=None, metadata=None)[source]

從 Stackdriver logging 讀取給定任務實例的日誌。

參數
  • task_instance (airflow.models.TaskInstance) – 任務實例物件

  • try_number (int | None) – 要從中讀取日誌的任務實例 try_number。如果為 None,則傳回所有日誌

  • metadata (dict | None) – 日誌 metadata。它用於串流日誌讀取和自動追蹤。

傳回

包含 ( (包含雙元素元組 - 主機名稱和日誌的單元素元組) 列表 和 metadata 列表 ) 的元組

傳回類型

tuple[list[tuple[tuple[str, str]]], list[dict[str, str | bool]]]

get_external_log_url(task_instance, try_number)[source]

為外部日誌收集服務建立位址。

參數
  • task_instance (airflow.models.TaskInstance) – 任務實例物件

  • try_number (int) – 要從中讀取日誌的任務實例 try_number

傳回

外部日誌收集服務的 URL

傳回類型

str

close()[source]

整理處理器使用的任何資源。

此版本從處理器的內部映射 _handlers 中移除處理器,_handlers 用於依名稱查找處理器。子類別應確保從覆寫的 close() 方法中呼叫此方法。

此條目是否有幫助?