I cannot show you the JSON that failed because I do not know how to retrieve it. I can send you only the JSON that we are reading in our tranquility app but not the message that is send to Druid. And the input messages are really OK. Is there a way how to print the message that was failed to ingest? The exact error in the task log is:
com.metamx.common.parsers.ParseException: Unparseable timestamp found!
at io.druid.data.input.impl.MapInputRowParser.parse(MapInputRowParser.java:55)
...
Caused by: java.lang.NullPointerException: Null timestamp in input: {keys=[floorPrice, responseTime, providerPrice, ibbSiteId, serverId, dspProvider, dimensionsWidth, h...
at io.druid.data.input.impl.MapInputRowParser.parse(MapInputRowParser.java:46)
... 52 more
I used tcpdump and it seems that our tranq app doesn't send the messages at all, just the keys, which is weird. I didn't see any JSON in the tcp dump. Part of the tcpdump (tcpdump -i eth0 -A):
..'
..H.x.............s}W.....
I'..I$..asChosenBid","userInfoStat","naturalKey","currency","impId","homeCountry","ibbInstallId","timestamp"]},{"keys":["floorPrice","responseTime","providerPrice","ibbSiteId","serverId","dspProvider","dimensionsWidth","hasResponse","accountId","hostname","userInfoRegion","dimensionsHeight","publisherPrice","adomain","publisherCurrency","pageImpressionKey","hasChosenBid","userInfoStat","naturalKey","currency","impId","homeCountry","ibbInstallId","timestamp"]},{"keys":["floorPrice","responseTime","providerPrice","ibbSiteId","serverId","dspProvider","dimensionsWidth","hasResponse","accountId","hostname","userInfoRegion","dimensionsHeight","publisherPrice","adomain","publisherCurrency","pageImpressionKey","hasChosenBid","userInfoStat","naturalKey","currency","impId","homeCountry","ibbInstallId","timestamp"]},{"keys":["floorPrice","responseTime","providerPrice","ibbSiteId","serverId","dspProvider","dimensionsWidth","hasResponse","accountId","hostname","userInfoRegion","dimensionsHeight","publisherPrice","adomain","publisherCurrency","pageImpressionKey","hasChosenBid","userInfoStat","naturalKey","currency","impId","homeCountry","ibbInstallId","timestamp"]},{"keys":["floorPrice","responseTime","providerPrice","ibbSiteId","serverId","dspProvider","dimensionsWidth","hasResponse","accountId","hostname","userInfoRegion","dimensionsHeight","publisherPrice","adomain","publisherCurrency","pageImpressionKey","hasChosenBid","userInfoStat","natural
07:32:47.388444 IP charger01.49016 > druidmiddlemanager02.8093: Flags [.], seq 15929:17377, ack 1, win 115, options [nop,nop,TS val 1227297702 ecr 1227157896], length 1448
E...h^@.@...
..'
The code responsible for sending messages in tranquility is quite simple:
packetizer.send(json);
and the json is SimpleJSON. We use the default timestampSpec.