FaultEvent 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.
Um evento de telemetria que representa uma falha, como uma exceção, temos dois back-ends para enviar dados: o back-end de telemetria e o Watson (back-end). Entre plataformas, (como no Mac, Linux), podemos usar a mesma arquitetura. Por exemplo, no Mac, há MERP, a implementação máxima de Relatório de Erros do Windows. FaultEvent herda de TelemetryEvent usuário pode criar uma instância dessa classe diretamente e pode adicionar propriedades personalizadas diretamente na classe sem usar retorno de chamada. Depois de criar um deles, chame Session. post Fault (faultEvent) que chamará o retorno de chamada, poste o evento para Watson (se amostra) e poste como um evento de telemetria normal ou você pode usar TelemetrySession. post Fault () em vez dessa classe diretamente.
public ref class FaultEvent sealed : Microsoft::VisualStudio::Telemetry::TelemetryEvent, Microsoft::VisualStudio::Telemetry::IFaultUtility
public sealed class FaultEvent : Microsoft.VisualStudio.Telemetry.TelemetryEvent, Microsoft.VisualStudio.Telemetry.IFaultUtility
type FaultEvent = class
inherit TelemetryEvent
interface IFaultUtility
Public NotInheritable Class FaultEvent
Inherits TelemetryEvent
Implements IFaultUtility
- Herança
- Implementações
Construtores
| FaultEvent(String, String, Exception, Func<IFaultUtility,Int32>) |
Crie um FaultEvent de severidade Não categorizado. O padrão: 1. FEvent = New FaultEvent (...) 2. tsession. FEvent (abevent)//Posts o evento para os usuários externos Watson e ia devem chamar os métodos de extensão TelemetrySession "getfault" (que chama o evento de falha) se torna mais útil quando correlacionado ao UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
| FaultEvent(String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Crie um FaultEvent. O padrão: 1. FEvent = New FaultEvent (...) 2. tsession. FEvent (abevent)//Posts o evento para os usuários externos Watson e ia devem chamar os métodos de extensão TelemetrySession "getfault" (que chama o evento de falha) se torna mais útil quando correlacionado ao UserTaskEvent ou OperationEvent que pode ter levado à ocorrência de falha. |
Campos
| BucketFiltersToAddProcessDump |
Obtém ou define os filtros usados para adicionar despejos de processo a eventos de falha que correspondem a um determinado conjunto de parâmetros de Bucket. |
| BucketFiltersToDisableWatsonReport |
Obtém ou define os filtros usados para desabilitar relatórios Watson para eventos de falha que correspondem a um determinado conjunto de parâmetros de Bucket. |
Propriedades
| Correlation |
Obtém a correlação deste evento. Ele representa esse evento quando correlacionado a outros eventos. (Herdado de TelemetryEvent) |
| DataSource |
Obtém a fonte de dados. (Herdado de TelemetryEvent) |
| DumpCollectionType |
Obtém ou define o tipo de despejo que é criado para AddProcessDump e enviado para o Watson AddProcessDump indica quais processos serão despejados e DumpCollectionType determina o tipo de despejo para obter um despejo de heap completo, defina esse valor como WER_DUMP_TYPE. WerDumpTypeHeapDump. por exemplo, (EV as FaultEvent). DumpCollectionType = WER_DUMP_TYPE. WerDumpTypeHeapDump; Outra maneira de definir essa propriedade é adicionar uma propriedade de telemetria normal no recipiente de propriedades TelemetryEvent, por exemplo, faultEvent. Properties ["DUMPCOLLECTIONTYPE"] = "werdumptypeheapdump"; funciona de código nativo, usa enum. Parse não diferencia maiúsculas de minúsculas. A configuração do recipiente de Propriedades (utilizável do código nativo) substituirá a configuração da propriedade (que é muito mais detectável no IntelliSense) ao chamar TelemetrySession. CreateEvent (faultEvent), WerReportAddDump é chamado para cada processo no AddProcesDump com o DumpCollectionType especificado. Todos os processos despejados terão o mesmo DumpCollectionType você poderá controlar o tipo de despejo (e até mesmo se deseja enviar um despejo) por meio de configurações remotas em seu retorno de chamada do GatherEventDetails muito útil para coletar despejos de heap para esses casos raros que são muito difíceis de depurar. Depois que o problema for corrigido, as configurações remotas poderão desativar essa opção. O padrão é WER_DUMP_TYPE. WerDumpTypeMiniDump |
| EventSchemaVersion |
Obtém a versão do esquema para este evento. (Herdado de TelemetryEvent) |
| EventType |
Obtém o tipo de evento para este evento (Herdado de TelemetryEvent) |
| HasProperties |
Obtém um valor que indica se as propriedades já foram criadas. (Herdado de TelemetryEvent) |
| IsIncludedInWatsonSample |
Obtém ou define um valor que indica se é possível exemplificar esse evento localmente. Afeta somente Watson. Se for false, não enviará para Watson: envia apenas o evento de telemetria para ia e não chama o retorno de chamada. Alterar isso forçará o evento a enviar para o Watson. Tenha cuidado porque ele pode ter um grande impacto no desempenho. Se não alterado, ele será definido de acordo com a taxa de amostragem padrão. Veja Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.DefaultWatsonSamplePercent |
| IsOptOutFriendly |
Obtém ou define um valor que indica se o evento é amigável para a sessão de optou. Por padrão, é false. Se for mais amigável, ele passará apenas com as propriedades específicas do evento. Esse comportamento pode ser alterado por regras de manifesto. (Herdado de TelemetryEvent) |
| MaximumWatsonReportsPerSession |
Obtém ou define o número máximo de eventos de falha que serão relatados ao Watson durante a sessão de telemetria. |
| MinimumSecondsBetweenWatsonReports |
Obtém ou define o número mínimo de segundos que devem decorrer depois que um relatório Watson é enviado para um evento de falha antes que outro relatório possa ser enviado. |
| Name |
Obtém o nome do evento atual (Herdado de TelemetryEvent) |
| Properties |
Obtém um dicionário de propriedades de evento. As propriedades são dimensões pelas quais os dados agregados podem ser segmentados por. A chave é um nome de propriedade que é exclusivo, não nulo e não vazio. O valor é qualquer objeto que representa um valor de propriedade. Os canais de telemetria devem usar o valor. ToString (CultureInfo. InvariantCulture) para enviar o valor a um servidor como uma cadeia de caracteres. (Herdado de TelemetryEvent) |
| Severity |
Obtém ou define um nível de severidade do evento. O nível é usado para o consumidor de eventos (por exemplo, provedor de ETW, relatórios de back-end) para organizar os dados com mais facilidade. (Herdado de TelemetryEvent) |
| SharedPropertyBags |
Obtém pacotes de propriedades compartilhadas (Herdado de TelemetryEvent) |
| SynchronousDumpCollection |
Obtém ou define um valor que indica se capturamos o arquivo de despejo de forma síncrona ou no ThreadPool. Se estivermos coletando um despejo devido à privação do ThreadPool, não queremos usar o ThreadPool para coletar o despejo (o ThreadPool fica sem memória e, quando o código de despejo é executado, o pool é esvaziado) |
| WatsonEventType |
Obtém ou define se deve ser um tipo de evento registrado no back-end do Watson como "VisualStudioNonFatalErrors2". Todos os FaultEvents "normais" devem ir para VisualStudioNonFatalErrors2 vários tipos de eventos Watson se comportam de forma diferente. Por exemplo, o # e a política de retenção do táxi coletado, o roteamento de cabs. por exemplo, "VisualStudioMemWatson" é usado para coletar um fluxo de cabs a ser processado pelo back-end PerfWatson. Esses eventos podem ser consultados de http://Watson . |
| WatsonSamplePercent |
Obtém ou define a taxa de amostra usada para calcular se um evento de falha qualificado será relatado para o Watson. Um evento de falha é qualificado para relatar ao Watson se ele for modificado em pelo menos um dos seguintes métodos é chamado nele: 1) AddErrorInformation 2) AddFile 3) AddProcessDump |
Métodos
| AddErrorInformation(String) |
Cada Watson cab inclui um arquivo de texto (ErrrorInformation.txt) com informações básicas, como Error. ToString, propriedades de telemetria, etc. Chame isso para adicionar informações ao arquivo. isso faz o trabalho de criar um nome de arquivo temporário exclusivo por instância e adicionar informações padrão Observação: chamar isso resultará na ErrorInformation.txt sendo marcada para PII e, portanto, bloqueará o carregamento do CAB, a menos que as configurações de telemetria dos usuários estejam cheias. |
| AddFile(String) |
Adicionar um arquivo ao relatório enviado de volta para a Microsoft |
| AddProcessDump(Int32) |
Observação: ao usar o FaultEvent do VisualStudio, é altamente recomendável não chamar diretamente o AddProcessDump para o processo atual, mas, em vez disso, dispará-lo remotamente com uma notificação de destino. Pesquise "APLICAndo filtros de BUCKET a eventos de falha" no repositório do VS para obter detalhes. Adicionar a ID de processo de um processo para o qual coletar uma coleção de despejo de despejo não ocorre, a menos que o back-end do Watson solicite um despejo, você pode solicitar um despejo de heap para um Bucket específico do portal do Watson: https://watsonportal.microsoft.com/ . A coleta de despejo está fora do processo, para reduzir a chance de deadlock |
| Correlate(TelemetryEventCorrelation[]) |
Correlacione esse evento com outros eventos via TelemetryEventCorrelation . (Herdado de TelemetryEvent) |
| CorrelateWithDescription(TelemetryEventCorrelation, String) |
Correlacione esse evento com outro evento por meio TelemetryEventCorrelation de informações de descrição. (Herdado de TelemetryEvent) |
| GetBucketParameter(Int32) |
Obter o valor de um parâmetro de Bucket |
| GetDefaultEventProperties(Int64, Int64, String) |
Retorna as propriedades padrão que devem estar em cada TelemetryEvent (Herdado de TelemetryEvent) |
| SetAppName(String) |
Defina o parâmetro Bucket atribuído ao nome do aplicativo relatado pela falha como processado no Watson e em outro lugar. Isso é definido automaticamente na maioria das instâncias. Você só deve alterar o nome do aplicativo relatado em circunstâncias muito especiais em que a telemetria de relatório de aplicativo também não é o aplicativo que está apresentando a falha. |
| SetAppVersion(String) |
Defina o parâmetro Bucket atribuído à versão do aplicativo relatada da falha como processado no Watson e em outro lugar. Isso é definido automaticamente na maioria das instâncias. Você só deve alterar a versão do aplicativo relatada em circunstâncias muito especiais em que a telemetria de relatório de aplicativo também não é o aplicativo que está apresentando a falha. |
| SetBucketParameter(Int32, String) |
Definir o parâmetro Bucket para um problema Watson não deve conter nenhum caminho de arquivo completo ou PII um conjunto exclusivo de 10 parâmetros de Bucket constitues um BucketID, que é considerado a mesma falha. Ao passar um objeto de exceção, os parâmetros de bucket são definidos pelo IClrErrorReportingManager:: GetBucketParametersForCurrentException |
| SetFailureParameters(String, String, String, String, String) |
Defina os parâmetros de Bucket que compõem a ID de falha exclusiva da falha relatada, conforme processado no Watson e em outro lugar. Os parâmetros de falha que são deixados não especificados ou que passaram um valor nulo manterão seu valor original definido por padrão. Consulte o wiki do representante para obter documentação adicional. Essa é a API recomendada a ser usada para personalizar o processo de identificação de falha exclusivo para as falhas da sua equipe. |
| SetNonFailureParameters(String, String) |
Defina os parâmetros de Bucket que compõem os parâmetros sem falha conforme processados no Watson e em outro lugar. Parâmetros que são deixados não especificados ou passados um valor nulo manterão seu valor original definido por padrão. |
| ToString() |
ToString para facilitar a depuração: mostrar na janela de observação de depuração |