Splunk Completes Acquisition of Plumbr Learn more

Services detected in API calls

Whenever the operation arriving to the JVM has not started in a browser monitored by the Plumbr Browser Agent, service detection is the responsibility of the JVM accepting. Service detection in JVM is done differently for different applications:

  • HTTP calls. If the call arrive via HTTP protocol, Plumbr extracts the service from either:
    • MVC framework metadata. If Plumbr supports a particular Java MVC framework (see the list below) used to process the incoming HTTP request, service detection uses the class/method name of the controller invoked
    • If the HTTP call is not processed by a supported MVC framework, the service is detected using the information encoded in the URL.
  • EJB methods. If the call arriving to the JVM is a remote EJB call, Plumbr users the EJB class and method name as the service
  • Swing event listeners. If the interaction was captured in a Swing application, this interaction sets the Swing event and action listeners as the service

Detecting a service from MVC

When a JVM monitored by Plumbr exposes its services via an MVC framework supported by Plumbr, the service name is extracted from the controller processing the transaction. For example, when an HTTP request such as

http://www.example.com/payments?actionId=payInvoice&invoiceId=411121

is mapped and processed by a Struts controller, the service is extracted from the controller. An example of such a controller would then be visible in the Plumbr interface similar to:

com.example.payments.PaymentAction.execute().

The controllers from the following MVC frameworks are currently supported for service detection:

  • Spring MVC
  • Struts 1 & 2
  • GWT 2.x
  • JSF 1.1+
  • Vaadin 6+
  • ZK 7+
  • Play framework

Whenever a HTTP request is not processed by an MVC framework known to Plumbr, service detection falls back to capturing the service from the information encoded in the URL.