Skip to main content
Availability2017.1 or later

Configure the Application

Consistent naming across systems

Configure Data Privacy & Exclusions

Filtering sensitive values

Validate the Configuration

Checking telemetry after changes

Advanced Configuration

Tuning monitoring behavior
Configure Monitoring for Node.js Configure GermainUX Node.js monitoring to control application telemetry, HTTP monitoring, asynchronous correlation, errors, warnings, Promise behavior, transactions, resource monitoring, privacy, analytics, alerts, dashboards, and automation. This guide assumes the @germainapm/nodejs-monitoring package is already installed and initialized.

Configure the Node.js Data Source

Enable and configure the Node.js data source that GermainUX will monitor. Depending on the environment, the data source can identify information such as:
  • File path
  • Host
  • URI
  • Application endpoint
  • Monitored runtime
Enable only the Node.js data sources that GermainUX should collect or analyze data from.
Configure Monitoring for Node.js: Configure the Node.js Data Source

Configure the Application

Configure the Node.js application in GermainUX so collected telemetry is associated with the correct application. Use consistent application naming across:
  • Production
  • Staging
  • Development
  • Application components
  • Services
Application identity can also be configured programmatically:
Application and component can also be specified separately:
Configure Monitoring for Node.js: Configure the Application

Configure Monitoring Frequency

Some Node.js monitoring components execute periodically. The default frequency is 60 seconds. Configure it using:
Choose a frequency appropriate for the required visibility and monitoring overhead.

Configure Asynchronous Correlation

By default, GermainUX correlates incoming HTTP requests with asynchronous outgoing HTTP requests. This supports tracing such as:
Incoming HTTP RequestNode.js ProcessingOutgoing HTTP RequestDownstream Service
Disable asynchronous correlation when required:
Correlation introduces a small performance overhead, so enable it where transaction tracing is valuable.

Configure Data Distribution

GermainUX periodically sends collected telemetry to the GermainUX Server. Configure the maximum interval between transmissions using:
The data transport configuration also supports controls for:
  • Sending or discarding telemetry
  • Compression
  • Maximum datapoints retained in memory
  • Maximum flush interval
Available settings include:
Compression is enabled by default.

Configure Incoming HTTP Monitoring

Incoming HTTP monitoring is enabled by default. Control it using:
A custom session extractor can also be configured when the application needs application-specific session correlation. This is useful when an incoming request contains a session identifier that GermainUX should associate with downstream activity.

Configure Outgoing HTTP Monitoring

Outgoing HTTP monitoring is enabled by default. Control it using:
Outgoing HTTP telemetry can be correlated with the incoming transaction to provide visibility into downstream service calls.

Configure Unhandled Exception Monitoring

Unhandled exception monitoring is enabled by default. Configuration supports:
  • Enable / disable monitoring
  • Whether the Node.js process exits after an error
  • Application callback when an error occurs
Available configuration includes:
Review exitOnError carefully because changing it can affect normal Node.js error-handling behavior.

Configure Node.js Warning Monitoring

Node.js warning monitoring is enabled by default. Warnings generated by the Node.js process can be collected and analyzed by GermainUX. Control this capability using:
Warnings can be used in:
  • KPIs
  • Dashboards
  • Reports
  • Alerts
  • Trend analysis

Configure Unhandled Promise Rejection Monitoring

Unhandled Promise rejection monitoring is enabled by default. Control it using:
This allows GermainUX to identify asynchronous errors that are not properly handled by the application.

Configure Multiple Promise Resolve / Rejection Monitoring

GermainUX also monitors when a Promise is resolved or rejected multiple times. This monitoring is enabled by default. Disable it using:

Configure Event Loop Latency Monitoring

Event-loop latency monitoring is enabled by default. Disable it using:
High event-loop latency can indicate blocking or resource-intensive application processing.

Configure Startup Monitoring

GermainUX automatically monitors Node.js startup duration. By default, startup duration is measured between the Node.js process startup and GermainUX initialization. Disable automatic startup monitoring using:
For applications with a more complex initialization process, explicitly indicate when startup has completed:
This allows startup duration to reflect the point at which the application is actually ready.

Configure Exit Monitoring

Node.js process-exit monitoring is enabled by default. Disable it using:
Exit monitoring provides useful context when analyzing unexpected application termination or availability issues.

Configure Custom Transaction Monitoring

Use custom transactions to monitor important business or application operations. Start a transaction:
End the transaction:
Examples of useful transaction names include:
  • ProcessOrder
  • CustomerLookup
  • GenerateInvoice
  • PaymentRequest
  • SubmitClaim
Custom transactions can then be analyzed for duration, failure, correlation, and application impact.

Configure Node.js Process Monitoring

By default, GermainUX monitors the Node.js process for:
  • CPU
  • Memory usage
  • Heap size
  • Heap usage
Disable process-resource monitoring using:

Configure OS Resource Monitoring

GermainUX monitors CPU and memory usage of the server hosting the Node.js application. Disable it using:

Configure Disk Monitoring

GermainUX monitors disk usage of the server hosting the Node.js application. Disable it using:

Configure Default Context

Default context can be added to collected datapoints. Supported default dimensions include:
Use default dimensions when telemetry should consistently be associated with a particular:
  • User
  • System
  • Application
  • Application component
  • Process
Avoid attaching sensitive or unnecessary identifying information.

Configure GermainUX Logging

