loggie icon indicating copy to clipboard operation
loggie copied to clipboard

Kafka Source如何输出消息体key值

Open nevermosby opened this issue 2 years ago • 2 comments

如题,Kafka的生产者是有key和value的,但通过loggie消费,默认只输出value。请问,如何配置可获取到key?

nevermosby avatar Jul 31 '22 10:07 nevermosby

暂时不支持,可以考虑支持一下。

ethfoo avatar Aug 03 '22 13:08 ethfoo

简单看了下相关代码,目前loggie只取了msg.Value,没有取msg.Key https://github.com/loggie-io/loggie/blob/main/pkg/source/kafka/kafka.go#L173-L188

	e := k.eventPool.Get()
	header := e.Header()
	if header == nil {
		header = make(map[string]interface{})
	}
	header["kafka"] = map[string]interface{}{
		"offset":    msg.Offset,
		"partition": msg.Partition,
		"timestamp": msg.Time.Format(time.RFC3339),
		"topic":     msg.Topic,
	}

	for _, h := range msg.Headers {
		header[h.Key] = string(h.Value)
	}
	e.Fill(e.Meta(), header, msg.Value)

我想自己魔改下,感觉直接在msg.Value拼上msg.Key好像不大合理。是不是append在header里比较合适,方便后续自行处理。 Any suggestions?

nevermosby avatar Aug 05 '22 06:08 nevermosby