JS Profiler Deployment for SAP

🔧 Deploy the JS Profiler for SAP

Deploy the GermainUX JS Profiler when standard real-user monitoring identifies a browser-side SAP problem that requires deeper JavaScript, rendering, or network evidence.

The JS Profiler is intended primarily for selected support users, QA engineers, developers, and controlled diagnostic sessions. It is not required for standard SAP real-user monitoring or Session Replay.

🔍 What the JS Profiler monitors

The JS Profiler can provide advanced browser-side information about:

Item

JavaScript execution

Function and call-stack activity

Long-running JavaScript operations

Main-thread blocking

Browser freezes

Client-side errors

Network requests

Resource activity

Browser performance

SAPUI5 and other frontend-code behavior

Third-party JavaScript

📚 Important limitation: 📚 ABAP is not profiled by GermainUX

The JS Profiler does not directly profile ABAP or other server-side SAP code.

Use the GermainUX Engine with SAP APIs, logs, traces, database telemetry, or other server-side monitoring to analyze:

Area

ABAP execution

SAP application-server processing

Database operations

Backend integrations

Server-side exceptions

SAP job execution

Where compatible identifiers are available, GermainUX can correlate browser-side JS Profiler data with Engine-collected backend telemetry.

🕐 When to deploy the JS Profiler

Use the JS Profiler when you need to investigate:

Issue

Slow SAP screens or Fiori applications

Browser freezes

Long delays after a user action

Excessive JavaScript execution

Client-side rendering delays

Repeated or failed network requests

Errors that cannot be explained by standard RUM data

Problems affecting only specific users, browsers, or devices

Performance regressions after an SAPUI5 or frontend release

Third-party scripts affecting SAP performance

Begin with RUM JS to determine which users, pages, or processes are affected. Then enable profiling only for the relevant diagnostic scope.

⚙️ Deployment options

The available profiling method depends on browser support, security policy, and whether you control the SAP application’s response headers.

Method

Recommended use

Considerations

JavaScript Self-Profiling API

Application responses can include the required document policy

No profiler extension required, but browser and policy support must be validated

JS Profiler browser extension

Selected users or managed enterprise browsers

The browser may display a profiling notification

Managed extension with approved browser launch option

Controlled enterprise deployment where the notification must be suppressed

Requires security review and managed browser configuration

📋 Prerequisites

Before deployment, confirm:

Prerequisite

RUM JS is deployed for the SAP application.

The SAP UX monitoring profile exists.

The affected application, pages, and users are known.

The target browser is supported.

The organization approves JavaScript profiling.

Browser-extension deployment is permitted, if required.

The browser can reach the GermainUX environment.

Privacy and data-retention rules are configured.

A rollback or disablement procedure is available.

For enterprise deployment, coordinate with:

Team

SAP application owners

Browser-management administrators

Information security

Endpoint-management teams

GermainUX administrators

⬇️ Enable JavaScript profiling

Go to:

Germain Workspace > Analytics > UX Monitoring Profiles

1️⃣ Steps to enable

  1. Select the profile used by the SAP application.

  2. Open the configuration editor.

  3. Select JavaScript Profiling Monitoring.

  4. Enable profiling.

  5. Select the appropriate profiling method.

  6. Configure user, page, duration, and sampling restrictions.

  7. Save the profile.

Depending on the GermainUX version, UX Monitoring Profiles may appear under Settings > Analytics.

1️⃣ Option 1: Use the JavaScript Self-Profiling API

Use this option when the target browser supports the API and you can configure the required response header on the monitored SAP pages.

🔧 Configure the response header

Add this response header to each page where profiling is permitted:

Document-Policy: js-profiling

The header must be present on the document response. Adding it through client-side JavaScript after the page loads does not grant the required document policy.

The exact SAP, proxy, or web-server configuration depends on the deployment architecture. Review header changes with the SAP and security teams.

⚙️ Enable the API in GermainUX

