TelemetrySession クラス

定義

テレメトリ イベントとセッション プロパティをポストできる 1 つのテレメトリ セッションを表します。 API は、サーバーにテレメトリ データを配信するためのベスト エフォートを行います。 要求はキューに登録され、バッチで送信されます。 プロセスが終了する前にイベントを送信できない場合、イベントはローカルに保存されます。 次のアプリケーション インスタンスがテレメトリ API を呼び出すと、送信が再開されます。 プロセスが応答しない場合や致命的なクラッシュが発生した場合、または 30 日間インターネット接続がない場合、テレメトリが失われる可能性があります。 すべてのメソッドはスレッド セーフであり、すぐに返されます。

public ref class TelemetrySession : Microsoft::VisualStudio::Telemetry::TelemetryDisposableObject
public class TelemetrySession : Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject
type TelemetrySession = class
    inherit TelemetryDisposableObject
Public Class TelemetrySession
Inherits TelemetryDisposableObject
継承

コンストラクター

TelemetrySession(String)

TelemetrySessionSettings インスタンスのシリアル化された文字列に基づいて、新しいテレメトリ セッションを作成します。 このような文字列を取得するには、TelemetrySession のインスタンスの SerializeSettings メソッドを使用します。 これにより、プロセスは別のプロセスからテレメトリ セッションにイベントを投稿できます。 VSTelemetryService.DefaultSession を使用して、アプリケーション セッションにアクセスします。

フィールド

DefaultContextName

既定のコンテキスト名。

ValueNotAvailable

使用できない値の定数。

プロパティ

AppId

SQM のアプリケーション ID を取得または設定します

BucketFiltersToAddDumpsToFaults

エラー イベントに対してどのバケット プロセス ダンプを追加するかを示す値を取得または設定します。

BucketFiltersToEnableWatsonForFaults

エラー イベントに対して Watson レポートを有効にするバケットを示す値を取得または設定します。

CalculatedSamplings

マニフェスト ファイルから計算されたサンプリングを取得または設定します

CancellationToken

テレメトリ セッションの CancellationToken を取得します

CanCollectPrivateInformation

現在のセッションで、ユーザー情報マネージャーからの回答に基づいて PII 情報を収集できるかどうかを示す値を取得します

GlobalStorageUri

VS Code からグローバル ストレージ URI を取得します

HostName

テレメトリ ホスト名を取得または設定します。マニフェスト ファイルの場所に影響します

IsDisposed

冗長な呼び出しを検出するために、セッションが廃止されるかどうかを示す値を取得します

(継承元 TelemetryDisposableObject)
IsOptedIn

ユーザーがオプトインされているかどうかを示す値を取得または設定します。

IsUserMicrosoftInternal

現在のセッションが内部ユーザーに属しているかどうかを示す値を取得するため、ユーザー情報マネージャーからの回答に基づいて情報を収集できます

MacAddressHash

MAC アドレス ハッシュを取得します。 ハッシュがローカル ストレージで見つからない場合は、0 ハッシュが返され、ハッシュ プロセスが呼び出されます

MachineId

マシン ID (SQM マシン ID) を取得します

SessionId

セッション ID を取得します。

TimeSinceSessionStart

顧客がテレメトリと同じアルゴリズムに基づいてカスタム遅延を計算するために使用する場合に備えて、TimeSinceSessionStart を取得します。

UserId

ユーザー ID (SQM ユーザー ID) を取得します

メソッド

AddCommonPropertyRange(IDictionary<String,Object>)

セッションのすべてのイベントに共通のプロパティを追加しますが、Default.Context プレフィックスを持つ必要はありません。 セッション間でプロパティは保持されません。 1 つのプロパティを追加するには、次を参照してください。 TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

アクティブなチャネルの一覧に新しいセッション チャネルを追加します。

CreateContext(String)

特定の名前を持つコンテキストをCreateします。

Dispose()

このコードは、破棄可能なパターンを正しく実装するために追加されました。

(継承元 TelemetryDisposableObject)
DisposeManagedResources()

Dispose パターンの保護された実装。

DisposeToNetworkAsync(CancellationToken)

非同期的に破棄し、すべてのテレメトリをネットワーク経由で送信します。

GetCommonPropertyDictionary()

セッション内の CommonProperty キーと値のコピーを含む IDictionary を取得します。

GetContext(String)

指定した名前でコンテキストを取得します。

GetPersistedSharedProperty(String)

