Configuring Node.js, Version 5.2

The Solution Package for Node.js is an easy to configure and use monitoring system that gives you extensive visibility into the health and performance of your Node.js node instances, node requests, and node processes. This section describes how to collect the Node.js data that you want to monitor. 

Configuring Data Collection

This section describes the required configurations as well as the optional configurations available for the Solution Package for Node.js in the RTView Configuration Application.

Sending Data from Node.js Applications to the RTView DataServer for Infrastructure

The following steps are required so that data can be sent from your applications to the RTView DataServer for Infrastructure:

  • Copy the RTViewDataCollectorInfra\ rtvapm\nodemon\agents\rtview-nodemon-<version>.zip file to your application's node_modules folder and unzip the file.

The rtview-nodemon folder is created within the node_modules directory.

  • In a command window, cd to the rtview-nodemon folder and run npm install to install the modules required by the rtview-nodemon module.
  • See the RTViewDataCollectorInfra\ rtvapm\nodemon\agents\rtview-nodemon\readme.txt file for additional information on how to use the modules in clustered and non-clustered applications.

Changing the Default Port (Optional)

The default port used for data collection is defined in the “RTView Configuration Application” under Server Configuration > General > Ports.

To modify the default, perform the following:

  • Open the “RTView Configuration Application” and navigate to Server Configuration > General > GENERAL (tab) > Ports.

  • Specify the Node.js rtvhttp data adapter port prefix to which you want to connect (to enable the Monitor to collect data). The last two numbers in the HTTP Port are automatically set to 75. You can click the SHOW PORT ASSIGNMENTS button to see the default port assignments. For example, if you specify 32 as the Port Prefix, then the combined port will be 3275.

  • SAVE your changes in the RTView Configuration Application.

  • To apply the changes you made, you must restart the data server, which can be done by clicking the  button that appears once changes have been saved. Clicking this button automatically restarts the data server and takes you back to the projects page, which will require you to wait for a couple of minutes for the data server to restart. Once the data server has restarted, you can select the project again to verify your changes. Note that this process only restarts the data server.

Configuring Collection of Historical Data (Optional)

You can specify the number of history rows to store in memory, the compaction rules, the duration before metrics are expired and deleted, and the different types of metrics that you want the Historian to store in the DATA STORAGE tab in the RTView Configuration Application. Once you have made all of your changes, you need to save your changes in the RTView Configuration Application and restart your data server for the changes to take place.

Defining the Storage of In-Memory History

You can modify the maximum number of history rows to store in memory in the DATA STORAGE tab. The History Rows property defines the maximum number of rows to store for the NodeProcess, NodeResponseTime, NodeInfo, and NodeRequests caches. The default settings for History Rows is 50,000. To update the default setting:

  • Navigate to the Solution Package Configuration > Node.js > DATA STORAGE tab.
  • In the Size region, click the History Rows field and specify the desired number of rows.

Defining Compaction Rules

Data compaction, essentially, is taking large quantities of data and condensing it using a defined rule so that you store a reasonably sized sample of data instead of all of your data, thus preventing you from potentially overloading your database. The available fields are:

Condense Interval -- The time interval at which the cache history is condensed for the following caches: NodeProcess, NodeResponseTime, NodeInfo, and NodeRequests. The default is 60 seconds.

Condense Raw Time -- The time span of raw data kept in the cache history table for the following caches: NodeProcess, NodeResponseTime, NodeInfo, and NodeRequests. The default is 1200 seconds.

History Time Span -- The time span of data kept in the cache history table for the following cache: NodeProcess, NodeResponseTime, NodeInfo, and NodeRequests.

Compaction Rules -- This field defines the rules used to condense your historical data in the database for the following caches: NodeProcess, NodeResponseTime, NodeInfo, and NodeRequests. By default, the columns kept in history will be aggregated by averaging rows with the following rule 1h -;1d 5m;2w 15m, which means the data from 1 hour will not be aggregated (1h - rule), the data over a period of 1 day will be aggregated every 5 minutes (1d 5m rule), and the data over a period of 2 weeks old will be aggregated every 15 minutes (2w 15m rule).

  • Navigate to the Solution Package Configuration > Node.js > DATA STORAGE tab.
  • In the Compaction region, click the Condense Interval, Condense Raw Time, History Time Span, and Compaction Rules fields and specify the desired settings.

Note: When you click in the Compaction Rules field, the Copy default text to clipboard link appears, which allows you copy the default text (that appears in the field) and paste it into the field. This allows you to easily edit the string rather than creating the string from scratch.

Defining Expiration and Deletion Duration for Node.js Metrics

The data for each metric is stored in a specific cache and, when the data is not updated in a certain period of time, that data will either be marked as expired or, if it has been an extended period of time, it will be deleted from the cache altogether. By default, metric data will be set to expired when the data in the cache has not been updated within 45 seconds. Also, by default, if the data has not been updated in the cache within 3600 seconds, it will be removed from the cache. The following caches are impacted by settings in the Expire Time and Delete Time fields: NodeProcess, NodeResponseTime, NodeInfo, and NodeRequests. To modify these defaults:

  • Navigate to the Solution Package Configuration > Node.js > DATA STORAGE tab.
  • In the Duration region, click the Expire Time and Delete Time fields and specify the desired settings.

Enabling/Disabling Storage of Historical Data

The History Storage section allows you to select which metrics you want the Historian to store in the history database. By default, historical Info (NodeInfo cache), Processes (NodeProcess cache), Requests (NodeRequests cache), and Response Times (NodeResponseTime cache) are saved to the database. To disable the collection of this historical data, perform the following steps:

  • Navigate to the Solution Package Configuration > Node.js > DATA STORAGE tab.
  • In the History Storage region, deselect the toggles for the metrics that you do not want to collect. Blue is enabled, gray is disabled.

Defining a Prefix for All History Table Names for NODEMON Metrics

The History Table Name Prefix field allows you to define a prefix that will be added to the database table names so that the Monitor can differentiate history data between data servers when you have multiple data servers with corresponding Historians using the same solution package(s) and database. In this case, each Historian needs to save to a different table, otherwise the corresponding data server will load metrics from both Historians on startup. Once you have defined the History Table Name Prefix, you will need to create the corresponding tables in your database as follows:

  • Locate the .sql template for your database under rtvapm/nodemon/dbconfig and make a copy of template.
  • Add the value you entered for the History Table Name Prefix to the beginning of all table names in the copied .sql template.
  • Use the copied .sql template to create the tables in your database.

Note: If you are using Oracle for your Historian Database, you must limit the History Table Name Prefix to 2 characters because Oracle does not allow table names greater than 30 characters (and the longest table name for the solution package is 28 characters).

To add the prefix:

  • Navigate to Solution Package Configuration > Node.js > DATA STORAGE tab.
  • Click on the History Table Name Prefix field and enter the desired prefix name.