What does Plumbr consist of?

Plumbr deployments contain up to three different modules:

  • Browser Agent, capturing the end user experience in the device used by your customers. This is the module you should be installing first.
  • Java and Universal (PHP, Python, nginx, Apache) agents, tracing the user interaction through backend services. Presence of these agents also exposes bottlenecks & errors in the backend layers. Installation of these modules is optional.
  • Plumbr Server, responsible of receiving and processing the data collected by the Agents. Server also exposes the UI. We recommend using our SaaS offering as the Server. In this case, the installed Agents would connect to https://app.plumbr.io and serve the user interface also via https://app.plumbr.io.

If you only use the Browser Agent, the deployment model includes injecting our JavaScript Agent as the first script to the <HEAD> section of all the HTML pages in your application. After doing so, the Agent can start listening to the end user interactions in the browser:

Plumbr Browser concept

The data captured is sent to Plumbr Server, which is responsible for assembling all the details about the user interaction and allowing you to run analysis on the data.

In case you are after end-to-end transparency and deploy both the Browser and server agents (Java, PHP, Python, nginx, Apache), the user interactions are monitored from the browser to all the nodes in the backend:

Plumbr Java and Browser Agent

The Plumbr Java Agent is packaged as a standard -javaagent, and attaching it does not mean you need to make any changes to your application. The only required change involves pinpointing the location of the Agent in the file system by adding -javaagent:/path/to/plumbr.jar to JVM startup scripts.

The Plumbr Universal Agent runs an additional process outside of the monitored application. It is installed either as a system service, or launched manually when used in Docker images. No changes to the monitored application are required. The agent is attached by setting the LD_PRELOAD environment variable, which is automatically added to the configurations of supported system services.

The Agents located in the monitored nodes pass along the transaction ID as a call metadata via HTTP headers. This way all the nodes servicing the user interaction can be assembled in the Plumbr Server into a single interaction distributed across multiple nodes.