URL, 상태 코드, 기간과 같은 메타데이터만 있는 경우 AJAX 실패를 진단하기 어렵습니다. GraphQL과 같은 최신 프레임워크는 이를 더욱 어렵게 만듭니다 ― 요청이 성공한 것처럼 보여도 응답 본문 안에 오류가 숨어 있을 수 있습니다.
당사의 AJAX UI는 브라우저에서 외부 HTTP 또는 HTTPS 엔드포인트로의 AJAX requests에 대한 완전한 가시성을 제공합니다. 시간이 많이 걸리거나 실패하는 호출을 식별하고, 전체 요청 및 응답 페이로드를 캡처하고, 전체 스택에서 문제를 트레이스할 수 있습니다. 데스크톱 브라우저, 모바일 디바이스 및 태블릿을 포함한 디바이스 유형별로 문제를 검토할 수도 있습니다.
문제 해결 사항
다음은 앱의 성능 문제를 식별하기 위한 몇 가지 문제 해결 팁입니다.
AJAX 호출 문제 해결
예
전체 요청의 문제
문제가 어디에 있는지 확실하지 않거나 요청을 처음부터 끝까지 추적하려면 AJAX UI 에서 처리 추적 링크를 클릭하세요.
타이밍 문제
총 시간 백분율 , 분당 처리량 요청(rpm) 및 요청당 평균 데이터 전송 속도는 타이밍 문제를 식별하는 데 도움이 될 수 있습니다.
AJAX 요약 페이지의 Average data transfer per request 차트에서 큰 폭의 급증을 찾아보세요.
요청 URL, GraphQL 작업 이름 및 기타 여러 필드별로 AJAX 성능을 평가하려면 Group By 드롭다운을 사용하여 데이터 추세를 분석하세요.
개별 통화의 AJAX performance 탭에서 높은 콜백 시간 값과 데이터 전송 속도 간의 상관 관계를 찾습니다.
엔드포인트 문제
이상값 엔드포인트를 찾아 해당 엔드포인트에서 이루어진 개별 요청을 조사합니다.
AJAX 요약 페이지의 Status codes 차트는 호출의 반환 동작에 대한 정보를 제공합니다. 200 범위를 벗어나는 상태 코드가 많이 표시되면 AJAX 엔드포인트에 문제가 있음을 나타낼 수 있습니다.
특정 웹페이지 위치 문제
로드되는 페이지의 컨텍스트 내에서 잠재적인 AJAX 문제를 조사합니다. AJAX 프로세서를 선택한 다음 Session traces with AJAX 테이블에서 트레이스를 선택합니다.
AJAX 요청에 집중했다면 이제 조사할 차례입니다. 다음 전략 중 일부를 시도해 보십시오:
요약 페이지는 AJAX 호출 문제를 해결하는 데 도움이 되는 여러 차트를 제공합니다.
AJAX 요약 페이지
코멘트
그룹 및 필터
UI에서 제공되는 Sort by 옵션 중 하나를 사용합니다. 2분 이상 걸리는 모든 AJAX requests는 자동으로 필터링됩니다.
데이터를 더 유연하게 보려면 Group by 옵션을 사용하여 requestUrl 또는 groupedRequestUrl 선택하세요.
끝점
Throughput 차트는 처리량이 가장 높은 5개의 엔드포인트를 보여줍니다. 호출에 5개 이상의 엔드포인트가 있는 경우 차트에 Other 로 통합됩니다.
New Relic의 부름
앱에 대한 AJAX 호출을 모니터링하는 자체 브라우저를 볼 수 있습니다. 브라우저 세션 중에 모든 활동이 캡처되기 때문에 이는 정상입니다.
브라우저 데이터 누락
AJAX 타이밍 세부 정보는 iOS 브라우저용 IE 7, IE 8 또는 Chrome에서 사용할 수 없습니다. 다른 브라우저에서 예상한 데이터가 표시되지 않으면 AJAX 문제 해결 절차 를 따르세요.
AJAX 요약 페이지에서 특정 통화를 선택한 후 AJAX performance 링크를 통해 자세한 정보를 살펴볼 수 있습니다. 여기에는 세션 트레이스 세부정보 에 대한 직접 링크가 포함됩니다.
여기에서 탭을 선택하여 페이지 보기별로 성능 데이터를 얻을 수도 있습니다. (앱 서버 요청이 브라우저 PageView 트랜잭션보다 훨씬 많은 경우 이는 백엔드에 대한 일부 요청이 AJAX를 통해 이루어지기 때문입니다. 자세한 내용은 문제 해결 절차를참조하십시오.)
one.newrelic.com > All capabilities > Browser > (select an app) > AJAX > (select an AJAX call): 이 예에서는 특정 AJAX 호출에 대한 성능 세부 정보를 보여줍니다. 페이지 조회수별로 성능 세부 정보를 볼 수도 있습니다.
Average response time 차트의 AJAX 엔드포인트는 4개 또는 2개의 기간으로 표시됩니다. 이는 스티치 추적 헤더가 있는지 여부에 따라 다릅니다.
4개의 기간(Application time, Queue time, Network time 및 Callback time): 이러한 AJAX 호출은 스냅 추적 헤더를 제공하는 에이전트의 앱 모니터에 대해 수행됩니다.
두 기간(Response time 및 Callback time): 이러한 AJAX 호출은 APM 에이전트에 의한 모니터링이 아니거나 로그 추적 헤더를 제공하지 않는 에이전트에 의한 모니터링인 앱에 대해 수행됩니다.
URL, 상태 코드 및 기간과 같은 메타데이터가 실패를 진단하기에 충분하지 않은 경우, 페이로드 캡처 옵션이 전체 상황을 제공합니다. 각 AjaxRequest 이벤트에 4개의 새로운 속성을 추가하며, 각각 4KB로 잘리고 NRQL에서 쿼리할 수 있습니다. 또한 View payload 버튼을 사용하여 AJAX 세부 정보 UI에서 페이로드를 확인할 수 있습니다:
one.newrelic.com > All capabilities > Browser > (select an app) > AJAX > (select an AJAX call): 이 예는 특정 AJAX 호출에 대한 요청 세부 정보를 보여줍니다. 페이지 조회수별로 요청 세부 정보를 볼 수도 있습니다.
URL이 거부 목록에 있는 경우 이벤트는 완전히 삭제되며 메타데이터나 페이로드는 캡처되지 않습니다.
URL이 거부 목록에 없는 경우, 페이로드 캡처 설정에 따라 에이전트는 request 및 응답 페이로드를 캡처하고 데이터를 뉴렐릭으로 보내기 전에 난독화 룰을 적용합니다.
PII 보호
브라우저 에이전트는 수집 전에 캡처된 페이로드에서 신용 카드 번호, 사회 보장 번호, password 및 token과 같은 일반적인 키를 포함하여 일반적인 민감한 데이터 패턴을 자동으로 난독화합니다. 비즈니스별 민감한 데이터를 마스크하도록 사용자 지정 정규식 규칙을 구성할 수도 있습니다. 자세한 내용은 브라우저 데이터 난독화를 참조하십시오.