What are bottlenecks?

Bottlenecks are underlying reasons why a particular user interaction or an API call was slower than expected. Plumbr’s goal is to map each slow user interaction as closely to the underlying bottleneck as possible, giving our users the means to understand the impact of each bottleneck.

The impact of a bottleneck is measured both in number of users who suffered from it, as well as the total time wasted while waiting behind this bottleneck. Having access to this information allows you to rank the bottlenecks and fix the ones with higher impact (i.e., more wasted time) first.

Bottlenecks are detected either in the layer monitored by a Plumbr Agent or as a downstream call from the layer. This is best understood via following example:

  1. The application is monitored only by Plumbr Browser Agent:
    The detected bottleneck exposes the blocking XHR call to the backend taking 6 seconds. As Plumbr was not monitoring the backend, there is no transparency to what in the backend was causing the six second wait.
  2. The application is monitored both by Plumbr Browser Agent and Java Agents:
    The detected bottleneck is now more specific, exposing that a synchronization issue within the JVM forced the XHR call to wait 5.5 seconds for the lock to be released.