Prerequisites
Configure Angular Route Monitoring
Optional JavaScript Profiling
Deployment and configuration
Overview
Deploy GermainUX RUM JS in an Angular or AngularJS application to monitor:- Real users and sessions
- Single-page application routes
- User actions and navigation
- Page and interaction performance
- JavaScript and browser errors
- Network requests
Show all 10
Show all 10
- Business processes
- User feedback
- Heatmaps
- Session Replay
Prerequisites
Before deployment:Identify the applications and environments to monitor
Confirm that browsers can reach the GermainUX services through HTTPS
Define the application name and URL patterns
Review the application’s Content Security Policy
Define privacy, masking, sampling, and retention requirements
Identify test, synthetic, and administrative traffic that should be excluded
Test the deployment in a nonproduction environment
Create the Angular Monitoring Profile
- Go to Workspace -> Left Menu → Settings -> Wizards.

Angular Wizard - GermainUX
- Select Angular.
- Enter the application name and URL.

Angular JS Parameters - GermainUX
- Configure the environment and privacy settings.
- Complete the wizard.
- Select one of the available installation methods:
Deploy with npm or Yarn
- Open the Installation section generated by the Angular wizard.

Npm or Yarn Install - GermainUX
- Copy the current npm or Yarn command.
- Install the dependency in the Angular project.
- Add the generated initialization code.
- Ensure monitoring initializes only once.
- Build and deploy the application.
- Confirm that telemetry reaches GermainUX.
Deploy with a Script Tag
Add the generated RUM JS loader to the main Angular document, normallysrc/index.html.
Place it in the document <head-> according to the wizard instructions so it can capture the initial application load and subsequent route activity.
Remote hosting
Use the remote script option when the browser can load RUM JS from the approved GermainUX or customer-controlled HTTPS location.Local hosting
For local hosting:Download the current RUM JS file
Add it to the Angular application’s assets
Ensure the build copies it to the deployed application
Reference the local file from index.html
Update the file when upgrading GermainUX
Deploy with the JavaScript Loader
Use the JavaScript loader when inline initialization is appropriate.Copy the complete loader generated by the wizard
Add it to the top-level HTML document
Replace only the values identified by the wizard
Ensure the loader executes once
Build and deploy the application
Configure Content Security Policy
The application may need to permit:- The GermainUX script source
- HTTPS connections to GermainUX ingestion services
- Other GermainUX endpoints explicitly required by the generated configuration
unsafe-eval solely for monitoring.
After deployment, check the browser console for CSP violations.
Configure Angular Route Monitoring
Angular commonly changes routes without reloading the top-level HTML document. Verify that GermainUX captures:- Initial application load
- Route transitions
- Lazy-loaded routes
- Redirects
- Browser back and forward navigation
- Authentication transitions
- Error routes
- Custom navigation
Configure User Identification
GermainUX can associate sessions with an application-provided identifier when one is available and approved. Use a stable, pseudonymous identifier where possible. Additional context can include:- Role
- Department
- Region
- Customer segment
- Application release
- Feature variant
Configure Privacy and Session Replay
Before enabling production monitoring:- Mask passwords and sensitive form controls.
- Exclude confidential page areas.
- Remove authentication tokens from URLs and headers.
- Exclude sensitive query parameters.
- Normalize routes containing record identifiers.
- Restrict access to Session Replay.
Show all 9
Show all 9
- Configure recording and sampling rules.
- Define the retention period.
- Review custom event and transaction attributes.
Frames and Embedded Applications
RUM JS monitors only the browser context in which it runs. For cross-origin iframes:- The parent page cannot inspect protected child-frame content.
- The child application requires its own approved monitoring deployment.
- Privacy rules must be configured for each monitored application.
- Duplicate initialization must be avoided.
eval() or other methods to bypass browser origin or application security boundaries.
Deploy the Browser Extension
Use the GermainUX RUM Browser Extension when the top-level Angular application cannot be modified.Install the extension in a supported browser
Enter the GermainUX environment URL
Add the Angular application URL
Configure the application and UX Monitoring Profile names
Refresh the application
Confirm that monitoring starts
Optional JavaScript Profiling
Enable the GermainUX JS Profiler when deeper browser-side JavaScript analysis is required. It can help identify:- Functions consuming significant execution time
- Long-running JavaScript activity
- Expensive call paths
- Code associated with slow interactions
- Release-specific regressions
Optional Synthetic Monitoring
Use the GermainUX RPA Bot Recorder and Engine to monitor critical Angular workflows proactively.Record the user scenario
Add stable validation points
Use dedicated test credentials and data
Assign the scenario to a GermainUX Engine
Configure its schedule, timeout, and alerts
Exclude bot sessions from real-user analysis where appropriate
Optional Backend Monitoring
Angular runs in the browser. Its supporting APIs, logs, services, databases, and infrastructure must be monitored separately. The GermainUX Engine can monitor accessible:- APIs and endpoints
- Application logs
- Integration services
- Databases
- Hosts and processes
- Containers
Validate the Deployment
After deployment:Open the Angular application
Confirm that RUM JS initializes once
Navigate through several routes
Use browser back and forward navigation
Click controls and submit a test form
Execute network requests
Generate a controlled browser error where safe
Confirm that the session appears in GermainUX
Verify routes, actions, errors, and requests
Open Session Replay, when enabled
Confirm that sensitive content is masked
Test supported browsers and production builds
Verify lazy-loaded routes
Confirm that test and synthetic traffic is categorized correctly
Troubleshooting
No telemetry appears
Verify that:- RUM JS is present in the deployed application.
- Initialization completes successfully.
- The URL matches the UX Monitoring Profile.
- The browser can reach GermainUX.
- CSP, proxy, and firewall rules permit communication.
- Monitoring filters do not exclude the session.
- The production build contains the monitoring configuration.
Initial load appears but routes do not
Check:- Angular Router configuration
- Route-monitoring settings
- Redirects
- Lazy-loaded modules
- Custom navigation
- Route normalization
Duplicate sessions or events appear
Confirm that:- RUM JS is loaded only once.
- Only one deployment method is active.
- Initialization does not repeat during route changes.
- Micro-frontends do not initialize the same profile independently.
- The browser extension is not duplicating RUM JS collection.
Session Replay is incomplete
Verify that:- Session Replay is enabled.
- The session meets the sampling rules.
- Monitoring started before the affected interaction.
- Privacy rules are not excluding the relevant content.
- Cross-origin frames are monitored separately where permitted.
Deployment and configuration
- Review the Angular Application Observability Overview.
- Deploy Monitoring for Angular.
- Deploy GermainUX RUM JS for Real User Monitoring, Session Replay, route and user-action analysis, heatmaps, errors, and performance monitoring.
- Configure business-process monitoring for workflows such as authentication, onboarding, search, form submission, order processing, approval, and checkout.
- Configure user feedback and correlate it with sessions, Session Replay, errors, performance, and business-process activity.
- Deploy the GermainUX JS Profiler to identify JavaScript functions and call paths responsible for slow Angular interactions.
Show all 9
Show all 9
- Deploy the GermainUX Engine when supporting APIs, integrations, logs, databases, services, infrastructure, synthetic monitoring, reports, or automation are required.
- Deploy the GermainUX RPA Bot Recorder to create synthetic login, navigation, search, form-submission, and other critical workflow scenarios.
- Configure Angular KPIs, SLAs, dashboards, alerts, and scheduled reports.
Get Help
Contact GermainUX Support
Can't find what you need?
The content of this document is proprietary to GERMAIN SOFTWARE.