名前で永続化された共有プロパティを取得します。

GetPropertyBag(String)

指定した名前でプロパティ バッグを取得します。

GetSharedProperty(String)

名前で共有プロパティを取得します。

GetSharedPropertyAsObject(String)

共有プロパティの値をオブジェクトとして名前で取得します。

PostEvent(String)

サーバーにポストされるテレメトリ イベントをキューに入れます。 名前が唯一のイベント プロパティである場合は、わかりやすくするためにこのメソッドを選択します。 PostUserTask、PostOperation、PostFault、または PostAsset を選択することを検討してください。 これにより、Visual Studio Data Model によって提供される追加の分析情報を使用して、より豊富なテレメトリ エクスペリエンスを実現できます。 データ ポイントが VS Data Model エンティティと一致しない場合は、関連付けを強制せず、このメソッドを引き続き使用してください。 VS データ モデルに関する質問がある場合は、VS Data Model Crew (vsdmcrew@microsoft.com) にメールでお問い合わせください。

PostEvent(TelemetryEvent)

サーバーにポストされるテレメトリ イベントをキューに入れます。 柔軟性を高めるため、この方法を選択します。 PostUserTask、PostOperation、PostFault、または PostAsset を選択することを検討してください。 これにより、Visual Studio Data Model によって提供される追加の分析情報を使用して、より豊富なテレメトリ エクスペリエンスを実現できます。 データ ポイントが VS Data Model エンティティと一致しない場合は、関連付けを強制せず、このメソッドを引き続き使用してください。 VS データ モデルに関する質問がある場合は、VS Data Model Crew (vsdmcrew@microsoft.com) にメールでお問い合わせください。

PostMetricEvent(TelemetryMetricEvent)

メトリック プロパティを設定してメトリック イベントを準備し、イベントを投稿します。

PostProperty(String, Object)

セッション全体のプロパティの に対する更新をキューに入れます。 または、 TelemetrySettingPropertyTelemetryMetricProperty Visual Studio Data Model によって提供される追加の分析情報を使用して、より豊富なテレメトリ エクスペリエンスを実現できます。 VS データ モデルに関する質問がある場合は、VS Data Model Crew (vsdmcrew@microsoft.com) にメールでお問い合わせください。

PostRecurringProperty(String, Object)

定期的に繰り返される VS/TelemetryApi/RecurringProperties イベントに含めるプロパティを追加します。 PostProperty または TelemetryContext.PostProperty とは異なり、PostRecurringProperty では、指定されたプロパティがすべてのイベントに追加されるわけではありません。 PostRecurringProperty は、TelemetrySession の有効期間中に一定の値に最も役立ちます。

RegisterForReliabilityEvent()

プロセスとセッションの情報をレジストリに書き込みます。この情報は、このプロセスの最終的なシャットダウン状態を追跡して報告するためにホスト VS IDE によって使用されます。

RegisterPropertyBag(String, TelemetryPropertyBag)

指定されたプロパティ バッグを登録します。

RemovePersistedSharedProperty(String)

すべてのセッションの永続化された共有プロパティを削除するということは、この既定のコンテキストから共有プロパティを削除し、マシン上の今後のセッションに対して共有プロパティを削除することです。

RemoveSharedProperty(String)

セッションの共有プロパティを削除すると、既定のコンテキストから共有プロパティが削除されます

RequiresNotDisposed()

オブジェクトが破棄された場合、この関数は ObjectDisposedException をスローします。

(継承元 TelemetryDisposableObject)
SerializeSettings()

TelemetrySessionSettings オブジェクトをシリアル化します。

SetPersistedSharedProperty(String, Double)

セッションの永続化された共有プロパティを設定するということは、このセッションとマシン上の今後のセッションの既定のコンテキストに対して共有プロパティを設定することです。

SetPersistedSharedProperty(String, String)

セッションの永続化された共有プロパティを設定するということは、このセッションとマシン上の今後のセッションの既定のコンテキストに対して共有プロパティを設定することです。

SetSharedProperty(String, Object)

セッションの共有プロパティの設定は、既定のコンテキストに共有プロパティを設定することを意味します。検討 TelemetrySettingProperty することも TelemetryMetricProperty 、Visual Studio Data Model によって提供される追加の分析情報を使用して、より豊富なテレメトリ エクスペリエンスを実現することもできます。 VS データ モデルに関する質問がある場合は、VS Data Model Crew (vsdmcrew@microsoft.com) にメールでお問い合わせください。

