Have ideas to improve npm?Join in the discussion! »

    spm-agent-nodejs

    4.1.3 • Public • Published

    spm-agent-nodejs

    build status

    npm-stats

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

    The following information is collected and transmitted to SPM (Cloud or On-Premises version):

    • 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 SPM Application Token, this could be set via config file ".spmagentrc" or environment variable:

    export spmagent_tokens__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 SPM_RECEIVER_URL=https://local-spm-server:8084/_bulk
    export EVENTS_RECEIVER_URL=https://local-event-receiver/
    export SPM_DB_DIR=/tmp
    export SPM_LOG_DIRECTORY=./logs
    export SPM_LOG_LEVEL=error
    export SPM_LOG_TO_CONSOLE=true
    export HTTPS_PROXY=http://my-local-proxy-server
    

    Changing API endpoints for Sematext Cloud EU

    export SPM_RECEIVER_URL=https://spm-receiver.eu.sematext.com/receiver/v1
    export EVENTS_RECEIVER_URL=https://event-receiver.eu.sematext.com
    

    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

    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.

    Install

    npm i spm-agent-nodejs

    DownloadsWeekly Downloads

    924

    Version

    4.1.3

    License

    Copyright (c) Sematext Group, Inc.

    Unpacked Size

    123 kB

    Total Files

    239

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar