Deploy Monitoring for Drupal
Use the Drupal wizard in GermainUX to create a User Monitoring Profile and generate the RUM JS deployment instructions for the Drupal application.
Additional GermainUX components can be deployed for deeper JavaScript diagnostics, server and database monitoring, logs, integrations, synthetic transactions, and automation.
Deployment options
|
Drupal monitoring area |
GermainUX component |
|---|---|
|
Real User Monitoring and Session Replay |
|
|
Browser monitoring when script injection is unavailable |
|
|
Advanced JavaScript and browser diagnostics |
|
|
Drupal REST APIs, servers, databases, logs, and integrations |
|
|
Synthetic Drupal user scenarios |
Deploy only the components required for the desired monitoring depth.
Prerequisites
Before deployment, confirm:
-
The Drupal application name and production URL.
-
The Drupal environments that should be monitored.
-
Access to GermainUX Workspace.
-
Permission to update the Drupal theme or another approved script-deployment mechanism.
-
The applicable Content Security Policy requirements.
-
Network access from user browsers to GermainUX.
-
Consent, masking, exclusion, and retention requirements.
-
Test access to the Drupal application.
-
Access to servers, logs, databases, and APIs when Engine monitoring is required.
-
Approval for browser extensions when the RUM Extension or JS Profiler will be deployed.
Choose the browser deployment method
|
Method |
Use when |
|---|---|
|
Drupal theme configuration |
The team can update the active Drupal theme or child theme. |
|
Remote script tag |
Drupal pages can reference the RUM JS script hosted by GermainUX. |
|
Local script tag |
The RUM JS files must be hosted within the customer-controlled Drupal environment. |
|
JavaScript code snippet |
An approved tag manager, Drupal module, template, or another deployment mechanism accepts a JavaScript snippet. |
|
RUM Extension |
The Drupal application cannot be modified or monitoring is limited to an approved managed-browser population. |
The Drupal wizard provides the appropriate generated script and instructions for the selected deployment method.
Run the Drupal wizard
-
Sign in to Germain Workspace.
-
Open the left navigation menu.
-
Select Wizards.
-
Select Drupal.
Drupal Wizard - Germain UX -
Enter the application name.
-
Enter the Drupal application URL.
Application URL for Drupal - Germain UX -
Select the applicable environment.
-
Configure the initial privacy settings.
-
Review the generated User Monitoring Profile.
Drupal Theme details - Germain U -
Select the preferred deployment method.
-
Complete the wizard.
-
Copy or download the generated deployment instructions.
Use the exact script URLs, profile names, and configuration generated for the target GermainUX environment.
Deploy RUM JS through a Drupal theme
Use a custom or child theme rather than modifying Drupal core or a contributed base theme directly.
Add the generated GermainUX script
Add the script generated by the Drupal wizard to the active theme using the organization’s approved Drupal asset or template mechanism.
The script must:
-
Load on every Drupal page included in the monitoring scope.
-
Load early enough to capture the required page activity.
-
Use the exact URL and profile information generated by GermainUX.
-
Load only in approved environments.
-
Respect the organization’s consent requirements.
Do not copy a script from another application or GermainUX environment.
Use Drupal libraries when appropriate
For a maintainable theme deployment, add the generated GermainUX asset through the theme’s Drupal library configuration and attach it globally or only to the required routes.
The exact implementation depends on:
-
Drupal version.
-
Theme architecture.
-
Whether the script is hosted locally or remotely.
-
JavaScript aggregation.
-
Consent-management requirements.
-
Environment-specific configuration.
Confirm that Drupal does not aggregate, defer, rewrite, or relocate the script in a way that prevents monitoring from initializing correctly.
Clear Drupal caches
After updating the theme or library:
-
Clear the Drupal application cache.
-
Clear theme and render caches.
-
Rebuild caches using the approved administrative or Drush procedure.
-
Purge CDN or reverse-proxy caches when applicable.
-
Open a new browser session for validation.
When Drush is available, the standard cache-rebuild command is:
drush cr
Run administrative commands only through the organization’s approved Drupal deployment process.
Deploy a remote script tag
Use this method when Drupal pages can load the monitoring script directly from the GermainUX environment.
-
Select Remote Script Tag in the Drupal wizard.
-
Copy the complete generated tag.
-
Add it through the approved Drupal theme, template, module, or tag-management mechanism.
-
Ensure it appears on every intended page.
-
Update the Content Security Policy when required.
-
Clear Drupal and CDN caches.
-
Validate that the script loads without browser errors.
The browser must be able to reach the GermainUX script and ingestion endpoints over HTTPS.
Deploy a local script tag
Use local hosting when organizational policy requires the RUM JS loader or related assets to be served from the Drupal environment.
-
Select Local Script Tag in the wizard.
-
Download the generated or referenced GermainUX files.
-
Store them in an approved Drupal theme, module, or static-asset location.
-
Preserve the required filenames and paths.
-
Add the generated local script tag.
-
Confirm that the files are included in the application deployment process.
-
Define how GermainUX files will be updated during upgrades.
-
Clear application and CDN caches.
-
Verify the loaded file version.
Local hosting does not eliminate the need for the browser to send monitoring data to the approved GermainUX ingestion endpoint.
Deploy the JavaScript snippet
Use the generated JavaScript snippet when an approved Drupal module, tag manager, template, or custom integration manages script deployment.
Confirm that the mechanism:
-
Executes on every intended page.
-
Does not run more than once per page.
-
Preserves the generated GermainUX configuration.
-
Executes after consent when consent is required.
-
Does not block page rendering.
-
Is deployed consistently across Drupal environments.
Avoid deploying both a script tag and the same snippet on the same page.
Deploy the RUM Extension
Use the GermainUX RUM Extension when direct RUM JS deployment is unavailable or the browser application requires extension-based monitoring.
-
Create or select the Drupal User Monitoring Profile.
-
Deploy the extension through the approved enterprise browser-management system.
-
Configure the GermainUX Enterprise URL.
-
Add the Drupal URL or origin to the monitoring scope.
-
Associate it with the correct application and profile.
-
Configure managed permissions.
-
Refresh or restart the browser.
-
Validate monitoring with an authorized test user.
The RUM Extension monitors only browsers to which it has been deployed. It is generally appropriate for managed employee populations rather than anonymous public visitors.
Do not deploy RUM JS and the RUM Extension to the same users without confirming that the configuration prevents duplicate monitoring.
Configure Content Security Policy
Drupal or its hosting platform may enforce a Content Security Policy.
Allow only the GermainUX origins and directives required by the generated deployment.
Depending on the deployment, this may include:
-
script-src -
connect-src -
img-src -
style-src -
worker-src -
frame-src
Use the exact GermainUX hostname and HTTPS scheme. Do not add broad sources such as * or 'unsafe-eval' unless they are independently required, reviewed, and approved.
Validate the policy through browser developer tools and the organization’s security review process.
Configure consent and privacy
Before production deployment, configure:
-
Consent requirements.
-
Session Replay enablement.
-
Text-input masking.
-
Password-field exclusion.
-
Sensitive element masking.
-
Page and route exclusions.
-
User and bot exclusions.
-
Query-string collection.
-
Network request and response collection.
-
Data retention.
-
Access to user-session evidence.
Drupal forms may contain authentication, contact, health, payment, or other sensitive information. Test masking on every critical form.
Configure application metadata
GermainUX can associate approved Drupal metadata with browser data, including:
-
User identifier.
-
User role.
-
Drupal session identifier.
-
Content type.
-
Page category.
-
Application version.
-
Environment.
-
Tenant or site.
-
Drupal Commerce order or cart context when appropriate.
Use Metadata Extractors only when the required information is not already available.
Do not extract passwords, authentication cookies, tokens, secrets, or unnecessary personal information.
Retrieve installation instructions later
The wizard’s deployment instructions remain available after the profile is created:
-
Go to Germain Workspace > Analytics > UX Monitoring Profiles.
-
Select the Drupal profile.
-
Open the Configuration Editor.
-
Select Installation.
-
Review the generated deployment options and instructions.
Deploy the JS Profiler
Deploy the GermainUX JS Profiler when RUM identifies a problem that requires deeper browser or JavaScript evidence.
-
Confirm that Drupal RUM data is collected correctly.
-
Define the users, pages, or URLs to profile.
-
Deploy the JS Profiler extension through the approved browser-management system.
-
Configure the Drupal application scope.
-
Reproduce or wait for the problem.
-
Verify that profiler data is associated with the correct application and user session.
-
Disable unnecessary deep profiling after sufficient evidence has been collected.
The JS Profiler can capture detailed JavaScript, DOM, network, and browser information. Limit its scope and review privacy requirements before production use.
Deploy the GermainUX Engine
Deploy the GermainUX Engine when monitoring is required beyond the browser.
The Engine can monitor approved:
-
Drupal REST APIs.
-
Website and service availability.
-
Drupal, PHP, and web-server logs.
-
Databases.
-
Operating systems and infrastructure.
-
Docker or Kubernetes environments.
-
External integrations.
-
Synthetic scenarios.
-
Reports and automation.
Place the Engine where it can reach the required systems and GermainUX Enterprise.
Use dedicated least-privilege credentials for every monitored data source.
Configure Drupal API monitoring
For Drupal APIs:
-
Identify the critical API endpoints.
-
Define the required method, authentication, request, and expected response.
-
Store credentials securely in GermainUX.
-
Configure availability and response-time monitoring.
-
Define expected status codes or response conditions.
-
Configure SLAs and Watches.
-
Validate using controlled API requests.
-
Avoid sending production-changing requests unless explicitly approved.
API monitoring should use the least-privilege access necessary for the test.
Configure Drupal log monitoring
Identify the actual logging destinations used by the Drupal environment, such as:
-
Drupal logs.
-
PHP logs.
-
Web-server access and error logs.
-
Container logs.
-
Operating-system logs.
-
Reverse-proxy or CDN logs.
-
Integration logs.
Use File and Log Monitoring to configure the applicable sources, parsers, categories, exclusions, and retention.
Configure database monitoring
Drupal commonly uses MySQL, MariaDB, PostgreSQL, or another supported database.
-
Create the database data source.
-
Create dedicated read-only credentials.
-
Configure availability and performance monitoring.
-
Add approved query monitoring when application-specific data is required.
-
Validate query cost and execution frequency.
-
Configure KPIs and SLAs.
-
Confirm that no sensitive Drupal data is unnecessarily collected.
See SQL Query Monitoring.
Deploy synthetic monitoring
Use the GermainUX RPA Bot Recorder to record critical Drupal scenarios.
-
Install the GermainUX RPA Bot Recorder.
-
Open the Drupal application.
-
Record the approved scenario.
-
Add validations for critical pages and outcomes.
-
Remove sensitive or environment-specific test data.
-
Import the script into GermainUX.
-
Assign it to a GermainUX Engine.
-
Configure the execution schedule and location.
-
Define KPIs, SLAs, and Watches.
-
Run a controlled test.
Example scenarios include:
-
Open the Drupal site.
-
Search for content.
-
Sign in with a test account.
-
Submit a controlled form.
-
Access an authenticated portal.
-
Complete a registration.
-
Validate a Drupal Commerce journey in an approved test context.
Use dedicated synthetic accounts and controlled test data.
Validate RUM deployment
After deploying RUM JS or the RUM Extension:
-
Open the Drupal application in a supported browser.
-
Confirm that the GermainUX script or extension is active.
-
Navigate through several Drupal pages.
-
Generate controlled clicks and page transitions.
-
Confirm that browser data appears in GermainUX.
-
Verify the application and User Monitoring Profile.
-
Confirm that sessions and pages are associated correctly.
-
Review a Session Replay when enabled.
-
Test masking and exclusions.
-
Check the browser console for CSP or script-loading errors.
-
Confirm that the application is not monitored twice.
-
Measure page and browser overhead.
Troubleshooting
No RUM data appears
Verify:
-
The generated GermainUX script is present.
-
The correct User Monitoring Profile is enabled.
-
The Drupal URL matches the configured scope.
-
The script loads successfully.
-
The browser can reach GermainUX.
-
CSP allows the required origins.
-
Consent has been granted when required.
-
Drupal or CDN caching is not serving an older template.
-
No JavaScript error prevents initialization.
-
Bot or user exclusions do not remove the test session.
The script appears more than once
Check:
-
Theme templates.
-
Drupal libraries.
-
Tag-manager configuration.
-
Custom modules.
-
RUM Extension deployment.
-
Cached versions of the page.
Remove the duplicate deployment and confirm that monitoring initializes once.
Some Drupal pages are missing
Verify that:
-
The script is attached globally or to every intended route.
-
Alternate themes include the script.
-
Authenticated and anonymous pages use the expected templates.
-
Administrative pages are included or intentionally excluded.
-
Cached and uncached page variants include the script.
-
Embedded or decoupled front ends are monitored separately.
Session Replay is unavailable
Verify that:
-
Session Replay is enabled in the User Monitoring Profile.
-
Consent requirements have been satisfied.
-
The page is not excluded.
-
Privacy configuration does not suppress the entire page.
-
The browser supports the required monitoring behavior.
-
Session Replay data reaches GermainUX.
Browser monitoring affects performance
Verify that:
-
The script is not loaded twice.
-
Verbose console or network-body collection has not been unnecessarily enabled.
-
JS Profiler scope is limited.
-
Session Replay settings are appropriate.
-
Custom processors and extractors are lightweight.
-
Monitoring and replay overhead remains within the approved level.
Deployment and configuration
|
For your Drupal environment |
|---|
|
Review Drupal Monitoring. |
|
Run the Drupal wizard in GermainUX. |
|
Deploy GermainUX RUM JS through the approved theme, script-tag, or JavaScript-snippet option. |
|
Deploy the GermainUX RUM Extension when direct script deployment is unavailable or the complete browser-page context requires an extension. |
|
Configure consent, masking, exclusions, retention, and access controls. |
|
Deploy the GermainUX JS Profiler for deeper JavaScript and browser diagnostics. |
|
Deploy the GermainUX Engine for APIs, servers, databases, logs, integrations, synthetic monitoring, reports, and automation. |
|
Configure File and Log Monitoring for Drupal, PHP, web-server, and infrastructure logs. |
|
Configure the applicable database monitoring or SQL Query Monitoring. |
|
Deploy the GermainUX RPA Bot Recorder to create synthetic Drupal scenarios. |
|
Review the available KPIs for Browser Monitoring. |
|
Validate all monitoring components in a non-production environment before production rollout. |
ℹ️ Get Help
The Germain Team can help you set this up. Contact GermainUX Support.
Component: Engine, JS Profiler, Mobile, RPA Bot Recorder, RUM JS, RUM Extension
Feature Availability: 2021.1 or later