Поделиться через


TelemetrySession Класс

Определение

Представляет один сеанс телеметрии, который может публиковать события телеметрии и свойства сеанса. 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. Чтобы получить такую строку, используйте метод SerializeSettings экземпляра TelemetrySession. Это позволяет процессу публиковать события в сеансе телеметрии из другого процесса. Используйте VSTelemetryService.DefaultSession для доступа к сеансу приложения.

Поля

DefaultContextName

Имя контекста по умолчанию.

ValueNotAvailable

Константы для значения, которое недоступно.

Свойства

AppId

Возвращает или задает идентификатор приложения для SQM.

BucketFiltersToAddDumpsToFaults

Возвращает или задает значение, указывающее, для каких контейнеров следует добавлять дампы процесса для событий сбоя.

BucketFiltersToEnableWatsonForFaults

Возвращает или задает значение, указывающее, для каких контейнеров Watson должны быть включены отчеты для событий сбоя.

CalculatedSamplings

Получает/задает вычисляемую выборку из файла манифеста.

CancellationToken

Возвращает cancellationToken сеанса телеметрии.

CanCollectPrivateInformation

Возвращает значение, указывающее, может ли текущий сеанс собирать сведения о личных данных на основе ответа от диспетчера сведений о пользователях.

GlobalStorageUri

Возвращает универсальный код ресурса (URI) глобального хранилища из VS Code.

HostName

Возвращает или задает имя узла телеметрии, влияющее на расположение файла манифеста.

IsDisposed

Возвращает значение, указывающее, был ли сеанс свергнут для обнаружения избыточных вызовов.

(Унаследовано от TelemetryDisposableObject)
IsOptedIn

Возвращает или задает значение, указывающее, включен ли пользователь.

IsUserMicrosoftInternal

Возвращает значение, указывающее, принадлежит ли текущий сеанс внутреннему пользователю, что позволяет собирать сведения на основе ответа от диспетчера сведений о пользователях.

MacAddressHash

Возвращает хэш MAC-адреса. Если хэш не найден в локальном хранилище, возвращается хэш 0 и вызывается процесс хэширования.

MachineId

Возвращает идентификатор компьютера (идентификатор компьютера SQM)

SessionId

Возвращает идентификатор сеанса.

TimeSinceSessionStart

Возвращает TimeSinceSessionStart в случае, если клиенты хотят использовать его для вычисления пользовательских задержек на основе того же алгоритма, что и телеметрия.

UserId

Возвращает идентификатор пользователя (идентификатор пользователя SQM)

Методы

AddCommonPropertyRange(IDictionary<String,Object>)

Добавьте свойства, которые могут быть общими для всех событий сеанса, но не должны иметь префикс Default.Context. Свойства не сохраняются между сеансами. Чтобы добавить одно свойство, см. раздел TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

Добавьте новый канал сеанса в список активных каналов.

CreateContext(String)

Create контекст с указанным именем.

Dispose()

Этот код добавлен для правильной реализации шаблона для удаления.

(Унаследовано от TelemetryDisposableObject)
DisposeManagedResources()

Защищенная реализация шаблона Dispose.

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)

Помещает обновление в в очередь для свойства уровня сеанса. Вы можете рассмотреть или TelemetrySettingPropertyTelemetryMetricProperty они позволят более широкие возможности телеметрии с дополнительными аналитическими сведениями, предоставляемыми моделью данных Visual Studio. Если у вас есть вопросы, касающиеся модели данных VS, отправьте электронное письмо команде модели данных VS (vsdmcrew@microsoft.com).

PostRecurringProperty(String, Object)

Добавляет свойство для включения в регулярно повторяющееся событие VS/TelemetryApi/RecurringProperties. В отличие от PostProperty или TelemetryContext.PostProperty, PostRecurringProperty не добавляет заданное свойство к каждому событию. PostRecurringProperty наиболее полезен для значений, которые являются постоянными в течение времени существования TelemetrySession.

RegisterForReliabilityEvent()

Записывает сведения о процессе и сеансе в реестр, который используется любой интегрированной среды разработки VS узла для отслеживания и отчета о состоянии завершения работы этого процесса.

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. Вычисляйте состояние IsOptedIn на основе состояния OptedIn из всех установленных версий VS. Если все обнаруженные состояния 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[])

Публикация события ресурса. Ресурс — это целевой объект задачи или операции пользователя, например решение, проект, файл, расширение, лицензия Designer.

PostFault(TelemetrySession, String, String)

Публикация события сбоя. Событие всегда отправляется в AppInsights, но если оно проходит выборку, оно также будет опубликовано в Wason. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent , что могло привести к возникновению ошибки.

PostFault(TelemetrySession, String, String, FaultSeverity)

Публикация события сбоя. Событие всегда отправляется в AppInsights, но если оно проходит выборку, оно также будет опубликовано в Wason. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent , что могло привести к возникновению ошибки.

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

Публикация события сбоя с помощью управляемого объекта Exception. Параметры контейнера создаются из объекта исключения. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent , что могло привести к возникновению ошибки.

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

Публикация события сбоя с объектом исключения и обратным вызовом. Обратный вызов можно использовать для вычисления ресурсоемких данных, отправляемых в серверную часть Watson, таких как запросы вызовов JScript и т. д. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent которые могли привести к возникновению ошибки.

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

Публикация события сбоя с объектом исключения и обратным вызовом. Обратный вызов можно использовать для вычисления ресурсоемких данных, отправляемых в серверную часть Watson, таких как запросы вызовов JScript и т. д. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent которые могли привести к возникновению ошибки.

PostFault(TelemetrySession, String, String, Exception)

Публикация события сбоя с помощью управляемого объекта Exception. Параметры контейнера создаются из объекта исключения. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent , что могло привести к возникновению ошибки.

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

Публикация события сбоя с объектом исключения и обратным вызовом. Обратный вызов можно использовать для вычисления ресурсоемких данных, отправляемых в серверную часть Watson, таких как запросы вызовов JScript и т. д. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent которые могли привести к возникновению ошибки.

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

Публикация события сбоя с объектом исключения и обратным вызовом. Обратный вызов можно использовать для вычисления ресурсоемких данных, отправляемых в серверную часть Watson, таких как запросы вызовов JScript и т. д. Это становится более полезным при сопоставлении с UserTaskEvent или OperationEvent которые могли привести к возникновению ошибки.

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

Публикация события Operation. Операция выполняет определенную работу в приложении и приводит к результату (например, Успешно, Сбой). Если операция вызывается пользователем напрямую, используйте UserTaskEvent или связанные методы. Вот несколько примеров операций: проверка лицензий, загрузка пакетов, загрузка макета Windows.

Этот метод используется для атомарной операции, которая выполняется очень быстро или имеет мало значений для анализа длительности процесса. Вызывающий объект вызывает этот метод по завершении операции. Для длительного выполнения или асинхронной операции, чтобы понять, что еще произошло в течение этого времени, или отслеживать, если она частично завершена из-за ошибки, используйте метод StartOperation(TelemetrySession, String) , который отслеживает как начальную, так и конечную точки.

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

Публикация события для задачи пользователя. Пользовательская задача — это операция приложения, которая вызывается пользователем напрямую и сопровождается результатом (например, Успешно, Сбой). Он используется для анализа поведения пользователя и намерений. Пользователь знает об операции и сможет ее выполнить. Например, открыть окна проектов и показать окна инструментов являются пользовательскими задачами; вместо этого загрузка пакета 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.

Применяется к