monkit v0.5.0
monkit
Small App Metrics Toolkit for NodeJS/Typescript
Some custom metrics reporters and a partial port of the java instrumentor project.
Built using the metrics module in npm.
Usage
Instrumenting Methods
Instrument an async method by giving it a name and wrapping it with instrument:
const monkit = require('monkit');
const result = await monkit.instrument("my.important.method", async () => {
return await doImportantWork();
});
// By default, metrics will be stored in the project registry available via `monkit.getRegistry()`
console.log(monkit.getRegistry().timer("my.important.method.timer").count()); // 1Using Decorators
Methods decorated with @instrumented will be instrumented as ClassName.MethodName with timing, throughput, and error tracking:
const instrumented = require('monkit').instrumented;
class MyClass {
@instrumented
public async myMethod(): ImportantThing {
return await doImportantWork();
}
}
const result = await new MyClass().myMethod();
// By default, metrics will be stored in the project registry available via `monkit.getRegistry()`
console.log(monkit.getRegistry().timer("MyClass.myMethod.timer").count()); // 1Reporting Metrics
Extra Reporters include
- a
StatsdReporterfor reporting preagregated metrics as statsd gauges - a
StatusPageReporter, which can be used to periodically send metrics to statuspage.io
At time of writing, still need to tweak monkit.Registry to make it compatible with other reporters from the metrics pacakge.
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago