> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy Monitoring for Magento

> GermainUX can monitor Magento across the user, application and infrastructure layers.

Components
[`Engine`](/main/germain-ux-engine)
[`JS Profiler`](/main/germain-ux-js-profiler)
[`Mobile`](/main/germain-ux-mobile-app)
[`RPA Bot Recorder`](/main/germain-ux-rpa-bot-recorder)
[`RUM JS`](/main/germain-ux-rum-js)
[`RUM Extension`](/main/germain-ux-rum-extension)

Availability
2017.1 or later

> **[Monitoring Options](#monitoring-options)**
>
> Layers of Magento monitoring

> **[Follow the Deployment Instructions](#3-follow-the-deployment-instructions)**
>
> Use wizard-generated instructions

> **[Configure Backend Monitoring — Optional](#8-configure-backend-monitoring-—-optional)**
>
> Add server-side visibility

> **[Return to the Deployment Instructions](#return-to-the-deployment-instructions)**
>
> Reopen RUM JS instructions

## Overview

> [!NOTE]
>
> 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**

![Deploy Monitoring for Magento: 1. Start the Magento Wizard](https://mintcdn.com/germain-ux/hPK2RwO7wyn44bNw/images/main/deploy-monitoring-for-magento/m1.png?fit=max\&auto=format\&n=hPK2RwO7wyn44bNw\&q=85\&s=a8998c619de19ade7215b61fb7049389)

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

## 2. Configure the Magento Application

Enter the:

* **Application Name**
* **Magento URL**

  ![Deploy Monitoring for Magento: 2. Configure the Magento Application](https://mintcdn.com/germain-ux/hPK2RwO7wyn44bNw/images/main/deploy-monitoring-for-magento/m2.png?fit=max\&auto=format\&n=hPK2RwO7wyn44bNw\&q=85\&s=824ce6d5f6ba98e32d6f5518eed81f94)

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.

![Deploy Monitoring for Magento: 3. Follow the Deployment Instructions](https://mintcdn.com/germain-ux/hPK2RwO7wyn44bNw/images/main/deploy-monitoring-for-magento/m7.png?fit=max\&auto=format\&n=hPK2RwO7wyn44bNw\&q=85\&s=98767d399939decb14b83491e0c44c67)

## 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:

![Filter in or out specific Magento errors](https://mintcdn.com/germain-ux/hPK2RwO7wyn44bNw/images/main/deploy-monitoring-for-magento/image-20240227-165033.png?fit=max\&auto=format\&n=hPK2RwO7wyn44bNw\&q=85\&s=3c516df30d80621b9faea0639168f3c0)

Filter in or out specific Magento errors - GermainUX

* 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 theme={null}
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

> **Show all 10**
>
> * 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

![Deploy Monitoring for Magento: Return to the Deployment Instructions](https://mintcdn.com/germain-ux/hPK2RwO7wyn44bNw/images/main/deploy-monitoring-for-magento/magento-ux-profile.png?fit=max\&auto=format\&n=hPK2RwO7wyn44bNw\&q=85\&s=b3a1cd806f8269764518ee0c63617c28)

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

The installation instructions for that monitoring profile will be displayed.

![Magento UX Profile](https://mintcdn.com/germain-ux/hPK2RwO7wyn44bNw/images/main/deploy-monitoring-for-magento/m8.png?fit=max\&auto=format\&n=hPK2RwO7wyn44bNw\&q=85\&s=801034863c4eb35160e8ec25b34cc8d3)

Magento UX Profile - GermainUX

## 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

> **Show all 11**
>
> * 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

> **[Contact GermainUX Support](/main/support.md)**
>
> The Germain Team can help you set this up.

> **Can't find what you need?**
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.