Wie kann ich Korrelationen zwischen Abstürzen und Systemumgebungen finden?

10

In meiner Freizeit arbeite ich an einem kleinen webbasierten System, das Absturzberichte (aber keine anderen, nicht abstürzenden Fehlerberichte) sammelt, die von Delphi Windows-Anwendungen gesendet werden.

Zur Fehlerbehebung hätten Benutzer gerne eine Data-Mining-Funktion, um Beziehungen zwischen Hardware- oder Betriebssystemversionen und dem spezifischen Fehler und / oder Absturz zu finden.

Als Beispiel, wie dies funktionieren sollte:

  • Für jeden Absturz gibt es einen Bericht in der Datenbank, der zum Zeitpunkt des Absturzes einen Fingerabdruck- / Hash-Code der Stapelverfolgung (Aufrufstapel) enthält, um Duplikate zu identifizieren
  • Der Algorithmus prüft, ob alle Duplikate eines Fehlerberichts auch einige andere gemeinsame Attribute aufweisen, z. B. ein fehlendes Service Pack des Betriebssystems
  • Das Analyseergebnis listet alle Eigenschaften auf, die die Fehlerberichte gemeinsam haben

Nehmen wir an, diese automatischen Fehlerberichte enthalten alle wichtigen Informationen wie die Namen aller aktuell ausgeführten Prozesse, Dateinamen, Versionsinformationen geladener DLLs usw.

Wie kann ich Korrelationen zwischen wiederholten Abstürzen und der Umgebung finden? Gibt es bestimmte Algorithmen oder statistische Methoden, die helfen würden?


quelle
2
Korrelationsfindung ist eine schwere Aufgabe. Haben Sie dieses Tool bei der Arbeit gesehen? Dies kann Ihnen helfen, die richtige Organisation Ihrer Daten zu finden.
Sie möchten also auch die Korrelationsberechnung in Delphi durchführen? Schauen Sie sich dann diese Liste der Delphi-Mathematikfunktionen an : Sie deckt viel ab und enthält auch Erklärungen und Links zu den Bibliotheken.
@ DaveBall Vielen Dank für den interessanten Link. Obwohl die Fehlerberichte von Delphi stammen, ist der Webdienst tatsächlich in Java implementiert. Vielleicht kann ich die Algorithmen als Ausgangspunkt oder in einem 'Offline'-Statistik-Tool verwenden.
1
Vielleicht möchten Sie sich mit "diskreten Gefahrenmodellen" befassen. Dies scheint ein Fall zu sein, in dem Sie Fehlerereignisse (Abstürze) auf feste Merkmale (Umgebungsvariablen) und die Zeit seit dem letzten Absturz zurückführen möchten. Wenn Sie über genügend Beobachtungen (Absturzberichte) verfügen, können Sie dem Modell Interaktionen zwischen den Umgebungsvariablen hinzufügen. Diese weisen Sie dann in Richtung Systemkonflikte. Leider weiß ich nicht, wie einfach es ist, ein solches Modell in Java zu implementieren.
Jmtroos
1
Welche Arten von Analysen Sie möglicherweise anwenden könnten, hängt von der Größe des Problems ab, dh wie viele verschiedene Arten von Abstürzen gibt es? Wie viele mögliche Attribute gibt es?
Sameer

Antworten:

1

Könnten Sie die [nicht abgestürzten] Maschinen Ihres Benutzers auf die gleichen Informationen testen, die Sie in einem Absturzbericht erhalten? Denn dann könnten Sie die logistische Regression verwenden, um diese Attribute (und Interaktionen) auf die Wahrscheinlichkeit eines Absturzes zu modellieren.

zzk
quelle