Node.js

インストール npm install @blipit/node

@blipit/node は捕捉されなかった例外と未処理の Promise の拒否を自動で捕捉し、Express と Fastify 用のハンドラーを追加し、同じキーでログとログイン試行を送信します。シークレットキーを使い、サーバー上に保管してください。

1インストール

sh
npm install @blipit/node

2最初に初期化

アプリより先に実行されるファイルにこれを置き、最初にインポートしてください。

instrument.mjs
import * as Blipit from "@blipit/node";

Blipit.init({
  key: process.env.BLIPIT_SECRET_KEY,
  environment: process.env.NODE_ENV,
  release: process.env.RELEASE,
  serverName: "api",
});

3Express または Fastify

ルートの後にハンドラーを追加すると、処理済み・未処理のエラーの両方が、リクエストのメソッド、URL、ユーザーエージェント付きで Blipit に届きます。

js
import "./instrument.mjs";
import * as Blipit from "@blipit/node";
import express from "express";

const app = express();
app.get("/", (req, res) => res.send("ok"));
app.use(Blipit.expressErrorHandler());
app.listen(3000);
Fastify
await app.register(Blipit.fastifyPlugin());

4手動キャプチャ、ログ、ログイン試行

js
Blipit.captureException(err);
Blipit.captureMessage("cache miss rate above 50%", "warning");
Blipit.setUser({ id: "user-42" });
Blipit.log.info("order placed", { order_id: 42 });
Blipit.captureSecurity({ kind: "login_failed", actor: email, ip, userAgent, outcome: "bad_password" });
await Blipit.flush();

5動作確認

app.blipit.io で「イシュー」を開きます。数秒以内に最初のイベントがイシューにまとめられて表示され、担当者にメールが届きます。

js
Blipit.captureMessage("Hello from Node");

知っておくと便利

  • 捕捉されなかった例外が発生すると、SDK は保留中のイベントをフラッシュしてから終了コード 1 で終了します。onFatal で上書きできます。
  • captureConsole: true にすると、console.log などがログ行としてログページに送信されます。
  • 既に @sentry/node を使っていますか?DSN https://<public key>@in.blipit.io/<project id> でそのまま動作します。

お困りですか?support@blipit.io までメールしてください。各プロジェクトのキーと正確な DSN は app.blipit.io の「APIキー」にあります。