TelemetrySession Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma sessão de telemetria que pode postar eventos de telemetria e propriedades de sessão. A API faz o melhor esforço para fornecer dados de telemetria para o servidor. As solicitações são enfileiradas e enviadas em lotes. Os eventos serão salvos localmente se não puderem ser enviados antes da saída do processo. O envio será retomado quando a próxima instância do aplicativo chamar a API de telemetria. A telemetria pode ser perdida em caso de falta de resposta do processo ou falha fatal ou nenhuma conexão com a Internet por 30 dias. Todos os métodos são thread-safe e retornam imediatamente.
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
- Herança
Construtores
TelemetrySession(String) |
Cria uma nova sessão de telemetria com base em uma cadeia de caracteres serializada de uma instância de TelemetrySessionSettings. Use o método SerializeSettings de uma instância de TelemetrySession para obter essa cadeia de caracteres. Isso permite que um processo poste eventos em uma sessão de telemetria de outro processo. Use VSTelemetryService.DefaultSession para acessar a sessão do aplicativo. |
Campos
DefaultContextName |
Nome de contexto padrão. |
ValueNotAvailable |
Constante para o valor que não está disponível. |
Propriedades
AppId |
Obtém ou define a ID do aplicativo para SQM |
BucketFiltersToAddDumpsToFaults |
Obtém ou define um valor que indica para quais buckets os despejos de processo devem ser adicionados para eventos de falha. |
BucketFiltersToEnableWatsonForFaults |
Obtém ou define um valor que indica para quais buckets os relatórios do Watson devem ser habilitados para eventos de falha. |
CalculatedSamplings |
Obtém/define a amostragem calculada do arquivo de manifesto |
CancellationToken |
Obtém CancellationToken da Sessão de Telemetria |
CanCollectPrivateInformation |
Obtém um valor que indica se a sessão atual pode coletar informações de PII com base na resposta do Gerenciador de Informações do Usuário |
GlobalStorageUri |
Obtém o URI de armazenamento global do VS Code |
HostName |
Obtém ou define o nome do host de telemetria, ele afeta no local do arquivo de manifesto |
IsDisposed |
Obtém um valor que indica se a sessão é deposta – para detectar chamadas redundantes (Herdado de TelemetryDisposableObject) |
IsOptedIn |
Obtém ou define um valor que indica se o usuário é aceito. |
IsUserMicrosoftInternal |
Obtém um valor que indica se a sessão atual pertence ao usuário interno, portanto, pode coletar informações com base na resposta do Gerenciador de Informações do Usuário |
MacAddressHash |
Obtém o hash de endereço MAC. Se o hash não for encontrado no armazenamento local, um hash 0 será retornado e o processo de hash será invocado |
MachineId |
Obtém a ID do computador (ID do computador SQM) |
SessionId |
Obtém a ID da sessão. |
TimeSinceSessionStart |
Obtém TimeSinceSessionStart caso os clientes desejem usá-lo para calcular atrasos personalizados com base no mesmo algoritmo que a Telemetria faz. |
UserId |
Obtém id de usuário (ID de usuário do SQM) |
Métodos
AddCommonPropertyRange(IDictionary<String,Object>) |
Adicione propriedades que podem ser comuns a todos os eventos da sessão, mas não devem ter o prefixo Default.Context. As propriedades não são persistentes entre as sessões. Para adicionar uma única propriedade, consulte TryAddCommonProperty(String, Object) |
AddSessionChannel(ISessionChannel) |
Adicione um novo canal de sessão à lista de canais ativos. |
CreateContext(String) |
Create contexto com o nome específico. |
Dispose() |
Esse código foi adicionado para implementar corretamente o padrão descartável. (Herdado de TelemetryDisposableObject) |
DisposeManagedResources() |
Implementação protegida do padrão Dispose. |
DisposeToNetworkAsync(CancellationToken) |
Descarte de forma assíncrona e tente enviar toda a telemetria pela rede. |
GetCommonPropertyDictionary() |
Obtém um IDictionary que contém uma cópia das chaves e valores CommonProperty atualmente na sessão. |
GetContext(String) |
Obtém um contexto pelo nome fornecido. |
GetPersistedSharedProperty(String) |
Obter propriedade compartilhada persistente por nome. |
GetPropertyBag(String) |
Obtém um recipiente de propriedades pelo nome fornecido. |
GetSharedProperty(String) |
Obter propriedade compartilhada por nome. |
GetSharedPropertyAsObject(String) |
Obtenha o valor da propriedade compartilhada por nome como um objeto . |
PostEvent(String) |
Enfileira um evento de telemetria a ser postado em um servidor. Escolha esse método para simplificar se o nome for a única propriedade de evento. Você deve considerar escolher PostUserTask, PostOperation, PostFault ou PostAsset. Isso permitirá uma experiência de telemetria mais avançada com insights adicionais fornecidos pelo Visual Studio Data Model. Se o ponto de dados não se alinhar com nenhuma entidade vs data model, não force nenhuma associação e continue a usar esse método. Se você tiver dúvidas sobre o VS Data Model, envie um email para a Equipe de Modelo de Dados do VS (vsdmcrew@microsoft.com). |
PostEvent(TelemetryEvent) |
Enfileira um evento de telemetria a ser postado em um servidor. Escolha este método para obter flexibilidade. Você deve considerar escolher PostUserTask, PostOperation, PostFault ou PostAsset. Isso permitirá uma experiência de telemetria mais avançada com insights adicionais fornecidos pelo Visual Studio Data Model. Se o ponto de dados não se alinhar com nenhuma entidade vs data model, não force nenhuma associação e continue a usar esse método. Se você tiver dúvidas sobre o VS Data Model, envie um email para a Equipe de Modelo de Dados do VS (vsdmcrew@microsoft.com). |
PostMetricEvent(TelemetryMetricEvent) |
Prepara o evento de métrica preenchendo as propriedades da métrica e, em seguida, posta o evento. |
PostProperty(String, Object) |
Enfileira uma atualização para para uma propriedade de toda a sessão. Talvez você queira considerar TelemetrySettingProperty ou TelemetryMetricProperty Eles habilitarão uma experiência de telemetria mais avançada com insights adicionais fornecidos pelo Visual Studio Data Model. Se você tiver dúvidas sobre o VS Data Model, envie um email para a Equipe de Modelo de Dados do VS (vsdmcrew@microsoft.com). |
PostRecurringProperty(String, Object) |
Adiciona uma propriedade a ser incluída no evento VS/TelemetryApi/RecurringProperties regularmente recorrente. Ao contrário de PostProperty ou TelemetryContext.PostProperty, PostRecurringProperty não adiciona a propriedade fornecida a cada evento. PostRecurringProperty é mais útil para valores que são constantes para o tempo de vida de uma TelemetrySession. |
RegisterForReliabilityEvent() |
Grava informações de processo e sessão no registro que é usado por qualquer VS IDE de host para rastrear e relatar o desligamento final status desse processo. |
RegisterPropertyBag(String, TelemetryPropertyBag) |
Registre o recipiente de propriedades especificado. |
RemovePersistedSharedProperty(String) |
Remover a propriedade compartilhada persistente para todas as sessões significa remover a propriedade compartilhada desse contexto padrão e para sessões futuras no computador. |
RemoveSharedProperty(String) |
Remover propriedade compartilhada para a sessão significa remover a propriedade compartilhada do contexto padrão |
RequiresNotDisposed() |
Essa função gerará um ObjectDisposedException se o objeto for descartado. (Herdado de TelemetryDisposableObject) |
SerializeSettings() |
Serializa o objeto TelemetrySessionSettings. |
SetPersistedSharedProperty(String, Double) |
Definir a propriedade compartilhada persistente para a sessão significa definir a propriedade compartilhada para o contexto padrão para esta sessão e quaisquer sessões futuras no computador. |
SetPersistedSharedProperty(String, String) |
Definir a propriedade compartilhada persistente para a sessão significa definir a propriedade compartilhada para o contexto padrão para esta sessão e quaisquer sessões futuras no computador. |
SetSharedProperty(String, Object) |
Definir propriedade compartilhada para a sessão significa definir propriedade compartilhada para o contexto padrão Você pode querer considerar TelemetrySettingProperty ou TelemetryMetricProperty Eles habilitarão uma experiência de telemetria mais avançada com insights adicionais fornecidos pelo Visual Studio Data Model. Se você tiver dúvidas sobre o VS Data Model, envie um email para a Equipe de Modelo de Dados do VS (vsdmcrew@microsoft.com). |
Start() |
Iniciar sessão significa criar contexto padrão para a sessão e adicionar propriedades de informações privadas se ela for permitida. |
ToString() |
ToString para facilitar a depuração: mostrar na janela watch de depuração |
TryAddCommonProperty(String, Object) |
Tenta adicionar uma única chave de propriedade e um valor que podem ser comuns a todos os eventos da sessão, mas não devem ter o prefixo Context. As propriedades não são persistentes entre as sessões. Para adicionar várias propriedades, consulte AddCommonPropertyRange(IDictionary<String,Object>) |
TryGetCommonPropertyValue(String, Object) |
Obtém o valor associado ao nome da propriedade especificado que será comum a todos os eventos da sessão, mas não deve ter o contexto ou o prefixo reservado. |
UnregisterPropertyBag(String) |
Cancele o registro de um recipiente de propriedades com o nome fornecido. |
UseVsIsOptedIn() |
Lê e define status do VS OptIn. Calcule IsOptedIn status com base no status OptedIn de todas as versões instaladas do VS. Se todos os status optedIn encontrados forem verdadeiros, retornaremos true, caso contrário, retornaremos false. |
UseVsIsOptedIn(String) |
Lê e define status do VS OptIn. |
Métodos de Extensão
PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Posta um FaultEvent que está correlacionado com |
PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, Exception, Func<IFaultUtility,Int32>) |
Posta um FaultEvent que está correlacionado com |
PostCommandLineFlags(TelemetrySession, IEnumerable<String>, IDictionary<String,Object>) |
Enfileira um evento de telemetria com informações de sinalizadores de linha de comando com propriedades adicionais a serem postadas no servidor. Somente sinalizadores de linha de comando (identificados pelos prefixos especificados) serão incluídos. |
PostCommandLineFlags(TelemetrySession, String[]) |
Enfileira um evento de telemetria com as informações de sinalizadores de linha de comando a serem postadas no servidor. Somente sinalizadores de linha de comando (identificados pelos prefixos especificados) serão incluídos. |
PostAsset(TelemetrySession, String, String, Int32, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Postar um evento Asset. O ativo é o destino da tarefa ou operação do usuário, por exemplo, Solução, Projeto, Arquivo, Extensão, Licença Designer. |
PostFault(TelemetrySession, String, String) |
Postar um evento fault. O evento sempre será enviado para o AppInsights, mas, se passar na amostragem, ele também será postado em Wason. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, FaultSeverity) |
Postar um evento fault. O evento sempre será enviado para o AppInsights, mas, se passar na amostragem, ele também será postado em Wason. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, FaultSeverity, Exception) |
Postar um evento de falha com um objeto Exception gerenciado. Os parâmetros de bucket são criados com base no objeto de exceção. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Poste um evento de falha com um objeto de exceção e um retorno de chamada. O retorno de chamada pode ser usado para calcular dados caros a serem enviados para o back-end do Watson, como pilhas de chamadas JScript etc. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[]) |
Poste um evento de falha com um objeto de exceção e um retorno de chamada. O retorno de chamada pode ser usado para calcular dados caros a serem enviados para o back-end do Watson, como pilhas de chamadas JScript etc. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, Exception) |
Postar um evento de falha com um objeto Exception gerenciado. Os parâmetros de bucket são criados com base no objeto de exceção. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>) |
Poste um evento de falha com um objeto de exceção e um retorno de chamada. O retorno de chamada pode ser usado para calcular dados caros a serem enviados para o back-end do Watson, como pilhas de chamadas JScript etc. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[]) |
Poste um evento de falha com um objeto de exceção e um retorno de chamada. O retorno de chamada pode ser usado para calcular dados caros a serem enviados para o back-end do Watson, como pilhas de chamadas JScript etc. Ele se torna mais útil quando correlacionado com UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
PostOperation(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[]) |
Postar um evento de Operação. Uma operação executa algum trabalho no aplicativo e vem com o resultado (por exemplo, Êxito, Falha). Se a operação for invocada diretamente pelo usuário, use UserTaskEvent os métodos relacionados ou . Alguns exemplos de operações são, marcar de licença, carregamento de pacote, carregamento de layout do Windows. Esse método é usado para a operação atômica que é executada muito rápido ou tem pouco valor para analisar a duração do processo. O chamador chama esse método quando a operação é concluída. Para uma operação assíncrona ou de execução longa, a fim de entender o que mais aconteceu durante o tempo ou acompanhar se ela é parcialmente concluída devido a um erro, use o método StartOperation(TelemetrySession, String) que rastreia os pontos inicial e final. |
PostUserTask(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[]) |
Postar um evento para a tarefa do usuário. Uma tarefa de usuário é uma operação de aplicativo que é INVOCADA PELO USUÁRIO diretamente e vem com o resultado (por exemplo, Êxito, Falha). Ele é usado para análise de comportamento/intenção do usuário. O usuário está ciente da operação e pode executar. por exemplo, Abrir projeto e Mostrar janelas de ferramentas são tarefas do usuário; Em vez disso, carregue o pacote vs e o build de tempo de design são operações. Esse método é usado para a tarefa de usuário atômica que é executada muito rápido ou tem pouco valor para analisar a duração do processo. O chamador chama esse método quando a tarefa do usuário é concluída. Para uma tarefa de usuário de longa execução ou assíncrona, a fim de entender o que mais aconteceu durante o tempo ou acompanhar se ela é parcialmente concluída devido a um erro, use o método StartUserTask(TelemetrySession, String) que rastreia os pontos inicial e final. |
StartOperation(TelemetrySession, String) |
Inicie a operação de acompanhamento postando um OperationEvent no início do trabalho de operação e retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro OperationEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartOperation(TelemetrySession, String, TelemetryScopeSettings) |
Inicie a operação de acompanhamento postando um OperationEvent com propriedades especificadas no início do trabalho de operação e retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro OperationEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartOperation(TelemetrySession, String, TelemetrySeverity) |
Inicie a operação de acompanhamento postando um OperationEvent no início do trabalho de operação e retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro OperationEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>) |
Inicie a operação de acompanhamento postando um OperationEvent com propriedades especificadas no início do trabalho de operação e retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro OperationEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Inicie a operação de acompanhamento postando um OperationEvent com propriedades especificadas no início do trabalho de operação e retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro OperationEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartUserTask(TelemetrySession, String) |
Comece a acompanhar a tarefa do usuário postando um UserTaskEvent no início do trabalho da tarefa do usuário e, em seguida, retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro UserTaskEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartUserTask(TelemetrySession, String, TelemetryScopeSettings) |
Comece a acompanhar a tarefa do usuário postando um UserTaskEvent com propriedades especificadas no início do trabalho da tarefa do usuário e, em seguida, retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro UserTaskEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartUserTask(TelemetrySession, String, TelemetrySeverity) |
Comece a acompanhar a tarefa do usuário postando um UserTaskEvent no início do trabalho da tarefa do usuário e, em seguida, retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro UserTaskEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>) |
Comece a acompanhar a tarefa do usuário postando um UserTaskEvent com propriedades especificadas no início do trabalho da tarefa do usuário e, em seguida, retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro UserTaskEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |
StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Comece a acompanhar a tarefa do usuário postando um UserTaskEvent com propriedades especificadas no início do trabalho da tarefa do usuário e, em seguida, retorne um TelemetryScope<T> objeto . Quando a tarefa do usuário for concluída, chame o método End(TelemetryResult, String) para postar outro UserTaskEvent para o ponto de extremidade. Como o mesmo nome de evento é usado por eventos de início e término, não use Start ou End no nome do evento. |