マーカーとしての EventSource イベントの視覚化Visualizing EventSource Events as Markers

同時実行ビジュアライザーは、マーカーとして EventSource イベントを表示でき、マーカーの表示方法を制御できます。The Concurrency Visualizer can display EventSource events as markers, and you can control how the markers are displayed. EventSource マーカーを表示するには、[詳細設定] ダイアログ ボックスを使用して ETW プロバイダー GUID を登録します。To view the EventSource markers, register the ETW provider GUID by using the Advanced Settings dialog box. 同時実行ビジュアライザーには、フラグ マーカースパン マーカーメッセージ マーカーとして EventSource イベントを表す既定の規約があります。The Concurrency Visualizer has default conventions to represent EventSource events as Flag Markers, Span Markers, and Message Markers. イベントにカスタム フィールドを追加することで、EventSource イベントの表示方法をカスタマイズできます。You can customize how EventSource events are displayed by adding custom fields to the events. マーカーに関する詳細については、「同時実行ビジュアライザー マーカー」を参照してください。For more information about markers, see Concurrency Visualizer Markers. EventSource イベントの詳細については、「System.Diagnostics.Tracing」を参照してください。For more information about EventSource events, see System.Diagnostics.Tracing.

EventSource イベントの既定の視覚化Default Visualization of EventSource Events

既定では、同時実行ビジュアライザーは EventSource イベントを表すために次の規約を使用します。By default, the Concurrency Visualizer uses the following conventions to represent EventSource events.

マーカーの種類Marker Type

  1. オペコード win:Start または win:Stop を持つイベントは、それぞれスパンの開始と終了として扱われます。Events that have Opcode win:Start or win:Stop are treated as the beginning or end of a span, respectively. 入れ子になっているスパンまたは重複するスパンは表示できません。Nested or overlapping spans cannot be displayed. あるスレッドで開始し、別のスレッドで終了するイベント ペアは表示できません。Event pairs that begin on one thread and end on another cannot be displayed.

  2. オペコードが win:Start でも win:Stop でもないイベントは、そのレベル (EVENT_RECORD.EVENT_HEADER.EVENT_DESCRIPTOR のフィールド) が win:Verbose 以上でない限り、マーカー フラグとして扱われます。An event whose Opcode is neither win:Start nor win:Stop is treated as a marker flag unless its Level (field of EVENT_RECORD.EVENT_HEADER.EVENT_DESCRIPTOR) is win:Verbose or higher.

  3. それ以外の場合はすべて、イベントはメッセージとして扱われます。In all other cases, the event is treated as a message.

重要度Importance

次の表にイベント レベルとマーカーの重要度の対応関係を定義します。The following table defines how the event level maps to the marker importance.

ETW レベルETW Level 同時実行ビジュアライザーの重要度Concurrency Visualizer Importance
win:LogAlwayswin:LogAlways 標準Normal
win:Criticalwin:Critical 重大Critical
win:Errorwin:Error 重大Critical
win:Warningwin:Warning HighHigh
win:Informationalwin:Informational 標準Normal
win:Verbosewin:Verbose LowLow
win:verbose より大きいGreater than win:verbose LowLow

系列の名前Series Name

イベントのタスク名は系列名に使用されます。The task name of the event is used for the series name. イベントにタスクが定義されていない場合、系列名は空です。Series name is empty if no task was defined for the event.

カテゴリCategory

レベルが win:Critical または win:Error の場合、カテゴリはアラート (-1) です。If the Level is win:Critical or win:Error, then the category is Alert (-1). それ以外の場合は、カテゴリは既定 (0) です。Otherwise, the category is the default (0).

テキストText

printf 型の書式設定されたテキスト メッセージがイベントに対して定義されている場合、マーカーの説明として表示されます。If a printf-type formatted text message was defined for the event, it is displayed as the description of the Marker. それ以外の場合は、説明はイベントの名前と各ペイロード フィールドの値です。Otherwise, the description is the name of the event and the value of each payload field.

EventSource イベントの視覚化のカスタマイズCustomizing Visualization of EventSource Events

次のセクションで説明されているように、イベントに適切なフィールドを追加すれば、EventSource イベントの表示方法をカスタマイズできます。You can customize how EventSource events are displayed by adding the appropriate fields to the event, as described in the following sections.

マーカーの種類Marker Type

cvType フィールド (バイト) を使用して、イベントを表すために使用するマーカーの種類を制御します。Use the cvType field, a byte, to control the kind of marker that's used to represent the event. cvType に使用できる値は次のとおりです。Here are the available values for cvType:

cvType 値cvType value 結果として得られるマーカーの種類Resulting Marker Type
00 メッセージMessage
11 スパンの開始Span Start
22 スパンの終了Span End
33 フラグFlag
その他のすべての値All other values メッセージMessage

重要度Importance

cvImportance フィールド (バイト) を使用して、EventSource イベントの重要度の設定を制御できます。You can use the cvImportance field, a byte, to control the importance setting for an EventSource event. しかし、表示されるイベントの重要度はレベルを使用して制御することをお勧めします。However, we recommend that you control the displayed importance of an event by using its Level.

cvImportance 値cvImportance value 同時実行ビジュアライザーの重要度Concurrency Visualizer Importance
00 標準Normal
11 重大Critical
22 HighHigh
33 HighHigh
44 標準Normal
55 LowLow
その他のすべての値All other values LowLow

系列の名前Series Name

cvSeries イベント フィールド (文字列) を使用して、同時実行ビジュアライザーが EventSource イベントに指定する系列名を制御できます。Use the cvSeries event field, a string, to control the series name that the Concurrency Visualizer gives to an EventSource event.

カテゴリCategory

cvCategory フィールド (バイト) を使用して、同時実行ビジュアライザーが EventSource イベントに指定するカテゴリを制御できます。Use the cvCategory field, a byte, to control the category that the Concurrency Visualizer gives to an EventSource event.

テキストText

cvTextW フィールド (文字列) を使用して、同時実行ビジュアライザーが EventSource イベントに指定する説明を制御できます。Use the cvTextW field, a string, to control the description that the Concurrency Visualizer gives to an EventSource event.

SpanIDSpanID

cvSpanId フィールド (int) を使用して、イベントのペアを照合します。Use the cvSpanId field, an int, to match pairs of events. スパンを表す開始/終了イベントの各ペアの値は一意である必要があります。The value for each pair of start/stop events that represent a span must be unique. そのために、同時実行コードの場合は特に、Exchange などの同期プリミティブを使用して、キー (CvSpanID に使用される値) が正しいことを確認する必要があります。Typically for concurrent code, this requires the use of synchronization primitives such as Exchange to ensure that the key (the value that's used for CvSpanID) is correct.

注意

SpanID を使用してスパンを入れ子にすること、同じスレッドで部分的に重複させること、または開始と終了のスレッドを別にすることはサポートされていません。The use of SpanID to nest spans, allow them to partially overlap on the same thread, or allow them to start on one thread and end on another is not supported.

関連項目See Also

同時実行ビジュアライザー マーカーConcurrency Visualizer Markers