Partager via


TelemetrySession Classe

Définition

Représente une session de télémétrie qui peut publier des événements de télémétrie et des propriétés de session. L’API fait le meilleur effort pour fournir des données de télémétrie au serveur. Les requêtes sont mises en file d’attente et envoyées par lots. Les événements sont enregistrés localement s’ils ne peuvent pas être envoyés avant la fin du processus. L’envoi reprendra lorsque l’application suivante instance appelle l’API de télémétrie. La télémétrie peut être perdue en cas de non-réponse du processus ou d’incident mortel ou d’absence de connexion Internet pendant 30 jours. Toutes les méthodes sont thread-safe et retournent immédiatement.

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
Héritage

Constructeurs

TelemetrySession(String)

Crée une session de télémétrie basée sur une chaîne sérialisée d’un instance TelemetrySessionSettings. Utilisez la méthode SerializeSettings d’un instance de TelemetrySession pour obtenir une telle chaîne. Cela permet à un processus de publier des événements dans une session de télémétrie à partir d’un autre processus. Utilisez VSTelemetryService.DefaultSession pour accéder à la session d’application.

Champs

DefaultContextName

Nom de contexte par défaut.

ValueNotAvailable

Constante pour la valeur qui n’est pas disponible.

Propriétés

AppId

Obtient ou définit l’ID d’application pour SQM

BucketFiltersToAddDumpsToFaults

Obtient ou définit une valeur indiquant pour quels compartiments les vidages de processus doivent être ajoutés pour les événements d’erreur.

BucketFiltersToEnableWatsonForFaults

Obtient ou définit une valeur indiquant pour quels compartiments Watson doit être activé pour les événements d’erreur.

CalculatedSamplings

Obtient/Définit l’échantillonnage calculé à partir du fichier manifeste

CancellationToken

Obtient le cancellationToken de la session de télémétrie

CanCollectPrivateInformation

Obtient une valeur indiquant si la session active peut collecter des informations d’identification personnelle en fonction de la réponse du Gestionnaire d’informations utilisateur

GlobalStorageUri

Obtient l’URI de stockage global de VS Code

HostName

Obtient ou définit le nom d’hôte de télémétrie, il affecte l’emplacement du fichier manifeste

IsDisposed

Obtient une valeur indiquant si la session est déposé pour détecter les appels redondants

(Hérité de TelemetryDisposableObject)
IsOptedIn

Obtient ou définit une valeur indiquant si l’utilisateur est activé.

IsUserMicrosoftInternal

Obtient une valeur indiquant si la session active appartient à l’utilisateur interne et peut donc collecter des informations basées sur la réponse du Gestionnaire d’informations utilisateur

MacAddressHash

Obtient le hachage d’adresse MAC. Si le hachage est introuvable dans le stockage local, un hachage 0 est retourné et le processus de hachage est appelé

MachineId

Obtient l’ID de machine (ID de machine SQM)

SessionId

Obtient l’ID de session.

TimeSinceSessionStart

Obtient TimeSinceSessionStart au cas où les clients souhaitent l’utiliser pour calculer des retards personnalisés en fonction de l’algorithme de télémétrie.

UserId

Obtient l’ID utilisateur (ID utilisateur SQM)

Méthodes

AddCommonPropertyRange(IDictionary<String,Object>)

Ajoutez des propriétés qui peuvent être communes à tous les événements de la session, mais qui ne doivent pas avoir le préfixe Default.Context. Les propriétés ne sont pas conservées entre les sessions. Pour ajouter une seule propriété, consultez TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

Ajoutez un nouveau canal de session à la liste des canaux actifs.

CreateContext(String)

Create contexte avec le nom spécifique.

Dispose()

Ce code a été ajouté pour implémenter correctement le modèle jetable.

(Hérité de TelemetryDisposableObject)
DisposeManagedResources()

Implémentation protégée du modèle Dispose.

DisposeToNetworkAsync(CancellationToken)

Supprimez et essayez d’envoyer de manière asynchrone toutes les données de télémétrie sur le réseau.

GetCommonPropertyDictionary()

Obtient un IDictionary contenant une copie des clés et valeurs CommonProperty actuellement dans la session.

GetContext(String)

Obtient un contexte par le nom donné.

GetPersistedSharedProperty(String)

Obtenez la propriété partagée persistante par nom.

