2010-07-10 22 views
2

J'ai été chargé de créer une application Web simple basée sur Python pour représenter graphiquement les «différences» entre différents serveurs, en termes de contenu de divers fichiers de configuration clé dans le système de fichiers.Heatmap pour afficher diffsystèmes de fichiers sur le serveur?

1. High Level Heatmap

Pour une vue d'ensemble de haut niveau, je pensais à la création d'un heatmap de chaque système (par exemple http://www.jjguy.com/heatmap/). Chaque système est comparé à une image de source dorée (l'original), puis nous utilisons des couleurs pour représenter le degré de différenciation de cette image.

Le système de fichiers est mappé sur l'axe x-y, de sorte que les mêmes coordonnées sur le heatmap pour chaque système représentent les mêmes fichiers.

Ma première question ici est, avez-vous des conseils sur un bon algorithme pour mapper le système de fichiers aux coordonnées x-y? Gardez à l'esprit que même si chaque serveur doit avoir plus ou moins la même hiérarchie de systèmes de fichiers, cela peut ne pas être nécessairement vrai et je dois trouver un moyen de représenter les fichiers/répertoires manquants ou peut-être ajouter des fichiers/répertoires. Je ne suis pas sûr que cela soit possible, ainsi que la première exigence de mapper des fichiers/répertoires équivalents à des points x-y correspondants (ou au moins similaires) sur chaque carte système. Toutes les nouvelles approches/algos ici?

Ensuite, j'ai besoin d'un moyen de quantifier le degré de changements entre chaque fichier (nombre de lignes?), Puis de passer cela sur la carte thermique. Gardez à l'esprit que je devrais faire la différence entre, par exemple, un seul fichier avec 10 lignes modifiées, et 10 fichiers avec 1 ligne modifiée chacun, car les deux ont des ramifications différentes.

2. Drill-Down pour montrer Diffs

File J'espère offrir aussi la possibilité dans le webapp à forer vers le bas dans des fichiers individuels/répertoires, et voir les changements entre eux. J'ai utilisé une combinaison de Kdiff3 et Meld pour les différences de code visuel, et je suis assez impressionné par la façon dont l'affichage de Meld change.

http://meld.sourceforge.net/meld_file1.png

Je ne pouvais pas sembler trouver toutes les bibliothèques Web autonomes qui offrent un mécanisme visuel diff sur Thier propre. Le plus proche que j'ai trouvé est jsdifflib (http://snowtide.com/jsdifflib), mais il ne semble pas correspondre à la fonctionnalité (ou l'esthétique, je suppose) de quelque chose comme Meld. Des conseils ici? (Révisionniste semble vraiment cool - http://benfry.com/revisionist/ - mais je ne peux pas trouver de code public pour cela).

Cheers, Victor

Répondre

1

Quant à la cartographie du système de fichiers, jetez un oeil à WinDirStat http://windirstat.info/. Il s'agit à l'origine d'un outil d'évaluation de la taille de votre système de fichiers, mais vous pouvez définir votre propre calcul de taille. Le treemap aidera à regrouper les fichiers qui sont le même dossier ou l'arborescence de dossiers. Il est assez robuste aux changements dans le contenu du disque.