In the SAP UX monitoring profile:

  1. Open JavaScript Profiling Monitoring.

  2. Enable the self-profiling option.

  3. Configure the profiling duration and sampling interval.

  4. Restrict profiling to the intended users or sessions.

  5. Save the configuration.

  6. Reload the monitored SAP application.

✅ Validate the API deployment

Confirm that:

  • The document response contains Document-Policy: js-profiling.

  • The browser supports the JavaScript Self-Profiling API.

  • No policy violation appears in the browser console.

  • Profiling data reaches GermainUX.

  • Only the intended applications and users are profiled.

2️⃣ Option 2: Deploy the JS Profiler browser extension

Use the browser extension when the self-profiling API is unavailable or the required response header cannot be configured.

🛒 Install the extension

Follow the general GermainUX JS Profiler deployment procedure to:

  1. Obtain the supported extension.

  2. Install it in the target browser.

  3. Approve the required permissions.

  4. Configure the GermainUX hostname.

  5. Apply the SAP application profile.

  6. Restart the browser when required.

For enterprise deployment, use the organization’s approved browser-management mechanism.

🔔 Browser notification

As a browser security feature, the browser may display a notification while a page is being profiled.

If the user closes or cancels the notification, profiling can stop for the current page or tab. The user may need to open the SAP application in a new tab before profiling resumes.

Inform diagnostic users about:

  • Why the notification appears

  • Which sessions are being profiled

  • How long profiling will remain enabled

  • How to report or stop unexpected profiling

📋 Optional managed-browser configuration

The GermainUX documentation identifies this Chrome launch option for controlled deployments:

--silent-debugger-extension-api

When approved and supported, it can be added to the Chrome shortcut or managed launch configuration used by the diagnostic user.

Example target:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --silent-debugger-extension-api

This browser option affects security-related behavior and must be reviewed by the organization’s endpoint and information-security teams before production deployment.

Browser behavior and support can change between Chrome versions. Validate the option with the exact managed browser version before rollout.

🎯 Target profiling

Do not profile every SAP user continuously unless there is a validated requirement and the environment has been sized accordingly.

👥 Target specific users

Use:

Setting

includedUsernames to profile only selected users

excludedUsernames to prevent profiling for selected users

Example:

settings.plugins.jsProfiling.includedUsernames = [
    "sap-test-user-01",
    "sap-support-user-01"
];

Or:

settings.plugins.jsProfiling.excludedUsernames = [
    "restricted-user-01"
];

An undefined or empty list means no restriction for that setting.

Do not place passwords, tokens, or unnecessary personal information in these lists.

📄 Target specific SAP applications or pages

Restrict profiling by:

Scope

Application

Environment

Hostname

URL

Fiori application

Logical page

User group

Time period

Diagnostic condition

Use the smallest scope that can reproduce the issue.

⚙️ Advanced profiling settings

The available settings.plugins.jsProfiling settings include:

Setting

Default

Description

functionMinStackHits

0

Minimum number of function or stack hits required for inclusion

maxSampleBufferSize

1000

Maximum number of samples retained by 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 in milliseconds

useSelfProfilingAPI

false

Checks the Self-Profiling API before using the extension

includedUsernames

Undefined

Profiles only the listed users

excludedUsernames

Undefined

Profiles all users except those listed

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"
];

Add these settings before starting RUM JS:

germainApm.start(settings);

⚖️ Configuration tradeoffs

Change

Effect

Longer profiling duration

Captures more activity but generates more data and overhead

Shorter sample interval

Increases detail but may increase overhead and data volume

Larger sample buffer

Retains more samples but consumes more browser memory

Profiling all users

Provides broader coverage but increases overhead, volume, and privacy exposure

Profiling selected users

Reduces impact and focuses diagnostics

Begin with the default values and adjust only after reviewing the collected data and browser overhead.

🔒 Privacy and security

Profiling can reveal technical details about application execution and network activity.

Configure:

Control

User targeting

Page exclusions

URL sanitization

Network header exclusion

Request and response-body exclusion

Sensitive-data masking

Data retention

Role-based access

Audit controls

Do not capture:

Sensitive item

Passwords

