의 자바스크립트 스니펫은 웹사이트 성능과 페이지 로드에 걸리는 시간에 대한 사용자 인식에 거의 눈에 띄지 않는 영향을 미칩니다. JavaScript는 어쨌든 전송되는 웹페이지 데이터 패킷에 포함되어 있습니다. 또한 웹페이지의 나머지 부분이 실행될 때 즉시 오류 및 이벤트 모니터링을 시작합니다. JavaScript를 로드하는 데 필요한 무시할 만큼의 오버헤드로 인해 상당한 양의 실행 가능한 데이터가 반환됩니다.
전반적인 영향
JavaScript의 오버헤드는 사용자에 대한 영향과 시스템 성능에 대한 영향을 모두 고려합니다.
User perception:
일반적으로 사용자는 200ms 미만의 웹사이트에서는 성능 저하를 감지할 수 없습니다. 브라우저의 JavaScript는 페이지 로드당 집계 시간을 15ms 미만으로 추가합니다. 이는 시간이 지남에 따라 분할되므로 사용자는 JavaScript로 인한 성능 영향을 어느 시점에서도 인식할 수 없습니다.
Webserver and systems:
브라우저 앱 모니터링은 서버가 아닌 사용자의 브라우저에서 발생합니다. 처리 시간은 CPU 소비에 영향을 미치지 않습니다.
또한 모니터링 중인 앱과 웹페이지에 잠재적인 영향을 최소화하기 위해 추가 조치를 취합니다. 예를 들어, "로더" 스크립트는 페이지의 전체 수명 주기 동안 모니터링이 활성화되도록 하기 위해 <HEAD>
에서 동기적으로 로드됩니다. 이 스크립트는 인라인으로 포함되어 있으므로 CDN(콘텐츠 전송 네트워크) 에 대한 또 다른 왕복 네트워크 요청이 필요하지 않습니다. "로더"는 초기 페이지 로드와 함께 제공됩니다.
페이지 수명 주기 후반에 New Relic은 추가 모니터링 스크립트를 비동기식으로 로드합니다. 이러한 스크립트는 사용자가 인지할 수 있는 효과가 없어야 하며 페이지당 15ms 미만의 전체 오버헤드에 포함됩니다.
네트워크 영향
또한 브라우저 모니터링은 데이터를 로컬(클라이언트에서) 집계하고 주기적으로 그리고 페이지 수명 주기 이벤트 load
, unload
, pageshow
및 pagehide
에서 New Relic으로 다시 전송하여 최종 사용자의 네트워크 트래픽을 최소화합니다. . (브라우저 세션의 유휴 기간 동안에는 전송이 필요하지 않을 수 있습니다.)
브라우저 에이전트 스크립트
에이전트는 "로더"의 초기 크기를 줄이고 활성화된 에이전트 기능을 지원하는 데 필요한 JavaScript만 로드하도록 지원하는 여러 스크립트로 구성됩니다. 첫 번째 스크립트인 "로더"는 HTML 문서에 인라인으로 삽입됩니다. 나머지 스크립트는 콘텐츠 전송 네트워크(js-agent.newrelic.com)에서 다운로드합니다. load
페이지 수명 주기 이벤트가 발생할 때. 로드되는 스크립트 수는 사용 중인 에이전트 유형에 따라 다릅니다. 여기에서 브라우저 에이전트 유형에 대해 알아보십시오.
스크립트 | 라이트 | 찬성 | 프로 + 스파 |
---|---|---|---|
인라인 스크립트 크기 | 10.2KB | 15.5KB | 17.5KB |
다운로드한 스크립트 크기 | 15.3KB | 21KB | 25.4KB |
크기는 gzip 압축을 사용하는 축소된 스크립트를 기반으로 합니다.
브라우저 에이전트 수확
데이터 형식 | 라이트 | 찬성 | 프로 + 스파 | 수확 빈도 |
---|---|---|---|---|
페이지뷰 이벤트 | 예 | 예 | 예 |
|
PageViewTiming 이벤트 | 예 | 예 | 예 |
|
JavaScript오류 측정항목 | 아니요 | 예 | 예 |
|
Ajax 메트릭 | 아니요 | 예 | 예 | 타임슬라이스 데이터로 JavaScriptError 메트릭과 함께 전송됩니다. |
AjaxRequest 이벤트 | 아니요 | 예 | 예 |
|
세션 추적 | 아니요 | 예 | 예 | 세션 추적 데이터는 |
세션 재생 | 아니요 | 예 | 예 | 세션 리플레이 이벤트는 다음 중 하나가 발생할 때 수집됩니다.
|
PageAction 이벤트 | 아니요 | 예 | 예 |
|
아니요 | 아니요 | 예 |
|