Comment puis-je trouver des corrélations entre les plantages et les environnements système?

10

Pendant mon temps libre, je travaille sur un petit système basé sur le Web qui recueille les rapports de plantage (mais pas les autres rapports de bogue non bloquants) qui sont envoyés depuis les applications Windows Delphi.

Pour le dépannage, les utilisateurs aimeraient avoir une fonction d'exploration de données pour trouver des relations entre les versions du matériel ou du système d'exploitation et le bogue et / ou le crash spécifique.

À titre d'exemple, comment cela devrait fonctionner:

  • pour chaque crash il y a un rapport dans la base de données, qui a un code d'empreinte digitale / de hachage de la trace de pile (pile d'appel) au moment du crash pour identifier les doublons
  • l'algorithme vérifie si tous les doublons d'un rapport de bogue ont également d'autres attributs communs, par exemple un service pack manquant du système d'exploitation
  • le résultat de l'analyse répertorie toutes les propriétés communes aux rapports de bogues

Supposons que ces rapports de bogues automatiques contiennent toutes les informations clés telles que les noms de tous les processus en cours d'exécution, les noms de fichiers, les informations de version des DLL chargées, etc.

Comment puis-je trouver des corrélations entre des plantages répétés et l'environnement? Existe-t-il des algorithmes ou des méthodes statistiques spécifiques qui pourraient aider?


la source
2
La recherche de corrélation est une tâche lourde. Avez-vous vu cet outil au travail? Cela pourrait vous aider à trouver la bonne façon d'organiser vos données.
Donc, vous voulez aussi faire le calcul de corrélation dans Delphi? Jetez un œil à cette liste de fonctions mathématiques Delphi : elle couvre beaucoup de choses et donne également des explications et des liens vers les bibliothèques.
@DaveBall Merci pour le lien intéressant, cependant, alors que les rapports de bogues proviennent de Delphi, le service Web est en fait implémenté en Java - je peux peut-être utiliser les algorithmes comme point de départ ou dans un outil de statistiques `` hors ligne ''.
1
Vous voudrez peut-être examiner les «modèles de risques discrets». Cela semble être un cas où vous souhaitez régresser les événements de défaillance (plantages) sur des caractéristiques fixes (variables d'environnement) et le temps écoulé depuis le dernier crash. Si vous avez suffisamment d'observations (rapports de crash), vous pourrez ajouter des interactions entre les variables environnementales au modèle. Celles-ci vous orienteront ensuite vers des conflits système. Malheureusement, je ne sais pas combien il est facile d'implémenter un tel modèle en Java.
jmtroos
1
Les types d'analyses que vous pourriez imaginer dépendent de la taille du problème, c'est-à-dire combien de types d'accidents distincts existe-t-il? Combien d'attributs possibles existe-t-il?
Sameer

Réponses:

1

Pourriez-vous échantillonner les machines [non bloquées] de votre utilisateur pour les mêmes informations que celles que vous obtenez dans un rapport de plantage? Parce qu'alors, vous pouvez utiliser la régression logistique pour modéliser ces attributs (et interactions) à la probabilité d'obtenir un crash.

zzk
la source