次の方法で共有


EventDataDiagnosticExtensions.ExtractActivity(EventData, String) メソッド

定義

EventHubから受信したイベントに格納されているEventDataトレース コンテキストに基づいて作成Activityします。オプションのアクティビティ名New Activity とトレース コンテキスト

public static System.Diagnostics.Activity ExtractActivity (this Microsoft.Azure.EventHubs.EventData eventData, string activityName = default);
static member ExtractActivity : Microsoft.Azure.EventHubs.EventData * string -> System.Diagnostics.Activity
<Extension()>
Public Function ExtractActivity (eventData As EventData, Optional activityName As String = Nothing) As Activity

パラメーター

eventData
EventData
activityName
String

戻り値

async Task ProcessAsync(EventData eventData)
{
   var activity = eventData.ExtractActivity();
   activity.Start();
   Logger.LogInformation($"Event received, Id = {Activity.Current.Id}")
   try 
   {
      // process event
   }
   catch (Exception ex)
   {
        Logger.LogError($"Exception {ex}, Id = {Activity.Current.Id}")
   }
   finally 
   {
        activity.Stop();
        // Activity is stopped, we no longer have it in Activity.Current
        Logger.LogInformation($"Event processed, Id = {activity.Id}, Duration = {activity.Duration}")
   }
}

すべてのログに がスタンプされていることに Current注意してください。入れ子になったメソッド呼び出し (同期または非同期) Current 内で使用できる ID は、非同期メソッド呼び出しで流れるアンビエント コンテキストです。

注釈

トレース コンテキストは、プロデューサーとコンシューマーの間でテレメトリを関連付けるために使用され、 の 'Diagnostic-Id' プロパティと 'Correlation-Context' プロパティで Properties表されます。

.NET SDK は、ServiceBus にメッセージを送信するときにコンテキストを自動的に挿入します (診断がトレース システムによって有効になっている場合)。

'Diagnostic-Id' は、イベントをエンキューした操作を一意に識別します

'Correlation-Context' は、操作の省略可能なコンテキストを表す文字列キー値ペアのコンマ区切りのリストです。

イベントにトレース コンテキストがない場合、このメソッドは親なしで を返します Activity

返される Activity は、使用する前に開始する必要があります (以下の例を参照してください)

適用対象