Windows イベント トレーシングのターゲット

適用対象:SQL Server

Event Tracing for Windows (ETW) をターゲットとして使用する前に、ETW を活用するための知識を身に付けておくことをお勧めします。 ETW トレースは、拡張イベントと組み合わせて使用されるか、拡張イベントのイベント コンシューマーとして使用されます。 ETW の背景情報については、次の外部リンクを参照してください。

ETW ターゲットは、多くのセッションに追加できますが、シングルトン ターゲットです。 多くのセッションでイベントが発生した場合、イベントは、イベントの発生ごとに 1 回、ETW ターゲットのみに反映されます。 拡張イベント エンジンは、プロセスあたり 1 つのインスタンスに制限されます。

重要

ETW ターゲットを動作させるには、SQL Server サービス開始アカウントが Performance Log Users グループのメンバーであることが必要です。

ETW セッションに存在するイベントの構成は、拡張イベント エンジンがホストするプロセスによって制御されます。 拡張イベント エンジンは、どのイベントを発生させるか、どのような条件が満たされた場合にイベントを発生させるかを制御します。

拡張イベント セッションへのバインド後、つまり、プロセスの有効期間中に初めて ETW ターゲットがアタッチされたとき、ETW ターゲットは、SQL Server プロバイダー上で単一の ETW セッションを開きます。 ETW セッションが既に存在していた場合、ETW ターゲットは、既存のセッションへの参照を取得します。 この ETW セッションは、特定のコンピューター上のすべての SQL Server インスタンス間で共有されます。 ETW ターゲットが割り当てられているセッションで発生したすべてのイベントは、この ETW セッションが受け取ることになります。

ETW では、プロバイダーがイベントを利用して、それを ETW に渡すことができるようになっている必要があります。そのため、セッションでは、すべての拡張イベント パッケージが有効化されます。 ETW ターゲットは、発生したイベントを、そのイベントのプロバイダーが有効になっているセッションへ送信します。

ETW ターゲットは、発生元スレッドでのイベントの同期発行をサポートします。 しかし、ETWターゲットはイベントの非同期発行はサポートしません。

ETW ターゲットは、外部 ETW コントローラー (たとえば Logman.exe) からのコントロールをサポートしません。 ETW トレースを生成するには、ETW ターゲットを使用してイベント セッションを作成する必要があります。 詳細については、「CREATE EVENT SESSION (Transact-SQL)」を参照してください。

Note

ETW ターゲットを有効にすると、XE_DEFAULT_ETW_SESSION という名前の ETW セッションが作成されます。 XE_DEFAULT_ETW_SESSION という名前のセッションが既に存在する場合は、既存のセッションのプロパティを変更せずに使用されます。 XE_DEFAULT_ETW_SESSION はすべての SQL Server のインスタンス間で共有されます。 XE_DEFAULT_ETW_SESSION を開始した後に停止する場合は、Logman ツールなどの ETW コントローラーを使用する必要があります。 たとえば、コマンド プロンプトで logman stop XE_DEFAULT_ETW_SESSION -etsコマンドを実行できます。

次の表では、ETW ターゲットの構成に使用できるオプションについて説明します。

オプション 使用できる値 説明
default_xe_session_name 256 文字までの任意の文字列。 この値は省略可能です。 拡張イベント セッション名。 既定値は、XE_DEFAULT_ETW_SESSION です。
default_etw_session_logfile_path 256 文字までの任意の文字列。 この値は省略可能です。 拡張イベント セッションのログ ファイルへのパス。 既定では、これは %TEMP%\XEEtw.etl です。
default_etw_session_logfile_size_mb 任意の符号なし整数。 この値は省略可能です。 拡張イベント セッションのログ ファイル サイズ (MB)。 既定値は 20 MB です。
default_etw_session_buffer_size_kb 任意の符号なし整数。 この値は省略可能です。 拡張イベント セッションのメモリ内バッファーのサイズ (KB)。 既定値は 128 KB です。
retries 任意の符号なし整数。 ETW サブシステムへのイベントのパブリッシュを再試行する回数。この回数を超えるとイベントが破棄されます。 既定値は 0 です。

これらの設定は省略できます。 これらの設定については既定値が使用されます。

ETW ターゲットには、次のような役割があります。

  • 既定の ETW セッションを作成する。

  • すべての拡張イベント パッケージを ETW に登録する。 これによって、ETW に登録されたイベントは破棄されなくなります。

  • ETW に対するイベント フローを管理する。 ETW ターゲットは、拡張イベント データを持つ ETW イベントを作成して、それを適切な ETW セッションに送信します。 イベントがバッファー サイズを超えた場合、またはデータを 1 つの ETW イベントに収めることができなかった場合、そのイベントは ETW によって複数のフラグメントに分割されます。

  • 拡張イベント パッケージを常時有効に保つ。

次に ETW で使用される既定のファイル パスを示します。

  • ETW 出力ファイルは %TEMP%\XEEtw.etl に格納されます。

    重要

    最初のセッションの開始後にファイル パスを変更することはできません。

  • 管理オブジェクト フォ ーマット (MOF) ファイルは <インストール パス>\Microsoft SQL Server\Shared にあります。 詳細については、MSDN の「マネージド オブジェクト フォーマット」を参照してください。

セッションへのターゲットの追加

ETW ターゲットを拡張イベント セッションに追加するには、イベント セッションの作成時または変更時に次のステートメントを含める必要があります。

ADD TARGET package0.etw_classic_sync_target

データの表示方法を含む、ETW ターゲットの使用法を示す完全な例の詳細については、「 拡張イベントを使用したシステムの使用状況の監視」を参照してください。