1

We are polling messages from kafka (using Executor Thread) and put it on vert.x eventbus. eventually the verticles(non-workers) consuming those messages from the eventbus.

we measured that the time it takes to each message to be consumed from vertx eventbus after it was sent to it can reach to 4 seconds on peaks.

for some reason occasionally it takes to the eventbus long time to consume messages but not showing thread block error therfore we cant tell what delaying it

weird thing that we dont see any event loop block warnings. what else can we do? cpu/ram are all good. only metric that can actually show something is that:

enter image description here

but it doesnt tell us anything (no idea how eventbus handlers can be associated with eventloop latency)

what shall we check to understand what makes our eventloop consumption from vert.x eventbus to be slow?

rayman
  • 20,786
  • 45
  • 148
  • 246

1 Answers1

0

You should try to measure the amount of data you're sending through the eventbus in a timeline and the amount of data that are received on each verticle through the same eventbus. This can highlight a bottleneck issue.

Maybe you should take a look to the jmx metrics provided by vertx-dropwizard-metrics project. That's can be usefull to be able to compute this timelines.

You also might be interested by taking a look to a Java APM like glowroot for example to have a better understanding of what's wrong.

Idriss Neumann
  • 3,760
  • 2
  • 23
  • 32
  • we are measuring it all using the dropwizard. we measure the time it took a message to be consumed and also measured the average latency of each eventloop request. we cant find anything extreme. – rayman Dec 30 '18 at 09:58
  • @rayman Maybe you should also analyze the amount of data in memory during the periods when messages took too much time to be consumed. You should also take a look to a Java APM like glowroot to have a better understanding of what's wrong. – Idriss Neumann Dec 31 '18 at 08:16
  • how java APM would help here? what should I look after? how could it be related to slow eventloop consuming? – rayman Jan 01 '19 at 09:29
  • @rayman slow eventloop can be related to many reasons: number of waiting threads, size of the thread pool, amount of data in memory, etc. A java APM is a way (among others) to analyze that kind of things and find what's wrong more easily. – Idriss Neumann Jan 01 '19 at 10:28