Remote sensors provide information about the remote calls made in an application. These sensors enable tracking of the remote calls and combing interactions between JVMs in a single trace. There are two types of remote sensors: server and client. Client-side remote sensor start a new tracing span before making an outgoing request and propagate the new span identification along with that request. Server-side implementations first extract a span identification from an incoming request and continuing or starting a trace from that point. Note that in remote communication one JVM can usually stand as both server (receiving requests) and client (making requests to another JVM/component).
The sensors gather basic information about each remote call and measure it's duration, but in addition enrich the request with inspectIT tracing IDs, so that correlation can be done. For each supporting technology and library, there is a dedicated remote sensor. The correct configuration of the remote sensors is provided as part of the Common profiles and the users should use only to mark custom methods that represent start of the server side spans.
Remote sensors internally use the inspectIT implementation of the opentracing.io API.
Available remote sensors
The following table provides all currently available remote sensors
|Library / Framework||Description|
|Remote Apache HTTP Client Sensor||Client||HTTP||Apache HttpComponents Client (version 4.x)||Intercepts client requests made with Apache HTTP Client. Compatible with all 4.x versions.|
|Remote Async Apache HTTP Client Sensor||Client||HTTP||Apache HttpComponents Async Client (version 4.x)||Intercepts client requests made with Apache HTTP Async Client. Compatible with versions 4.x.|
Remote HTTP Java Server Sensor
|Server||HTTP||Java Servlet API (version 2.x & up)||Intercepts server requests served with Java Servlet API.|
|Remote Jetty HTTP Client Sensor||Client||HTTP||Jetty Http Client (versions 6.x, 7.x & 8.x)||Intercepts client requests made with Jetty HTTP Client. Compatible with versions 6.x, 7.x & 8.x. Not compatible with latest versions of Jetty Client.|
|Remote JMS Listener Server Sensor||Server||JMS||Java Message Service API (version 1.x & up)||Intercepts JMS message receiving via Message Listener.|
|Remote JMS Client Sensor||Client||JMS||Java Message Service API (version 1.x & up)||Intercepts JMS message sending via Message Producer.|
|Remote Spring Template Client Sensor||Client||HTTP||Spring Template (version 3.x & 4.x)||Intercepts client requests made with Spring RestTemplate wrapper. Helpful if you use Spring RestTemplate with a Netty, OkHttp or Async Apache HTTP client as underlying request factory. |
|Remote URL Connection Client Sensor||Client||HTTP||Java URL Connection (Java 6+)||Intercepts client requests made with Java URL connection. Independent of Java version used.|
|Remote Manual Server Sensor||Server||-||-||Intercepts server requests independent of technology and library/framework. Useful to mark custom trace start points, for example at the begging of the batch job. |
The following table provides an overview of sensors which purpose is supporting the functionality of another sensor. In most cases, the individual usage of these sensors will not make any sense.
|Apache Client Exchange Handler Sensor||Remote Async Apache HTTP Client Sensor||Intercepts the exchange handler of the Apache HTTP Async Client in order to correctly start a tracing span. Without this sensor, the collected spans will not have any timings.|