• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

브라우저 SPA 모니터링 2.1

중요

우리는 기본적으로 기존 브라우저 SPA 환경을 대체하기 위해 기능 플래그를 사용하여 단계적으로 이 기능을 출시하고 있습니다. 어떤 새로운 SPA 버전을 받을지 선택할 수 있는 옵션은 없습니다. 항상 최신 버전이 자동으로 제공됩니다.

스파 2.1

장기 작업 고려 사항은 이전의 단일 페이지 애플리케이션(SPA)에서 사용되었던 광범위한 콜백 추적을 대체하기 위해 도입되었습니다. 또한 BrowserInteraction과 관련된 AjaxRequest 이벤트의 jsDuration, timeToSettletimeToLastCallbackEnd 속성을 백필하는 데에도 사용됩니다.

에이전트의 nrWrapper 에 의해 래핑된 특정 네이티브 브라우저 객체의 경우 콜백 시간이 지정됩니다. 지속 시간이 50ms를 넘는 경우(긴 작업) BrowserInteraction을 확장할 수 있습니다. 2.0에서는 이 기능이 상호작용이 자연스럽게 발생하는 시점을 판별하기 위해 소프트 탐색 휴리스틱을 따랐습니다. 이제 상호작용은 추가적으로 대기하고, 5초 동안 긴 작업이 없는 기간이 될 때까지 지속 시간을 연장하며, 종료 시간은 이에 따라 재조정됩니다.

이전 버전 2.0에서는 상호작용과 관련된 AjaxRequest가 콜백 타이밍을 보고하거나 추적하지 않아 위에 언급된 세 가지 속성에 대한 값이 무효화되었습니다. 현재 업데이트에서는 장기 작업을 유발하는 이벤트 리스너를 포함하는 인프라의 일부인 XMLHttpRequest (하지만 fetch 은 아님)의 jsDuration, timeToSettletimeToLastCallbackEnd 속성이 장기 작업의 타이밍을 반영하도록 업데이트됩니다.

스파 2.0

브라우저 단일 페이지 애플리케이션(SPA)을 모니터링하는 고객을 위해, 저희는 다음과 같은 수많은 문제점을 해결하기 위해 SPA 모니터링 기능을 전면 개편했다는 소식을 전해드리게 되어 기쁩니다.

  • 사용할 수 없는 최신 버전: 타사 라이브러리와의 잦은 충돌과 신뢰할 수 없는 상호작용 캡처로 인해 기존 에이전트가 어려움을 겪었으며, 이로 인해 최신 버전을 사용할 수 없게 되는 경우가 많았습니다.
  • 패치워크 솔루션: SPA 패치로 한 가지 문제를 해결하면 또 다른 문제가 발생하는 경우가 많아 수정과 후퇴가 짜증나는 악순환이 발생합니다.
  • 타사 라이브러리 충돌: 전역 래핑, 특히 Promises 주변의 래핑은 다른 라이브러리와의 충돌로 인해 코드 기능을 방해하는 경우가 많습니다.
  • 성능 병목 현상, 병목지점: 타이머, RAF 및 Promise 체인을 사용하는 코드와의 충돌로 인해 속도 저하부터 정지까지 성능 문제가 발생했습니다.

업데이트된 SPA 모니터링 환경은 이러한 문제를 제거하고 크게 향상된 모니터링 환경을 제공하도록 설계되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 래핑되지 않은 실행: 핵심 글로벌을 래핑하지 않음으로써 새로운 SPA 환경은 애플리케이션의 실행 속도를 향상시킵니다.

  • 소프트 탐색 경험에 맞춰 조정: 새로운 환경에서는 Google Chrome의 소프트 탐색 기능을 도입하여 더 정확한 제스처 추적과 사용자 동작과의 향상된 정렬을 제공합니다.

  • 간소화된 전략 결정: 전략은 이제 UI 이벤트(클릭/키다운/제출 -> 경로 변경 -> DOM 수정)로 정의되어 더 명확하고 효율적인 캡처 접근 방식을 제공합니다.

    • 잠재적인 이벤트 연결해제: 이전에 연결되었던 AjaxRequestJavascriptError 이벤트가 UI중심의 복합복합에 초점을 맞춰서 DB2 이벤트의 연결이 해제되는 것을 관찰할 수 있습니다.
  • 주요 지표에 초점 맞추기: 보고된 데이터는 크게 변경되지 않았지만, 새로운 환경에서는 더 이상 전략 내의 JavaScript 실행이나 기간을 추적하지 않아 보고된 정보가 간소화되었습니다.

  • 상호작용 시간 단축: 특히 경로 변경 시 상호작용 시간이 상당히 단축될 것으로 예상됩니다. 초기 페이지 로드가 약간 줄어들 것입니다.

  • API 업데이트:

    • .interaction() 함수에 새로운 선택적 인수 .interaction({waitForEnd: true}) 이 추가되었습니다. 이를 통해 사용자 상호작용 종료 시간을 사용자 지정할 수 있습니다. 기존 .interaction() 기능은 변경되지 않습니다.
    • 더 이상 사용되지 않는 API: createTracer 함수: createTracer 함수는 계속 작동하지만 더 이상 상속을 열어 두지 않거나 시간을 낭비하므로 더 이상 사용되지 않습니다. 참고: 새로운 SPA 환경에서 createTracer 계속 사용하면 BrowserTiming 이벤트가 생성되지 않습니다.

