Robin Moffatt created KAFKA-10865:
-------------------------------------
Summary: Improve trace-logging for Transformations (including
Predicates)
Key: KAFKA-10865
URL: https://issues.apache.org/jira/browse/KAFKA-10865
Project: Kafka
Issue Type: Improvement
Components: KafkaConnect
Reporter: Robin Moffatt
I've been spending [a bunch of time poking around
SMTs|https://rmoff.net/categories/twelvedaysofsmt/] recently, and one common
challenge I've had is being able to debug when things don't behave as I expect.
I know that there is the {{TransformationChain}} logger, but this only gives
(IIUC) the input record
{code:java}
[2020-12-17 09:38:58,057] TRACE [sink-simulator-day12-00|task-0] Applying
transformation io.confluent.connect.transforms.Filter$Value to
SinkRecord{kafkaOffset=10551, timestampType=CreateTime}
ConnectRecord{topic='day12-sys01', kafkaPartition=0,
key=2c2ceb9b-8b31-4ade-a757-886ebfb7a398, keySchema=Schema{STRING},
value=Struct{units=16,product=Founders Breakfast
Stout,amount=30.41,txn_date=Sat Dec 12 18:21:18 GMT 2020,source=SYS01},
valueSchema=Schema{io.mdrogalis.Gen0:STRUCT}, timestamp=1608197938054,
headers=ConnectHeaders(headers=)}
(org.apache.kafka.connect.runtime.TransformationChain:47)
{code}
I think it would be really useful to also have trace level logging that
included:
- the _output_ of *each* transform
- the evaluation and result of any `predicate`s
I have been using
{{com.github.jcustenborder.kafka.connect.simulator.SimulatorSinkConnector}}
which is really useful for seeing the final record:
{code:java}
[2020-12-17 09:38:58,057] INFO [sink-simulator-day12-00|task-0]
record.value=Struct{units=16,product=Founders Breakfast
Stout,amount=30.41,txn_date=Sat Dec 12 18:21:18 GMT 2020,source=SYS01}
(com.github.jcustenborder.kafka.connect.simulator.SimulatorSinkTask:50)
{code}
But doesn't include things like topic name (which is often changed by common
SMTs)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)