hemera-stats

6.0.2 • Public • Published

Hemera-stats package

npm styled with prettier

Collect service and process stats from all hemera instances.

Schema extraction only works with the Joi validator. PR welcome!

Use cases:

  • Get a list of all hemera instances and watch the internal behaviour (Memory, V8 internals, Environment, App-Name, Uptime)
  • Get a list of all registered server actions and create an API Documentation
  • Get a list of all registered server actions and create a realtime dashboard

If you want to get a list of all active subscriber, connections you can use the NATS HTTP Interface it will respond a JSON object.

Usage

const hemera = new Hemera(nats, {
  load: {
    process: {
      sampleInterval: 100
    }
  }
})
hemera.use(require('hemera-stats'))

Monitoring


Pull

Subscribe for informations.

Process Info

Returns process informations.

The pattern is:

  • topic: is the topic name to publish to stats
  • cmd: is the command to execute processInfo

Example:

hemera.act(
  {
    topic: 'stats',
    cmd: 'processInfo',
    maxMessages$: -1
  },
  function(err, resp) {} // Handler is called multiple times
)

Result:

{ app: 'hemera-d1ce3ef6834eeac1',
  eventLoopDelay: 3.487878993153572,
  heapUsed: 12137328,
  rss: 32841728,
  nodeEnv: 'development',
  uptime: 0.193,
  ts: 1488632377418 }

Registered actions

Returns all registered server actions.

The pattern is:

  • topic: is the topic name to publish to stats
  • cmd: is the command to execute registeredActions

Example:

hemera.act(
  {
    topic: 'stats',
    cmd: 'registeredActions'
  },
  function(err, resp) {}
)

Result:

{
    "app": "hemera-97b748fab6b5d34b",
    "actions": [{
        "pattern": {
            "topic": "math",
            "cmd": "add"
        },
        "schema": {
            "a": {
                "description": "this key will match any number you give it",
                "notes": ["this is special", "this is important"],
                "tags": [],
                "default": 33,
                "required": true,
                "examples": [1]
            }
        },
        "plugin": "core",
        "ts": 1488632377418
    }]
}

Push

Request for informations.

sendProcStats

Broadcast the process informations to the specific pattern.

Example:

hemera.sendProcStats({
  topic: 'action.stats'
})

sendActionStats

Broadcast the action informations to the specific pattern.

Example:

hemera.sendActionStats({
  topic: 'process.stats'
})

Readme

Keywords

none

Package Sidebar

Install

npm i hemera-stats

Weekly Downloads

72

Version

6.0.2

License

MIT

Unpacked Size

6.76 kB

Total Files

5

Last publish

Collaborators

  • starptech