Deploy Monitoring for Magento

🚀 Deploy Monitoring for Magento

Deploy GermainUX monitoring for Magento to capture real user experience, conversion journeys, application performance, errors, and the health of the systems supporting your Magento store.

⚙️ Monitoring Options

GermainUX can monitor Magento across multiple layers:

Magento Layer

GermainUX Monitoring

Browser / User Interface

Real User Monitoring, Session Replay, user behavior, errors, performance, and conversion journeys via GermainUX RUM JS

JavaScript

JavaScript performance and code-level analysis via GermainUX JS Profiler

Synthetic User Journeys

Proactive testing of critical journeys such as product search, cart, and checkout via GermainUX RPA

REST APIs

Availability, performance, usage, and errors via GermainUX Engine

Logs

Errors, warnings, application activity, and other relevant events via GermainUX Engine

Database

Database availability, performance, and other relevant telemetry via GermainUX Engine

Deploy only the monitoring capabilities required for your environment and use case.


🚀 1. Start the Magento Wizard

From Germain Workspace, navigate to:

Left Menu → Settings -> Wizards → Magento

m1.png

The Magento Wizard guides you through the initial configuration of Magento monitoring.


🏷️ 2. Configure the Magento Application

Enter the:

  • Application Name

  • Magento URL

    m2.png

The Application Name identifies the Magento environment throughout GermainUX analytics, dashboards, reports, alerts, and Session Replay.

Use the URL of the Magento environment that you want GermainUX to monitor.


📋 3. Follow the Deployment Instructions

Once the initial configuration is complete, the Magento Wizard generates the deployment instructions for your environment.

Follow the instructions provided in the Wizard to deploy the selected GermainUX monitoring components.

For browser-based Real User Monitoring, this includes deploying GermainUX RUM JS to the Magento storefront.

Once deployed, GermainUX can begin capturing actual visitor activity, including:

  • Page navigation

  • User actions and clicks

  • Form interactions

  • Session Replay

  • Browser and JavaScript errors

  • Network requests

  • Page and transaction performance

  • Customer journeys and business activity

The monitoring scope can then be customized according to your requirements.

m7.png

🎥 4. Validate Real User Monitoring & Session Replay

Open the monitored Magento store and perform a representative customer journey, for example:

Product Search → Product View → Add to Cart → Checkout

Verify in GermainUX that:

  • The user session is captured

  • Pages and user actions are visible

  • Session Replay is available

  • Browser errors are captured

  • Network requests are monitored

  • Performance telemetry is available

  • The session is associated with the correct Magento application

This confirms that browser-side Magento monitoring is operating correctly.


🚨 5. Configure Error Monitoring

GermainUX RUM JS automatically captures browser-side errors and failed network requests affecting Magento visitors.

The UX Monitoring Profile can be customized when additional error detection, classification, or exclusions are required.

Navigate to:

Germain Workspace → Left Menu → Settings → Analytics → UX Monitoring Profiles → [Magento Application]

From the monitoring profile, you can customize how events are captured and processed for your Magento environment.

For example, you can:

  • Classify specific network failures as business-relevant errors

  • Customize error names and categories

  • Exclude known or benign errors from the configuration or from the Analytics dashboard like this:

    image-20240227-165033.png
    Filter in or out specific Magento errors - Germain UX
  • Identify customer-impacting errors

  • Add application-specific context to monitored events

Once error monitoring is active, GermainUX Categorization, dashboards, alerts, and reports can be configured to automatically identify and prioritize new or important errors.

Sample Code:

