Hi - while learning about Druid I put together a little example that runs Druid broker, coordinator, historical and overlord nodes in Docker containers, along with an example application that generates random events and sends them to Druid via Tranquility:
A random event is generated roughly every 100 msec, and batches of 10 events are sent at once via Tranquility. So there should be roughly 600 events per minute going to Druid. Index granularity is 1 minute and segment granularity is 1 hour.
If I include eventId (just a random UUID) as a dimension, then a timeseries query at minute granularity for count aggregation  consistently returns counts of 575 or 576 for each minute interval. I would expect this to be 600. Any ideas why there would be 24-25 less events counted each minute than expected? It does take 1.5-2 msec to do the send to Tranquility, but I don’t think that accounts for 25 missing events every minute.
However, if I don’t include eventId as a dimension  then the same timeseries query  only ever returns between 15-21 events for each minute interval. This is nowhere even remotely close to expected 600 events per minute. Any ideas why this would be? Does Druid need to have some kind of unique ID dimension to be able to count individual events?