gpt4 book ai didi

apache-flink - Flink Logging 获取作业名称或作业 ID

转载 作者:行者123 更新时间:2023-12-02 04:34:46 25 4
gpt4 key购买 nike

我正在尝试设置 logback.xml,以便它包含与日志相关联的 JobName 或 JobId。

我还没有找到一种方法来做到这一点。可能吗?

最终我想要实现的是能够将日志发送到 ElasticSearch 并使用消息标记 JobName 或 Id,以便我能够按作业进行过滤。

最佳答案

我们最终做了以下事情,感觉 super hacky,我们希望我们能找到更好的方法。

  1. 设置集群以使用 logback

  2. 通过实现 ch.qos.logback.classic.selector.ContextSelector

    创建自定义 logback ContextSelector
  3. 将您的 jar 放在您的每个 Flink TaskManagers 类路径中

  4. 修改每个 flink TaskManager 上的 FLINK_ENV_JAVA_OPTS_JM 以指定上下文选择器。例如:

    export FLINK_ENV_JAVA_OPTS_JM="-Dlogback.ContextSelector=your.custom.context.Selector"

  5. 重新启动所有任务管理器

  6. 测试它。

这是我们创建的 ContextSelector 的要点。如果你有任何改进,我很乐意提出请求!! Custom Flink Logback ContextSelector

这为每个 JobID 创建一个 LoggerContext,然后使用 JobID 向 JobManager 发出请求以取回 JobName。然后,它将 JobName 拆分为“:”,并将头部组件放入 LoggerContext 属性“flink_job_name”,并将尾部组件放入 LoggerContext 属性“flink_job_version”。

关于apache-flink - Flink Logging 获取作业名称或作业 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44573148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com