1.0.0-beta.9 • Published 4 years ago
@dxos/metrics v1.0.0-beta.9
Metrics
A simple, lightweight and extensible metrics gathering system.
Install
$ npm install @dxos/metrics
Usage
Metrics can either be submitted to the root object:
import metrics from '@dxos/metrics';
metrics.inc('work.started');
or to a nested object:
import metrics from '@dxos/metrics';
class Test {
_metrics = metrics(Test);
work() {
this._metrics.inc('work.started');
}
}
Nested Metrics objects are scoped and allow for filtering.
metrics.filter({ source: Test, key: 'work.started' });
All metrics are passed up to successive Metrics objects.
Counters
import metrics from '@dxos/metrics';
metrics.inc('counter');
metrics.inc('counter');
metrics.inc('counter');
expect(metrics.get('counter').toEqual(metrics.filter({ key: 'counter' }).length);
Time Series
import metrics from '@dxos/metrics';
const work = async () => {
const period = metrics.start('work');
await new Promise((resolve) => setTimeout(resolve, Math.random() * 100));
period.end();
};
Contributing
PRs accepted.
License
GPL-3.0 © dxos
1.0.0-beta.9
4 years ago
1.0.0-beta.6
4 years ago
1.0.0-beta.7
4 years ago
1.0.0-beta.8
4 years ago
1.0.0-beta.5
4 years ago
1.0.0-beta.2
4 years ago
1.0.0-beta.3
4 years ago
1.0.0-beta.4
4 years ago
1.0.0-beta.1
4 years ago
1.0.0-beta.0
4 years ago