Deployment

๐Ÿš€ Deploy Monitoring for Node.js

Deploy GermainUX monitoring into a Node.js application to capture application performance, HTTP transactions, errors, event-loop latency, resource utilization, and other Node.js telemetry.

๐Ÿ“‹ Requirements

Before deployment, verify:

  • Node.js v14 or later

  • npm or Yarn package management

  • Network connectivity from the Node.js application to the GermainUX environment

The Node.js application must be able to send monitoring telemetry to the configured GermainUX server.


๐Ÿš€ 1. Start the Node.js Wizard

In Germain Workspace, navigate to:

Left Menu โ†’ Wizards โ†’ NodeJS

Start the Node.js monitoring deployment Wizard.

image-20230222-041716.png

๐Ÿ”ง 2. Configure the Monitored Application

Configure the Node.js environment you want to monitor.

Define:

  • Monitored Server

  • Application

  • Name

Use consistent application naming so collected Node.js telemetry can be correctly associated with the application in GermainUX.

image-20230222-041824.png

๐Ÿ“ฆ 3. Install the GermainUX Node.js Package

The GermainUX Node.js monitoring package is:

@germainapm/nodejs-monitoring

npm

Install using:

npm i --save @germainapm/nodejs-monitoring

Yarn

Install using:

yarn add @germainapm/nodejs-monitoring


โš™๏ธ 4. Initialize GermainUX Monitoring

Initialize GermainUX in the main JavaScript file used to start the Node.js application, such as:

server.js

RequireJS

JavaScript
const GermainAPM = require('@germainapm/nodejs-monitoring');

const config = GermainAPM.getDefaultConfiguration('https://GERMAIN_APM_SERVER/');
const apm = new GermainAPM(config);
apm.start();

ES6

JavaScript
import GermainAPM from '@germainapm/nodejs-monitoring';

const config = GermainAPM.getDefaultConfiguration('https://GERMAIN_APM_SERVER/');
const apm = new GermainAPM(config);
apm.start();

Replace GERMAIN_APM_SERVER with the GermainUX environment receiving the monitoring telemetry.

For the simplest deployment, only the GermainUX server URL is required. Standard monitoring capabilities are automatically configured.


๐Ÿท๏ธ 5. Identify the Application

Optionally specify the application name when creating the default configuration:

JavaScript
const config = GermainAPM.getDefaultConfiguration(
    'https://GERMAIN_APM_SERVER/',
    'APP_NAME'
);

Application and component can also be configured separately:

config.defaults.application = {
    name: 'APP_NAME',
    component: 'APP_COMPONENT'
};

Use consistent application and component names across environments.


๐Ÿ” 6. Review Data Collection & Privacy

Before production deployment, review the information collected from the Node.js application.

GermainUX supports:

  • Masking

  • Anonymization

  • Exclusion

Configure exclusions for sensitive information before enabling monitoring broadly in production.

Pay particular attention to information associated with:

  • HTTP requests

  • Request bodies

  • Session identifiers

  • User information

  • Authentication information

  • Application-specific sensitive data


๐Ÿ”„ 7. Restart the Node.js Application

Restart the application after installing and initializing the GermainUX monitoring package.

GermainUX monitoring starts when the application initializes the package and calls:

apm.start()


โœ… 8. Validate the Deployment

Execute representative Node.js application activity.

For example:

Incoming HTTP Request โ†’ Node.js Processing โ†’ Outgoing HTTP Request โ†’ Response

Verify that GermainUX receives the expected telemetry, such as:

  • HTTP transactions

  • Errors and warnings

  • Event-loop latency

  • Node.js process resources

  • OS resources

  • Application startup

  • Application events

Also verify that the application is associated with the correct server and application in GermainUX.


๐Ÿ“Š Next Steps

Once Node.js monitoring is operational, configure:

  • Monitoring frequency

  • Asynchronous correlation

  • Data distribution frequency

  • Error monitoring

  • HTTP monitoring

  • Event-loop latency

  • Transactions

  • Process and OS resources

  • Privacy and exclusions

See Configure Monitoring for Node.js for detailed configuration.

โ„น๏ธ Get More Information

NodeJS environments can vary significantly depending on storefront customization, extensions, integrations, infrastructure, and security requirements.

The GermainUX team can help configure the appropriate monitoring scope, privacy controls, analytics, alerts, and automation for your NodeJS environment.

Please contact us for any help.

Feature Availability: 2017.1 or later