私は自由な時間に、Delphi Windowsアプリケーションから送信されたクラッシュレポート(ただし、他の非クラッシュバグレポートではない)を収集する小さなWebベースのシステムに取り組んでいます。
トラブルシューティングの場合、ユーザーは、ハードウェアまたはオペレーティングシステムのバージョンと特定のバグまたはクラッシュ、あるいはその両方との関係を見つけるためのデータマイニング機能が必要です。
これがどのように機能するかの例として:
- クラッシュごとに、データベースにレポートがあり、クラッシュの瞬間のスタックトレース(コールスタック)のフィンガープリント/ハッシュコードがあり、重複を識別します。
- アルゴリズムは、バグレポートのすべての複製に他の一般的な属性があるかどうかをチェックします。たとえば、オペレーティングシステムのサービスパックの欠落などです。
- 分析結果には、バグレポートに共通するすべてのプロパティが一覧表示されます
これらの自動バグレポートに、現在実行中のすべてのプロセスの名前、ファイル名、ロードされたDLLのバージョン情報などのすべての重要な情報が含まれているとしましょう。
繰り返し発生するクラッシュと環境間の相関関係を見つけるにはどうすればよいですか?役立つ特定のアルゴリズムまたは統計的方法はありますか?
2
相関関係の発見は大変な作業です。このツールを仕事で見ましたか?データを整理する適切な方法を見つけるのに役立つ場合があります。
Delphiでも相関計算を実行したいですか?次に、Delphi数学関数のこのリストを見てください。これは多くをカバーし、説明とライブラリへのリンクも提供します。
@DaveBall興味深いリンクをありがとうございます。ただし、バグレポートはDelphiから提供されていますが、実際にはWebサービスはJavaで実装されています。アルゴリズムを開始点として使用したり、「オフライン」統計ツールで使用したりできます。
「離散ハザードモデル」を調べてみてください。これは、固定された特性(環境変数)と最後のクラッシュ以降の時間に関する障害イベント(クラッシュ)を後退させたい場合のようです。十分な観測(クラッシュレポート)がある場合は、環境変数間の相互作用をモデルに追加できます。これらは、システム競合の方向を示します。残念ながら、そのようなモデルをJavaに実装するのがどれほど簡単かわかりません。
—
jmtroos 2012
考えられる分析の種類は、問題のサイズによって異なります。つまり、クラッシュの種類はいくつありますか?可能な属性はいくつありますか?
—
Sameer '25年