TelemetrySession Classe

Definizione

Rappresenta una sessione di telemetria in grado di pubblicare eventi di telemetria e proprietà di sessione. L'API fa il massimo sforzo per distribuire i dati di telemetria al server. Le richieste vengono accodate e inviate in batch. Gli eventi verranno salvati in locale se non possono essere inviati prima dell'uscita del processo. L'invio riprenderà quando l'istanza dell'applicazione successiva chiama l'API di telemetria. La telemetria può essere persa in caso di mancata risposta del processo o arresto anomalo anomalo o nessuna connessione Internet per 30 giorni. Tutti i metodi sono thread-safe e restituiscono immediatamente.

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
Ereditarietà

Costruttori

TelemetrySession(String)

Crea una nuova sessione di telemetria basata su una stringa serializzata di un'istanza di TelemetrySessionSettings. Usare il metodo SerializeSettings di un'istanza di TelemetrySession per ottenere una stringa di questo tipo. Ciò consente a un processo di pubblicare eventi in una sessione di telemetria da un altro processo. Usare VSTelemetryService.DefaultSession per accedere alla sessione dell'applicazione.

Campi

DefaultContextName

Nome di contesto predefinito.

ValueNotAvailable

Costante per il valore che non è disponibile.

Proprietà

AppId

Ottiene o imposta l'ID applicazione per SQ

BucketFiltersToAddDumpsToFaults

Ottiene o imposta un valore che indica per quali bucket devono essere aggiunti dump di processo per gli eventi di errore.

BucketFiltersToEnableWatsonForFaults

Ottiene o imposta un valore che indica per quali bucket devono essere abilitati i report di Watson per gli eventi di errore.

CalculatedSamplings

Ottiene/Imposta il campionamento calcolato dal file manifesto

CancellationToken

Ottiene l'annullamento della sessione di telemetriaToken

CanCollectPrivateInformation

Ottiene un valore che indica se la sessione corrente può raccogliere informazioni personali in base alla risposta da User Information Manager

GlobalStorageUri

Ottiene l'URI di archiviazione globale da VS Code

HostName

Ottiene o imposta il nome host di telemetria, influisce sul percorso del file manifesto

IsDisposed

Ottiene un valore che indica se la sessione è deposata: per rilevare le chiamate ridondanti

(Ereditato da TelemetryDisposableObject)
IsOptedIn

Ottiene o imposta un valore che indica se l'utente è esplicito.

IsUserMicrosoftInternal

Ottiene un valore che indica se la sessione corrente appartiene all'utente interno, pertanto può raccogliere informazioni in base alla risposta da User Information Manager

MacAddressHash

Ottiene l'hash dell'indirizzo MAC. Se l'hash non viene trovato nell'archiviazione locale, verrà restituito un hash 0 e verrà richiamato il processo di hashing

MachineId

Ottiene l'ID computer (ID computer SQ)

SessionId

Ottiene l'ID sessione.

TimeSinceSessionStart

Ottiene TimeSinceSessionStart nel caso in cui i clienti vogliano usarli per calcolare ritardi personalizzati in base allo stesso algoritmo Telemetry.

UserId

Ottiene l'ID utente (ID utente SQ)

Metodi

AddCommonPropertyRange(IDictionary<String,Object>)

Aggiungere proprietà comuni a tutti gli eventi per la sessione, ma non deve avere il prefisso Default.Context. Le proprietà non vengono mantenute tra sessioni. Per aggiungere una singola proprietà, vedere TryAddCommonProperty(String, Object)

AddSessionChannel(ISessionChannel)

Aggiungere un nuovo canale di sessione all'elenco di canali attivi.

CreateContext(String)

Create contesto con il nome specifico.

Dispose()

Questo codice aggiunto per implementare correttamente il modello monouso.

(Ereditato da TelemetryDisposableObject)
DisposeManagedResources()

Implementazione protetta del modello Dispose.

DisposeToNetworkAsync(CancellationToken)

Eliminare in modo asincrono e provare a inviare tutti i dati di telemetria sulla rete.

GetCommonPropertyDictionary()

Ottiene un IDictionary contenente una copia delle chiavi CommonProperty e dei valori attualmente presenti nella sessione.

GetContext(String)

Ottiene un contesto in base al nome specificato.

GetPersistedSharedProperty(String)

Ottenere una proprietà condivisa persistente in base al nome.

GetPropertyBag(String)

Ottiene un contenitore di proprietà in base al nome specificato.

