LoginSignup
2
1

More than 5 years have passed since last update.

エラートラッキングツールfaultlineのNodejs用モジュールnode-faultline-protoを作ってみた

Last updated at Posted at 2017-06-20

faultlineとは

オープンソースのエラートラッキングツール。
AWS上に構築する。

node-faultline-proto

今回作成したのは、Nodejsのエラートラッキングにfaultlineを使うためのnpmモジュール。
GitHub sinofseven/node-faultline-proto

インストール

npm install node-faultline-proto

使い方 明示的な方法

var faultlineJs = require('node-faultline-proto');
var faultline = faultlineJs.createClient({
                  project: 'faultline-js', 
                  apiKey: 'xxxxXXXXXxXxXXxxXXXXXXXxxxxXXXXXX',
                  endpoint: 'https://xxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/v0',
                  notifications: [
                    {
                      type: 'slack',
                      endpoint: 'https://hooks.slack.com/services/XXXXXXXXXX/B2RAD9423/WC2uTs3MyGldZvieAtAA7gQq',
                      channel: '#random',
                      username: 'faultline-notify',
                      notifyInterval: 1,
                      threshold: 1,
                      timezone: 'Asia/Tokyo'
                    }
                  ]
                });
faultline.notify(new Error("test"));

使い方2 自動的な方法

var faultlineJs = require('node-faultline-proto');
var faultline = faultlineJs.createClient({
                  project: 'faultline-js', 
                  apiKey: 'xxxxXXXXXxXxXXxxXXXXXXXxxxxXXXXXX',
                  endpoint: 'https://xxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/v0',
                  notifications: [
                    {
                      type: 'slack',
                      endpoint: 'https://hooks.slack.com/services/XXXXXXXXXX/B2RAD9423/WC2uTs3MyGldZvieAtAA7gQq',
                      channel: '#random',
                      username: 'faultline-notify',
                      notifyInterval: 1,
                      threshold: 1,
                      timezone: 'Asia/Tokyo'
                    }
                  ]
                });
faultline.handleExceptions();
throw new Error("test");

faultline.handleExceptions();を使うことでキャッチされない例外が投げられたときに自動でfaultlineに送ってくれる。

*注意*
処理は例外が投げられたところで止まるようなので、AWS Lambdaなどでは使いにくいかもしれない。
そもそもAWS Lambdaだと例外が投げられたらLambda側がcatchして再度throwするみたいなので自分でtry catchした方がよさそう。 (2017/06/21 追記)

課題

大きくわけると3つ。

  • そもそもfaultlineの仕組みやAPIなどを理解しきれていない。
  • ベースとなったnpmモジュールの仕組みを理解しきれていない。
  • テストコードや自動テストなどの整備もできていない。

基本的には自分の技術力不足が原因。
いずれは理解して、テストも整備したいと思って入るけどもモチベーション次第(やらない可能性もある)。
npmモジュールの自動テストなど参考になりそうなものを教えていただけると非常に有り難いです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1