次の方法で共有


DiagnosticSource.OnActivityImport(Activity, Object) メソッド

定義

プロセスの外で発生した、受信要求など、イベントまたは操作からアクティビティに状態を転送します。

public:
 virtual void OnActivityImport(System::Diagnostics::Activity ^ activity, System::Object ^ payload);
public virtual void OnActivityImport (System.Diagnostics.Activity activity, object? payload);
public virtual void OnActivityImport (System.Diagnostics.Activity activity, object payload);
abstract member OnActivityImport : System.Diagnostics.Activity * obj -> unit
override this.OnActivityImport : System.Diagnostics.Activity * obj -> unit
Public Overridable Sub OnActivityImport (activity As Activity, payload As Object)

パラメーター

activity
Activity

外部イベントの影響を受けるアクティビティ。

payload
Object

受信した要求を表すペイロード。

注釈

インストルメンテーション サイトがプロセス外のイベント (受信 HTTP 要求など) OnActivityImport に応答して新しいアクティビティを作成する場合、 メソッドは、そのサイトが新しいアクティビティを作成し、受信要求からアクティビティに状態を転送することを許可します。

インストルメンテーション サイトでは、 と受信要求ロジックの間 Activity にコントラクトがあるため、可能な限りインストルメンテーション サイトでこれを行う必要があります。 ただし、インストルメンテーション サイトではポリシーを処理できません。 (たとえば、サンプリングが行われた場合、正確にサンプリングする必要がある要求はどれですか?このような場合、インストルメンテーション サイトはログ システムにコールバックし、ポリシーを解決するように要求する必要があります (たとえば、アクティビティの "サンプリング" ビットを設定する必要があるかどうかを判断します)。 これが メソッドの OnActivityImport 目的です。 アクティビティと、受信要求を表すペイロード オブジェクトが与えられます。 その後、 の DiagnosticSource サブスクライバーは、必要に応じてこのアクティビティを更新できます。

このメソッドは、インストルメンテーション サイト (プロセスの境界にあるサイトのみ) でほとんど使用されず、侵入サイトでは既定のポリシーが実装されるため ( 何らかの 方法でアクティビティが設定されます)、既定のポリシーが問題ない場合は、このメソッドをオーバーライドする必要はありません。 言い換えると、このメソッドは非常にまれな (ただし、多くの場合重要な) ケースでオーバーライドする必要があります。

payloadはここで入力Objectされていますが、特定のインストルメンテーション サイトとサブスクライバーはペイロードの種類を認識し、必要に応じてキャストおよびデコードします。

適用対象