如何在Kafka Connect Runtime中获取任务详细信息(ID和连接器)

时间:2020-04-02 03:59:05

标签: apache-kafka apache-kafka-connect

我正在尝试创建自定义连接器,并且希望在任务运行时内记录任务详细信息(连接器和任务ID)。在“任务启动和轮询”方法中,我要记录任务号和连接器名称。有什么方法可以获取提供任务详细信息(连接器和任务ID)的程序运行时上下文。

请注意,连接器可能有多个并行运行的任务(tasks.max配置),因此我想将特定消息与创建它的特定任务相关联。

2 个答案:

答案 0 :(得分:2)

映射诊断上下文(MDC)日志记录已添加到Apache Kafka 2.3,您可以通过设置以下内容来记录此信息:

log4j.appender.stdout.layout.ConversionPattern=[%d] %p %X{connector.context}%m (%c:%L)%n

这给您这样的日志:

INFO [sink-elastic-orders-00|task-0] Using multi thread/connection supporting pooling connection manager (io.searchbox.client.JestClientFactory:223)
INFO [sink-elastic-orders-00|task-0] Using default GSON instance (io.searchbox.client.JestClientFactory:69)

ref:https://www.confluent.io/blog/kafka-connect-improvements-in-apache-kafka-2-3

答案 1 :(得分:1)

给定的Connector具有一个ajax字段,但是我没有在API中看到如何获取有关正在运行的任务的元数据的详细信息