@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 --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.