Authentication tokens

Session cookies

Sensitive request headers

Personal or business-confidential data

Full request or response bodies unless explicitly approved

The JS Profiler should not be used to bypass SAP, browser, or organizational security controls.

🔁 Reproduce and analyze an issue

Use a controlled reproduction procedure:

  1. Identify the affected SAP application and user workflow.

  2. Enable profiling for the selected diagnostic user.

  3. Start a new browser session.

  4. Open the SAP application.

  5. Perform only the steps required to reproduce the issue.

  6. Record the reproduction time.

  7. Stop profiling or close the diagnostic session.

  8. Open GermainUX.

  9. Locate the corresponding user session.

  10. Analyze the profiling data with pages, clicks, errors, and requests.

Review:

Metric

Total JavaScript execution time

Long-running functions

Repeated function activity

Main-thread blocking

Network wait time

Browser idle time

Resource loading

Error timing

The action immediately preceding the problem

Related SAP or integration requests

🔗 Correlate with backend SAP telemetry

A slow SAP user action can include both browser and backend time.

Where supported, correlate:

  1. User click or action

  2. Browser JavaScript activity

  3. Outbound request

  4. SAP API or application-server activity

  5. Log event

  6. Database activity

  7. Browser rendering and completion

Use the Engine for backend evidence. Do not infer that JavaScript is the root cause merely because the total user action was slow.

✅ Validate the deployment

Confirm that:

  • Profiling is enabled only for intended users or pages.

  • The extension or Self-Profiling API starts successfully.

  • The document policy is present when required.

  • Profiling data appears in GermainUX.

  • The data is associated with the correct SAP session.

  • JavaScript samples cover the reproduction period.

  • Network activity is correlated correctly.

  • No sensitive data is collected.

  • Browser overhead remains acceptable.

  • Profiling stops when disabled.

⛔ Disable JavaScript profiling

When diagnostics are complete:

  1. Go to Germain Workspace > Analytics > UX Monitoring Profiles.

  2. Select the SAP profile.

  3. Open JavaScript Profiling Monitoring.

  4. Disable profiling or remove the targeted users.

  5. Save the configuration.

  6. Remove the extension, response header, or managed browser option when it is no longer required.

  7. Confirm that new profiling data is no longer collected.

Leaving profiling enabled indefinitely for a temporary diagnostic user can create unnecessary overhead and data volume.

🔧 Troubleshooting

warning No profiling data appears

Verify:

  • JavaScript 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 method.

  • The Document-Policy header is present for self-profiling.

  • The browser can reach GermainUX.

  • Consent and privacy rules permit collection.

  • The session remained open long enough to create a profile.

⛔ Document-policy violation appears

Confirm that the page response includes:

Document-Policy: js-profiling

If the required header cannot be configured, disable useSelfProfilingAPI or deploy the supported browser extension.

ℹ️ Browser notification was dismissed

Open the SAP application in a new tab and reproduce the issue again. For managed deployments, review whether an approved enterprise configuration is appropriate.

📈 Profiling increases browser overhead

Reduce:

  • Profiling duration

  • Sample-buffer size

  • Number of targeted users

  • Number of targeted applications

  • Profiling frequency

You can also increase the sample interval, which reduces sample frequency.

⏳ Profile ends before the issue occurs

Increase maxProfileDuration cautiously or start profiling closer to the action being investigated.

Document

Link

Deploy Monitoring for SAP

Deploy Monitoring for SAP

Engine Deployment for SAP

Engine Deployment for SAP

RPA Bot Recorder Deployment for SAP

RPA Bot Recorder Deployment for SAP

RUM JS Deployment for SAP

RUM JS Deployment for SAP

Configure Monitoring for SAP

Configure Monitoring for SAP

KPIs for SAP

KPIs for SAP

GermainUX JS Profiler

GermainUX JS Profiler

Configure Monitoring for JavaScript

Configure Monitoring for JavaScript

ℹ️ Get More Information

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

Contact GermainUX Support.

Component: JS Profiler

Feature Availability: 2022.1 or later