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

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

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

문제 신고

Java 에이전트 API 사용 안내

뉴렐릭 배터리 에이전트 API 사용하면 배터리 에이전트 의 기능을 제어, 맞춤설정, 확장할 수 있습니다. 이 API는 다음으로 구성됩니다.

  • com.newrelic.api.agent.NewRelic 클래스의 정적 메서드
  • 사용자 정의 계측 구현을 위한 @Trace 주석
  • 추가 기능을 제공하는 API 객체의 계층

이 API를 사용하여 Java 앱의 사용자 정의 계측 을 설정하고 보다 심층적인 데이터를 수집하십시오. 이 API에 대한 자세한 내용은 GitHub의 전체 Javadoc을 참조하세요.

사용자 정의 계측을 설정하는 또 다른 방법은 XML 계측 을 사용하는 것입니다. XML 옵션은 더 간단하고 앱 코드를 수정할 필요가 없지만 Java 에이전트 API의 완전한 기능이 부족합니다.

중요

API를 사용할 때 최상의 결과를 얻으려면 최신 Java 에이전트 릴리스 가 있는지 확인하십시오. 예제에 사용된 여러 API에는 Java 에이전트 6.4.0 이상이 필요합니다.

사용 가능한 모든 New Relic API는 API 소개를 참조하세요.

API 사용

API에 액세스하려면 빌드 도구를 통해 Maven Central에서 다운로드하세요.

다음은 ${agent.version} 에이전트 버전으로 바꿀 수 있는 Gradle의 예입니다.

implementation 'com.newrelic.agent.java:newrelic-api:${agent.version}'

에이전트를 실행하지 않고도 API를 호출할 수 있지만 에이전트가 애플리케이션을 로드할 때까지 메서드는 작동하지 않습니다.

업무

애플리케이션에서 Transactions 을(를) 계측하려면 다음 API를 사용하십시오.

원하는 경우...

이것을 사용

New Relic이 자동으로 생성하지 않을 때 Transaction 생성

보고할 작업을 포함하는 메서드에 대한 @Trace(dispatcher = true) . 이 주석이 기존 트랜잭션 컨텍스트 내의 메소드에 사용되면 새 트랜잭션이 시작되지 않고 기존 트랜잭션에 메소드가 포함됩니다.

New Relic이 자동으로 추적하지 않는 메서드의 기간을 캡처합니다.

시간을 측정하려는 방법에 대한 @Trace() .

현재의 이름을 설정 Transaction

NewRelic.setTransactionName(...)

현재 Transaction 의 응답 시간에 대한 타이머를 시작하고 생성한 Transaction 이(가) Other 트랜잭션이 아닌 Web 트랜잭션으로 보고되도록 합니다.

NewRelic.setRequestAndReponse(...)

Transactions사용자 정의 속성 을 추가하고 TransactionEvents

NewRelic.addCustomParameter(...)

enduser.id 에이전트 속성을 설정하여 Transactions사용자 추적을 추가합니다.

NewRelic.setUserId()

Transaction 이(가) New Relic에 보고되는 것을 방지

NewRelic.ignoreTransaction()

앱의 Apdex 점수를 계산할 때 Transaction 제외

NewRelic.ignoreApdex()

관련 로그 보기

애플리케이션의 오류 및 추적 컨텍스트 내에서 직접 로그를 보려면 다음 API 호출을 사용하여 로그에 주석을 추가하십시오.

로그 데이터와 다른 원격 측정 데이터의 상관 관계에 대한 자세한 내용은 컨텍스트 문서의 로그를 참조하세요.

계기 비동기 작업

자세한 정보 는 비동기 애플리케이션용 Java 에이전트 API를 참조하십시오.

원하는 경우...

이것을 사용

기존 Transaction 에 연결된 경우 비동기 메서드를 추적합니다...

@Trace(async = true)

현재 스레드의 Token 과 연결된 Transaction 을(를) 연결합니다...