GetPropertyBag(String)

Obtient un conteneur de propriétés par le nom donné.

GetSharedProperty(String)

Obtenir la propriété partagée par nom.

GetSharedPropertyAsObject(String)

Obtient la valeur de la propriété partagée par nom en tant qu’objet.

PostEvent(String)

Met en file d’attente un événement de télémétrie à publier sur un serveur. Choisissez cette méthode par souci de simplicité si le nom est la seule propriété d’événement. Vous devez envisager de choisir PostUserTask, PostOperation, PostFault ou PostAsset. Celles-ci permettent une expérience de télémétrie plus riche avec des insights supplémentaires fournis par Visual Studio Data Model. Si votre point de données ne s’aligne sur aucune entité VS Data Model, ne forcez aucune association et continuez à utiliser cette méthode. Si vous avez des questions concernant VS Data Model, envoyez un e-mail à l’équipe vs Data Model (vsdmcrew@microsoft.com).

PostEvent(TelemetryEvent)

Met en file d’attente un événement de télémétrie à publier sur un serveur. Choisissez cette méthode pour plus de flexibilité. Vous devez envisager de choisir PostUserTask, PostOperation, PostFault ou PostAsset. Celles-ci permettent une expérience de télémétrie plus riche avec des insights supplémentaires fournis par Visual Studio Data Model. Si votre point de données ne s’aligne sur aucune entité VS Data Model, ne forcez aucune association et continuez à utiliser cette méthode. Si vous avez des questions concernant VS Data Model, envoyez un e-mail à l’équipe vs Data Model (vsdmcrew@microsoft.com).

PostMetricEvent(TelemetryMetricEvent)

Prépare l’événement de métrique en remplissant les propriétés de la métrique, puis publie l’événement.

PostProperty(String, Object)

Met en file d’attente une mise à jour vers pour une propriété à l’échelle de la session. Vous souhaiterez peut-être envisager TelemetrySettingProperty ou TelemetryMetricProperty celles-ci permettront une expérience de télémétrie plus riche avec des insights supplémentaires fournis par Visual Studio Data Model. Si vous avez des questions concernant VS Data Model, envoyez un e-mail à l’équipe vs Data Model (vsdmcrew@microsoft.com).

PostRecurringProperty(String, Object)

Ajoute une propriété à inclure dans l’événement VS/TelemetryApi/RecurringProperties périodique. Contrairement à PostProperty ou TelemetryContext.PostProperty, PostRecurringProperty n’ajoute pas la propriété donnée à chaque événement. PostRecurringProperty est particulièrement utile pour les valeurs qui sont constantes pendant la durée de vie d’une TelemetrySession.

RegisterForReliabilityEvent()

Écrit les informations de processus et de session dans le Registre, qui sont utilisées par n’importe quel IDE VS hôte pour suivre et signaler l’arrêt final status de ce processus.

RegisterPropertyBag(String, TelemetryPropertyBag)

Inscrivez le conteneur de propriétés donné.

RemovePersistedSharedProperty(String)

Supprimer la propriété partagée persistante pour toutes les sessions signifie supprimer la propriété partagée de ce contexte par défaut et pour toutes les sessions futures sur l’ordinateur.

RemoveSharedProperty(String)

Supprimer la propriété partagée pour la session signifie supprimer la propriété partagée du contexte par défaut

RequiresNotDisposed()

Cette fonction lève une exception ObjectDisposedException si l’objet est supprimé.

(Hérité de TelemetryDisposableObject)
SerializeSettings()

Sérialise l’objet TelemetrySessionSettings.

SetPersistedSharedProperty(String, Double)

Définir la propriété partagée persistante pour la session signifie définir la propriété partagée pour le contexte par défaut pour cette session et toutes les sessions futures sur l’ordinateur.

SetPersistedSharedProperty(String, String)

Définir la propriété partagée persistante pour la session signifie définir la propriété partagée pour le contexte par défaut pour cette session et toutes les sessions futures sur l’ordinateur.

SetSharedProperty(String, Object)

Définir la propriété partagée pour la session signifie définir la propriété partagée pour le contexte par défaut que vous souhaitez peut-être prendre en compte TelemetrySettingProperty ou TelemetryMetricProperty Cela permet une expérience de télémétrie plus riche avec des insights supplémentaires fournis par Visual Studio Data Model. Si vous avez des questions concernant VS Data Model, envoyez un e-mail à l’équipe vs Data Model (vsdmcrew@microsoft.com).