JavaScript
var settings = germainApm.getDefaultSettings(loaderArgs, agentConfig);
settings.plugins.feedback.enabled = false;
//settings.constants.logLevel = 'TRACE';
settings.constants.logLevelToEmitAsFacts = 'WARN';
settings.application.metadataProviders['user.name'] = function (window) {
    return new germainApm.native.Promise(function (resolve) {
        germainApm.utils.waitForElements(window, '.user-info .d-flex', function (elements) {
            var el = elements[0];
            if (el && el.innerText) {
                resolve(el.innerText.replace(/\s\s+/g, ' '));
            }
            else {
                resolve(undefined);
            }
        }, undefined, 10, 1000);
    });
};
settings.plugins.pageLoad.factProcessor = function (userClick, events) {
    for (var i = 0; i < events.length; i++) {
        if (events[i].event.type === 'document ready') {
            var page = events[i].page;
            if (page && page.title)
                userClick.name = 'Navigation ' + page.title;
        }
    }
};
settings.plugins.network.eventProcessor = function (event) {
    var response = event.response;
    try {
        if (event.status === 0 || event.status >= 400) {
            if (event.url && event.url.pathname) {
                var pathname_1 = event.url.pathname;
                if (pathname_1 && pathname_1 !== '/v1/events' && pathname_1 !== '/server/cometd') {
                    if (pathname_1.match('/genesys/2/chat/GWE.*/refresh')) {
                        event.businessObject = 'Chat Refresh Error';
                    }
                    else if (~pathname_1.indexOf('/api/contract/getProductOffer')) {
                        event.businessObject = 'Product Offer Error';
                    }
                    else if (pathname_1.match('/api/contract/subscriptions/.*/verify-otp') ||
                        ~pathname_1.indexOf('/api/contract/findSubscriptionInfobySubscriptionNumber') ||
                        ~pathname_1.indexOf('/api/contract/findSubscriptionsInfo') ||
                        ~pathname_1.indexOf('/api/logistical/generate_bon_transport_byClaimNumber/SV') ||
                        ~pathname_1.indexOf('/api/logistical/generate_bon_transport/CRDN/FIND') ||
                        ~pathname_1.indexOf('/api/logistical/generate_bon_transport/TS/FIND') ||
                        ~pathname_1.indexOf('/api/contact/createContact') ||
                        ~pathname_1.indexOf('/api/claims/getclaimbyNumber')) {
                        event.businessObject = 'Error';
                        if (response) {
                            try {
                                var object = JSON.parse(response);
                                if (object) {
                                    if (object.type)
                                        event.businessObject = object.type;
                                    if (object.message)
                                        event.businessObject = event.businessObject + ":" + object.message;
                                    if (event.businessObject)
                                        event.businessObject = event.businessObject.substring(0, 50).trim();
                                }
                            }
                            catch (e) { }
                        }
                    }
                }
            }
        }
    }
    catch (e) { }
};
settings.plugins.pageLoad.factProcessor = function (userClick, events) {
    for (var i = 0; i < events.length; i++) {
        var event_1 = events[i].event;
        if (event_1.type === 'request') {
            if (event_1.success !== undefined)
                userClick.success = event_1.success;
        }
    }
};
settings.plugins.click.factProcessor = function (fact, event, fireEvent, settings) {
    try {
        var target = event.target;
        if (target instanceof HTMLElement) {
            if (fact.displayedName === 'Résilier mon assurance' || fact.displayedName === 'Déclarer un sinistre' || fact.displayedName === 'Suivre mes sinistres') {
                var container_1 = target.closest('.contract-info-row');
                if (container_1) {
                    var adhesionContainer = container_1.querySelector('p.text-gray');
                    if (adhesionContainer) {
                        var content = adhesionContainer.innerText;
                        if (content && ~content.indexOf("Numéro d'adhésion")) {
                            // set n. adhesion
                            fact.businessObject = content.replace("Numéro d'adhésion :", '').trim();
                        }
                    }
                }
            }
            // extract username 
            var container = document.querySelector('.user-info .d-flex');
            if (container) {
                var content = container.innerText;
                if (content) {
                    content = content.replace(/\s\s+/g, ' ');
                    germainApm.rootWindow && germainApm.rootWindow.submitData({ time: Date.now(), type: 'assign metadata', fieldPath: 'user.name', value: content });
                }
            }
        }
    }
    catch (e) { }
};
germainApm.eventGenerators.customAlert = {
    emits: ['DOM popup opening', 'DOM popup closed'],
    installer: function () { return function () { }; },
};
germainApm.eventGenerators.customLogout = {
    emits: ['session end'],
    installer: function () { return function () { }; },
};
germainApm.start(settings);