Token.link() 또는 Token.linkAndExpire()

현재 Transaction 과(와) 연결된 Token 만료 ...

Token.expire()

Segment 타이밍을 중지하고 상위 항목의 일부로 보고하도록 합니다. Transaction

Segment.end()

Segment 타이밍을 중지하고 상위 항목의 일부로 보고 하지 않도록 합니다. Transaction

Segment.ignore()

분산 추적 API 사용

이러한 API 를 사용하려면 분산 추적 이 필요합니다. 모든 분산 추적 구성 옵션은 Java 에이전트 구성 을 참조하십시오.

분산 추적을 사용하면 분산 시스템을 통해 이동하는 요청의 경로를 볼 수 있습니다. 아래 호출을 사용하여 분산 추적을 구현하는 방법에 대한 일반적인 지침은 분산 추적 API 사용 을 참조하세요. 작동 중인 이러한 API를 보려면 Kafka와 함께 추적 API를 배포하는 Java 에이전트 사용 을 참조하십시오.

중요

에이전트 버전 6.4.0 에서는 6.1.0에 도입된 addCustomAttribute() 을 제외하고 다음과 같은 분산 추적 API가 도입되었습니다. 더 이상 사용되지 않는 API 대신 이러한 API를 사용하는 것이 좋습니다.

원하는 경우...

이것을 사용

수신 또는 발신 메시지의 유형별 헤더에 대해 알아봅니다.

Headers

제공된 Headers 구현의 경우 ConcurrentHashMapHeaders 을 사용합니다.

Kafka를 사용한 DT API 사용 에서 W3C 추적 컨텍스트 헤더 구현의 예를 참조하십시오.

분산 추적 헤더를 만들고 Headers 데이터 구조에 삽입합니다. 이 API는 에이전트가 newrelic 헤더를 제외하도록 명시적으로 구성 되지 않는 한 newrelic 및 W3C 추적 컨텍스트 헤더( traceparenttracestate )를 모두 삽입합니다.

현재 트랜잭션 및 기타 API 클래스에 대한 참조 가져오기에 대한 자세한 내용은 참조 가져오기 를 참조 하십시오.

호출 서비스에서 보낸 분산 추적 헤더를 수락하고 분산 추적에서 이러한 서비스를 함께 연결합니다.

현재 트랜잭션 및 기타 API 클래스에 대한 참조 가져오기에 대한 자세한 내용은 참조 가져오기 를 참조 하십시오.

분산 추적 헤더를 수락할 때 전송 유형을 정의하기 위한 열거형 상수를 제공하는 유틸리티 클래스를 이해합니다.

분산 추적에서 SpanEvents맞춤 속성 추가

NewRelic.getAgent().getTracedMethod().addCustomAttribute(...)

주의

에이전트 버전 6.4.0 에서는 다음 분산 추적 API가 더 이상 사용되지 않으며 위 표의 API로 대체되었습니다. 에이전트를 업그레이드하고 더 이상 사용되지 않는 API 대신 새 API를 사용하는 것이 좋습니다.

원하는 경우...

이것을 사용

호출된 서비스에 보낼 페이로드를 만듭니다.

현재 트랜잭션 및 기타 API 클래스에 대한 참조 가져오기에 대한 자세한 내용은 참조 가져오기 를 참조 하십시오.

주의

에이전트 6.4.0부터 더 이상 사용되지 않는 API

첫 번째 서비스에서 보낸 페이로드를 수락합니다. 이것은 추적에서 이러한 서비스를 함께 연결합니다.

현재 트랜잭션 및 기타 API 클래스에 대한 참조 가져오기에 대한 자세한 내용은 참조 가져오기 를 참조 하십시오.

주의

에이전트 6.4.0부터 더 이상 사용되지 않는 API

서비스를 연결하는 데 사용되는 페이로드입니다. text() 호출은 페이로드의 JSON 문자열 표현을 반환합니다.

DistributedTracePayload.text()

주의

