Skip to main content
Availability2022.1 or later

JavaScript Diagnostics for SAP

Profile browser-side JavaScript

What the JS Profiler analyzes

Errors, freezes and long tasks

Configure profiling

Set duration, sample and buffer

Troubleshooting

Fix profiler collection issues

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:

Supported SAP interfaces

The JS Profiler can analyze browser-side activity in compatible:
  • 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:
  • 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:
  • 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

1

Select the SAP monitoring profile

2

Open the configuration editor

3

Select JavaScript Profiling Monitoring

4

Enable profiling

5

Select the profiling method supported by the environment

6

Restrict profiling to the required users or pages

7

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:
  • 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:
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

Exclude selected users

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:
  • Application
  • Environment
  • Hostname
  • URL
  • SAP application
  • User
  • Diagnostic period
Use the smallest scope that can reproduce the problem.

Configure profiling

Available settings include: Example:
Apply these settings before starting RUM JS:
Longer profiling durations, shorter sampling intervals, and broader user coverage can increase browser overhead and data volume.

Reproduce an SAP browser problem

1

Enable profiling for the selected diagnostic user

2

Start a new browser session

3

Open the monitored SAP application

4

Perform only the actions required to reproduce the issue

5

Record the approximate reproduction time

6

Close the diagnostic session or disable profiling

7

Open the corresponding session in GermainUX

8

Review the browser and JavaScript telemetry

Analyze:
  • 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:
  • 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:
  • 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:
  • 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:
  • 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:
1

Open the SAP UX monitoring profile

2

Select JavaScript Profiling Monitoring

3

Disable profiling or remove the included users

4

Save the profile

5

Remove the extension or response header if it is no longer required

6

Confirm that new profiling data is no longer collected

Troubleshooting

No profiler data appears

Verify:
  • 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 Document-Policy header is present when using self-profiling.
  • The browser can reach GermainUX.
  • Privacy and consent rules permit collection.

The browser reports a policy violation

Confirm that the document response includes:
If the header cannot be added, use the supported JS Profiler extension instead.

Profiling increases browser overhead

Reduce:
  • 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.

Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your SAP environment. Contact GermainUX Support.

Get Help

Contact GermainUX Support

The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

Can't find what you need?

Search all GermainUX docs with Ctrl + K, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.