JavaScript Monitoring
Real-time performance monitoring, analysis and profiling of JavaScript code by Germain UX.
Feature
Light Real-time Analysis of Javascript
Any light/basic JS execution analysis can be performed with Germain UX RUM JS orGermain UX RUM Extension
Metrics and benefits
Example of Light JavaScript Execution Analysis
Example of User Click Analysis that includes Light JS Execution or other Backend Transaction Analysis (real-time)

Detail Execution Flow for User Click
Advanced Real-time Analysis of Javascript
Any Advanced JS execution analysis can be performed with Germain UX JS Profiler
Benefits & Metrics
Real-time performance monitoring and analysis of JavaScript application, down to the line of JS code can be performed by Germain UX, 24x7, in real-time.
Metrics provided:
JavaScript method execution time
JavaScript line (of code) execution time
Stall duration
Download duration
Wait duration
etc
That above feature can be used in conjunction with other Germain’s tracing features to automate end-to-end transaction analysis of User Click or other Transaction (browser>java script>network request>web request>application code>database sql,...levels and any integration layers). More details about .
Example of Advanced JavaScript Execution Analysis
Line-by-line Time Breakdown (real-time)

JavaScript Waterfall Portlet
Insights about Stall, Connection, Wait, Download ,etc

Transaction Breakdown
Deployment
Standard UX Only | Chrome Extension | Chrome Extension | Performance Profiling API | |
---|---|---|---|---|
Benefits | User Experience Monitoring | User Experience Monitoring | User Experience Monitoring | User Experience Monitoring |
Requires Germain Monitoring enabled | Yes | Yes | Yes | Yes |
Requires Germain Chrome Extension | No | Yes | Yes | No |
Chrome to be run with banner silenced | No | Yes | No | No |
Custom Response Header | No | No | No | Yes |
End-User Experience | Impacted | Impacted | Impacted | Impacted |
Security | Standard | High | Standard | Standard |
Browser Support | Google Chrome 48+ | Google Chrome 48+ | Google Chrome 94+, Edge 94+, Opera 80+ |
Chrome Extension (No banner)
This option avoids the Debugging banner from appearing on the end-user’s browser while JavaScript Execution Time/profiling is being collected in the background. Have the End-Users launch Chrome with an additional flag
Go to Germain Workspace > Left Menu > Analytics > UX Monitoring Profiles
Select UX Monitoring Profile to update
Select JavaScript Profiling Monitoring in the Configuration Editor
Locate the shortcut file used to launch Chrome: search for the shortcut in the Start Menu, right-click the shortcut, choose "Open file location"
Edit the properties of the Chrome shortcut file: right click, properties
Add
--silent-debugger-extension-api
to the end of the target value, leaving a space betweenEnsure that this modified shortcut is what is used when running Chrome to open the web page being monitored
Chrome Extension (Banner on end-user browser)
Go to Germain Workspace > Left Menu > Analytics > UX Monitoring Profiles
Select UX Monitoring Profile to update
Select JavaScript Profiling Monitoring in the Configuration Editor

As a security feature, Chrome will display a banner along the top of the browser window when a monitored page is open. It looks like the following:
If the user clicks either the Cancel or X buttons, the JS profiler details will cease to be collected until the page is opened in a new tab and the banner re-appears.
Custom Response Header
Go to Germain Workspace > Left Menu > Analytics > UX Monitoring Profiles
Select UX Monitoring Profile to update
Select JavaScript Profiling Monitoring in the Configuration Editor
Add
Document-Policy: js-profiling
response header to each page for which you want to collect JavaScript Time Execution / Profiling details
Disable Javascript Monitoring
Go to Germain Workspace > Left Menu > Analytics > UX Monitoring Profiles
Select UX Monitoring Profile to update
Unselect JavaScript Profiling Monitoring in the Configuration Editor

Advanced Configuration
All the settings available on the settings.plugins.jsProfiling
object are listed below. Please contact us If you need any help with this advanced configuration.
/** Minimum function/stack hits to end up in the result output. Default: 0. */
functionMinStackHits: number;
/** Maximum sample capacity for JavaScript Self-Profiling API only (in samples). Default: 1000. */
maxSampleBufferSize: number;
/** Maximum profiling duration (in seconds). Default: 30. */
maxProfileDuration: number;
/** Start profiler on first page ready event if true. Otherwise it will start from the next page load. Default: true. */
profileOnPageReady: boolean;
/** Target sample interval (in millis per sample). Default: 20. */
sampleIntervalMillis: Millis;
/** Check for JavaScript Self-Profiling API and before checking for JS Profiler extension. This avoids "Document policy violation: js-profiling is not allowed in this document." error message if API not allowed but we check for it. Default: false. */
useSelfProfilingAPI: boolean;
/** Run profiler for all except these usernames. Undefined or empty array means run for everyone. Default: undefined. */
excludedUsernames?: string[];
/** Run profiler only for these usernames. Undefined or empty array means run for everyone. Default: undefined. */
includedUsernames?: string[];
Component: JS Profiler
Feature Availability: 2022.2 or later