🔬 6. Enable Advanced JavaScript Analysis — Optional

For deeper troubleshooting of browser-side performance issues, deploy the GermainUX JS Profiler.

The JS Profiler provides more detailed JavaScript execution analysis and can help identify expensive JavaScript methods, execution delays, stalls, and other browser-side performance issues.

Use this capability when deeper JavaScript diagnostics are required beyond standard RUM monitoring.


🤖 7. Configure Synthetic Monitoring — Optional

GermainUX RPA can be used to proactively test critical Magento journeys without waiting for an actual visitor to encounter an issue.

For example:

Open Store → Search Product → Add to Cart → Checkout

Synthetic journeys can be scheduled to continuously validate critical functionality and detect issues such as:

  • Storefront unavailable

  • Product search failure

  • Add-to-cart failure

  • Checkout failure

  • Slow transactions

  • Integration failures

Alerts or automated actions can be triggered when a synthetic journey fails or exceeds defined thresholds.


🔗 8. Configure Backend Monitoring — Optional

Use the GermainUX Engine when additional monitoring is required beyond the browser.

Depending on your Magento architecture, GermainUX can monitor:

REST APIs

Monitor the availability, performance, usage, and errors of Magento APIs and related services.

Logs

Monitor Magento and supporting application logs to detect errors, warnings, and other events relevant to application health.

Database

Monitor the database supporting Magento to identify availability or performance conditions affecting the customer experience.

Combining browser and backend monitoring provides broader visibility across:

Visitor → Magento Storefront → API / Service → Database


🔐 9. Review Data Privacy

Before enabling production monitoring, review the data collected from your Magento environment.

GermainUX monitoring can be configured to exclude or anonymize sensitive information.

Pay particular attention to customer and payment-related information during:

  • Account creation and login

  • Customer profile management

  • Cart

  • Checkout

  • Payment

  • Order confirmation

Configure appropriate exclusions before enabling monitoring for production users.


✅ 10. Validate the Deployment

After deployment, verify that the required Magento telemetry is being received by GermainUX.

Depending on the monitoring capabilities enabled, validate:

  • Real user sessions

  • Session Replay

  • User actions and customer journeys

  • Browser and JavaScript errors

  • Network requests

  • Performance telemetry

  • Synthetic transactions

  • API monitoring

  • Log monitoring

  • Database monitoring

Also confirm that sensitive information is excluded or anonymized according to your organization's privacy and security requirements.


🔄 Return to the Deployment Instructions

You can return to the generated RUM JS deployment instructions at any time.

Navigate to:

Germain Workspace → Settings → Analytics → UX Monitoring Profiles

magento ux profile.png

Select the Magento monitoring profile and open Installation in the Configuration Editor.

The installation instructions for that monitoring profile will be displayed.

m8.png
Magento UX Profile - Germain UX

📊 Next Steps

Once Magento monitoring is deployed, configure the analytics and automation appropriate for your use case.

For example:

  • Conversion and funnel dashboards

  • Cart abandonment analysis

  • Checkout monitoring

  • Customer journey analysis

  • AI-powered session insights

  • Customer feedback analysis

  • Error and performance monitoring

  • Real-time alerts

  • Automated reports

  • SLA monitoring

  • Operational automation

See Magento Operational Experience Intelligence for details about the Magento monitoring and analytics capabilities available in GermainUX.

ℹ️ Get Help

The Germain Team can help you set this up. Contact GermainUX Support.

 

Feature Availability: 2017.1 or later