@nxus/metrics

Metrics tracks arbitrary events in a Nxus application.

Usage no npm install needed!

<script type="module">
  import nxusMetrics from 'https://cdn.skypack.dev/@nxus/metrics';
</script>

README

@nxus/metrics

Build Status">

A module for capturing and querying arbitrary events, called metrics.

A metric has a name, like 'pageViews', and arbitrary data, which can be any object. For example, your 'pageViews' metric might have an entry like:

{
  name: 'pageViews',
  data: {
    browser: 'Safari',
    location: [...]
    ...
  }
}

Installation

> npm install @nxus/metrics --save

Usage

Saving a metric value

Metrics provides a method for recording new metrics.

app.get('metrics').metric('someName', {some: 'data'});

Capturing metrics for models

You can also have Metrics capture all events from a model and save new values accordingly.

app.get('metrics').capture('myModel')

Now, whenenver an instance of the model is created, updated or destroyed, there will be a corresponding metric captured. For example, 'myModelCreated', where the data is the latest instance of the model.

API


Metrics

The Metrics module captures arbitrary data about events (a metric) for storage and querying later.

capture

Captures metric data about a specified @nxus/storage Model

Parameters

  • model string The name of the model to capture. Must be a Storage/BaseModel class.
  • events Array=(default ['create', 'update', 'destroy']) Optional. An array of model events to capture. Defaults to 'create', 'update', 'destroy'.

getMetrics

Returns metrics for the specified name, optionally using the query to filter returned values.

Parameters

  • name string the name of the metrics to return
  • query Object=(default {}) Optional. The Waterline compatible query object to filter results by.

Returns Promise A promise for the result set.

metric

Record a new metric value

Parameters

  • name string The metric name to use.
  • data object An arbitrary object to record as as the data payload for the metric.

Returns Promise A promise that is fulfilled when the metric has been saved successfully.