통사론
public interface ITransaction
New Relic API의 트랜잭션별 메서드에 대한 액세스를 제공합니다.
설명
New Relic .NET 에이전트 API의 트랜잭션별 메서드에 대한 액세스를 제공합니다. ITransaction
에 대한 참조를 얻으려면 { IAgent
}에서 사용 가능한 현재 트랜잭션 메소드를 사용하십시오.
다음 방법은 ITransaction
에서 사용할 수 있습니다.
이름 | 설명 |
---|---|
다른 서비스에서 들어오는 추적 컨텍스트 헤더를 수락합니다. | |
나가는 요청에 추적 컨텍스트 헤더를 추가합니다. | |
다른 서비스에서 들어오는 분산 추적 페이로드를 수락합니다. | |
나가는 요청에 포함할 분산 추적 페이로드를 만듭니다. | |
애플리케이션의 컨텍스트 정보를 속성 형식으로 현재 트랜잭션에 추가합니다. | |
현재 실행 중인 범위 에 대한 액세스를 제공합니다. 이는 New Relic API의 범위별 메서드에 대한 액세스를 제공합니다. | |
사용자 ID를 현재 트랜잭션에 연결합니다. |
AcceptDistributedTraceHeaders
ITransaction.AcceptDistributedTraceHeaders
분산 추적에 포함하기 위해 호출된 서비스를 계측하는 데 사용됩니다. InsertDistributedTraceHeaders
에서 생성하거나 다른 W3C 추적 컨텍스트 호환 추적 프로그램에서 생성한 페이로드를 수락하여 추적의 범위를 연결합니다. 이 메서드는 들어오는 요청의 헤더를 수락하고 W3C 추적 컨텍스트 헤더를 찾고 찾지 못하면 New Relic 분산 추적 헤더로 대체합니다. 이 메서드는 New Relic 분산 추적 페이로드만 처리하는 더 이상 사용되지 않는 AcceptDistributedTracePayload
메서드를 대체합니다.
통사론
void AcceptDistributedTraceHeaders(carrier, getter, transportType)
매개변수
이름 | 설명 |
---|---|
<티> | 필수의. 들어오는 추적 컨텍스트 헤더의 소스입니다. |
Func<T, 문자열, IEnumerable<문자열>> | 필수의. 캐리어에서 헤더 데이터를 추출하는 호출자 정의 함수. |
TransportType 열거형 | 필수의. 수신 페이로드의 전송을 설명합니다(예: |
사용 고려 사항
- 분산 추적을 활성화해야 합니다 .
AcceptDistributedTraceHeaders
이 트랜잭션에 대해InsertDistributedTraceHeaders
또는AcceptDistributedTraceHeaders
이(가) 이미 호출된 경우 무시됩니다.
예시
HttpContext httpContext = HttpContext.Current;IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction currentTransaction = agent.CurrentTransaction;currentTransaction.AcceptDistributedTraceHeaders(httpContext, Getter, TransportType.HTTP);IEnumerable<string> Getter(HttpContext carrier, string key) { string value = carrier.Request.Headers[key]; return value == null ? null : new string[] { value }; }
InsertDistributedTraceHeaders
ITransaction.InsertDistributedTraceHeaders
분산 추적을 구현하는 데 사용됩니다. W3C Trace Context 헤더와 New Relic Distributed Trace 헤더를 추가하여 전달되는 캐리어 개체를 수정합니다. New Relic 헤더는 구성에서 <distributedTracing excludeNewrelicHeader="true" />
으로 비활성화할 수 있습니다. 이 메서드는 New Relic Distributed Trace 페이로드만 생성하는 더 이상 사용되지 않는 CreateDistributedTracePayload
메서드를 대체합니다.
통사론
void InsertDistributedTraceHeaders(carrier, setter)
매개변수
이름 | 설명 |
---|---|
<티> | 필수의. Trace Context 헤더가 삽입되는 컨테이너.. |
액션<T, 문자열, 문자열> | 필수의. 헤더 데이터를 캐리어에 삽입하기 위한 호출자 정의 작업입니다. |
사용 고려 사항
예시
HttpWebRequest requestMessage = (HttpWebRequest)WebRequest.Create("https://remote-address");IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction currentTransaction = agent.CurrentTransaction;var setter = new Action<HttpWebRequest, string, string>((carrier, key, value) => { carrier.Headers?.Set(key, value); });currentTransaction.InsertDistributedTraceHeaders(requestMessage, setter);
AcceptDistributedTracePayload
주의
이 API는 .NET 에이전트 v9.0 이상에서 사용할 수 없습니다. 대신 AcceptDistributedTraceHeaders
을(를) 사용하십시오.
업스트림 서비스에서 들어오는 분산 추적 페이로드를 수락합니다. 이 메서드를 호출하면 업스트림 서비스의 트랜잭션이 이 트랜잭션으로 연결됩니다.
통사론
void AcceptDistributedPayload(payload, transportType)
매개변수
이름 | 설명 |
---|---|
끈 | 필수의. 들어오는 분산 추적 페이로드의 문자열 표현입니다. |
전송 유형 | 추천. 수신 페이로드의 전송을 설명합니다(예: 기본값 |
사용 고려 사항
- 분산 추적을 활성화해야 합니다 .
- 페이로드는 Base64 인코딩 또는 일반 텍스트 문자열일 수 있습니다.
AcceptDistributedTracePayload
이 트랜잭션에 대해CreateDistributedTracePayload
이(가) 이미 호출된 경우 무시됩니다.
예시
//Obtain the information from the request object from the upstream caller.//The method by which this information is obtain is specific to the transport //type being used. For example, in an HttpRequest, this information is//contained in the header.KeyValuePair<string, string> metadata = GetMetaDataFromRequest("requestPayload");IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; transaction.AcceptDistributedTracePayload(metadata.Value, TransportType.Queue);
CreateDistributedTracePayload(구식)
주의
이 API는 .NET 에이전트 v9.0 이상에서 사용할 수 없습니다. 대신 InsertDistributedTraceHeaders
을(를) 사용하십시오.
다운스트림 시스템으로 보내는 요청에 포함할 분산 추적 페이로드를 만듭니다.
통사론
IDistributedTracePayload CreateDistributedTracePayload()
보고
생성된 분산 추적 페이로드에 대한 액세스를 제공하는 IDistributedTracePayload
을 구현하는 객체입니다.
사용 고려 사항
- 분산 추적을 활성화해야 합니다 .
CreateDistributedTracePayload
이 트랜잭션에 대해AcceptDistributedTracePayload
이(가) 이미 호출된 경우 무시됩니다.
예시
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction transaction = agent.CurrentTransaction;IDistributedTracePayload payload = transaction.CreateDistributedTracePayload();
사용자 정의 속성 추가
속성 형식으로 현재 트랜잭션에 애플리케이션에 대한 컨텍스트 정보를 추가합니다.
이 방법을 사용하려면 .NET 에이전트 버전 및 .NET 에이전트 API 버전 8.24.244.0 이상이 필요합니다. 더 이상 사용되지 않는 AddCustomParameter
을(를) 대체했습니다.
통사론
ITransaction AddCustomAttribute(string key, object value)
매개변수
매개변수 | 설명 |
---|---|
끈 | 보고되는 정보를 식별합니다. 이름으로도 알려져 있습니다.
|
물체 | 보고되는 값입니다. |
보고
현재 트랜잭션에 대한 참조입니다.
사용 고려 사항
지원되는 데이터 유형에 대한 자세한 내용은 사용자 정의 속성 안내서 를 참조하십시오.
예시
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction transaction = agent.CurrentTransaction;transaction.AddCustomAttribute("customerName","Bob Smith") .AddCustomAttribute("currentAge",31) .AddCustomAttribute("birthday", new DateTime(2000, 02, 14)) .AddCustomAttribute("waitTime", TimeSpan.FromMilliseconds(93842));
현재 범위
현재 실행 중인 범위 에 대한 액세스를 제공하여 New Relic API 내에서 범위별 메서드 를 사용할 수 있도록 합니다.
예시
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; ISpan currentSpan = transaction.CurrentSpan;
SetUserId
사용자 ID를 현재 트랜잭션과 연결합니다.
이 방법에는 .NET 에이전트 및 .NET 에이전트 API 버전 10.9.0 이상이 필요합니다.
통사론
ITransaction SetUserId(string userId)
매개변수
매개변수 | 설명 |
---|---|
끈 | 이 거래와 관련된 사용자 ID입니다.
|
예시
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; transaction.SetUserId("BobSmith123");