TelemetrySession Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una sesión de telemetría que puede publicar eventos de telemetría y propiedades de sesión. La API hace el mejor esfuerzo para entregar datos de telemetría al servidor. Las solicitudes se ponen en cola y se envían en lotes. Los eventos se guardarán localmente si no se pueden enviar antes de que se cierre el proceso. El envío se reanudará cuando la siguiente instancia de la aplicación llame a la API de telemetría. La telemetría se puede perder en caso de que el proceso no responda o un bloqueo irrecuperable o ninguna conexión a Internet durante 30 días. Todos los métodos son seguros para subprocesos y se devuelven inmediatamente.
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
- Herencia
Constructores
TelemetrySession(String) |
Crea una nueva sesión de telemetría basada en una cadena serializada de una instancia de TelemetrySessionSettings. Use el método SerializeSettings de una instancia de TelemetrySession para obtener dicha cadena. Esto permite que un proceso publique eventos en una sesión de telemetría desde otro proceso. Use VSTelemetryService.DefaultSession para acceder a la sesión de la aplicación. |
Campos
DefaultContextName |
Nombre de contexto predeterminado. |
ValueNotAvailable |
Constante para el valor que no está disponible. |
Propiedades
AppId |
Obtiene o establece el identificador de aplicación para SQM. |
BucketFiltersToAddDumpsToFaults |
Obtiene o establece un valor que indica para qué cubos se deben agregar volcados de memoria para eventos de error. |
BucketFiltersToEnableWatsonForFaults |
Obtiene o establece un valor que indica para qué cubos se deben habilitar los informes de Watson para eventos de error. |
CalculatedSamplings |
Obtiene o establece el muestreo calculado del archivo de manifiesto. |
CancellationToken |
Obtiene cancellationToken de la sesión de telemetría. |
CanCollectPrivateInformation |
Obtiene un valor que indica si la sesión actual puede recopilar información de PII en función de la respuesta del Administrador de información de usuario. |
GlobalStorageUri |
Obtiene el URI de almacenamiento global de VS Code. |
HostName |
Obtiene o establece el nombre de host de telemetría, afecta a la ubicación del archivo de manifiesto. |
IsDisposed |
Obtiene un valor que indica si la sesión se ha desposado: para detectar llamadas redundantes. (Heredado de TelemetryDisposableObject) |
IsOptedIn |
Obtiene o establece un valor que indica si el usuario ha optado por participar. |
IsUserMicrosoftInternal |
Obtiene un valor que indica si la sesión actual pertenece al usuario interno, por lo que puede recopilar información basada en la respuesta del Administrador de información de usuario. |
MacAddressHash |
Obtiene el hash de dirección MAC. Si el hash no se encuentra en el almacenamiento local, se devolverá un hash 0 y se invocará el proceso de hash. |
MachineId |
Obtiene el identificador de máquina (id. de máquina SQM) |
SessionId |
Obtiene el identificador de sesión. |
TimeSinceSessionStart |
Obtiene TimeSinceSessionStart en caso de que los clientes quieran usarlo para calcular retrasos personalizados basados en el mismo algoritmo que hace telemetría. |
UserId |
Obtiene el identificador de usuario (id. de usuario de SQM) |
Métodos
AddCommonPropertyRange(IDictionary<String,Object>) |
Agregue propiedades que pueden ser comunes a todos los eventos de la sesión, pero no debe tener el prefijo Default.Context. Las propiedades no se conservan entre sesiones. Para agregar una sola propiedad, consulte TryAddCommonProperty(String, Object) |
AddSessionChannel(ISessionChannel) |
Agregue un nuevo canal de sesión a la lista de canales activos. |
CreateContext(String) |
Create contexto con el nombre específico. |
Dispose() |
Este código agregado para implementar correctamente el patrón descartable. (Heredado de TelemetryDisposableObject) |
DisposeManagedResources() |
Implementación protegida del patrón Dispose. |
DisposeToNetworkAsync(CancellationToken) |
Elimine de forma asincrónica e intente enviar toda la telemetría a través de la red. |
GetCommonPropertyDictionary() |
Obtiene un IDictionary que contiene una copia de las claves y valores commonProperty que se encuentran actualmente en la sesión. |
GetContext(String) |
Obtiene un contexto por el nombre especificado. |
GetPersistedSharedProperty(String) |
Obtiene la propiedad compartida persistente por nombre. |
GetPropertyBag(String) |
Obtiene un contenedor de propiedades por el nombre especificado. |
GetSharedProperty(String) |
Obtiene la propiedad compartida por nombre. |
GetSharedPropertyAsObject(String) |
Obtiene el valor de la propiedad compartida por nombre como un objeto. |
PostEvent(String) |
Pone en cola un evento de telemetría que se va a publicar en un servidor. Elija este método para simplificar si el nombre es la única propiedad de evento. Debe considerar la posibilidad de elegir PostUserTask, PostOperation, PostFault o PostAsset. Esto permitirá una experiencia de telemetría más completa con información adicional proporcionada por El modelo de datos de Visual Studio. Si el punto de datos no se alinea con ninguna entidad de VS Data Model, no obligue ninguna asociación y siga usando este método. Si tiene alguna pregunta sobre VS Data Model, envíe un correo electrónico a VS Data Model Crew (vsdmcrew@microsoft.com). |
PostEvent(TelemetryEvent) |
Pone en cola un evento de telemetría que se va a publicar en un servidor. Elija este método para obtener flexibilidad. Debe considerar la posibilidad de elegir PostUserTask, PostOperation, PostFault o PostAsset. Esto permitirá una experiencia de telemetría más completa con información adicional proporcionada por El modelo de datos de Visual Studio. Si el punto de datos no se alinea con ninguna entidad de VS Data Model, no obligue ninguna asociación y siga usando este método. Si tiene alguna pregunta sobre VS Data Model, envíe un correo electrónico a VS Data Model Crew (vsdmcrew@microsoft.com). |
PostMetricEvent(TelemetryMetricEvent) |
Prepara el evento de métrica rellenando las propiedades de métrica y, a continuación, publica el evento. |
PostProperty(String, Object) |
Pone en cola una actualización de para una propiedad de toda la sesión. Es posible que quiera tener en cuenta TelemetrySettingProperty o TelemetryMetricProperty que habilite una experiencia de telemetría más completa con información adicional proporcionada por el modelo de datos de Visual Studio. Si tiene alguna pregunta sobre VS Data Model, envíe un correo electrónico a VS Data Model Crew (vsdmcrew@microsoft.com). |
PostRecurringProperty(String, Object) |
Agrega una propiedad que se va a incluir en el evento VS/TelemetryApi/RecurringProperties periódicamente. A diferencia de PostProperty o TelemetryContext.PostProperty, PostRecurringProperty no agrega la propiedad especificada a todos los eventos. PostRecurringProperty es más útil para los valores que son constantes durante la vigencia de una telemetríaSession. |
RegisterForReliabilityEvent() |
Escribe información de proceso y sesión en el registro que usa cualquier IDE de VS de host para realizar un seguimiento y notificar el estado final de apagado de este proceso. |
RegisterPropertyBag(String, TelemetryPropertyBag) |
Registre el contenedor de propiedades especificado. |
RemovePersistedSharedProperty(String) |
Quitar la propiedad compartida persistente para todas las sesiones significa quitar la propiedad compartida de este contexto predeterminado y para cualquier sesión futura del equipo. |
RemoveSharedProperty(String) |
Quitar la propiedad compartida de la sesión significa quitar la propiedad compartida del contexto predeterminado |
RequiresNotDisposed() |
Esta función produce una excepción ObjectDisposedException si el objeto se elimina. (Heredado de TelemetryDisposableObject) |
SerializeSettings() |
Serializa el objeto TelemetrySessionSettings. |
SetPersistedSharedProperty(String, Double) |
Establecer la propiedad compartida persistente para la sesión significa establecer la propiedad compartida para el contexto predeterminado de esta sesión y cualquier sesión futura en el equipo. |
SetPersistedSharedProperty(String, String) |
Establecer la propiedad compartida persistente para la sesión significa establecer la propiedad compartida para el contexto predeterminado de esta sesión y cualquier sesión futura en el equipo. |
SetSharedProperty(String, Object) |
Establecer la propiedad compartida para la sesión significa establecer la propiedad compartida para el contexto predeterminado. Es posible que quiera tener en cuenta TelemetrySettingProperty o TelemetryMetricProperty Que permita una experiencia de telemetría más completa con información adicional proporcionada por el modelo de datos de Visual Studio. Si tiene alguna pregunta sobre VS Data Model, envíe un correo electrónico a VS Data Model Crew (vsdmcrew@microsoft.com). |
Start() |
Iniciar sesión significa crear un contexto predeterminado para la sesión y agregar propiedades de información privada si se permite. |
ToString() |
ToString para facilitar la depuración: mostrar en la ventana de watch de depuración |
TryAddCommonProperty(String, Object) |
Intenta agregar una sola clave de propiedad y un valor que pueden ser comunes a todos los eventos de la sesión, pero no debe tener el prefijo Context. Las propiedades no se conservan entre sesiones. Para agregar varias propiedades, consulte AddCommonPropertyRange(IDictionary<String,Object>) |
TryGetCommonPropertyValue(String, Object) |
Obtiene el valor asociado al nombre de propiedad especificado que será común a todos los eventos de la sesión, pero no debe tener el prefijo contextual o reservado. |
UnregisterPropertyBag(String) |
Anule el registro de un contenedor de propiedades con el nombre especificado. |
UseVsIsOptedIn() |
Lee y establece el estado de VS OptIn. Calcule el estado de IsOptedIn en función del estado OptIn de todas las versiones instaladas de VS. Si todos los estados optin encontrados son true, se devuelve true; de lo contrario, se devuelve false. |
UseVsIsOptedIn(String) |
Lee y establece el estado de VS OptIn. |
Métodos de extensión
PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Publica un FaultEvent objeto que está correlacionado con |
PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, Exception, Func<IFaultUtility,Int32>) |
Publica un FaultEvent objeto que está correlacionado con |
PostCommandLineFlags(TelemetrySession, IEnumerable<String>, IDictionary<String,Object>) |
Pone en cola un evento de telemetría con información de marcas de línea de comandos con propiedades adicionales que se publicarán en el servidor. Solo se incluirán las marcas de línea de comandos (identificadas por los prefijos especificados). |
PostCommandLineFlags(TelemetrySession, String[]) |
Pone en cola un evento de telemetría con información de marcas de línea de comandos que se publicará en el servidor. Solo se incluirán las marcas de línea de comandos (identificadas por los prefijos especificados). |
PostAsset(TelemetrySession, String, String, Int32, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Publicar un evento Asset. El recurso es el destino de la tarea o operación del usuario, por ejemplo, Solución, Proyecto, Archivo, Extensión, Licencia, Designer. |
PostFault(TelemetrySession, String, String) |
Publicar un evento de error. El evento siempre se enviará a AppInsights, pero si pasa el muestreo, también se publicará en Wason. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con lo que puede haber provocado la aparición del error. |
PostFault(TelemetrySession, String, String, FaultSeverity) |
Publicar un evento de error. El evento siempre se enviará a AppInsights, pero si pasa el muestreo, también se publicará en Wason. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con lo que puede haber provocado la aparición del error. |
PostFault(TelemetrySession, String, String, FaultSeverity, Exception) |
Publique un evento de error con un objeto Exception administrado. Los parámetros bucket se crean a partir del objeto de excepción. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con lo que puede haber provocado la aparición del error. |
PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Publique un evento de error con un objeto de excepción y una devolución de llamada. La devolución de llamada se puede usar para calcular datos costosos que se enviarán al back-end watson, como las pila de llamadas de JScript, etc. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con los que puede haber provocado la aparición de errores. |
PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[]) |
Publique un evento de error con un objeto de excepción y una devolución de llamada. La devolución de llamada se puede usar para calcular datos costosos que se enviarán al back-end watson, como las pila de llamadas de JScript, etc. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con los que puede haber provocado la aparición de errores. |
PostFault(TelemetrySession, String, String, Exception) |
Publique un evento de error con un objeto Exception administrado. Los parámetros bucket se crean a partir del objeto de excepción. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con lo que puede haber provocado la aparición del error. |
PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>) |
Publique un evento de error con un objeto de excepción y una devolución de llamada. La devolución de llamada se puede usar para calcular datos costosos que se enviarán al back-end watson, como las pila de llamadas de JScript, etc. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con los que puede haber provocado la aparición de errores. |
PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[]) |
Publique un evento de error con un objeto de excepción y una devolución de llamada. La devolución de llamada se puede usar para calcular datos costosos que se enviarán al back-end watson, como las pila de llamadas de JScript, etc. Resulta más útil cuando se correlaciona con UserTaskEvent o OperationEvent con los que puede haber provocado la aparición de errores. |
PostOperation(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[]) |
Publicar un evento Operation. Una operación realiza algún trabajo en la aplicación y viene con el resultado (por ejemplo, Correcto, Error). Si el usuario invoca directamente la operación, use UserTaskEvent o los métodos relacionados. Algunos ejemplos de operaciones son, comprobación de licencia, carga de paquetes, carga de windows layout. Este método se usa para la operación atómica que se ejecuta muy rápido o tiene poco valor para analizar la duración del proceso. El llamador llama a este método cuando se completa la operación. En el caso de una operación asincrónica o de ejecución prolongada, para comprender lo que ha ocurrido durante el tiempo o realizar un seguimiento si se completa parcialmente debido a un error, use el método StartOperation(TelemetrySession, String) que realiza un seguimiento de los puntos inicial y final. |
PostUserTask(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[]) |
Publique un evento para la tarea de usuario. Una tarea de usuario es una operación de aplicación invocada por usuario directamente y viene con el resultado (por ejemplo, Correcto, Error). Se usa para el análisis de intenciones y comportamiento del usuario. El usuario es consciente de la operación y puede ejecutarse. Por ejemplo, Abrir proyecto y Mostrar ventanas de herramientas son tareas de usuario; en su lugar, cargue el paquete de VS y la compilación en tiempo de diseño son operaciones. Este método se usa para la tarea de usuario atómica que se ejecuta muy rápido o tiene poco valor para analizar la duración del proceso. El autor de la llamada llama a este método cuando se completa la tarea del usuario. En el caso de tareas de usuario asincrónicas o de ejecución prolongada, con el fin de comprender lo que ha ocurrido durante el tiempo o realizar un seguimiento si se completa parcialmente debido a un error, use el método StartUserTask(TelemetrySession, String) que realiza un seguimiento de los puntos inicial y final. |
StartOperation(TelemetrySession, String) |
Inicie la operación de seguimiento publicando un OperationEvent al principio del trabajo de operación y devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro OperationEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartOperation(TelemetrySession, String, TelemetryScopeSettings) |
Inicie la operación de seguimiento publicando una OperationEvent clase con propiedades especificadas al principio del trabajo de operación y devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro OperationEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartOperation(TelemetrySession, String, TelemetrySeverity) |
Inicie la operación de seguimiento publicando un OperationEvent al principio del trabajo de operación y devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro OperationEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>) |
Inicie la operación de seguimiento publicando una OperationEvent clase con propiedades especificadas al principio del trabajo de operación y devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro OperationEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Inicie la operación de seguimiento publicando una OperationEvent clase con propiedades especificadas al principio del trabajo de operación y devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro OperationEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartUserTask(TelemetrySession, String) |
Inicie el seguimiento de la tarea del usuario publicando un UserTaskEvent al principio del trabajo de la tarea de usuario y, a continuación, devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro UserTaskEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartUserTask(TelemetrySession, String, TelemetryScopeSettings) |
Inicie el seguimiento de la tarea de usuario publicando una UserTaskEvent con las propiedades especificadas al principio del trabajo de la tarea de usuario y, a continuación, devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro UserTaskEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartUserTask(TelemetrySession, String, TelemetrySeverity) |
Inicie el seguimiento de la tarea del usuario publicando un UserTaskEvent al principio del trabajo de la tarea de usuario y, a continuación, devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro UserTaskEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>) |
Inicie el seguimiento de la tarea de usuario publicando una UserTaskEvent con las propiedades especificadas al principio del trabajo de la tarea de usuario y, a continuación, devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro UserTaskEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |
StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Inicie el seguimiento de la tarea de usuario publicando una UserTaskEvent con las propiedades especificadas al principio del trabajo de la tarea de usuario y, a continuación, devuelva un TelemetryScope<T> objeto . Cuando finalice la tarea de usuario, llame al método End(TelemetryResult, String) para publicar otro UserTaskEvent para el punto final. Dado que los eventos de inicio y fin usan el mismo nombre de evento, no use Start o End en el nombre del evento. |