Start()

セッションの開始とは、セッションの既定のコンテキストを作成し、許可されている場合は個人情報プロパティを追加することを意味します。

ToString()

デバッグを容易にする ToString: [デバッグ] watch ウィンドウに表示

TryAddCommonProperty(String, Object)

セッションのすべてのイベントに共通する可能性があるが、Context プレフィックスを持つべきではない単一のプロパティ キーと値を追加しようとします。 セッション間でプロパティは保持されません。 複数のプロパティを追加するには、次を参照してください。 AddCommonPropertyRange(IDictionary<String,Object>)

TryGetCommonPropertyValue(String, Object)

セッションのすべてのイベントに共通ですが、コンテキストまたは予約済みプレフィックスを持つべきではない、指定されたプロパティ名に関連付けられている値を取得します。

UnregisterPropertyBag(String)

指定した名前でプロパティ バッグの登録を解除します。

UseVsIsOptedIn()

VS OptIn の状態を読み取って設定します。 インストールされているすべてのバージョンの VS から OptedIn 状態に基づいて IsOptedIn 状態を計算します。 検出されたすべての OptedIn 状態が true の場合は true を返し、それ以外の場合は false を返します。

UseVsIsOptedIn(String)

VS OptIn の状態を読み取って設定します。

拡張メソッド

PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>)

FaultEventと関連付けられた operation を にポストしますsession

PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, Exception, Func<IFaultUtility,Int32>)

FaultEventと関連付けられた operation を にポストしますsession

PostCommandLineFlags(TelemetrySession, IEnumerable<String>, IDictionary<String,Object>)

サーバーにポストされる追加のプロパティを含むコマンド ライン フラグ情報を含むテレメトリ イベントをキューに入れます。 コマンド ライン フラグ (指定されたプレフィックスで識別) のみが含まれます。

PostCommandLineFlags(TelemetrySession, String[])

サーバーにポストされるコマンド ライン フラグ情報を使用してテレメトリ イベントをキューに入れます。 コマンド ライン フラグ (指定されたプレフィックスで識別) のみが含まれます。

PostAsset(TelemetrySession, String, String, Int32, IDictionary<String,Object>, TelemetryEventCorrelation[])

Asset イベントを投稿します。 アセットは、ソリューション、プロジェクト、ファイル、拡張機能、ライセンス、Designerなどのユーザー タスクまたは操作のターゲットです。

PostFault(TelemetrySession, String, String)

Fault イベントを投稿します。 イベントは常に AppInsights に送信されますが、サンプリングに合格すると、Wason にも投稿されます。 と相関 UserTaskEvent している場合や OperationEvent 、障害が発生した可能性がある場合に役立ちます。

PostFault(TelemetrySession, String, String, FaultSeverity)

Fault イベントを投稿します。 イベントは常に AppInsights に送信されますが、サンプリングに合格すると、Wason にも投稿されます。 と相関 UserTaskEvent している場合や OperationEvent 、障害が発生した可能性がある場合に役立ちます。

PostFault(TelemetrySession, String, String, FaultSeverity, Exception)

マネージド Exception オブジェクトを使用して Fault イベントを投稿します。 バケット パラメーターは、例外オブジェクトから作成されます。 と相関 UserTaskEvent している場合や OperationEvent 、障害が発生した可能性がある場合に役立ちます。

PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>)

例外オブジェクトとコールバックを使用して、エラー イベントを投稿します。 コールバックを使用して、JScript の呼び出し履歴など、Watson バックエンドに送信されるコストの高いデータを計算できます。また、エラーが発生した可能性がある または OperationEventUserTaskEvent関連付けられた場合に役立ちます。

PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[])

例外オブジェクトとコールバックを使用して、エラー イベントを投稿します。 コールバックを使用して、JScript の呼び出し履歴など、Watson バックエンドに送信されるコストの高いデータを計算できます。また、エラーが発生した可能性がある または OperationEventUserTaskEvent関連付けられた場合に役立ちます。

PostFault(TelemetrySession, String, String, Exception)

マネージド Exception オブジェクトを使用して Fault イベントを投稿します。 バケット パラメーターは、例外オブジェクトから作成されます。 と相関 UserTaskEvent している場合や OperationEvent 、障害が発生した可能性がある場合に役立ちます。

PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>)

