Fix asynchronous spans capturing and displaying in the UI

Description

The first release of tracing had on purpose a small mishandling of the asynchronous spans. On the JVM that fires asynchronous HTTP we were hooking in on the place where request was fired and thus could not measure the actual duration neither to read response code. Because of this we needed to adapt representation of the UI top fir to this case.

Now with tracing on the browser that is mostly asynchronous and tracing of the executor service executions, we come to a problem that we need to align all asynchronous spans to same way of capturing and displaying. This effectively means that asynchronous HTTP request must be intercepted on the start and end in order to start the span and capture context information. Furthermore, the UI needs to be adapted.

In this ticket we should:

  • Fix the Jetty client to report request correctly

  • Fix JMS to be asynchronous only on the server side

  • Remove support for SpringRest async

  • Fix the UI representations

Environment

None

Activity

Show:
Technical User
August 1, 2017, 10:20 AM

SUCCESS: Integrated in

inspectIT - Integration #332
INSPECTIT-2500: Fixing async spans capturing and display (ivan.senic: 77d0940ea9e772c024369596d9dd122c510e4148)

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/HttpServerRequestAdapter.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/proxy/JettyEventListenerProxy.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/tracing/core/ServerInterceptorTest.java

  • (edit) inspectit.agent.java.sdk/src/main/java/rocks/inspectit/agent/java/sdk/opentracing/internal/impl/SpanImpl.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/tracing/core/transformer/SpanTransformerTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/listener/IAsyncSpanContextListener.java

  • (edit) inspectit.server/src/main/external-resources/ci/profiles/common/remote-http.xml

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/invocationsequence/InvocationSequenceSensor.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/ClientRequestAdapter.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/tracing/core/adapter/http/proxy/JettyEventListenerProxyTest.java

  • (edit) inspectit.agent.java.sdk/src/test/java/rocks/inspectit/agent/java/sdk/opentracing/internal/impl/SpanImplTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/server/mq/JmsListenerRemoteServerSensor.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/client/http/SpringRestTemplateClientSensorTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/AsyncHttpClientRequestAdapter.java

  • (edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/tree/input/TraceInvocDetailsInputController.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/http/SpringRestTemplateClientSensor.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/ServerInterceptor.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/invocationsequence/InvocationSequenceHookTest.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/tracing/core/ClientInterceptorTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/RemoteClientSensor.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/ServerRequestAdapter.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/client/RemoteAsyncClientHookTest.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/client/http/JettyHttpClientV61SensorTest.java

  • (edit) inspectit.shared.cs/src/main/resources/META-INF/MANIFEST.MF

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/tracing/core/async/SpanStoreTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/HttpClientRequestAdapter.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/ClientInterceptor.java

  • (edit) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/tracing/constants/ExtraTags.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/http/JettyHttpClientV61Sensor.java

  • (edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/client/mq/JmsRemoteClientSensorTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/async/SpanStore.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/invocationsequence/InvocationSequenceHook.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/mq/JmsRemoteClientSensor.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/SpanStoreAdapter.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/RemoteClientHook.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/data/impl/JettyHttpClientV61HttpClientRequest.java

  • (edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/editor/tree/util/TraceTreeData.java

  • (edit) inspectit.agent.java.sdk/src/main/java/rocks/inspectit/agent/java/sdk/opentracing/internal/impl/SpanBuilderImpl.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/RemoteAsyncClientSensor.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/RequestAdapter.java

  • (edit) inspectit.shared.all/src/main/resources/META-INF/MANIFEST.MF

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/mq/MQRequestAdapter.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/remote/client/RemoteAsyncClientHook.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/AsyncClientAdapterProvider.java

  • (edit) dependencies.gradle

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/transformer/SpanTransformer.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/AsyncClientRequestAdapter.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/HttpRequestAdapter.java

  • (edit) inspectit.agent.java.sdk/src/test/java/rocks/inspectit/agent/java/sdk/opentracing/internal/impl/SpanBuilderImplTest.java

  • (edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/communication/data/InvocationSequenceDataHelper.java

Fixed

Assignee

Ivan Senic

Reporter

Ivan Senic

Integrator

Marius Oehler