브라우저 모니터링의 JavaScript 스니펫은 웹사이트 성능과 페이지를 로드하는 데 걸리는 시간에 대한 사용자 인식에 거의 보이지 않는 영향을 줍니다. JavaScript는 어쨌든 전송되는 웹 페이지 데이터 패킷에 포함됩니다. 또한 나머지 웹 페이지가 실행되는 즉시 오류 및 이벤트 모니터링을 시작합니다. JavaScript를 로드하는 데 필요한 무시할 수 있는 오버헤드는 실행 가능한 데이터의 상당한 반환을 초래합니다.
전반적인 영향
JavaScript의 오버헤드는 사용자에 대한 영향과 시스템 성능에 대한 영향을 모두 고려합니다.
- 사용자 인식: 일반적으로 사용자는 200ms 미만의 웹사이트에서 성능 저하를 감지할 수 없습니다. 브라우저의 JavaScript는 페이지 로드당 집계 시간을 15ms 미만으로 추가합니다. 이것은 시간이 지남에 따라 분할되므로 사용자는 JavaScript로 인한 성능 영향을 감지할 수 없습니다.
- 웹 서버 및 시스템: 브라우저 앱 모니터링은 서버가 아닌 사용자의 브라우저에서 발생합니다. 처리 시간은 CPU 소비에 영향을 미치지 않습니다.
또한 모니터링 중인 앱과 웹페이지에 잠재적인 영향을 최소화하기 위해 추가 조치를 취합니다. 예를 들어, "로더" 스크립트는 페이지의 전체 수명 주기 동안 모니터링이 활성화되도록 하기 위해 <HEAD>
에서 동기적으로 로드됩니다. 이 스크립트는 인라인으로 포함되어 있으므로 CDN(콘텐츠 전송 네트워크) 에 대한 또 다른 왕복 네트워크 요청이 필요하지 않습니다. "로더"는 초기 페이지 로드와 함께 제공됩니다.
페이지 수명 주기 후반에 New Relic은 추가 모니터링 스크립트를 비동기식으로 로드합니다. 이 스크립트는 사용자에게 인지할 수 있는 효과가 없어야 하며 페이지당 15ms 미만의 전체 오버헤드에 포함됩니다.
네트워크 영향
브라우저 모니터링은 또한 로컬(클라이언트에서) 데이터를 집계하고 주기적 간격으로 load
unload
또는 데이터가 수집되었을 때 이를 New Relic으로 다시 전송하여 최종 사용자의 네트워크 트래픽을 최소화합니다. (브라우저 세션의 유휴 기간 동안에는 전송이 필요하지 않을 수 있습니다.)
브라우저 에이전트 스크립트
에이전트는 두 개의 스크립트로 구성됩니다. 첫 번째 스크립트는 HTML 문서에 인라인으로 삽입됩니다. 두 번째 스크립트는 창 로드 이벤트가 발생하면 콘텐츠 전달 네트워크(js-agent.newrelic.com)에서 다운로드됩니다. 여기에서 브라우저 에이전트 유형 에 대해 알아보세요.
스크립트 | 라이트 | 찬성 | 프로 + 스파 |
---|---|---|---|
인라인 스크립트 크기 | 8.3KB | 22KB | 27KB |
다운로드한 스크립트 크기 | 27KB | 27KB | 38KB |
브라우저 에이전트 수확
데이터 형식 | 라이트 | 찬성 | 프로 + 스파 | 수확 빈도 |
---|---|---|---|---|
페이지 조회수 측정항목/이벤트 | 예 | 예 | 예 | 전화 한 통. 두 번째 스크립트가 다운로드되면 즉시 첫 번째 수확 호출을 수행하여 페이지 보기 측정항목과 |
| 예 | 예 | 예 | 모든 에이전트 유형은 |
| 아니요 | 예 | 예 | 에이전트가 초기화될 때 첫 번째 호출입니다. 그 후 60초마다. 메트릭 데이터로 전송되는 이러한 호출은 에이전트 자체가 만드는 Ajax 호출을 포함하기 때문에 60초마다 발생합니다. 이 정보는 Ajax 메트릭에도 적용됩니다. |
Ajax 메트릭 | 아니요 | 예 | 예 | JavaScript 오류와 함께 전송됩니다. |
Ajax 이벤트 | 아니요 | 예 | 예 |
|
세션 추적 | 아니요 | 예 | 예 | 에이전트가 초기화될 때 첫 번째 호출입니다. 그 후, 보낼 데이터가 있으면 10초마다. 세션 추적은 가장 많은 데이터를 보내지만 많이 샘플링됩니다. 시간당 약 75개의 페이지 보기만 세션 추적 데이터를 보낼 수 있습니다. 에이전트는 보낼 데이터가 충분하면 10초마다 데이터를 보냅니다. |
| 아니요 | 예 | 예 | 에이전트가 초기화될 때 첫 번째 호출이 이루어집니다. 그 후, 보낼 데이터가 있으면 30초마다. |
| 아니요 | 아니요 | 예 | 상호작용이 완료되면 즉시 전송됩니다. 초기 페이지 로드를 나타내는 최소한 하나의 상호작용이 항상 있습니다. URL이 변경되는 경우에만 추가 상호작용이 수집됩니다(경로 변경을 나타냄). Ajax 이벤트에 대한 수확 빈도 세부 정보도 여기에 적용됩니다. |