• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

ITransction

構文

public interface ITransaction

New Relic API のトランザクション固有のメソッドへのアクセスを提供します。

説明

New Relic .NET エージェント API のトランザクション固有のメソッドへのアクセスを提供します。 ITransaction への参照を取得するには、 IAgent で利用可能な現在のトランザクションメソッドを使用します。

このセクションでは、3つのITransactionメソッドの説明とパラメータを紹介します。

名前

説明

AcceptDistributedTraceHeaders

他のサービスから送られてくるトレースコンテキストヘッダを受信します。

InsertDistributedTraceHeaders

発信するリクエストにトレースコンテキストヘッダを追加します。

AcceptDistributedTracePayload (廃止されました)

他のサービスからの分散型トレースペイロードを受信します。

CreateDistributedTracePayload (廃止予定)

発信するリクエストに含める分散型トレースペイロードを作成します。

カスタムアトリビュートの追加

アプリケーションのコンテキスト情報を属性の形で現在のトランザクションに追加します。

カレントスパン

現在実行中の span へのアクセスを提供し、New Relic API の span 固有のメソッドへのアクセスを提供します。

AcceptDistributedTraceHeaders

ITransaction.AcceptDistributedTraceHeaders は、分散トレースに含めるために呼び出されたサービスを計測するために使用されます。 InsertDistributedTraceHeaders または他の W3C Trace Context 準拠のトレーサーによって生成されたペイロードを受け入れることで、トレース内のスパンをリンクします。このメソッドは、受信したリクエストのヘッダーを受け取り、W3C Trace Context ヘッダーを探し、見つからない場合は New Relic の分散トレースヘッダーにフォールバックします。このメソッドは、廃止された AcceptDistributedTracePayload メソッドに代わるもので、New Relic 分散トレースのペイロードのみを扱います。

構文

void AcceptDistributedHeaders(carrier, getter, transportType)

パラメータ

名前

説明

キャリア

<T>

必要です。受信するTrace Contextヘッダーのソース。

ゲッター

Func<T, string, IEnumerable<string>>

必要です。キャリアからヘッダーデータを抽出するための呼び出し側定義の関数。

トランスポートタイプ

トランスポートタイプ enum

必要です。受信するペイロードのトランスポートを記述します(例: TransportType.HTTP )。

使用上の注意

  • 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" /> を設定することで無効にすることができます。このメソッドは、廃止された CreateDistributedTracePayload メソッドを置き換えるもので、New Relic Distributed Trace のペイロードのみを作成します。

構文

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 agent v9.0以降では利用できません。代わりに AcceptDistributedTraceHeaders をご利用ください。

上流のサービスから受信する分散トレースペイロードを受け入れる。このメソッドを呼び出すと、上流のサービスからのトランザクションがこのトランザクションにリンクされます。

構文

void AcceptDistributedPayload(payload, transportType)

パラメータ

名前

説明

ペイロード

文字列

必要です。受信した分散型トレースのペイロードの文字列表現。

トランスポートタイプ

TransportType
enum

推奨。受信するペイロードのトランスポートを記述します(例: http )。

デフォルト TransportType.Unknown.

使用上の注意

  • 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 agent v9.0以降では利用できません。代わりに InsertDistributedTraceHeaders をご利用ください。

下流のシステムへの送信リクエストに含めるための分散型トレースペイロードを作成します。

構文

IDistributedTracePayload CreateDistributedTracePayload()

リターンズ

IDistributedTracePayload を実装したオブジェクトで、作成された分散型トレースペイロードへのアクセスを提供します。

使用上の注意

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)

パラメータ

パラメーター

説明

キー

文字列

報告される情報を特定するもの。名称としても知られている。

  • 空のキーには対応していません。
  • キーは255バイトに制限されています。255バイト以上のキーを持つアトリビュートは無視されます。

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;

「パラメータ」の項を参照

Copyright © 2022 New Relic株式会社。