Start()

Démarrer une session signifie créer un contexte par défaut pour la session et ajouter des propriétés d’informations privées si elle est autorisée.

ToString()

ToString pour faciliter le débogage : afficher dans la fenêtre de débogage watch

TryAddCommonProperty(String, Object)

Tente d’ajouter une clé et une valeur de propriété uniques qui peuvent être communes à tous les événements de la session, mais qui ne doivent pas avoir le préfixe Context. Les propriétés ne sont pas conservées entre les sessions. Pour ajouter plusieurs propriétés, consultez AddCommonPropertyRange(IDictionary<String,Object>)

TryGetCommonPropertyValue(String, Object)

Obtient la valeur associée au nom de propriété spécifié qui sera commun à tous les événements de la session, mais qui ne doit pas avoir le contexte ou le préfixe réservé.

UnregisterPropertyBag(String)

Annuler l’inscription d’un conteneur de propriétés portant le nom donné.

UseVsIsOptedIn()

Lit et définit vs OptIn status. Calculez les status IsOptedIn en fonction des status OptIn de toutes les versions installées de VS. Si tous les états OptIn trouvés sont true, nous retournons true, sinon nous renvoyons false.

UseVsIsOptedIn(String)

Lit et définit vs OptIn status.

Méthodes d’extension

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

Publie un FaultEvent qui est corrélé avec operation dans session.

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

Publie un FaultEvent qui est corrélé avec operation dans session.

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

Met en file d’attente un événement de télémétrie avec des informations d’indicateurs de ligne de commande avec des propriétés supplémentaires à publier sur le serveur. Seuls les indicateurs de ligne de commande (identifiés par les préfixes donnés) sont inclus.

PostCommandLineFlags(TelemetrySession, String[])

Met en file d’attente un événement de télémétrie avec les informations d’indicateurs de ligne de commande à publier sur le serveur. Seuls les indicateurs de ligne de commande (identifiés par les préfixes donnés) sont inclus.

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

Publier un événement Asset. La ressource est la cible d’une tâche ou d’une opération de l’utilisateur, par exemple Solution, Projet, Fichier, Extension, Licence, Designer.

PostFault(TelemetrySession, String, String)

Publier un événement d’erreur. L’événement est toujours envoyé à AppInsights, mais s’il réussit l’échantillonnage, il est également publié sur Wason. Elle devient plus utile lorsqu’elle est corrélée avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

PostFault(TelemetrySession, String, String, FaultSeverity)

Publier un événement d’erreur. L’événement est toujours envoyé à AppInsights, mais s’il réussit l’échantillonnage, il est également publié sur Wason. Elle devient plus utile lorsqu’elle est corrélée avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

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

Publiez un événement d’erreur avec un objet Exception managé. Les paramètres de compartiment sont créés à partir de l’objet exception. Elle devient plus utile lorsqu’elle est corrélée avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

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

Publiez un événement d’erreur avec un objet d’exception et un rappel. Le rappel peut être utilisé pour calculer les données coûteuses à envoyer au back-end Watson, telles que les piles d’appels JScript, etc. Il devient plus utile lorsqu’il est corrélé avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

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

Publiez un événement d’erreur avec un objet d’exception et un rappel. Le rappel peut être utilisé pour calculer les données coûteuses à envoyer au back-end Watson, telles que les piles d’appels JScript, etc. Il devient plus utile lorsqu’il est corrélé avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

PostFault(TelemetrySession, String, String, Exception)

Publiez un événement d’erreur avec un objet Exception managé. Les paramètres de compartiment sont créés à partir de l’objet exception. Elle devient plus utile lorsqu’elle est corrélée avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

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

Publiez un événement d’erreur avec un objet d’exception et un rappel. Le rappel peut être utilisé pour calculer les données coûteuses à envoyer au back-end Watson, telles que les piles d’appels JScript, etc. Il devient plus utile lorsqu’il est corrélé avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

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

Publiez un événement d’erreur avec un objet d’exception et un rappel. Le rappel peut être utilisé pour calculer les données coûteuses à envoyer au back-end Watson, telles que les piles d’appels JScript, etc. Il devient plus utile lorsqu’il est corrélé avec UserTaskEvent ou OperationEvent qui peut avoir conduit à l’occurrence de l’erreur.

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