Logging is enabled at info level and above by default. Configure logging using:
Available logging levels are:
  • error
  • warn
  • info
  • verbose
  • debug
Default behavior includes rolling log files. Use verbose and debug logging selectively in production.

Configure Data Privacy & Exclusions

By default, captured telemetry is sent to GermainUX. Use field exclusions when data must be protected for security or privacy reasons. GermainUX supports: Mask
Replace characters while optionally preserving length and whitespace.
Anonymize
Hash the original value so it can still be correlated without retaining the original value.
Exclude
Remove the captured value.
Example:
Review sensitive fields such as:
  • Session identifiers
  • Request bodies
  • Authentication information
  • Tokens
  • User information
  • Personal information
  • Application-specific confidential data
before production deployment.

Configure KPIs

GermainUX provides preconfigured Node.js KPIs and supports custom KPIs. Examples include:
  • NodeJS Unhandled Promise Rejections
  • NodeJS Warning
  • HTTP response time
  • Transaction duration
  • Event-loop latency
  • CPU usage
  • Memory usage
  • Heap usage
  • Application exits
Enable the KPIs relevant to the application and create custom KPIs where required.
Configure Monitoring for Node.js: Configure KPIs

Configure SLAs

Define SLAs for Node.js KPIs requiring threshold-based monitoring. For example: HTTP Response Time > Threshold Event Loop Latency > Threshold Unhandled Promise Rejections > 0 CPU Usage > Threshold Transaction Duration > Threshold SLAs should reflect expected application behavior rather than using the same thresholds for every Node.js service.
Configure Monitoring for Node.js: Configure SLAs

Configure Categorization

Configure categorization rules to group Node.js telemetry into meaningful operational categories. Categorization can be used for:
  • Errors
  • Warnings
  • Transactions
  • Application components
  • Services
  • Failure types
This helps consolidate similar events and simplify dashboards, reports, and alerts.

Configure Correlation

In addition to built-in asynchronous HTTP correlation, configure GermainUX correlation where Node.js telemetry should be associated with other monitored technologies. Examples:
BrowserNode.jsAPI
MarkoJSNode.jsMySQL
Node.jsMuleSoftDownstream Service
Correlation allows teams to move across application layers during troubleshooting.

Configure Analytics Data Privacy

In addition to the Node.js collector-side exclusion rules, configure GermainUX privacy controls where collected telemetry needs additional handling within analytics. Privacy policies should remain consistent across Node.js and any correlated frontend, API, or database monitoring.

Configure Alerts

Create alerts for Node.js conditions requiring operational attention. Examples include:
  • Unhandled exception
  • Unhandled Promise rejection
  • Node.js warning
  • Unexpected process exit
  • Slow HTTP request
  • Slow transaction
  • High event-loop latency
  • CPU or memory threshold exceeded
Configure appropriate:
  • Conditions
  • Thresholds
  • Time windows
  • Recipients
  • Escalation behavior
Configure Monitoring for Node.js: Configure Alerts

Configure Automation

Node.js conditions can trigger GermainUX automation. For example:
Node.js ConditionKPISLAAlert / Action
Automation can include:
  • Notifications
  • Reports
  • Scripts
  • HTTP actions
  • Incident workflows
  • Other configured operational actions
  • Remediation actions where appropriate

Configure Dashboards

Use an existing Node.js dashboard or create a custom dashboard. Dashboards can present:
  • Application health
  • Errors and warnings
  • HTTP performance
  • Transaction performance
  • Event-loop latency
  • Promise-related problems
  • CPU and memory
  • Heap utilization
  • OS resources
  • Disk utilization
  • SLA status
Combine Node.js telemetry with frontend, API, database, and infrastructure data where useful.

Configure Automated Reports

Enable an existing report or create a Node.js-specific automated report. Reports can summarize:
  • Availability
  • Errors
  • Application performance
  • Transaction performance
  • Resource utilization
  • SLA violations
  • Trends over time
Configure the appropriate schedule and recipients for each operational or management audience.

Validate the Configuration

After changing Node.js configuration, execute representative application activity and verify:
  • Application and data source association
  • Incoming HTTP monitoring
  • Outgoing HTTP monitoring
  • Async correlation
  • Unhandled exceptions
  • Node.js warnings
  • Promise rejections
  • Event-loop latency
  • Startup and exit events
  • Custom transactions
  • Process CPU and memory
  • Heap telemetry
  • OS resources
  • Disk usage
  • Privacy and exclusion rules
  • KPIs
  • SLA evaluation
  • Categorization
  • Correlation
  • Alerts and automation
  • Dashboards and reports
Also verify that monitoring introduces acceptable overhead for the application.

Advanced Configuration

GermainAPMConfiguration exposes additional controls for Node.js monitoring. The main configuration areas include:
  • servicesUrl
  • monitoring
  • logging
  • datapoints
  • defaults
  • exclusions
The monitoring configuration includes controls for:
  • Monitoring frequency
  • Asynchronous correlation
  • Unhandled exceptions
  • Incoming HTTP
  • Outgoing HTTP
  • Startup
  • Process resources
  • OS resources
  • Disk
  • Node.js warnings
  • Unhandled Promise rejections
  • Event-loop latency
  • Process exit
  • Multiple Promise resolutions
Use the default automatic configuration where possible and customize only the capabilities required by the application.

Get More Information

Magento 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 Magento environment. Please contact us for any help.

Get Help

Contact GermainUX Support

The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

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.