Enduser experience monitoring (browser)

Description

End-User Experience Monitoring (EUM) deals with monitoring the client side of a Web application like rendering times in the browser, loaded resources, JavaScript execution times and other aspects. The information provided by EUM are complementary to the information monitored on the server side.

The inspectIT agent should be extended to inject the required JavaScript code into a response of the application server. The instrumentation should include the monitoring of metrics provided by the performance.timing.api and the resource.api (both provided by the browser as property values) as well as timing behavior of JavaScript functions and AJAX calls.

The monitored information should be transmitted to the inspectIT agent to be combined with server-side traces.

Environment

None

Activity

Show:
Ivan Senic
October 14, 2016, 2:47 PM

Build is still failing on jenkins.. Compiler error, most likely because of rebase..

Jonas Kunz
October 14, 2016, 3:12 PM

Rebase issue plus two missing files I forgot to commit. Should be fixed now.

Ivan Senic
October 19, 2016, 12:09 PM

I am really happy how the integration goes here.. We are very fast and reaching the wanted state soon would not be surprise for me.. Sure there's still work to be done..

Really good work, nice improvements from the iteration one, let's continue in same pace

Ivan Senic
December 15, 2016, 3:01 PM

: Not so much comments left, most of them are saying OK or small changes.. Should be not hard to prepare for next iteration.. I will try to check JS again and try to understand everything there, but most likely I won't put any additional comment as I think you both are much better there than me. We need to check the test results and make sure that it works on all major browser and that on others is not making any problems. I would really like to integrate this by the end of Jan 2017. It's already few months in integration, we need to finish it and apply improvements later on (if there are any).

P.S. I think I actually learned some stuff with you Jonas and David, thanks for that, you are both very very good developers already..

Technical User
May 23, 2017, 10:02 AM

SUCCESS: Integrated in