Publier un événement Operation. Une opération effectue un certain travail dans l’application et est fournie avec un résultat (par exemple, Réussite, Échec). Si l’opération est appelée directement par l’utilisateur, utilisez UserTaskEvent ou les méthodes associées. Voici quelques exemples d’opérations : case activée de licence, chargement de package, chargement de la disposition des fenêtres.

Cette méthode est utilisée pour l’opération atomique qui s’exécute très rapidement ou qui a peu de valeur pour analyser la durée du processus. L’appelant appelle cette méthode lorsque l’opération est terminée. Pour les opérations asynchrones ou d’exécution de longue durée, pour comprendre ce qui s’est passé pendant le temps ou suivre si elle se termine partiellement en raison d’une erreur, utilisez la méthode StartOperation(TelemetrySession, String) qui effectue le suivi des points de début et de fin.

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

Publier un événement pour une tâche utilisateur. Une tâche utilisateur est une opération d’application qui est APPELÉE PAR L’UTILISATEUR directement et qui est fournie avec le résultat (par exemple, Réussite, Échec). Il est utilisé pour l’analyse du comportement/intention de l’utilisateur. L’utilisateur est au courant de l’opération et peut s’exécuter. Par exemple, Ouvrir le projet et Afficher les fenêtres de l’outil sont des tâches utilisateur ; au lieu de cela, chargez le package VS et la génération au moment de la conception sont des opérations.

Cette méthode est utilisée pour la tâche utilisateur atomique qui s’exécute très rapidement ou qui a peu de valeur pour analyser la durée du processus. L’appelant appelle cette méthode lorsque la tâche de l’utilisateur est terminée. Pour une tâche utilisateur de longue durée ou asynchrone, pour comprendre ce qui s’est passé pendant le temps ou suivre si elle se termine partiellement en raison d’une erreur, utilisez la méthode StartUserTask(TelemetrySession, String) qui effectue le suivi des points de début et de fin.

StartOperation(TelemetrySession, String)

Démarrez l’opération de suivi en publiant un OperationEvent au début du travail de l’opération, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre OperationEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

StartOperation(TelemetrySession, String, TelemetryScopeSettings)

Démarrez l’opération de suivi en publiant un OperationEvent avec les propriétés spécifiées au début du travail de l’opération, puis retournez un TelemetryScope<T> objet . Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre OperationEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

StartOperation(TelemetrySession, String, TelemetrySeverity)

Démarrez l’opération de suivi en publiant un OperationEvent au début du travail de l’opération, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre OperationEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

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

Démarrez l’opération de suivi en publiant un OperationEvent avec les propriétés spécifiées au début du travail de l’opération, puis retournez un TelemetryScope<T> objet . Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre OperationEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

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

Démarrez l’opération de suivi en publiant un OperationEvent avec les propriétés spécifiées au début du travail de l’opération, puis retournez un TelemetryScope<T> objet . Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre OperationEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

StartUserTask(TelemetrySession, String)

Démarrez le suivi de la tâche utilisateur en publiant un UserTaskEvent au début du travail de la tâche utilisateur, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre UserTaskEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

StartUserTask(TelemetrySession, String, TelemetryScopeSettings)

Démarrez le suivi de la tâche utilisateur en publiant un UserTaskEvent avec les propriétés spécifiées au début du travail de la tâche utilisateur, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre UserTaskEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

StartUserTask(TelemetrySession, String, TelemetrySeverity)

Démarrez le suivi de la tâche utilisateur en publiant un UserTaskEvent au début du travail de la tâche utilisateur, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre UserTaskEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

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

Démarrez le suivi de la tâche utilisateur en publiant un UserTaskEvent avec les propriétés spécifiées au début du travail de la tâche utilisateur, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre UserTaskEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

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

Démarrez le suivi de la tâche utilisateur en publiant un UserTaskEvent avec les propriétés spécifiées au début du travail de la tâche utilisateur, puis retournez un TelemetryScope<T> objet. Une fois la tâche utilisateur terminée, appelez la méthode End(TelemetryResult, String) pour en publier une autre UserTaskEvent pour le point de terminaison. Étant donné que le même nom d’événement est utilisé par les événements de début et de fin, n’utilisez pas Start ou End dans le nom de l’événement.

S’applique à