sematext
spm-agent-nodejs
JavaScript

NodeJS Monitoring Agent

Last updated Oct 14, 2024
60
Stars
6
Forks
5
Issues
0
Stars/day
Attention Score
12
Language breakdown
JavaScript 98.1%
Handlebars 1.4%
Shell 0.5%
Files click to expand
README

spm-agent-nodejs ================

npm-stats

This is the Node.js monitoring agent for Sematext Cloud.

The following information is collected and transmitted to Sematext:

  • OS Metrics (CPU / Mem)
  • Process Memory
  • EventLoop stats
  • Garbage Collector stats
  • Web server stats (requests, error rate, response times etc.)
Working for all web servers frameworks that use Node.js http/https module including - "connect" based frameworks - Express.js, - Sails.js - Hapi.js - Restify - and others ...

The module is able to run in cluster mode (master/worker).

Status

Supported Node-Versions: Node >= 6.x.

Please check our blog for more information or contact us at npmjs@sematext.com.

Installation

npm install spm-agent-nodejs

Get a free account and create a Node.js API token at sematext.com/spm

Configuration

We use https://www.npmjs.com/package/rc for configuration. This means config parameters can be passed via several config locations command-line args or ENV variables. We recommend to use a file in current directory in INI or JSON format called ".spmagentrc". This file can be generated by calling a helper script:

export MONITORING_TOKEN=YOUR-NODEJS-MONITORING-TOKEN export INFRA_TOKEN=YOUR-INFRA-MONITORING-TOKEN node ./node_modules/spm-agent-nodejs/bin/spmconfig.js

The command above generates following default configuration file (YAML format):

# Directory for buffered metrics dbDir: ./spmdb

# Application Token for SPM tokens: monitoring: YOUR-NODEJS-MONITORING-TOKEN infra: YOUR-INFRA-MONITORING-TOKEN

logger # log file directory default is ./spmlogs dir: ./spmlogs # silent = true means no creation of log files silent: false # log level for output - debug, info, error, defaults to error to be quiet level: error

The only required setting is the Sematext App Token, this could be set via config file ".spmagentrc" or environment variable:

export spmagenttokens_monitoring=YOUR-NODEJS-MONITORING-TOKEN

Please note the use of double "_" for nested properties

Configuration via Environment Variables

export MONITORING_TOKEN=YOUR-NODEJS-MONITORING-TOKEN export INFRA_TOKEN=YOUR-INFRA-MONITORING-TOKEN # default is SaaS at sematext.com, URL needs to be changed for on-prem to the local SPM receiver export SPMRECEIVERURL=https://local-spm-server:8084/_bulk export EVENTSRECEIVERURL=https://local-event-receiver/ export SPMDBDIR=/tmp export SPMLOGDIRECTORY=./logs export SPMLOGLEVEL=error export SPMLOGTO_CONSOLE=true export HTTPS_PROXY=http://my-local-proxy-server

Changing API endpoints for Sematext Cloud EU

export SPMRECEIVERURL=https://spm-receiver.eu.sematext.com/receiver/v1
export EVENTSRECEIVERURL=https://event-receiver.eu.sematext.com

Tags

To configure tags to send along with metrics please see spm-agent README.

Usage

Method 1: Preloading spm-agent-nodejs - no source code modifications requred

The command line option "-r" preloads node modules before the actual application is started. In this case the original source code needs no modification:

node -r './spm-agent-nodejs' yourApp.js

Method 2: Add spm-agent-nodejs to your source code

Add this line at the begin of your source code / main script / app.js
# add spm-agent-nodejs to your project
npm i spm-agent-nodejs --save
require('spm-agent-nodejs')

With PM2

Use the absolute path to your .env file to enable PM2 monitoring.
// load env vars if you're using dotenv
require('dotenv').config({ path: '/absolute/path/to/your/project/.env' })
// start agent
require('spm-agent-nodejs')
pm2 start app.js -i max

Results

SPM for Node.js screenshot_

Troubleshooting

Please visit our documentation for more information.

Other monitoring packages

Please check out spm-metrics-js to monitor any custom metric in your application.

Sematext Docker Agent (see also: https://sematext.com/docker and https://sematext.com/kubernetes)

LICENSE

Apache 2 - see LICENSE file.

🔗 More in this category

© 2026 GitRepoTrend · sematext/spm-agent-nodejs · Updated daily from GitHub