TelemetrySession 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示一个可以发布遥测事件和会话属性的遥测会话。 API 尽最大努力将遥测数据传送到服务器。 请求将排队并分批发送。 如果在进程退出之前无法发送事件,则这些事件将保存在本地。 当下一个应用程序实例调用遥测 API 时,将恢复发送。 如果进程无响应或严重崩溃或 30 天内没有 Internet 连接,遥测可能会丢失。 所有方法都是线程安全的,并立即返回。
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 前缀的属性。 在会话之间不会保留属性。 若要添加单个属性,请参阅 TryAddCommonProperty(String, Object) |
AddSessionChannel(ISessionChannel) |
将新会话通道添加到活动通道列表。 |
CreateContext(String) |
使用特定名称Create上下文。 |
Dispose() |
添加此代码以正确实现可释放模式。 (继承自 TelemetryDisposableObject) |
DisposeManagedResources() |
释放模式的受保护实现。 |
DisposeToNetworkAsync(CancellationToken) |
异步释放并尝试通过网络发送所有遥测数据。 |
GetCommonPropertyDictionary() |
获取一个 IDictionary,其中包含当前会话中的 CommonProperty 键和值的副本。 |
GetContext(String) |
按给定名称获取上下文。 |
GetPersistedSharedProperty(String) |
按名称获取持久化共享属性。 |
GetPropertyBag(String) |
按给定名称获取属性包。 |
GetSharedProperty(String) |
按名称获取共享属性。 |
GetSharedPropertyAsObject(String) |
按名称作为对象获取共享属性的值。 |
PostEvent(String) |
将要发布到服务器的遥测事件排队。 为简单起见,如果名称是唯一的事件属性,请选择此方法。 应考虑选择 PostUserTask、PostOperation、PostFault 或 PostAsset。 这将通过 Visual Studio 数据模型提供的其他见解实现更丰富的遥测体验。 如果数据点与任何 VS 数据模型实体不一致,请不要强制任何关联,并继续使用此方法。 如果对 VS 数据模型有任何疑问,请向 VS 数据模型船员发送电子邮件 (vsdmcrew@microsoft.com) 。 |
PostEvent(TelemetryEvent) |
将要发布到服务器的遥测事件排队。 为提高灵活性,请选择此方法。 应考虑选择 PostUserTask、PostOperation、PostFault 或 PostAsset。 这将通过 Visual Studio 数据模型提供的其他见解实现更丰富的遥测体验。 如果数据点与任何 VS 数据模型实体不一致,请不要强制任何关联,并继续使用此方法。 如果对 VS 数据模型有任何疑问,请向 VS 数据模型船员发送电子邮件 (vsdmcrew@microsoft.com) 。 |
PostMetricEvent(TelemetryMetricEvent) |
通过填充指标属性来准备指标事件,然后发布事件。 |
PostProperty(String, Object) |
将更新排到会话范围属性的队列。 你可能需要考虑 TelemetrySettingProperty ,或者 TelemetryMetricProperty 这些将启用更丰富的遥测体验,并提供 Visual Studio 数据模型提供的其他见解。 如果对 VS 数据模型有任何疑问,请向 VS 数据模型船员发送电子邮件 (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 数据模型提供的其他见解。 如果对 VS 数据模型有任何疑问,请向 VS 数据模型船员发送电子邮件 (vsdmcrew@microsoft.com) 。 |
Start() |
启动会话意味着为会话创建默认上下文,并添加私有信息属性(如果允许)。 |
ToString() |
ToString 以简化调试:在调试watch窗口中显示 |
TryAddCommonProperty(String, Object) |
尝试添加单个属性键和值,该属性键和值对于会话的所有事件可能通用,但不应具有上下文前缀。 在会话之间不会保留属性。 若要添加多个属性,请参阅 AddCommonPropertyRange(IDictionary<String,Object>) |
TryGetCommonPropertyValue(String, Object) |
获取与指定属性名称关联的值,该值对于会话的所有事件都是通用的,但不应具有上下文或保留前缀。 |
UnregisterPropertyBag(String) |
注销具有给定名称的属性包。 |
UseVsIsOptedIn() |
读取并设置 VS OptIn 状态。 根据 VS 的所有已安装版本中的 OptedIn 状态计算 IsOptedIn 状态。 如果找到的所有 OptedIn 状态均为 true,则返回 true,否则返回 false。 |
UseVsIsOptedIn(String) |
读取并设置 VS OptIn 状态。 |