APIのdbのクエリにかかる時間を監視したいと思います。 Bookshelfプラグインであるbookshelf-signalsを使って次のような関数を作成しました。 :DBクエリ時間のトラッキング - Bookshelf/knex
bookshelf.on('fetching',() => {
server.app.fetching = new Date().valueOf();
});
bookshelf.on('counting',() => {
server.app.fetching = new Date().valueOf();
});
bookshelf.on('fetched',() => {
server.statsd.gauge('db_query', new Date().valueOf() - server.app.fetching);
});
...フェッチ/カウントの直前と直後の時間を取得できるようにします。私は削除と同じことをしました - 削除し、保存 - 保存しました。私は理解できないと思う何
は私がフェッチとフェッチがトリガされたときに表示するためにしようとすると、基本的にはこれで終わった...フェッチとフェッチがトリガされるようになっているときです。
'fetching event A'
'fetching event B'
'fetching event C'
'fetched event C'
'fetched event B'
'fetched event A'
間違った値を誤って返すタイマーが発生しましたが、リード/ヒントはありますか?
Knexで 'クエリ'イベントが発生する可能性があることもわかりました。これを代替ソリューションとして使用することも考えました。私はすべてのモデルにイベントハンドラを適用したい場合は、それが実行不可能作る
knex('whatever_table').on('query',() => {///});
... は、私は思う:しかし、私が照会表、すなわちを指定する場合にのみ機能しているようですBookshelfに固執する必要がありますが、イベントの処理方法をどのようにすることができますか?
ありがとうございます!
を送信するためにそれを使用する私は(knex.onを知りませんでしたが)実際に使用することができ、すべてがはるかに簡単になります! 私は特別な場合に使用したコードを回答に入れました:) – smgr