⚙️ Configure Browser-Side JavaScript Diagnostics for SAP
Use the GermainUX JS Profiler to collect advanced browser-side diagnostic information from supported SAP web applications.
This capability helps investigate JavaScript errors, browser freezes, long-running operations, slow user interactions, and network problems affecting SAP users.
It does not debug or profile ABAP code.
📋 Prerequisites
Before enabling browser-side diagnostics:
|
Requirement |
|
|---|---|
|
1 |
Deploy RUM JS or the appropriate GermainUX browser extension. |
|
2 |
Create a UX monitoring profile for the SAP web application. |
|
3 |
Confirm that standard user sessions and browser telemetry appear in GermainUX. |
|
4 |
Identify the users, pages, or workflows requiring deeper diagnostics. |
|
5 |
Obtain approval to deploy browser profiling to the selected users. |
|
6 |
Configure the required privacy and access controls. |
👥 Supported SAP interfaces
The JS Profiler can analyze browser-side activity in compatible:
|
Interface |
|---|
|
SAP Fiori applications |
|
SAPUI5 applications |
|
SAP Web GUI |
|
Custom SAP web applications |
|
Browser-based SAP portals |
Coverage depends on where the profiling component executes, browser support, same-origin restrictions, frames, and application security policies.
The JS Profiler does not monitor native SAP GUI desktop activity.
🔍 What the JS Profiler analyzes
The JS Profiler can collect supported information about:
|
Category |
|---|
|
JavaScript execution |
|
Function and call-stack activity |
|
Long-running browser operations |
|
Browser freezes |
|
Client-side errors |
|
Network requests |
|
Resource activity |
|
Browser-side SAPUI5 behavior |
|
Third-party JavaScript |
The exact detail depends on the browser, profiling method, duration, sampling configuration, and application architecture.
🚫 What it does not analyze
The JS Profiler does not directly analyze:
|
Excluded Item |
|---|
|
ABAP execution |
|
ABAP classes, methods, or function modules |
|
SAP application-server call stacks |
|
Database statements executed by ABAP |
|
SAP background jobs |
|
Native SAP GUI code |
|
Server-side integrations |
Use the GermainUX Engine to collect supported server-side logs, HTTP telemetry, database metrics, or custom SAP telemetry.
🚀 Enable JavaScript profiling
Go to:
Germain Workspace > Analytics > UX Monitoring Profiles
💡 Steps
-
Select the SAP monitoring profile.
-
Open the configuration editor.
-
Select JavaScript Profiling Monitoring.
-
Enable profiling.
-
Select the profiling method supported by the environment.
-
Restrict profiling to the required users or pages.
-
Save the profile.
Depending on the GermainUX version, UX Monitoring Profiles may appear under Settings > Analytics.
✅ Select a profiling method
🔧 JS Profiler browser extension
Use the supported GermainUX JS Profiler extension when browser-side profiling cannot be enabled directly through the application.
Deploy the extension to:
|
Target |
|---|
|
Application support users |
|
QA users |
|
Developers |
|
Selected users reproducing a problem |
|
Controlled diagnostic workstations |
The browser may display a notification while profiling is active. If the user dismisses that notification, profiling may stop for the current page or tab.
⚡ JavaScript Self-Profiling API
Where supported, profiling can use the browser’s JavaScript Self-Profiling API.
The monitored page must return:
Document-Policy: js-profiling
The header must be present in the page response. It cannot be granted by client-side JavaScript after the document loads.
Browser and policy support must be validated before using this method.
🎯 Target profiling
Avoid enabling continuous profiling for every SAP user unless its overhead, volume, security, and privacy implications have been reviewed.
👤 Include selected users
settings.plugins.jsProfiling.includedUsernames = [
"sap-diagnostic-user"
];
❌ Exclude selected users
settings.plugins.jsProfiling.excludedUsernames = [
"restricted-user"
];
An undefined or empty list means that the corresponding restriction is not applied.
Only use identifiers approved by the organization’s privacy policy.
💻 Target selected applications
Restrict profiling by:
|
Scope |
|---|
|
Application |
|
Environment |
|
Hostname |
|
URL |
|
SAP application |
|
User |
|
Diagnostic period |
Use the smallest scope that can reproduce the problem.
⚙️ Configure profiling
Available settings include:
|
Setting |
Default |
Description |
|---|---|---|
|
|
|
Minimum number of stack hits required for inclusion |
|
|
|
Maximum sample capacity for the Self-Profiling API |
|
|
|
Maximum profiling duration in seconds |
|
|
|
Starts profiling on the first page-ready event |
|
|
|
Target interval between samples |
|
|
|
Checks the Self-Profiling API before the extension |
|
|
Undefined |
Profiles only the listed users |
|
|
Undefined |
Excludes the listed users |
Example:
settings.plugins.jsProfiling.maxProfileDuration = 30;
settings.plugins.jsProfiling.sampleIntervalMillis = 20;
settings.plugins.jsProfiling.maxSampleBufferSize = 1000;
settings.plugins.jsProfiling.profileOnPageReady = true;
settings.plugins.jsProfiling.useSelfProfilingAPI = true;
settings.plugins.jsProfiling.includedUsernames = [
"sap-diagnostic-user"
];
Apply these settings before starting RUM JS:
germainApm.start(settings);
Longer profiling durations, shorter sampling intervals, and broader user coverage can increase browser overhead and data volume.
🔁 Reproduce an SAP browser problem
-
Enable profiling for the selected diagnostic user.
-
Start a new browser session.
-
Open the monitored SAP application.
-
Perform only the actions required to reproduce the issue.
-
Record the approximate reproduction time.
-
Close the diagnostic session or disable profiling.
-
Open the corresponding session in GermainUX.
-
Review the browser and JavaScript telemetry.
Analyze:
|
Item |
|---|
|
Long-running JavaScript activity |
|
Function and call-stack samples |
|
Browser blocking |
|
Network wait time |
|
Failed requests |
|
JavaScript errors |
|
Browser freezes |
|
Resource loading |
|
The action immediately preceding the problem |
Profiling samples can help identify expensive browser-side functions. They should not be described as guaranteed line-by-line execution tracing.
🔗 Correlate with other telemetry
Where compatible identifiers and data are available, correlate browser diagnostics with:
|
Telemetry |
|---|
|
RUM user actions |
|
Page and logical-view transitions |
|
Network requests |
|
HTTP endpoint monitoring |
|
SAP-related log events |
|
Supported database telemetry |
|
Synthetic-scenario failures |
This correlation must be configured and validated. It does not provide automatic browser-to-ABAP distributed tracing.
🔒 Privacy and security
Configure:
|
Control |
|---|
|
User targeting |
|
Page exclusions |
|
URL sanitization |
|
Request-header exclusion |
|
Request- and response-body exclusion |
|
Sensitive-data masking |
|
Data retention |
|
Role-based access |
Do not collect:
|
Data Type |
|---|
|
Passwords |
|
Authentication tokens |
|
Session cookies |
|
Authorization headers |
|
Sensitive business data |
|
Personal information that is not required for diagnostics |
Browser profiling must not be used to bypass SAP, browser, or organizational security controls.
✅ Validate the configuration
Confirm that:
|
Validation |
|---|
|
Profiling is enabled only for intended users. |
|
The extension or Self-Profiling API starts successfully. |
|
The SAP URL matches the monitoring profile. |
|
Profiling data appears in GermainUX. |
|
The data is associated with the correct user session. |
|
The reproduction period is included. |
|
Browser overhead remains acceptable. |
|
Sensitive data is not captured. |
|
Profiling stops when disabled. |
🛑 Disable profiling
When the investigation is complete:
-
Open the SAP UX monitoring profile.
-
Select JavaScript Profiling Monitoring.
-
Disable profiling or remove the included users.
-
Save the profile.
-
Remove the extension or response header if it is no longer required.
-
Confirm that new profiling data is no longer collected.
🔧 Troubleshooting
❔ No profiler data appears
Verify:
|
Check |
|---|
|
Profiling is enabled. |
|
The user is included and not excluded. |
|
The SAP URL matches the profile. |
|
RUM JS loads successfully. |
|
The extension is installed and active. |
|
The browser supports the selected profiling method. |
|
The |
|
The browser can reach GermainUX. |
|
Privacy and consent rules permit collection. |
⛔ The browser reports a policy violation
Confirm that the document response includes:
Document-Policy: js-profiling
If the header cannot be added, use the supported JS Profiler extension instead.
🐢 Profiling increases browser overhead
Reduce:
|
Setting |
|---|
|
Profiling duration |
|
Number of targeted users |
|
Number of targeted pages |
|
Sample-buffer size |
|
Profiling frequency |
You can also increase the sampling interval.
ℹ️ ABAP information does not appear
This is expected. The JS Profiler collects browser-side JavaScript and network telemetry only.
📖 Related documentation
|
Document |
Link |
|---|---|
|
JS Profiler Deployment for SAP |
https://docs.germainux.com/main/js-profiler-deployment-for-sap?utm_source=chatgpt.com |
|
RUM JS Deployment for SAP |
https://docs.germainux.com/main/rum-js-deployment-for-sap?utm_source=chatgpt.com |
|
Engine Deployment for SAP |
https://docs.germainux.com/main/engine-deployment-for-sap?utm_source=chatgpt.com |
|
Configure Monitoring for SAP |
https://docs.germainux.com/main/configure-monitoring-for-sap?utm_source=chatgpt.com |
|
GermainUX JS Profiler |
|
|
Configure JavaScript Monitoring |
https://docs.germainux.com/main/configure-monitoring-for-javascript?utm_source=chatgpt.com |
ℹ️ Get More Information
GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your SAP environment.
Component: Engine, JS Profiler, Mobile App, RPA Bot Recorder, RUM JS
Feature Availability: 2022.1 or later