inspectIT - Integration #300
INSPECTIT-1959, INSPECTIT-2247: Added support for End User Experience (ivan.senic: cd87d435faaa1fd5e0c4d3f81a6c30236d6777c9)

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/RuntimeLinkerTest.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/instrumentation/config/ConfigurationCreator.java

  • (add) inspectit.agent.java/src/test/resources/html/testCase-InvalidToken.html

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/util/AutoboxingHelper.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/html/HtmlTokenParserTest.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/constants/Series.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/CorrectProxySubject.java

  • (edit) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/serializer/impl/SerializationManager.java

  • (add) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/IPointBuilder.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/instrumentation/JSAgentBuilder.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/CpuInformationPointBuilder.java

  • (delete) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/DefaultDataPointBuilder.java

  • (edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/Environment.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/processor/impl/InfluxProcessor.java

  • (add) inspectit.agent.java/src/test/resources/html/testCase-XHTML.html

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/IProxySubject.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/UserAction.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/CachedConstructor.java

  • (edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/storage/serializer/SerializationManagerPostProcessor.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/util/CharacterRingBufferTest.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/TimerPointBuilder.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/html/StreamedHtmlScriptInjector.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/ProxyFor.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/AbstractEUMData.java

  • (add) inspectit.agent.java/src/test/resources/js/tests/qunit/qunit.js

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/PageLoadRequest.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/RequestType.java

  • (add) inspectit.agent.java/src/test/resources/js/tests/tests.js

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/ThreadInformationPointBuilder.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/ProxyBuildPlanImplTest.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/ClassLoadingPointBuilder.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/IProxyClassInfo.java

  • (add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/sensor/method/special/impl/EUMInstrumentationSensorConfig.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/html/DecodingHtmlScriptInjectorTest.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/PageLoadAction.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/ClassToProxy.java

  • (add) inspectit.agent.java/src/main/resources/js/plugins/async.js

  • (add) inspectit.agent.java/src/test/resources/html/testCase-HeadInjection.html

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/ProxyMethod.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/ThreadInformationPointBuilderTest.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/MemoryInformationPointBuilder.java

  • (edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/factory/SpecialMethodSensorAssignmentFactory.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/SystemInformationPointBuilder.java

  • (add) inspectit.agent.java/src/main/resources/js/plugins/navtimings.js

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/instrumentation/config/impl/AgentEndUserMonitoringConfig.java

  • (add) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/SinglePointBuilder.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/data/IDataHandler.java

  • (add) inspectit.agent.java/src/main/resources/js/plugins/listener.js

  • (add) inspectit.agent.java/src/main/resources/js/plugins/ajax.js

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/CachedMethod.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/html/CharSequenceUtilsTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/impl/InvalidProxyDescriptionException.java

  • (add) inspectit.agent.java/src/test/resources/js/tests/tests-main.html

  • (edit) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/instrumentation/config/SpecialInstrumentationType.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/impl/RuntimeLinker.java

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

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/instrumentation/TagInjectionOutputStream.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/BusinessTransactionPointBuilderTest.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/TimerPointBuilderTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/special/EUMInstrumentationHook.java

  • (edit) resources/config/checkstyle/inspectit-checkstyle.xml

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/WHttpServletRequest.java

  • (add) inspectit.agent.java/src/test/resources/html/testCase-XML.html

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/config/impl/ConfigurationStorage.java

  • (add) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/eum/SessionPointBuilder.java

  • (add) inspectit.agent.java/src/main/resources/js/plugins/restimings.js

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/AjaxRequest.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/ClickAction.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/JmxPointBuilder.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/IJavaScriptEventListenerAction.java

  • (edit) inspectit.agent.java/.classpath

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/html/CaretTest.java

  • (add) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/eum/UserActionPointBuilder.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/IProxyBuilder.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/JmxPointBuilderTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/html/DecodingHtmlScriptInjector.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/instrumentation/TagInjectionResponseWrapper.java

  • (add) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/eum/EndUserMonitoringConfig.java

  • (add) inspectit.agent.java/src/test/resources/html/testCase-BodyInjection.html

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/processor/impl/InfluxProcessorTest.java

  • (add) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/form/part/EUMSettingsPart.java

  • (edit) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/instrumentation/config/impl/AgentConfig.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/instrumentation/TagInjectionResponseWrapperTest.java

  • (edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/model/SensorTypeEnum.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/instrumentation/config/impl/JSAgentModule.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/ASMProxyBuilderTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/http/StartEndMarker.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/Request.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/html/StreamedHtmlScriptInjectorTest.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/SystemInformationPointBuilderTest.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/RenamingClassLoader.java

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

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/WServletOutputStream.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/impl/ProxyBuildPlanImpl.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/eum/data/DataHandlerTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/IProxyBuildPlan.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/html/CharSequenceUtils.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/IRuntimeLinker.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/data/DataHandler.java

  • (add) inspectit.agent.java/src/main/resources/js/plugins/rum-speedindex.js

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/instrumentation/config/ConfigurationCreatorTest.java

  • (add) inspectit.agent.java/src/test/resources/js/tests/qunit/qunit.css

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

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/HttpPointBuilder.java

  • (add) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/eum/SessionAwarePointBuilder.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/CpuInformationPointBuilderTest.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/MemoryInformationPointBuilderTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/config/IConfigurationStorage.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/ClassLoaderAwareClassCache.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/html/HtmlTokenParser.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/instrumentation/TagInjectionPrintWriter.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/proxy/impl/ASMProxyBuilder.java

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

  • (edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/factory/ConfigurationDefaultsFactory.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/special/EUMInstrumentationHookTest.java

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/instrumentation/asm/IInstrumenterConstant.java

  • (edit) inspectit.server/src/main/external-resources/ci/schema/ciSchema.xsd

  • (edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/core/impl/CoreService.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/ClassLoadingPointBuilderTest.java

  • (add) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/proxy/InterfaceToProxy.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/WHttpServletResponse.java

  • (add) inspectit.agent.java/src/test/resources/js/tests/eum/agent_full.js

  • (add) inspectit.agent.java/src/main/resources/js/inspectit_jsagent_base.js

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/instrumentation/config/ConfigurationResolver.java

  • (edit) inspectit.server/src/main/java/rocks/inspectit/server/influx/builder/BusinessTransactionPointBuilder.java

  • (edit) inspectit.ui.rcp/src/main/java/rocks/inspectit/ui/rcp/ci/form/page/EnvironmentSettingsPage.java

  • (edit) inspectit.server/src/test/java/rocks/inspectit/server/influx/builder/HttpPointBuilderTest.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/reflection/WCookie.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/util/CharacterRingBuffer.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/UserSessionInfo.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/eum/html/Caret.java

  • (add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/sensor/method/special/EUMInstrumentationSensor.java

  • (edit) inspectit.shared.cs/src/test/java/rocks/inspectit/shared/cs/ci/factory/SpecialMethodSensorAssignmentFactoryTest.java

  • (add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/communication/data/eum/ResourceLoadRequest.java

Assignee

Jonas Kunz

Reporter

Stefan Siegl

Labels

Integrator

Ivan Senic

Components

Sprint

None

Fix versions

Priority

Medium
Configure