簡體   English   中英

Flink Logging 獲取作業名稱或作業 ID

[英]Flink Logging getting job name or job id

我正在嘗試設置 logback.xml,以便它包含與日志記錄關聯的 JobName 或 JobId。

我還沒有找到一種方法來做到這一點。 可能嗎?

最終,我想要實現的是能夠將日志發送到 ElasticSearch,並將 JobName 或 Id 標記為消息,以便我能夠按工作進行過濾。

我們最終做了以下事情,感覺超級hacky ,我們希望我們能找到更好的方法。

  1. 設置集群以使用 logback

  2. 通過實現ch.qos.logback.classic.selector.ContextSelector創建自定義 logback ContextSelector

  3. 將您的 jar 放在您的每個 Flink TaskManagers 類路徑中

  4. 在您的每個 flink TaskManagers 上修改FLINK_ENV_JAVA_OPTS_JM以指定您的上下文選擇器。 例如:

    導出 FLINK_ENV_JAVA_OPTS_JM="-Dlogback.ContextSelector=your.custom.context.Selector"

  5. 重新啟動所有任務管理器

  6. 測試一下。

這是我們創建的 ContextSelector 的要點。 如果您有任何改進,我很樂意提出改進請求! 自定義 Flink Logback ContextSelector

這會為每個 JobID 創建一個 LoggerContext,然后使用 JobID 向 JobManager 發出請求以取回 JobName。 然后它通過“:”拆分 JobName 並將頭部組件放入 LoggerContext 屬性“flink_job_name”,並將尾部組件放入 LoggerContext 屬性“flink_job_version”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM