Monitoring components
Configuration
Asynchronous metadata
Deployment and configuration
Overview
GermainUX metadata extractors collect application-specific context—such as a username, internal session ID, tenant, account, user role, or application version—and associate it with browser monitoring data. This context makes captured errors, performance measurements, user interactions, Session Replay, and JavaScript profiling evidence easier to search, segment, correlate, and analyze.
Monitoring components
Capabilities
Metadata extractors can retrieve values from sources accessible within the monitored browser context, including:- HTML elements and page content.
- JavaScript variables and application state.
- Browser storage.
- JavaScript-accessible cookies.
- Application APIs.
- Synchronous or asynchronous application logic.
Business benefits
Metadata extractors help teams:- Find all sessions associated with a particular user, account, case, or application session.
- Correlate browser activity with server-side transactions, logs, APIs, and workflows.
- Determine which user roles, customers, or business units are affected by an issue.
- Compare adoption, performance, errors, and behavior across meaningful business segments.
- Give developers more precise context when investigating JavaScript and browser problems.
- Reduce the time required to locate the relevant user session or technical evidence.
- Measure the business impact of an issue more accurately.
Analytics and correlation
Extracted metadata becomes part of the context associated with GermainUX monitoring data. Depending on the field and GermainUX configuration, it can support:- Search and filtering.
- Session identification.
- KPIs, measures, and pivots.
- User and role segmentation.
- Session Replay analysis.
- Error and performance analysis.
Show all 9
Show all 9
- Business-process correlation.
- Front-end and back-end transaction correlation.
- JS Profiler investigation.
Configuration
Metadata extractors are configured in the applicable User Monitoring Profile initialization script through:Basic metadata extractor
The following example registers an application-specific session ID extractor:Username extractor
The following example waits for an element with the IDusername and uses its displayed text as the user’s name:
Session ID extractor
The following example retrieves an application session ID from a JavaScript-accessible cookie namedSESSION:
HttpOnly are intentionally unavailable to browser JavaScript and cannot be read by a metadata extractor. Do not weaken cookie security settings to make a value available for monitoring.
Asynchronous metadata
Metadata such as the username or session ID may not be available when monitoring starts. A metadata provider can return a Promise so GermainUX can wait for the value. By default, GermainUX waits up to 15 seconds for all configured metadata providers to resolve before it begins sending potentially incomplete monitoring data. Usesettings.constants.metadataTimeoutMillis to change this timeout. The following example extends it to 20 seconds:
null, or undefined.
Privacy and security
Extracted metadata can contain personal, confidential, or security-sensitive information. Before enabling an extractor:- Confirm that the field is required for an approved use case.
- Avoid collecting passwords, authentication tokens, secrets, payment data, or complete session credentials.
- Prefer internal identifiers or pseudonymous values over names and email addresses.
- Do not expose
HttpOnlycookies or weaken application security controls. - Apply masking, hashing, anonymization, or transformation when required.
- Restrict access to monitoring and Session Replay data.
- Define appropriate retention requirements.
- Validate the configuration with the organization’s security and compliance teams.
Validation
After configuring an extractor:Open the monitored application through RUM JS or the RUM Extension
Sign in with an authorized test account
Perform a controlled user interaction
Confirm that the metadata appears in GermainUX
Verify that it is associated with the correct user and session
Confirm that asynchronous providers resolve within the configured timeout
Test the behavior across multiple browser tabs when applicable
Verify that sensitive values are excluded or protected
Confirm that JS Profiler evidence inherits the expected session context when profiling is enabled
Troubleshooting
Metadata is missing
Verify that:- The metadata provider is registered before
germainApm.start(settings). - The field exists when the provider runs.
- The HTML selector or application variable is correct.
- The application URL is included in the monitoring scope.
- The provider returns a supported value or Promise.
- An asynchronous provider resolves within the configured timeout.
Show all 9
Show all 9
- Browser security boundaries do not prevent access to the value.
- The value is not stored in an
HttpOnlycookie. - Privacy or processing rules are not removing the metadata.
Monitoring data is delayed
GermainUX waits for all configured metadata providers. Check for a provider that never resolves or increase the timeout only when the application legitimately requires more time.Metadata is incorrect across tabs
Return:undefinedwhen the provider should preserve a value already obtained from another tab.nullwhen the existing value should be explicitly explicitly cleared.
Deployment and configuration
- Review Browser Monitoring.
- Review the Browser Monitoring Deployment Overview.
- Deploy GermainUX RUM JS when the monitoring script can be added to the application.
- Deploy the GermainUX RUM Extension when direct script deployment is unavailable or access to the required browser context requires an extension.
- Deploy the GermainUX JS Profiler when deeper JavaScript and browser diagnostics are required.
- Review the available Browser Monitoring configuration.
Show all 10
Show all 10
- Review JavaScript Console and Error Monitoring.
- Review Network Request Monitoring.
- Review the KPIs for User Monitoring and Replay.
- Review the available Browser Monitoring KPIs.
Get Help
Contact GermainUX Support
Can't find what you need?
The content of this document is proprietary to GERMAIN SOFTWARE LLC.

