@nxus/metrics v2.4.0-0
@nxus/metrics
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 --saveUsage
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
- modelstring The name of the model to capture. Must be a Storage/BaseModel class.
- eventsArray=(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
- namestring the name of the metrics to return
- queryObject=(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
- namestring The metric name to use.
- dataobject 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.