새로운 브라우저 SPA 모니터링 환경을 사용해 보세요

요구 사항 검토

이 기능은 당사의 표준 브라우저 지원 설명서 에 따라 테스트되었으며 지원됩니다.

기능 플래그 추가

에이전트가 APM 방식으로 설치된 경우 당사 지원팀에 문의하시면 귀하 계정에서 해당 기능 플래그를 활성화해 드리겠습니다.

에이전트가 NPM 또는 UI 기반 복사/붙여넣기 방식으로 설치된 경우 브라우저 에이전트 코드에 다음 기능 플래그를 추가합니다.

  1. 웹페이지 HTML에서 뉴렐릭 브라우저 에이전트 코드를 찾으세요.

  2. init 설정 개체에 soft_nav 기능 플래그를 추가합니다. 다음은 그 예입니다.

    <script type="text/javascript"> ;window.NREUM||(NREUM={});init={, feature_flags: ['soft_nav'] }:
  3. 앱을 배포합니다.

    이 기능을 비활성화해야 합니까? 간단히 기능 플래그를 제거하세요.

데이터가 뉴렐릭으로 전송되고 있는지 확인하세요

먼저 상호작용이 경험적 원칙을 따르는지 확인하세요: 클릭/키누름/제출 -> 경로 변경 -> DOM 수정.

다음으로, 브라우저의 개발자 도구에서 네트워크 탭을 확인하세요. /events/1/ 로 가는 요청을 필터링합니다. 상호작용이 캡처되고 전송되고 있음을 나타내는 bel.7;1 로 시작하는 페이로드가 있어야 합니다.

마지막으로, 상호작용 데이터는 브라우저 엔터티 대시보드와 차트로 계속 유입되어야 합니다.

알려진 문제

  • API 사용:

    • newrelic.interaction().end() 해결 방법: 이전에 이 방법을 사용하여 보조금 마감 문제를 해결한 경우, 이제는 불필요한 추가 보조금이 표시될 수 있습니다. 최적의 결과를 얻으려면 사용량을 검토하세요.
    • createTracer() 기능 변경: createTracer() 더 이상 상호작용을 열어두거나 콜백 시간을 측정하지 않습니다. 이를 통해 JavaScript 코드를 추적하는 경우 다른 방법을 살펴보세요.
  • AjaxRequest 협회:

    • 키워드 탐색에서 제외될 가능성: 이전 키워드 탐색이 끝나갈 무렵 시작된 Ajax 요청은 이제 키워드 탐색 기간이 단축되어 제외될 수 있습니다.
    • 수동 확장: 특정 클래스에 대한 속성이 되는 요청이 필요한 경우, .interaction() 함수에 추가된 인수 .interaction({waitForEnd: true}) 를 사용하여 요청이 실행될 때까지 클래스를 열어 둔 다음, .end() 클래스를 실행합니다. 이렇게 하면 요청이 상호작용과 연관됩니다.

피드백을 남겨주세요

버그, 기능 요청, 성능 개선 사항을 보고하려면 GitHub 문제를 제출하세요 .

기타 피드백이 있으시면 [SoftNav]: 로 시작하는 제목으로 browser-agent@newrelic.com 에게 이메일을 보내서 생각과 제안을 공유해 주세요.

Copyright © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.