response-time

NPM Version NPM Downloads Build Status Test Coverage

Node.js サーバーのレスポンス時間。

このモジュールは、HTTP サーバーでのリクエストのレスポンス時間を記録するミドルウェアを作成します。ここでは「レスポンス時間」とは、リクエストがミドルウェアに入る時点から、ヘッダーがクライアントに出力される時点までの経過時間として定義されます。

インストール

これは、Node.js モジュールで、npm レジストリ から入手できます。インストールは、npm install コマンド を使用して行います。

$ npm install response-time

API

var responseTime = require('response-time')

responseTime([options])

X-Response-Time ヘッダーをレスポンスに追加するミドルウェアを作成します。このモジュールを使用してヘッダーを自動的に設定したくない場合は、responseTime(fn) に関するセクションを参照してください。

オプション

responseTime 関数は、次のいずれかのキーを含めることができるオプションの options オブジェクトを受け付けます

digits

出力に含める固定桁数。常にミリ秒単位で、デフォルトは 3 です (例: 2.300ms)。

設定するヘッダーの名前。デフォルトは X-Response-Time

suffix

測定単位のサフィックスを出力に追加するかどうかを示すブーリアン。デフォルトは true (例: 2.300ms2.300)。

responseTime(fn)

リクエストのレスポンス時間を記録し、独自の関数 fn で利用できるようにする新しいミドルウェアを作成します。fn 引数は fn(req, res, time) として呼び出されます。ここで、time はミリ秒単位の数です。

express/connect

var express = require('express')
var responseTime = require('response-time')

var app = express()

app.use(responseTime())

app.get('/', function (req, res) {
  res.send('hello, world!')
})

vanilla HTTP サーバー

var finalhandler = require('finalhandler')
var http = require('http')
var responseTime = require('response-time')

// create "middleware"
var _responseTime = responseTime()

http.createServer(function (req, res) {
  var done = finalhandler(req, res)
  _responseTime(req, res, function (err) {
    if (err) return done(err)

    // respond to request
    res.setHeader('content-type', 'text/plain')
    res.end('hello, world!')
  })
})

レスポンス時間のメトリックス

var express = require('express')
var responseTime = require('response-time')
var StatsD = require('node-statsd')

var app = express()
var stats = new StatsD()

stats.socket.on('error', function (error) {
  console.error(error.stack)
})

app.use(responseTime(function (req, res, time) {
  var stat = (req.method + req.url).toLowerCase()
    .replace(/[:.]/g, '')
    .replace(/\//g, '_')
  stats.timing(stat, time)
}))

app.get('/', function (req, res) {
  res.send('hello, world!')
})

ライセンス

MIT