GetSharedProperty(String)

Ottenere la proprietà condivisa in base al nome.

GetSharedPropertyAsObject(String)

Ottenere il valore della proprietà condivisa in base al nome come oggetto.

PostEvent(String)

Accoda un evento di telemetria da pubblicare in un server. Scegliere questo metodo per semplicità se il nome è l'unica proprietà evento. È consigliabile scegliere PostUserTask, PostOperation, PostFault o PostAsset. Queste funzionalità consentono un'esperienza di telemetria più completa con informazioni dettagliate aggiuntive fornite dal modello di dati di Visual Studio. Se il punto dati non è allineato a un'entità vs Data Model, non forzare alcuna associazione e continuare a usare questo metodo. Per eventuali domande sul modello di dati VS, inviare un messaggio di posta elettronica a VS Data Model Crew (vsdmcrew@microsoft.com).

PostEvent(TelemetryEvent)

Accoda un evento di telemetria da pubblicare in un server. Scegliere questo metodo per la flessibilità. È consigliabile scegliere PostUserTask, PostOperation, PostFault o PostAsset. Queste funzionalità consentono un'esperienza di telemetria più completa con informazioni dettagliate aggiuntive fornite dal modello di dati di Visual Studio. Se il punto dati non è allineato a un'entità vs Data Model, non forzare alcuna associazione e continuare a usare questo metodo. Per eventuali domande sul modello di dati VS, inviare un messaggio di posta elettronica a VS Data Model Crew (vsdmcrew@microsoft.com).

PostMetricEvent(TelemetryMetricEvent)

Prepara l'evento della metrica popolando le proprietà delle metriche e quindi pubblica l'evento.

PostProperty(String, Object)

Accoda un aggiornamento a per una proprietà a livello di sessione. È possibile prendere in considerazione TelemetrySettingProperty o TelemetryMetricProperty questi consentiranno un'esperienza di telemetria più completa con informazioni dettagliate aggiuntive fornite dal modello di dati di Visual Studio. Per eventuali domande sul modello di dati VS, inviare un messaggio di posta elettronica a VS Data Model Crew (vsdmcrew@microsoft.com).

PostRecurringProperty(String, Object)

Aggiunge una proprietà da includere nell'evento VS/TelemetryApi/Ricorrente regolarmente ricorrente. A differenza di PostProperty o TelemetryContext.PostProperty, PostRecurringProperty non aggiunge la proprietà specificata a ogni evento. PostRecurringProperty è più utile per i valori costanti per la durata di una TelemetrySession.

RegisterForReliabilityEvent()

Scrive le informazioni sul processo e sulla sessione nel Registro di sistema che viene usato da qualsiasi IDE vs host per tenere traccia e segnalare lo stato di arresto finale di questo processo.

RegisterPropertyBag(String, TelemetryPropertyBag)

Registrare il sacchetto di proprietà specificato.

RemovePersistedSharedProperty(String)

Rimuovere la proprietà condivisa persistente per tutte le sessioni significa rimuovere la proprietà condivisa da questo contesto predefinito e per le sessioni future nel computer.

RemoveSharedProperty(String)

Rimuovere la proprietà condivisa per la sessione significa rimuovere la proprietà condivisa dal contesto predefinito

RequiresNotDisposed()

Questa funzione genera un oggetto ObjectDisposedException se l'oggetto viene eliminato.

(Ereditato da TelemetryDisposableObject)
SerializeSettings()

Serializza l'oggetto TelemetrySessionSettings.

SetPersistedSharedProperty(String, Double)

Impostare la proprietà condivisa persistente per la sessione significa impostare la proprietà condivisa per il contesto predefinito per questa sessione e le sessioni future nel computer.

SetPersistedSharedProperty(String, String)

Impostare la proprietà condivisa persistente per la sessione significa impostare la proprietà condivisa per il contesto predefinito per questa sessione e le sessioni future nel computer.

SetSharedProperty(String, Object)

Impostare la proprietà condivisa per la sessione significa impostare la proprietà condivisa per il contesto predefinito Che si desidera considerare TelemetrySettingProperty o TelemetryMetricProperty Che consentiranno un'esperienza di telemetria più avanzata con informazioni dettagliate aggiuntive fornite da Visual Studio Data Model. Per eventuali domande sul modello di dati VS, inviare un messaggio di posta elettronica a VS Data Model Crew (vsdmcrew@microsoft.com).

Start()