에이전트 6.4.0부터 더 이상 사용되지 않는 API

서비스를 연결하는 데 사용되는 페이로드입니다. httpSafe() 호출은 페이로드의 base64로 인코딩된 JSON 문자열 표현을 반환합니다.

DistributedTracePayload.httpSafe()

주의

에이전트 6.4.0부터 더 이상 사용되지 않는 API

CAT(교차 애플리케이션 추적) API 사용

중요

교차 애플리케이션 추적은 에이전트 버전 7.4.0부터 더 이상 사용되지 않으며 향후 에이전트 버전에서 제거될 예정입니다.

교차 애플리케이션 추적을 사용하는 대신 분산 추적 기능을 사용하는 것이 좋습니다. 분산 추적은 애플리케이션 간 추적 기능을 개선한 것으로 대규모 분산 시스템에 권장됩니다.

외부 호출을 추적하고 애플리케이션 간 추적 을 추가하려면 다음 API를 사용하세요.

원하는 경우...

이것을 사용

독점 RPC 전송과 같이 New Relic이 기본적으로 지원하지 않는 사용자 지정 전송 채널을 통한 추적

또한 Transaction사용하여 New Relic API 클래스에 대한 참조를 얻는 방법에 대한 이 문서의 정보를 참조하세요.

메트릭 이름 또는 롤업 메트릭 이름을 보거나 변경합니다. TracedMethod

( OtherTransaction/all 과 같은 롤업 측정항목 이름은 특정 트랜잭션으로 범위가 지정되지 않습니다. 모든 백그라운드 트랜잭션을 나타냅니다.)

또한 TracedMethod사용하여 New Relic API 클래스에 대한 참조를 얻는 방법에 대한 이 문서의 정보를 참조하세요.

Java 에이전트 API의 @Trace 주석 을 사용하여 추적 중인 외부 HTTP 서비스, 데이터베이스 서버, 메시지 대기열 또는 기타 외부 리소스에 대한 호출을 보고합니다.

TracedMethod.reportAsExternal(...) ExternalParameters 빌더를 사용하여 생성된 인수를 전달합니다.

또한 TracedMethod사용하여 New Relic API 클래스에 대한 참조를 얻는 방법에 대한 이 문서의 정보를 참조하세요.

New Relic에 의해 계측되는 외부 HTTP 또는 JMS 서비스와 통신할 때 교차 애플리케이션 추적 을 활성화하고 추가합니다.

TracedMethod.addOutboundRequestHeaders(...) 와 함께 TracedMethod.reportAsExternal(...)

또한 TracedMethod사용하여 New Relic API 클래스에 대한 참조를 얻는 방법에 대한 이 문서의 정보를 참조하세요.

자동으로 지원되지 않는 애플리케이션 서버 또는 디스패처에 대한 타이밍 추가

Transaction.setRequest(...), Transaction.setResponse(...), 또는 NewRelic.setRequestAndResponse(...) Transaction.markResponseSent()

또한 Transaction사용하여 New Relic API 클래스에 대한 참조를 얻는 방법에 대한 이 문서의 정보를 참조하세요.

New Relic API 클래스에 대한 참조 얻기

다른 작업에는 New Relic Agent 객체가 필요합니다. Agent 객체는 다음 기능을 제공하는 여러 객체를 노출합니다.

원하는 경우...

이것을 사용

현재에 대한 참조 가져오기 Transaction

NewRelic.getAgent().getTransaction()

비동기 작업을 연결하려면 Token 가져오기

시작하고 참조를 얻으십시오. Segment

현재 추적 중인 메서드에 대한 참조 가져오기

NewRelic.getAgent().getTracedMethod()

Agent 로거에 대한 참조 가져오기

NewRelic.getAgent().getLogger()

Agent 구성 에 대한 참조 가져오기

NewRelic.getAgent().getConfig()

사용자 지정 측정항목 에 대한 집계에 대한 참조 가져오기

NewRelic.getAgent().getAggregator()

