beforeSend (データのインターセプトと変更)¶
RUM SDK は、各データを送信する前に beforeSend メソッドを実行します。このメソッドの実装をカスタマイズすることで、次の操作を実行できます。
- データの一部を変更する
- データの送信をブロックする
beforeSend には 2 つのパラメータがあります。
event は SDK が生成する各種指標データオブジェクトです。context の関連情報は以下のとおりです。
| イベントタイプ | コンテキスト |
|---|---|
| View | Location |
| Action | Event |
| Resource (XHR) | XMLHttpRequest, PerformanceResourceTiming |
| Resource (Fetch) | Reqeust, Response, PerformanceResourceTiming |
| Resource (Other) | PerformanceResourceTiming |
| Error | Error |
| Long Task | PerformanceLongTaskTiming |
データの一部を変更する¶
window.DATAFLUX_RUM &&
window.DATAFLUX_RUM.init({
...,
beforeSend: (event, context) => {
if (event.type === 'resource' && event.resource.type === 'fetch') {
// 元のデータにリクエストのレスポンスヘッダー情報を追加する
event.context = {...event.context, responseHeaders: context.response.headers}
}
},
...
});
注意
beforeSend で変更できるのは、SDK が許可するデータフィールドのみです。許可されていないフィールドの変更は無視されます。
SDK が変更を許可するフィールドは次のとおりです。
| 属性 | タイプ | 説明 |
|---|---|---|
view.url |
string | ページの URL |
view.referrer |
string | ページの参照元 |
resource.url |
string | リソースの URL |
error.message |
string | エラーメッセージ |
error.resource.url |
string | エラーリソースの URL |
context |
string | グローバルカスタムコンテンツ(例: addAction、addError で追加した内容) |
データ送信をブロックする¶
beforeSend メソッドで true または false を返すことで、不要なデータをブロックできます。
true: このデータを送信するfalse: このデータを送信しない