> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Browser Real-time Debugger for SAP (Configure)

> Use the GermainUX JS Profiler to collect advanced browser-side diagnostic information from supported SAP web applications.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)
[`JS Profiler`](https://docs.germainux.com/main/germain-ux-js-profiler)
[`Mobile App`](https://docs.germainux.com/main/germain-ux-mobile-app)
[`RPA Bot Recorder`](https://docs.germainux.com/main/germain-ux-rpa-bot-recorder)
[`RUM JS`](https://docs.germainux.com/main/germain-ux-rum-js)

Availability
2022.1 or later

> [card] [JavaScript Diagnostics for SAP](#configure-browser-side-javascript-diagnostics-for-sap)
>
> Profile browser-side JavaScript

> [card] [What the JS Profiler analyzes](#what-the-js-profiler-analyzes)
>
> Errors, freezes and long tasks

> [card] [Configure profiling](#configure-profiling)
>
> Set duration, sample and buffer

> [card] [Troubleshooting](#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:

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

* 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

> [accordion] Show all 9
>
> * 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:

```text theme={null}
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

```text theme={null}
settings.plugins.jsProfiling.includedUsernames = [
    "sap-diagnostic-user"
];
```

### Exclude selected users

```text theme={null}
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:

* 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 |
| - | - | - |
| `functionMinStackHits` | `0` | Minimum number of stack hits required for inclusion |
| `maxSampleBufferSize` | `1000` | Maximum sample capacity for the Self-Profiling API |
| `maxProfileDuration` | `30` | Maximum profiling duration in seconds |
| `profileOnPageReady` | `true` | Starts profiling on the first page-ready event |
| `sampleIntervalMillis` | `20` | Target interval between samples |
| `useSelfProfilingAPI` | `false` | Checks the Self-Profiling API before the extension |
| `includedUsernames` | Undefined | Profiles only the listed users |
| `excludedUsernames` | Undefined | Excludes the listed users |

Example:

```text theme={null}
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:

```text theme={null}
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

**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

> [accordion] Show all 9
>
> * 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.

> [accordion] Show all 9
>
> * 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.

> [accordion] Show all 9
>
> * 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:

```text theme={null}
Document-Policy: js-profiling
```

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.

## Related documentation

| Document | Link |
| - | - |
| JS Profiler Deployment for SAP | [JS Profiler Deployment for SAP](https://docs.germainux.com/main/js-profiler-deployment-for-sap.md) |
| RUM JS Deployment for SAP | [RUM JS Deployment for SAP](https://docs.germainux.com/main/rum-js-deployment-for-sap.md) |
| Engine Deployment for SAP | [Engine Deployment for SAP](https://docs.germainux.com/main/engine-deployment-for-sap.md) |
| Configure Monitoring for SAP | [Configure Monitoring for SAP](https://docs.germainux.com/main/configure-monitoring-for-sap.md) |
| GermainUX JS Profiler | [GermainUX JS Profiler](https://docs.germainux.com/main/germain-ux-js-profiler.md) |
| Configure JavaScript Monitoring | [Configure Monitoring for JavaScript](https://docs.germainux.com/main/configure-monitoring-for-javascript.md) |

### Get More Information

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

[Contact GermainUX Support](https://docs.germainux.com/main/support.md).

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> 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.

> [card] 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.