La sessione iniziale significa creare un contesto predefinito per la sessione e aggiungere proprietà di informazioni private se consentite.

ToString()

ToString per semplificare il debug: visualizzare nella finestra di debug watch

TryAddCommonProperty(String, Object)

Tenta di aggiungere una singola chiave di proprietà e un valore comuni a tutti gli eventi per la sessione, ma non deve avere il prefisso Context. Le proprietà non vengono mantenute tra sessioni. Per aggiungere più proprietà, vedere AddCommonPropertyRange(IDictionary<String,Object>)

TryGetCommonPropertyValue(String, Object)

Ottiene il valore associato al nome della proprietà specificato che sarà comune a tutti gli eventi per la sessione, ma non deve avere il contesto o il prefisso riservato.

UnregisterPropertyBag(String)

Annullare la registrazione di un contenitore di proprietà con il nome specificato.

UseVsIsOptedIn()

Legge e imposta lo stato di VS OptIn. Calcolare lo stato isOptedIn in base allo stato OptedIn da tutte le versioni installate di VS. Se tutti gli stati OptedIn trovati sono true, viene restituito true, in caso contrario, viene restituito false.

UseVsIsOptedIn(String)

Legge e imposta lo stato di VS OptIn.

Metodi di estensione

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

Esegue il post di un oggetto FaultEvent correlato a sessionoperation .

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

Esegue il post di un oggetto FaultEvent correlato a sessionoperation .

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

Accoda un evento di telemetria con flag della riga di comando con proprietà aggiuntive da pubblicare nel server. Verranno inclusi solo i flag della riga di comando (identificati dai prefissi specificati).

PostCommandLineFlags(TelemetrySession, String[])

Accoda un evento di telemetria con flag della riga di comando da pubblicare nel server. Verranno inclusi solo i flag della riga di comando (identificati dai prefissi specificati).

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

Pubblicare un evento Asset. Asset è la destinazione dell'attività o dell'operazione dell'utente, ad esempio Soluzione, Progetto, File, Estensione, Licenza, Designer.

PostFault(TelemetrySession, String, String)

Pubblicare un evento fault. L'evento verrà sempre inviato ad AppInsights, ma se supera il campionamento, viene inviato anche a Wason. Diventa più utile se correlato a UserTaskEvent o OperationEvent che può aver causato l'occorrenza dell'errore.

PostFault(TelemetrySession, String, String, FaultSeverity)

Pubblicare un evento fault. L'evento verrà sempre inviato ad AppInsights, ma se supera il campionamento, viene inviato anche a Wason. Diventa più utile se correlato a UserTaskEvent o OperationEvent che può aver causato l'occorrenza dell'errore.

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

Pubblicare un evento di errore con un oggetto Exception gestito. I parametri del bucket vengono creati dall'oggetto eccezione. Diventa più utile se correlato a UserTaskEvent o OperationEvent che può aver causato l'occorrenza dell'errore.

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

Pubblicare un evento di errore con un oggetto eccezione e un callback. Il callback può essere usato per calcolare i dati costosi da inviare al back-end Watson, ad esempio gli stack di chiamate JScript e così via, diventa più utile se correlato a UserTaskEvent o OperationEvent che potrebbe aver causato l'occorrenza dell'errore.

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

Pubblicare un evento di errore con un oggetto eccezione e un callback. Il callback può essere usato per calcolare i dati costosi da inviare al back-end Watson, ad esempio gli stack di chiamate JScript e così via, diventa più utile se correlato a UserTaskEvent o OperationEvent che potrebbe aver causato l'occorrenza dell'errore.

PostFault(TelemetrySession, String, String, Exception)

Pubblicare un evento di errore con un oggetto Exception gestito. I parametri del bucket vengono creati dall'oggetto eccezione. Diventa più utile se correlato a UserTaskEvent o OperationEvent che può aver causato l'occorrenza dell'errore.

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

Pubblicare un evento di errore con un oggetto eccezione e un callback. Il callback può essere usato per calcolare i dati costosi da inviare al back-end Watson, ad esempio gli stack di chiamate JScript e così via, diventa più utile se correlato a UserTaskEvent o OperationEvent che potrebbe aver causato l'occorrenza dell'errore.

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

Pubblicare un evento di errore con un oggetto eccezione e un callback. Il callback può essere usato per calcolare i dati costosi da inviare al back-end Watson, ad esempio gli stack di chiamate JScript e così via, diventa più utile se correlato a UserTaskEvent o OperationEvent che potrebbe aver causato l'occorrenza dell'errore.

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

