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

# Node.js Observability

> Germain is designed to monitor the uptime, performance, and usage of Node.js applications.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)

Availability
8.6.0 or later

> [card] [Germain overview](#germain-overview)
>
> Uptime, performance and usage

> [card] [Real-time Automation for Node.js](#real-time-automation-for-node-js)
>
> Triggering actions instantly

## Germain overview

Germain is designed to monitor the uptime, performance, and usage of Node.js applications. With Germain, you can gain valuable insights into the availability, responsiveness, and overall performance of your Node.js applications. Additionally, Germain offers a variety of automation features, enabling you to proactively detect and automatically resolve issues.

### Real-time Monitoring and Insights for Node.js

Key monitoring capabilities and automated insights in GermainUX for Node.js applications, including:

| Capability | Description |
| - | - |
| **Error and Exception** | GermainUX monitors errors, exceptions and warning occurring within the Node.js application. It captures and analyzes error logs, stack traces, and error details, allowing you to identify and troubleshoot issues promptly. |
| **Exit Event** | GermainUX monitors the application's exit events, such as unhandled exceptions or abnormal terminations. It helps detect unexpected application exits and provides insights into the root causes. |
| **HTTP Request** | GermainUX monitors HTTP requests and responses in the Node.js application. It captures metrics related to request/response times, status codes, and network latency. This monitoring enables you to identify performance bottlenecks and optimize the application's HTTP interactions. |
| **Express** | GermainUX provides dedicated monitoring for applications built on the Express framework. It captures metrics specific to Express middleware, routing, and request handling. This allows you to analyze the performance and behavior of Express-based applications. |
| **Event Loop Latency** | GermainUX tracks the event loop latency, which measures the responsiveness and efficiency of event-driven operations in the Node.js application. It helps identify any delays or blocking operations that may impact the overall performance. |
| **Startup Duration** | GermainUX measures the startup duration of the Node.js application, providing insights into the application's initialization process. This monitoring helps identify potential performance improvements during application startup. |
| **Transaction Monitoring** | GermainUX monitors transactions within the Node.js application, capturing details about their execution time, success/failure status, and any associated errors or warnings. This enables you to track critical business transactions and identify any performance issues or anomalies. |
| **Process Resources** | GermainUX monitors the CPU and memory usage of the Node.js application process. It helps you ensure optimal resource utilization and identify any resource-intensive operations. |
| **OS Resources** | GermainUX monitors the operating system resources consumed by the Node.js application, such as CPU, memory, and disk usage. This monitoring provides insights into the application's impact on the overall system resources. |
| **Disk** | GermainUX tracks disk-related operations performed by the Node.js application, such as file reads and writes. It helps you identify any disk I/O bottlenecks or performance issues. |
| **Multiple Promise Resolve/Rejection** | GermainUX monitors the resolution and rejection of Promises within the Node.js application. It captures information about the Promise execution, including execution time and any associated errors or warnings. |

By leveraging these monitoring features, GermainUX enables you to gain valuable insights into the performance, availability, and usage of your Node.js applications. This information allows you to optimize application performance, troubleshoot issues efficiently, and enhance the overall user experience.

> [!NOTE]
>
> For more detailed information, please reaching out to us: [Support and Contact](https://docs.germainux.com/main/support.md) . We will provide you with further guidance and assistance tailored to your needs.

### Transaction Performance Comparison

When analyzing a slow or failed Node.js application transaction, use Comparison to compare its performance with another execution of the same transaction, such as the fastest, slowest, most recent, first seen, or last seen.

Comparison can reveal:

* Differences in execution time for the same Node.js operation
* Which steps, Express middleware, or API calls caused the slowdown
* Performance differences between successful and failed Node.js transactions
* Errors or bottlenecks affecting Node.js workflows
* Potential root causes of transaction performance degradation

This helps pinpoint why a Node.js transaction is slower or failing, identify the underlying bottlenecks, and accelerate resolution to improve application performance and user experience.

More details on [**Transaction Performance Comparison**](https://docs.germainux.com/main/4-analysis-dashboard.md#comparison-of-bad-vs-good).

### KPIs

List of [preconfigured KPIs](https://docs.germainux.com/main/kpis-technologies-availability-performance-mobile.md) for Node.js.

### Custom Real-time Insights for Node.js

Here is a[list of real-time analytics features](https://docs.germainux.com/main/analytics.md) in GermainUX that can be customized to gain more insights from your Node.js application.

### Examples of Insights for NodeJS

Note that these screenshots were taken on GermainUX’s old UI, yet the “monitoring” features and “insights” are still available on GermainUX’s recent/better looking UI! 🙂

![Node.js Observability: Examples of Insights for NodeJS](https://mintcdn.com/germain-ux/A5V4ExbdsH-e9Odt/images/main/node-js-monitoring/germainAPM-node.js-errors.png?fit=max\&auto=format\&n=A5V4ExbdsH-e9Odt\&q=85\&s=f097dfdae5a1be3df0f023941d8a36e9)

![Node.js Observability: Examples of Insights for NodeJS, image 2](https://mintcdn.com/germain-ux/A5V4ExbdsH-e9Odt/images/main/node-js-monitoring/germainAPM-node.js-overview2.png?fit=max\&auto=format\&n=A5V4ExbdsH-e9Odt\&q=85\&s=b5c71425230d3dd9a70e551264be80cd)

## Real-time Automation for Node.js

Germain provides key [real-time automation features](https://docs.germainux.com/main/automation.md) for Node.js application, that can be customized to proactively detect or resolve issues that affect a Node.js application.

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> 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.

> [card] 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.