錯誤追蹤¶
可以設定 Airflow 將錯誤發送到 Sentry。
設定¶
首先您必須安裝 sentry 需求
pip install 'apache-airflow[sentry]'
之後,您需要透過在 [sentry]
區段中將 sentry_on
選項設定為 True
來啟用整合。
將您的 SENTRY_DSN
新增至您的組態檔,例如 airflow.cfg
中的 [sentry]
區段。其範本如下所示:{PROTOCOL}://{PUBLIC_KEY}@{HOST}/{PROJECT_ID}
[sentry]
sentry_on = True
sentry_dsn = http://foo@sentry.io/123
注意
如果未提供此值,SDK 將嘗試從 SENTRY_DSN
環境變數讀取它。
before_send
選項可用於在事件傳送到 Sentry 之前修改或捨棄事件。若要設定此選項,請提供 before_send
函數的點狀路徑,Sentry SDK 應配置為使用該函數。
[sentry]
before_send = path.to.my.sentry.before_send
transport
選項可用於變更用於將事件傳送到 Sentry 以及可能其他系統的傳輸方式。若要設定此選項,請提供 Transport 類別的點狀路徑,Sentry SDK 應配置為使用該類別。
[sentry]
transport = path.to.my.sentry.Transport
您可以透過 [sentry]
區段,根據 Python 平台提供其他組態選項。不支援的選項:integrations
、in_app_include
、in_app_exclude
、ignore_errors
、before_breadcrumb
。
標籤¶
名稱 |
描述 |
---|---|
|
失敗的 DAG 名稱 |
|
失敗的任務名稱 |
|
任務失敗時的資料間隔開始時間 |
|
任務失敗時的資料間隔結束時間 |
|
失敗的任務之 Operator 名稱 |
為了向後相容性,另一個標籤 execution_date
也可用於表示邏輯日期。該標籤應被視為已棄用,建議改用 data_interval_start
。
麵包屑¶
當任務因錯誤而失敗時,將為目前 DAG 執行中的其他任務新增麵包屑。
名稱 |
描述 |
---|---|
|
在失敗任務之前執行的任務之任務 ID |
|
在失敗任務之前執行的任務之最終狀態 (僅擷取成功和失敗狀態) |
|
在失敗任務之前執行的任務之任務 Operator |
|
在失敗任務之前執行的任務之持續時間 (秒) |
Sentry 對傳遞至子程序 Hook 的環境變數之影響¶
當啟用 Sentry 時,預設情況下它會變更標準程式庫,以將所有環境變數傳遞到 Airflow 開啟的子程序。這變更了 airflow.hooks.subprocess.SubprocessHook
的預設行為 - 總是將所有環境變數傳遞到以特定環境變數集執行的子程序。在這種情況下,不僅傳遞了指定的環境變數,而且還傳遞了所有現有的環境變數,並新增了 SUBPROCESS_
前綴。對於所有其他子程序也會發生這種情況。
可以透過將 default_integrations
sentry 組態參數設定為 False
來停用此行為,這會停用 StdlibIntegration
。但是,這也會停用其他預設整合,因此如果您希望它們保持啟用狀態,則需要手動啟用它們 (請參閱 Sentry 預設整合)。
[sentry]
default_integrations = False