문제
Pro + SPA 에이전트를 사용하고 있지만 예상한 모든 route change
브라우저 상호작용이 표시되지 않습니다.
우리는 이것이 실망스러울 수 있다는 것을 알고 있습니다. 우리의 지속적인 목표는 경로 변경을 감지하고 캡처하는 데 사용하는 방법부터 시작하여 SPA 기능 기능을 개선하여 더 간단하고 안정적으로 만드는 것입니다.
해결책
단기 솔루션
모든 경로 변경 사항이 캡처되었는지 확인하려면 SPA interaction() API 를 사용할 수 있습니다. 상호 작용 API를 사용하면 실제로 경로 변경이 감지되지 않는 경우 BrowserInteraction
이벤트( category
속성에서)를 route
변경이 아닌 custom
로 분류합니다.
프레임워크가 라우터 활동을 나타내는 이벤트를 노출하는 경우 이러한 이벤트에서 사용자 지정 계측을 사용할 수 있습니다. 다음은 Angular 라우터와 함께 API를 사용하는 예입니다.
router.events.subscribe((event: Event) => { if (event instanceof NavigationStart) { let i = newrelic.interaction(); i.setName(event.url); i.save(); }});
이 예시에서 router
객체는 Angular 라우터( @angular/router
모듈에서)의 인스턴스입니다. setName
호출은 BrowserInteraction
이벤트의 이름 속성을 새 URL로 설정하고 save
호출은 상호작용이 캡처되도록 합니다. 자신의 응용 프로그램 프레임워크의 요구 사항에 맞게 이를 조정해야 합니다.
프레임워크가 라우팅 이벤트를 제공하지 않는 경우 click
과 같은 원래 상호작용 이벤트의 이벤트 핸들러에 다음 코드를 추가할 수 있습니다.
myButton.addEventListener('click', function() { let i = newrelic.interaction(); i.setName('new URL'); i.save();});
권장사항: 라우터 이벤트나 블록결합 이벤트 핸들러에 대한 접근권한이 없는 경우, 사용자가 블록복합의 결과임을 알고 있는 코드에서 가능한 한 빨리 이를 구현하십시오.
SPA API 사용에 대한 대안은 경로를 PageAction
이벤트로 캡처하는 것입니다. PageAction
이벤트 를 사용하여 모든 맞춤 데이터를 캡처할 수 있습니다. SPA 상호 작용 API 사용이 예상대로 작동하지 않거나 기본 제공 BrowserInteraction
이벤트에서 사용자 정의 계측을 완전히 분리하는 경우에 대비하여 이 옵션을 권장합니다.
이러한 솔루션은 모두 이러한 이벤트가 BrowserInteraction
이벤트 또는 PageAction
이벤트로 캡처되도록 할 수 있습니다. 그러나 올바른 지속 시간 및 관련 AJAX 호출 녹음은 다루지 않습니다.
지원하다
이 해결 방법으로 문제가 해결되지 않으면 지원 티켓을 제출하고 다음 정보를 사용할 수 있도록 하십시오.
- 대부분의 경로 변경 사항이 표시되지만 예상한 특정 경로 변경 사항이 없는 경우 해당 특정 경로에 대한 코드 구현의 차이점을 평가해 보십시오. 지원 팀에 제공할 수 있는 비표준 또는 고유한 경로가 있습니까?
- 관심이 있을 수 있는 프레임워크 및 라이브러리를 문서화합니다. 이것이 새로운 문제인 경우 이러한 상호 작용이 갑자기 추적되지 않는 환경에서 변경된 사항이 있습니까?
- 사용 중인 브라우저 에이전트 버전을 기록해 두십시오. 릴리스가 몇 개 이상 늦는 경우 유사한 문제가 이미 해결되었을 수 있으므로 최신 릴리스로 업데이트하는 것이 좋습니다.
- 이러한 문제 진단의 복잡성으로 인해 팀은 테스트 및 연구를 위해 문제를 보여주는 환경 및 코드에 액세스해야 할 수 있습니다.
원인
브라우저 에이전트는 프레임워크에 구애받지 않고 코딩 모범 사례를 지원하려고 합니다. 그러나 예상한 경로 변경 사항을 수집하지 못하는 경우가 종종 있습니다. 구현은 가장 일반적인 비동기 브라우저 API 계측을 기반으로 합니다. 웹 애플리케이션이 일부 비동기식 API를 사용하거나 우리가 계측하지 않는 사용자 지정 또는 타사 코드를 사용하는 경우가 있으며 이로 인해 경로 변경이 부정확하거나 누락될 수 있습니다.