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

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

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

문제 신고

Java 사용자 정의 계측 문제 해결

다음은 New Relic의 Java 에이전트를 사용한 사용자 지정 계측에 대한 몇 가지 문제 해결 팁입니다.

UI 옵션

New Relic의 UI를 사용하여 Custom Instrumentation Editor로 계측 규칙을 정의 하거나 Java 앱의 설정 을 통해 XML 파일을 편집할 수 있습니다.

Java 앱만 해당: New Relic UI에서 직접 XML 파일을 편집 하려면one.newrelic.com > All capabilities > APM & services > (Java 앱 선택) > Settings > Live Instrumentation 으로 이동합니다. 여기에서 다음을 수행할 수 있습니다.

  • 샘플 XML 파일을 다운로드합니다.
  • 기존 XML 파일 편집을 선택합니다.
  • 계측 기록을 검색합니다.

스레드 프로파일러의 중첩 트랜잭션

사용자 정의 계측은 중첩 트랜잭션에 유용합니다. 스레드 프로파일러에서 옆에 회색 아이콘이 있는 메서드는 계측할 수 없습니다. 그렇게 하면 허용할 수 없는 오버헤드가 발생하기 때문입니다. 그러나 이러한 방법의 자식은 일반적으로 계측될 수 있습니다.

one.newrelic.com > All capabilities > APM & services > (앱 선택) > Events > Thread profiler: 회색 아이콘은 계측할 수 없음을 의미합니다. 흰색 아이콘은 계측되지 않았지만 계측할 수 있음을 의미합니다. 파란색 아이콘은 현재 계측 중임을 의미합니다.

계측할 수 있는 메서드를 식별하려면 적절한 메서드를 찾을 때까지 스레드 프로필 트리를 확장합니다.

  1. one.newrelic.com > All capabilities > APM & services > (앱 선택) > Events > Thread profiler 로 이동합니다.
  2. 적절한 방법을 찾을 때까지 스레드 프로필 트리를 확장합니다.
  3. 표준 절차 에 따라 맞춤형 계측을 정의하고 배포합니다.

클래스 및 메서드

Java 에이전트에 대한 사용자 정의 계측 문제를 해결할 때 newrelic.yml 구성 파일의 pointcut 정보를 로그 파일 의 확인 메시지와 비교하십시오. 클래스와 메서드가 일치하는지 확인합니다.

다음은 예입니다.

# This is a pointcut example in your newrelic.yml config file:
<pointcut transactionStartPoint="true">
<className>com.example.class.name</className>
<method>
<name>exampleMethod</name>
</method>
</pointcut>

이것이 올바르게 계측되면 로그 파일에 다음과 유사한 메시지가 표시될 수 있습니다.

# This is a confirmation example in your log file:
Oct 1, 2015 10:58:52 -0700 [9805 1] com.newrelic FINER: Instrumenting com/example/class/name

로그 파일 클래스 및 메소드가 사용자 정의 계측 값과 일치하지 않으면 필요에 따라 검토하고 조정하십시오. (사용자 정의 계측 로드의 성공 또는 실패 여부에 대한 확인이 로그 파일에 항상 표시되는 것은 아닙니다.)

XML에서 별도의 트랜잭션

다음은 여러 method 값이 있는 포인트컷의 예입니다. nameTransaction 이 XML에 추가되어 메서드를 APM 트랜잭션 분석 테이블 의 세그먼트가 아닌 별도의 트랜잭션으로 분류합니다.

# This is a pointcut example to identify a specific transaction with XML custom instrumentation:
<pointcut>
<nameTransaction/>
<className>com.examplename.client.actionflow.impl.exampleActionFlow</className>
<method>
<name>requestNAME</name>
<parameters>
<type>boolean</type>
</parameters>
</method>
</pointcut>

비동기 트랜잭션

애플리케이션이 비동기 프로세스를 사용하는 경우 Java API를 사용하여 비동기 작업자 활동을 상위 트랜잭션에 연결할 수 있습니다. 기본적으로 이러한 트랜잭션은 연결되어 있지 않습니다. 자세한 정보는 Java 비동기 계측 을 참조하십시오.

Copyright © 2024 New Relic Inc.

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