맞춤 이벤트 를 기록하려면 Insights (맞춤 이벤트를 관리하는 기능의 원래 이름)에 대한 참조를 가져옵니다.

NewRelic.getAgent().getInsights()

추가 API 기능

다음 API는 앱 서버 정보 설정, 오류 보고, 페이지 로드 타이밍 정보 추가, 사용자 정의 측정항목 기록 및 사용자 정의 이벤트 전송 과 같은 추가 기능을 제공합니다.

원하는 경우...

이것을 사용

애플리케이션 서버 또는 디스패처에 대한 포트, 이름 및 버전 정보를 명시적으로 설정하고 JVM에 대한 인스턴스 이름을 명시적으로 설정합니다.

New Relic이 자동으로 보고하지 않는 오류 보고

NewRelic.noticeError(...)

트랜잭션 내부에서 noticeError 에 대한 마지막 호출이 승리합니다. 트랜잭션당 1개의 오류만 보고됩니다.

사용자 정의된 지문으로 오류를 그룹화하고 New Relic으로 전송될 오류에 대한 그룹화 키를 생성하는 데 사용되는 ErrorGroupCallback 인터페이스를 구현합니다. 지문은 오류 받은 편지함 UI에서 오류 메시지를 그룹화하는 데 사용됩니다.

public interface ErrorGroupCallback { String generateGroupingString(ErrorData errorData); }

콜백 함수를 통해 자신만의 오류 지문을 설정하세요. 제공된 오류에 대한 그룹화 키를 생성하는 데 사용되는 ErrorGroupCallback 를 등록합니다.

NewRelic.setErrorGroupCallback(errorGroupCallback)

New Relic이 헤더에 자동으로 추가하지 않는 Transactions 에 대한 브라우저 페이지 로드 타이밍 추가

맞춤 측정항목 생성 및 누적

NewRelic.recordMetric(...), .recordResponseTimeMetric(...) 또는 .incrementCounter(...)

맞춤 이벤트 기록

Insights.recordCustomEvent(...)

또는 NewRelic.addCustomParameter(...) 를 사용하여 New Relic에서 정의한 TransactionEvent 유형에 맞춤 속성을 추가합니다.

또한 Insights사용하여 New Relic API 클래스에 대한 참조를 얻는 방법에 대한 이 문서의 정보를 참조하세요.

에이전트에게 일반 클라우드 공급자 계정 정보를 제공합니다.

NewRelic.getAgent().getCloud().setAccountInfo(CloudAccountInfo.AWS_ACCOUNT_ID, "...");

이 방법을 사용하면 계정 정보 유형과 해당 금액을 제공할 수 있습니다. 에이전트는 이 정보를 사용하여 선택한 클라우드 서비스 범위에서 속성 cloud.resource_id 을 채웁니다.

AWS DynamoDB와 Kinesis는 cloud.resource_id 속성을 채우려면 이 값이 필요한 서비스입니다. 마찬가지로, AWS Lambda는 계정 ID가 함수 이름에 포함되지 않은 경우 이 값을 요구합니다.

이 메서드를 호출하면 해당 클라우드 설정이 재정의됩니다. 위에 표시된 호출은 cloud.aws.account_id 재정의합니다.

에이전트에 SDK 클라이언트별 클라우드 공급자 계정 정보를 제공합니다.

NewRelic.getAgent().getCloud().setAccountInfo(sdkClient, CloudAccountInfo.AWS_ACCOUNT_ID, "...");

이 호출은 이전 메서드와 동일한 정보를 제공하지만, 제공된 SDK 클라이언트에만 국한됩니다. 지정된 SDK 클라이언트를 사용하면 일반 데이터 대신 이 데이터가 사용됩니다.

추가 API 사용 예

API 사용에 대한 자세한 코드 예제는 다음에 대한 사용자 지정 계측에 대한 New Relic의 설명서를 참조하십시오.

Copyright © 2024 New Relic Inc.

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