Pubblicare un evento Operation. Un'operazione esegue alcune operazioni nell'applicazione e viene restituito il risultato (ad esempio, Operazione riuscita, Errore). Se l'operazione viene richiamata direttamente dall'utente, usare UserTaskEvent o metodi correlati. Alcuni esempi di operazioni sono il controllo delle licenze, il caricamento del pacchetto, il caricamento del layout di Windows.

Questo metodo viene usato per l'operazione atomica che viene eseguita molto velocemente o ha un valore minimo per analizzare la durata del processo. Il chiamante chiama questo metodo al termine dell'operazione. Per l'esecuzione prolungata o l'operazione asincrona, per comprendere cos'altro è accaduto durante il tempo o tenere traccia del completamento parziale a causa di un errore, usare il metodo StartOperation(TelemetrySession, String) che tiene traccia sia dei punti di inizio che di fine.

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

Pubblicare un evento per l'attività utente. Un'attività utente è un'operazione dell'applicazione richiamata direttamente dall'utente e viene restituita come risultato(ad esempio, operazione riuscita, errore). Viene usato per l'analisi del comportamento o della finalità dell'utente. L'utente è a conoscenza dell'operazione e può essere eseguito. Ad esempio, aprire il progetto e mostrare le finestre degli strumenti sono attività utente; Caricare invece il pacchetto VS e la compilazione in fase di progettazione sono operazioni.

Questo metodo viene usato per l'attività utente atomica che viene eseguita molto velocemente o ha un valore minimo per analizzare la durata del processo. Il chiamante chiama questo metodo al termine dell'attività utente. Per l'esecuzione prolungata o l'attività utente asincrona, per comprendere cos'altro è accaduto durante il tempo o tenere traccia del completamento parziale a causa di un errore, usare il metodo StartUserTask(TelemetrySession, String) che tiene traccia sia dei punti di inizio che di fine.

StartOperation(TelemetrySession, String)

Avviare l'operazione di rilevamento pubblicando un OperationEvent oggetto all'inizio del lavoro dell'operazione e restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro OperationEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

StartOperation(TelemetrySession, String, TelemetryScopeSettings)

Avviare l'operazione di rilevamento pubblicando un OperationEvent oggetto con le proprietà specificate all'inizio del lavoro dell'operazione e restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro OperationEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

StartOperation(TelemetrySession, String, TelemetrySeverity)

Avviare l'operazione di rilevamento pubblicando un OperationEvent oggetto all'inizio del lavoro dell'operazione e restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro OperationEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

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

Avviare l'operazione di rilevamento pubblicando un OperationEvent oggetto con le proprietà specificate all'inizio del lavoro dell'operazione e restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro OperationEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

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

Avviare l'operazione di rilevamento pubblicando un OperationEvent oggetto con le proprietà specificate all'inizio del lavoro dell'operazione e restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro OperationEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

StartUserTask(TelemetrySession, String)

Iniziare a tenere traccia dell'attività utente pubblicando un UserTaskEvent oggetto all'inizio del lavoro dell'attività utente e quindi restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro UserTaskEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

StartUserTask(TelemetrySession, String, TelemetryScopeSettings)

Avviare il rilevamento dell'attività utente pubblicando un UserTaskEvent oggetto con le proprietà specificate all'inizio del lavoro dell'attività utente e quindi restituire un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro UserTaskEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

StartUserTask(TelemetrySession, String, TelemetrySeverity)

Iniziare a tenere traccia dell'attività utente pubblicando un UserTaskEvent oggetto all'inizio del lavoro dell'attività utente e quindi restituendo un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro UserTaskEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

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

Avviare il rilevamento dell'attività utente pubblicando un UserTaskEvent oggetto con le proprietà specificate all'inizio del lavoro dell'attività utente e quindi restituire un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro UserTaskEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

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

Avviare il rilevamento dell'attività utente pubblicando un UserTaskEvent oggetto con le proprietà specificate all'inizio del lavoro dell'attività utente e quindi restituire un TelemetryScope<T> oggetto . Al termine dell'attività utente, chiamare il metodo End(TelemetryResult, String) per pubblicare un altro UserTaskEvent oggetto per l'endpoint. Poiché lo stesso nome dell'evento viene usato dagli eventi di inizio e di fine, non usare il nome dell'evento Start o End.

Si applica a