Opinionated performance metric tracking for Koa, implemented with DogStatsD.
yarn add @shopify/koa-metrics
import Koa from 'koa';
import metrics from '@shopify/koa-metrics';
const app = new Koa();
app.use(
metrics({
prefix: 'AppName',
host: 'some-statsd-host.com:8125',
}),
);
The passed in options
object adheres to the following API:
The global StatsD metric name prefix; should be provided in PascalCase
.
The url for the StatsD host; should be provided in the format: hostname:port
.
An instance of the Metrics
object will be available on ctx.metrics
further down in the middleware stack.
Sends a distribution command with the specified value
in milliseconds.
Returns a new Timer
started at the current process.hrtime()
Returns the time, in milliseconds, since the Timer
was created.
tags are an object keyed by the name of the corresponding tag. For example:
{
name: value,
name2: value2
}
The global metric name prefix is provided through the options object.
This package automatically provides performance metrics for HTTP requests.
path
request_method
response_code
response_type
(eg.2xx
,3xx
, ...)
Time to complete a request, from the application perspective.
Time before a request actually started being processed.
This metric is emitted when the application start processing a request. It relies on the presence of a header X-Request-Start
set by the first HTTP hop.
This metric is based on the response header Content-Length
. Some responses don't provide this header (chunked encoding); in those cases, this will not be reported.