構文
public interface ITransaction
New Relic API のトランザクション固有のメソッドへのアクセスを提供します。
説明
New Relic .NET エージェント API のトランザクション固有のメソッドへのアクセスを提供します。ITransaction
への参照を取得するには、 IAgent
で使用可能な現在のトランザクション メソッドを使用します。
ITransaction
では次のメソッドを使用できます:
名前 | 説明 |
---|---|
他のサービスから送られてくるトレースコンテキストヘッダを受信します。 | |
発信するリクエストにトレースコンテキストヘッダを追加します。 | |
他のサービスからの分散型トレースペイロードを受信します。 | |
発信するリクエストに含める分散型トレースペイロードを作成します。 | |
アプリケーションのコンテキスト情報を属性の形で現在のトランザクションに追加します。 | |
現在実行中の span へのアクセスを提供し、New Relic API の span 固有のメソッドへのアクセスを提供します。 | |
ユーザー ID を現在のトランザクションに関連付けます。 |
AcceptDistributedTraceHeaders
ITransaction.AcceptDistributedTraceHeaders
分散トレースに含めるために呼び出されたサービスを計測するために使用されます。 InsertDistributedTraceHeaders
によって生成されたペイロード、または他の W3C トレース コンテキスト準拠のトレーサによって生成されたペイロードを受け入れることで、トレース内のスパンをリンクします。 このメソッドは、着信リクエストのヘッダーを受け入れ、W3C トレース コンテキスト ヘッダーを探し、見つからない場合は、New Relic 分散トレース ヘッダーにフォールバックします。このメソッドは、New Relic の分散トレース ペイロードのみを処理する非推奨の AcceptDistributedTracePayload
メソッドを置き換えます。
構文
void AcceptDistributedTraceHeaders(carrier, getter, transportType)
パラメーター
名前 | 説明 |
---|---|
<T> | 必要です。受信するTrace Contextヘッダーのソース。 |
Func<T, string, IEnumerable<string>> | 必要です。キャリアからヘッダーデータを抽出するための呼び出し側定義の関数。 |
トランスポートタイプ enum | 必要。着信ペイロードのトランスポートを記述します (例: |
使用上の注意
- Distributed tracingが有効であること.
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)
パラメーター
名前 | 説明 |
---|---|
<T> | 必要です。Trace Context ヘッダが挿入されるコンテナです。 |
アクション<T, string, string> | 必要です。呼び出し側が定義した、キャリアにヘッダーデータを挿入するためのアクション。 |
使用上の注意
例
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)
パラメーター
名前 | 説明 |
---|---|
ストリング | 必要です。受信した分散型トレースのペイロードの文字列表現。 |
TransportType | おすすめされた。着信ペイロードのトランスポートを記述します (例: デフォルト |
使用上の注意
- Distributed tracingが有効であること.
- ペイロードは、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
を実装するオブジェクト。
使用上の注意
- Distributed tracingが有効であること.
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)
パラメーター
パラメータ | 説明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ストリング | 報告される情報を特定するもの。名称としても知られている。
| ||||||||||||||||
物体 | 報告される値です。 注:
|
リターンズ
現在のトランザクションへの参照です。
使用上の注意
サポートされているデータタイプの詳細については、『 Custom Attributes Guide』 を参照してください。
例
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");