【実務・中級編】RollbarのCustom Telemetry(カスタムテレメトリー)機能でエラー前後のユーザー行動を追跡する – 運用監視・オブザーバビリティ活用バイブル

Rollbar Custom Telemetry:エラーの「犯行現場」を完全再現する技術

いいか、よく聞け。「エラーが再現しません」という報告ほど、エンジニアの寿命を削るものはない。

ログに吐き出されたスタックトレースを眺め、必死にローカルで環境を再現しようと試み、結局「再現手順不明」のチケットを積む……そんな不毛な時間は今日で終わりだ。

Rollbarの`Telemetry`は、単なる「エラー発生時のログ記録」ではない。ユーザーがエラーという名の断崖絶壁に突き落とされるまでの「数秒間の軌跡」を記録する、ブラックボックス・レコーダーだ。 これを使いこなせば、デバッグ時間は数時間から数分に圧縮できる。

今日は、Rollbarをただの「エラー通知ツール」から「最強のデバッグ兵器」に昇華させるための実践テクニックを叩き込む。

—

1. なぜ「Custom Telemetry」が必須なのか

標準的なエラー監視は「結果」しか教えてくれない。しかし、エラーは常に「文脈(Context)」の中に存在する。

  • どのボタンを押したのか?
  • どのAPIを叩いた結果、不正なレスポンスが返ってきたのか?
  • その直前に、クライアントサイドでどんな状態遷移(State Change)が起きたのか?

これらをRollbarのTelemetryに流し込むことで、「ユーザーの操作ログ」を時系列で追跡できる。 これこそが、再現性の呪縛を解く鍵だ。

—

2. 実践:Custom Telemetryの実装術

単にブラウザのイベントを垂れ流すだけではノイズの海に溺れる。重要なのは「意味のある行動」を記録することだ。

JavaScript実装のベストプラクティス

`Rollbar.configure`で初期設定を済ませたら、重要箇所で `Rollbar.telemetry()` を叩け。

// 現場で使うべきラッパー関数
const logAction = (type, data) => {
// ユーザーの行動をTelemetryとして送信
// type: ‘click’, ‘api’, ‘navigation’ などで分類する
Rollbar.telemetry(type, {
timestamp: Date.now(),
details: data,
// 重要なのは「何が起きたか」という文脈
context: window.location.pathname
});
};

// APIリクエストの前後をフックして記録する例
async function fetchUserData(userId) {
logAction(‘api_request’, { url: ‘/api/user’, userId });
try {
const response = await fetch(`/api/user/${userId}`);
return await response.json();
} catch (err) {
logAction(‘api_error’, { error: err.message });
throw err; // Rollbarが自動的にエラーを捕捉
}
}

—

3. 生産性を加速させる「神・運用テクニック」

① チーム開発での「設定共有化」ルール

設定が属人化するとツールは死ぬ。`rollbar.config.js` をリポジトリのルートに置き、環境変数で制御せよ。

`rollbar.config.js` の構成例:

module.exports = {
accessToken: process.env.ROLLBAR_ACCESS_TOKEN,
captureUncaught: true,
captureUnhandledRejections: true,
payload: {
environment: process.env.NODE_ENV,
client: {
javascript: {
source_map_enabled: true, // ソースマップは必須!
code_version: process.env.GIT_COMMIT_HASH // デプロイハッシュで追跡
}
}
},
// ノイズ除去の神設定:不要なエラーを握りつぶす
checkIgnore: (isUncaught, args, payload) => {
const msg = payload.message || “”;
// 特定のサードパーティ広告スクリプトのエラーを無視
return msg.includes(‘ad-tracker-script’);
}
};

② 開発スピードを劇的に高める「ショートカット」

Rollbarのダッシュボードを使いこなせ。

  • `Shift + /`: ダッシュボード内でキーボードショートカット一覧を即座に開く。
  • `Enter` (Issue詳細画面): 選択中のエラーを即座に「Resolved(解決済み)」にする。
  • `a`: 担当者を自分にアサインする。

これらを使い、マウスに触れる回数を極限まで減らせ。

—

4. テックリードからの警告:やってはいけないこと

1. 個人情報の混入: Telemetryにメールアドレスやトークンをそのまま流すな。必ずマスク処理を挟め。
2. Telemetryの過剰摂取: 全てのクリックイベントを記録すると、ノイズで何が重要か分からなくなる。「エラーに繋がる可能性のある操作」のみを厳選せよ。
3. Source Mapの放置: JSのミニファイ化されたコードを眺めるのは苦行だ。ビルドパイプラインに `rollbar-cli` を組み込み、デプロイ時に必ずソースマップをアップロードしろ。

—

最後に:なぜ我々はこれをするのか

オブザーバビリティとは、単なる「監視」ではない。「プロダクトの鼓動を可視化し、ユーザーが体験している苦痛を先回りして取り除くこと」だ。

Rollbarでエラーの前後を追い、ユーザーがどこで躓いたかを突き止める。その積み重ねが、バグのない美しいコードベースを育て、エンジニアとしての君の価値を証明する。

さあ、今すぐコードを開き、重要なAPIコールに `Rollbar.telemetry` を仕込め。今日からデバッグの作法を変えるんだ。

タイトルとURLをコピーしました