• 로그인지금 시작하세요

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

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

문제 신고

비동기 애플리케이션을 위한 Java 에이전트 API

New Relic for Java (에이전트 버전 3.37 이상)에는 비동기 활동을 계측하는 API가 포함되어 있습니다. 지원되는 프레임워크 의 경우 에이전트는 일반적으로 비동기 작업을 자동으로 계측합니다. 그러나 비동기 API는 세부 정보를 추가하는 데 여전히 유용할 수 있습니다. 이 문서는 앱을 계측하기 위해 토큰과 세그먼트를 사용하는 예를 제공합니다.

비동기 추적 도구: 토큰 및 세그먼트

Java 에이전트 API는 비동기 활동을 추적하는 두 가지 방법을 제공합니다.

  • 토큰 : 비동기 작업 단위를 특정 트랜잭션에 연결하기 위해 스레드 간에 토큰이 전달됩니다. 그들은 어떤 타이밍도 직접 수행하지 않습니다.
  • 세그먼트 : 세그먼트는 비동기 애플리케이션 코드의 임의 부분을 측정하는 데 사용되며 반드시 메서드나 스레드와 연관되지는 않습니다. 세그먼트는 일반적으로 콜백 메커니즘에 의해 완료된 외부 호출을 추적하는 데 사용됩니다.

토큰: 비동기 스레드 연결

토큰을 사용하여 별도의 스레드에 있는 임의의 작업 단위를 연결합니다. 이 섹션에서는 토큰 관련 호출을 함께 사용하여 비동기 작업을 계측하는 방법을 설명합니다. 클래스 및 메소드에 대한 자세한 정보는 Javadoc을 참조하십시오.

토큰을 사용하려면 먼저 토큰을 만든 다음 다른 호출을 원래 트랜잭션에 연결해야 합니다. 다른 호출 내에서 가능한 한 빨리 토큰을 연결해야 합니다. 토큰을 즉시 연결하지 않으면 연결하려는 호출 아래에 @Trace 이 포함된 메서드가 손실될 위험이 있습니다. 원래 호출에서 토큰을 만료시킬 수도 있습니다. 그러면 Java 에이전트가 New Relic UI에서 작업을 연결합니다. 다음 예에서는 토큰 관련 호출을 함께 사용하는 방법을 보여줍니다.

기본적으로 트랜잭션은 최대 3000개의 토큰을 생성할 수 있으며 각 토큰의 기본 제한 시간은 180초입니다. 전자 한도는 token_limit 구성 옵션으로 변경하고 후자는 token_timeout 구성 옵션으로 변경할 수 있습니다. token_limit 를 초과하는 트랜잭션에 대한 추적에는 token_clamp 속성이 포함됩니다. 구성 옵션을 늘리면 에이전트 메모리 사용량이 늘어날 수 있습니다.

세그먼트: 임의의 비동기 활동 시간

세그먼트는 메서드나 스레드와 반드시 연관되지 않은 비동기 애플리케이션 코드의 임의 부분을 측정하는 데 사용됩니다. 이것은 외부 서비스에 대한 연결 시간에 가장 일반적으로 사용됩니다. 다음을 수행하려는 경우 세그먼트를 사용합니다.

  • 콜백을 통해 완료되는 타임 코드
  • 여러 메서드에 걸쳐 있는 비동기식 호출 시간
  • 작업이 생성된 시점과 실행된 시점 사이의 시간 측정(예: 스레드 풀에서)

기본적으로 에이전트는 지정된 트랜잭션 동안 최대 1000개의 세그먼트를 추적할 수 있습니다. segment_timeout 구성 옵션을 사용하여 이 제한을 변경할 수 있습니다. 이 제한을 초과하는 트랜잭션 추적에는 segment_clamp 속성이 포함됩니다. 이 제한을 늘리면 에이전트 메모리 사용량이 늘어날 수 있습니다.

Copyright © 2022 New Relic Inc.

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