beforeSend (데이터 가로채기 및 데이터 수정)¶
RUM SDK는 각 데이터를 전송하기 전에 beforeSend 메서드를 실행합니다. 이 메서드의 구현을 사용자 정의하여 다음 작업을 수행할 수 있습니다.
- 일부 데이터 수정
- 데이터 전송 차단
beforeSend는 두 개의 매개변수를 제공합니다:
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 | 페이지 주소 |
view.referrer |
string | 페이지 레퍼러 |
resource.url |
string | 리소스 주소 |
error.message |
string | 오류 메시지 |
error.resource.url |
string | 오류 리소스 주소 |
context |
string | 전역 사용자 정의 콘텐츠 (예: addAction, addError를 통해 추가된 콘텐츠) |
데이터 전송 차단¶
beforeSend 메서드에서 true 또는 false를 반환하여 불필요한 데이터를 차단할 수 있습니다.
true는 이 데이터를 보고해야 함을 의미합니다false는 이 데이터를 보고하지 않음을 의미합니다