FaultEvent Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein telemetrieereignis, das einen Fehler darstellt, z. b. eine Ausnahme, es gibt zwei Back-Ends zum Senden von Daten: das Telemetrie-Back-End und das Watson (Back-End). Plattformübergreifend (wie unter Mac, Linux) können wir die gleiche Architektur verwenden. Auf dem Mac gibt es beispielsweise Merp, die maximale Implementierung von Windows-Fehlerberichterstattung. Faultevent erbt vom telemetryevent-Benutzer kann eine Instanz dieser Klasse direkt erstellen und benutzerdefinierte Eigenschaften direkt für die Klasse hinzufügen, ohne Rückrufe zu verwenden. Rufen Sie nach dem Erstellen eines dieser Elemente Session. postfault (faultevent) auf, das den Rückruf aufruft, das Ereignis an Watson (wenn Stichprobe) sendet und als normales telemetrieereignis bereitstellt, oder Sie können telemetrysession. postfault () anstelle dieser Klasse direkt verwenden.
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
- Vererbung
- Implementiert
Konstruktoren
| FaultEvent(String, String, Exception, Func<IFaultUtility,Int32>) |
Erstellen Sie einen nicht kategorisierten Schweregrad faultevent. Das Muster: 1. Fevent = neues faultevent (...) 2. Zession. PostEvent (fevent)//Posts das Ereignis für externe Benutzer von Watson und AI sollte die telemetrysession-Erweiterungs Methoden "postfault" aufrufen (das postEvent aufruft). es wird nützlicher, wenn Sie mit oder korrelieren, UserTaskEvent OperationEvent das möglicherweise zu einem Fehler kommt. |
| FaultEvent(String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Erstellen Sie ein faultevent-Element. Das Muster: 1. Fevent = neues faultevent (...) 2. Zession. PostEvent (fevent)//Posts das Ereignis für externe Benutzer von Watson und AI sollte die telemetrysession-Erweiterungs Methoden "postfault" aufrufen (das postEvent aufruft). es wird nützlicher, wenn Sie mit oder korrelieren, UserTaskEvent OperationEvent das möglicherweise zu einem Fehler kommt. |
Felder
| BucketFiltersToAddProcessDump |
Ruft die Filter ab, die zum Hinzufügen von Prozess Abbildern zu Fehlerereignissen verwendet werden, die einem bestimmten Satz von Bucket-Parametern entsprechen. |
| BucketFiltersToDisableWatsonReport |
Ruft die Filter ab, die zum Deaktivieren von Watson-Berichten für Fehlerereignisse verwendet werden, die einem bestimmten Satz von Bucket-Parametern entsprechen. |
Eigenschaften
| Correlation |
Ruft die Korrelation dieses Ereignisses ab. Sie stellt dieses Ereignis dar, wenn es mit anderen Ereignissen korreliert wird. (Geerbt von TelemetryEvent) |
| DataSource |
Ruft die Datenquelle ab. (Geerbt von TelemetryEvent) |
| DumpCollectionType |
Ruft den Typ des Abbilds ab, das für addprocessdump erstellt und an Watson addprocessdump gesendet wird, gibt an, welche Prozesse gespeichert werden sollen, und der dumpcollectiontype bestimmt die Art des Abbilds zum Abrufen eines vollständigen Heap Abbilds. Legen Sie diesen Wert auf WER_DUMP_TYPE fest. Werdumptypeheapdump. z. b. (EV als faultevent). Dumpcollectiontype = WER_DUMP_TYPE. Werdumptypeheapdump; Eine andere Möglichkeit, diese Eigenschaft festzulegen, besteht darin, eine normale telemetrieeigenschaft in den telemetryevent-Eigenschaften Behälter einzufügen, z. b. faultevent. Properties ["dumpcollectiontype"] = "werdumptypeheapdump"; funktioniert mit System eigenem Code und verwendet die Groß-/Kleinschreibung bei der Aufzählung. Die Einstellung für die Eigenschaften Sammlung (verwendbar aus nativem Code) überschreibt die Eigenschafts Einstellung (die in IntelliSense deutlich besser erkennbar ist) beim Aufrufen von "telemetrysession. postEvent (faultevent)", "werreportadddump" wird für jeden Prozess in "addprocesdump" mit dem angegebenen "dumpcollectiontype" aufgerufen. Alle abgekippten Prozesse verfügen über denselben dumpcollectiontype. Sie können den Typ des Abbilds Steuern (und auch, ob ein Dump versendet werden soll), und zwar über Remote Einstellungen in Ihrem gathereventdetails-Rückruf sehr nützlich für das Erfassen von Heap-Abbilder in seltenen Fällen, die sehr schwer zu Debuggen sind. Nachdem das Problem behoben wurde, kann dies durch Remote Einstellungen deaktiviert werden. Der Standardwert ist WER_DUMP_TYPE. Werdumptypeminidump |
| EventSchemaVersion |
Ruft die Schema Version für dieses Ereignis ab. (Geerbt von TelemetryEvent) |
| EventType |
Ruft den Ereignistyp für dieses Ereignis ab. (Geerbt von TelemetryEvent) |
| HasProperties |
Ruft einen Wert ab, der angibt, ob Eigenschaften bereits erstellt wurden. (Geerbt von TelemetryEvent) |
| IsIncludedInWatsonSample |
Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob dieses Ereignis lokal Stichproben Wirkt sich nur auf Watson aus. Wenn false, sendet nicht an Watson: sendet das telemetrieereignis nur an AI und ruft keinen Rückruf auf. Wenn Sie dies ändern, wird das Senden des Ereignisses an Watson erzwungen. Seien Sie vorsichtig, da Sie große Auswirkungen auf die Leistung haben kann. Wenn Sie unverändert ist, wird Sie gemäß der standardmäßigen Stichprobenrate festgelegt. Siehe Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.DefaultWatsonSamplePercent. |
| IsOptOutFriendly |
Ruft einen Wert ab, der angibt, ob das Ereignis für die OptOut-Sitzung benutzerfreundlich ist Standardmäßig ist der Wert false. Wenn es eine OptOut-Anzeige ist, wird es nur mit den ereignisspezifischen Eigenschaften weitergeleitet. Dieses Verhalten kann durch Manifest-Regeln geändert werden. (Geerbt von TelemetryEvent) |
| MaximumWatsonReportsPerSession |
Ruft die maximale Anzahl von Fehlerereignissen ab, die Watson während der telemetriesitzung gemeldet werden, oder legt Sie fest. |
| MinimumSecondsBetweenWatsonReports |
Ruft die Mindestanzahl von Sekunden ab, die ververgehen muss, nachdem ein Watson-Bericht für ein Fehler Ereignis gesendet wurde, bevor ein anderer Bericht gesendet werden kann, oder legt Sie fest. |
| Name |
Ruft den aktuellen Ereignis Namen ab. (Geerbt von TelemetryEvent) |
| Properties |
Ruft ein Wörterbuch mit Ereignis Eigenschaften ab. Eigenschaften sind Dimensionen, nach denen aggregierte Daten in Slices aufgeteilt werden können. Der Schlüssel ist ein Eigenschaftsname, der eindeutig ist, nicht NULL und nicht leer ist. Der Wert ist ein beliebiges-Objekt, das einen Eigenschafts Wert darstellt. Für Telemetriekanäle muss value verwendet werden. ToString (CultureInfo. InvariantCulture), um den Wert als Zeichenfolge an einen Server zu senden. (Geerbt von TelemetryEvent) |
| Severity |
Ruft den Schweregrad des Ereignisses ab oder legt ihn fest. Die Ebene wird für Ereignisconsumer (z. b. ETW-Anbieter, Back-End-Berichterstellung) verwendet, um Daten einfacher zu organisieren. (Geerbt von TelemetryEvent) |
| SharedPropertyBags |
Ruft freigegebene Eigenschaften Behälter ab. (Geerbt von TelemetryEvent) |
| SynchronousDumpCollection |
Ruft einen Wert ab, der angibt, ob die Dumpdatei synchron oder im Thread Pool erfasst wird, oder legt diesen fest. Wenn wir ein Speicher Abbild aufgrund der Thread Pool-Hungersnot erfassen, möchten wir den Thread Pool nicht zum Erfassen des dumppools verwenden (der Thread Pool wird verhungert, und zum Zeitpunkt der Durchführung des dumpcodes wird der Pool entladen). |
| WatsonEventType |
Ruft ab oder legt fest, dass dies ein Ereignistyp sein muss, der auf dem Watson-Back-End wie "VisualStudioNonFatalErrors2" registriert Alle "normalen" faultevents sollten in VisualStudioNonFatalErrors2 verschiedene Watson-Ereignis Typen Verhalten sich unterschiedlich verhalten. Beispielsweise die Anzahl und die Aufbewahrungs Richtlinie von gesammelten Cabs, das Routing von Cabs. Beispielsweise wird "visualstudiomemwatson" verwendet, um einen Datenstrom von Cabs zu erfassen, die vom perfwatson-Back-End verarbeitet werden sollen. Diese Ereignisse können von abgefragt werden http://Watson . |
| WatsonSamplePercent |
Ruft die Samplingrate ab oder legt Sie fest, die verwendet wird, um zu berechnen, ob Watson ein qualifizierendes Fehler Ereignis meldet. Ein Fehler Ereignis ist für die Berichterstattung an Watson qualifiziert, wenn es in mindestens einer der folgenden Methoden geändert wird: 1) adderrorinformation 2) AddFile 3) addprocessdump |
Methoden
| AddErrorInformation(String) |
Jede Watson-CAB-Datei enthält eine Textdatei (ErrrorInformation.txt) mit grundlegenden Informationen, wie z. b. Error. destring, telemetrieeigenschaften usw. Rufen Sie diese Methode auf, um der Dateiinformationen hinzuzufügen. Dadurch wird ein eindeutiger temporärer Dateiname pro Instanz erstellt, und es werden Standardinformationen hinzugefügt: durch das Aufrufen von wird die ErrorInformation.txt für PII markiert, und der CAB-Upload wird blockiert, es sei denn, die telemetrieeinstellungen der Benutzer sind voll. |
| AddFile(String) |
Fügen Sie dem Bericht eine Datei hinzu, die an Microsoft zurückgesendet wurde. |
| AddProcessDump(Int32) |
Hinweis: Wenn Sie faultevent in VisualStudio verwenden, wird dringend empfohlen, addprocessdump nicht direkt für den aktuellen Prozess aufzurufen, sondern Sie stattdessen Remote mit einer gezielten Benachrichtigung auszulösen. Weitere Informationen finden Sie unter "Anwenden von Bucket-Filtern auf Fehlerereignisse" im vs-Repository. Fügen Sie die Prozess-ID eines Prozesses, für den eine dumpdumpsammlung gesammelt werden soll, nicht ein, es sei denn, das Watson-Back-End fordert eine Sicherung an. Sie können einen Heap Abbild für einen bestimmten Bucket aus dem Watson-Portal anfordern: https://watsonportal.microsoft.com/ Die Speicher Abbild Sammlung ist nicht mehr verarbeitet, um die deadlockgefahr zu verringern. |
| Correlate(TelemetryEventCorrelation[]) |
Korrelieren Sie dieses Ereignis mit anderen Ereignissen über TelemetryEventCorrelation . (Geerbt von TelemetryEvent) |
| CorrelateWithDescription(TelemetryEventCorrelation, String) |
Korrelieren Sie dieses Ereignis mit einem anderen Ereignis über TelemetryEventCorrelation mit Beschreibungs Informationen. (Geerbt von TelemetryEvent) |
| GetBucketParameter(Int32) |
Den Wert eines Bucket-Parameters erhalten |
| GetDefaultEventProperties(Int64, Int64, String) |
Gibt Standardeigenschaften zurück, die für jedes telemetryevent-Ereignis sein sollten. (Geerbt von TelemetryEvent) |
| SetAppName(String) |
Legen Sie den Bucket-Parameter fest, der dem gemeldeten APP-Namen des Fehlers als verarbeitet in Watson und an anderer Stelle zugeordnet ist. Dies wird in den meisten Fällen automatisch festgelegt. Sie sollten den gemeldeten APP-Namen nur in sehr besonderen Fällen ändern, wenn die APP-Bericht Erstellungs Telemetrie nicht auch die APP ist, die den Fehler aufweist. |
| SetAppVersion(String) |
Legen Sie den Bucket-Parameter fest, der der gemeldeten App-Version des Fehlers als in Watson und an anderer Stelle verarbeitet wird. Dies wird in den meisten Fällen automatisch festgelegt. Sie sollten die gemeldete App-Version nur in sehr besonderen Fällen ändern, wenn die APP-Bericht Erstellungs Telemetrie nicht auch die APP ist, die den Fehler aufweist. |
| SetBucketParameter(Int32, String) |
Festlegen des Bucket-Parameters für ein Watson-Problem sollte keine vollständigen Dateipfade enthalten, oder PII ein eindeutiger Satz von 10 Bucket-Parametern stellt eine bucketid dar, die als derselbe Fehler angesehen wird. Wenn Sie ein Ausnahme Objekt übergeben, werden die Bucketparameter von ICLRErrorReportingManager:: getbucketparametersforeption TException festgelegt. |
| SetFailureParameters(String, String, String, String, String) |
Legen Sie die Bucket-Parameter fest, die die eindeutige Fehler-ID für den gemeldeten Fehler als in Watson und an anderer Stelle verarbeitet haben. Fehler Parameter, die nicht angegeben bleiben oder einen NULL-Wert erhalten, behalten den ursprünglichen Wert bei, der standardmäßig festgelegt ist. Weitere Dokumentationen finden Sie im DevDiv-wiki. Dies ist die empfohlene API, mit der der eindeutige Fehler Identifizierungsprozess für die Fehler des Teams angepasst wird. |
| SetNonFailureParameters(String, String) |
Legen Sie die Bucket-Parameter fest, die die nicht-Fehler Parameter als in Watson und an anderer Stelle verarbeitete Parameter bilden. Für Parameter, die nicht angegeben bleiben oder einen NULL-Wert erhalten, wird der ursprüngliche Wert standardmäßig festgelegt. |
| ToString() |
Zeichenfolge zum Vereinfachen des Debuggens: in Debug-Überwachungs Fenster anzeigen |