例外オブジェクトとコールバックを使用して、エラー イベントを投稿します。 コールバックを使用して、JScript の呼び出し履歴など、Watson バックエンドに送信されるコストの高いデータを計算できます。また、エラーが発生した可能性がある または OperationEventUserTaskEvent関連付けられた場合に役立ちます。

PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[])

例外オブジェクトとコールバックを使用して、エラー イベントを投稿します。 コールバックを使用して、JScript の呼び出し履歴など、Watson バックエンドに送信されるコストの高いデータを計算できます。また、エラーが発生した可能性がある または OperationEventUserTaskEvent関連付けられた場合に役立ちます。

PostOperation(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[])

Operation イベントを投稿します。 操作はアプリケーションで何らかの作業を実行し、結果 (成功、失敗など) が付属します。 操作がユーザーによって直接呼び出される場合は、 または 関連するメソッドを使用 UserTaskEvent してください。 操作の例としては、ライセンス チェック、パッケージの読み込み、Windows レイアウトの読み込みがあります。

このメソッドは、非常に高速に実行されるアトミック操作、またはプロセス期間を分析する価値がほとんどないアトミック操作に使用されます。 呼び出し元は、操作が完了したときにこのメソッドを呼び出します。 長時間の実行または非同期操作の場合は、エラーが原因で部分的に完了した場合に時間または追跡中に他に何が起こったかを理解するために、開始点と終了点の両方を追跡するメソッド StartOperation(TelemetrySession, String) を使用します。

PostUserTask(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[])

ユーザー タスクのイベントを投稿します。 ユーザー タスクは、USER によって直接呼び出され、結果 (成功、失敗など) が付属するアプリケーション操作です。 これは、ユーザーの動作/意図の分析に使用されます。 ユーザーは操作を認識しており、実行できます。 たとえば、プロジェクトを開いてツールウィンドウを表示すると、ユーザータスクになります。代わりに、VS パッケージを読み込み、デザイン時のビルドは操作です。

このメソッドは、非常に高速に実行されるアトミック ユーザー タスク、またはプロセス期間を分析する価値がほとんどないアトミック ユーザー タスクに使用されます。 呼び出し元は、ユーザー タスクが完了したときにこのメソッドを呼び出します。 長時間実行または非同期のユーザー タスクの場合は、エラーが原因で部分的に完了した場合に時間または追跡中に他に何が起こったかを理解するために、開始点と終了点の両方を追跡するメソッド StartUserTask(TelemetrySession, String) を使用します。

StartOperation(TelemetrySession, String)

操作作業の開始時に を OperationEvent 転記して追跡操作を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の OperationEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartOperation(TelemetrySession, String, TelemetryScopeSettings)

操作作業の開始時に指定したプロパティを持つ を OperationEvent ポストして追跡操作を開始し、 オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の OperationEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartOperation(TelemetrySession, String, TelemetrySeverity)

操作作業の開始時に を OperationEvent 転記して追跡操作を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の OperationEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>)

操作作業の開始時に指定したプロパティを持つ を OperationEvent ポストして追跡操作を開始し、 オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の OperationEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[])

操作作業の開始時に指定したプロパティを持つ を OperationEvent ポストして追跡操作を開始し、 オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の OperationEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartUserTask(TelemetrySession, String)

ユーザー タスク作業の開始時に を UserTaskEvent 投稿してユーザー タスクの追跡を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の UserTaskEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartUserTask(TelemetrySession, String, TelemetryScopeSettings)

ユーザー タスク作業の開始時に、指定したプロパティを持つ を投稿 UserTaskEvent してユーザー タスクの追跡を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の UserTaskEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartUserTask(TelemetrySession, String, TelemetrySeverity)

ユーザー タスク作業の開始時に を UserTaskEvent 投稿してユーザー タスクの追跡を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の UserTaskEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>)

ユーザー タスク作業の開始時に、指定したプロパティを持つ を投稿 UserTaskEvent してユーザー タスクの追跡を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の UserTaskEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[])

ユーザー タスク作業の開始時に、指定したプロパティを持つ を投稿 UserTaskEvent してユーザー タスクの追跡を開始し、オブジェクトを TelemetryScope<T> 返します。 ユーザー タスクが完了したら、 メソッド End(TelemetryResult, String) を呼び出して、エンドポイントに別の UserTaskEvent を投稿します。 開始イベントと終了イベントの両方で同じイベント名が使用されるため、イベント名に Start または End を使用しないでください。

適用対象