Crazy Logs

Le matin, sans prendre une gorgée de café, vous ouvrez le courrier et voyez un rapport de bogue sur ce qui fonctionnait bien pour lui-même, cela n'a pas échoué et cela n'a pas vraiment dérangé. Il n'y a aucune idée en mouvement, il n'y a aucun suspect, il n'y a pas eu non plus de grands changements dans le code - vous devez aller dans les journaux.

Et vous n'y êtes pas allé il y a si longtemps que vous avez distribué un fichier avec des journaux jusqu'à 100 Mo. ou jusqu'à 500 Mo. Zut! Ou peut-être jusqu'à 10 Go (*). Et de précieuses preuves se trouvent quelque part entre 10 737 418 240 octets, qui doivent être exécutés de toute urgence afin de savoir ce qui se passe, alors que le café refroidit déjà.

Ou peut-être qu'une archive avec deux cents fichiers (disons 5 Mo chacun) des journaux cassés est allée au rapport avec une bande-annonce et vous devez les coller d'une manière ou d'une autre, puis regarder, creuser et réfléchir.

Est-ce familier?

En général, nous sommes tous, d'une manière ou d'une autre, confrontés à la nécessité d'analyser les «traces de vie» de nos créations, et c'est bien si le fichier pèse quelques Mo, car ouvrir un journal de 1 Go avec un bloc-notes et même essayer de faire une recherche est une tâche douteuse.

Sous la coupe, je vais vous parler d'un outil qui n'a pas de limites (**) sur la taille des fichiers ouverts, mais il a une recherche très rapide.

Et je vous invite à rejoindre le développement.

Et oui, il y aura beaucoup de photos intéressantes.

Ainsi, il semblerait une tâche triviale d'ouvrir les journaux et de rechercher, parfois cela peut se heurter à une taille de fichier banale. Vous pouvez ouvrir une bagatelle avec n'importe quoi, au moins avec le même bloc-notes ou notepad ++, mais sur les coquelicots et Linux, il est donc parfois plus facile de tout déposer dans la console avec un chat et de faire une recherche.

Entre autres choses, vous pouvez utiliser le bloc-notes ++ mentionné, atom, logExpert, sublime, bare vim, bbedit, glogg, etc. Je dois dire tout de suite que tout le monde n'ouvrira pas le gigaoctet 2 et que certains des survivants tomberont en panne lors de la recherche. Et de tout ce qui précède, peut-être que seul l'atome est vraiment multiplateforme, et je veux avoir une chose quand je dois travailler sur plusieurs plates-formes en parallèle. Et combien de personnes consomment de la RAM pour traiter au moins quelques centaines de mégaoctets de journaux est une autre histoire.

C'est pourquoi nous avons l'outil chipmunk, qui a été scié dans des tâches étroites, mais qui est rapidement devenu une solution complète pour l'analyse des journaux. Chipmunk ne peut rien faire d'autre; ses tâches sont réduites à une simple:

  • ouvrir les journaux sans se soucier de la taille du fichier;
  • recherchez pour ne pas attendre, mais voyez le résultat immédiatement;
  • mémorisez toutes vos recherches et conservez-les soigneusement sur demande;
  • vous aider à percevoir visuellement les informations;
  • se comporter modestement par rapport à la RAM;
  • pour résoudre d'autres tâches plus étroites, mais toujours réduites à l'analyse des journaux.

Eh bien, parlons de tout dans l'ordre.

Ressources


Chipmunk ne charge rien dans la RAM, à l'exception du morceau de journaux visible à l'écran (enfin, un peu plus de mise en mémoire tampon, mais c'est un peu). En parcourant le fichier, chipmunk lit un morceau du fichier (correspondant à la position du défilement) et le charge uniquement en mémoire. Grâce à cela, les appétits pour la RAM sont assez intelligibles et ne fluctuent pas, et le premier "écran" avec le contenu du fichier est affiché immédiatement (bien que l'indexation se poursuive avec l'arrière-plan).

Commodité et visualisation


image

Il existe un gestionnaire de requêtes de recherche où vous pouvez:

  • Attribuer des couleurs aux filtres (ce qui facilite la perception des données)
  • enregistrez la collection de filtres dans un fichier afin d'avoir toujours un modèle de recherche prêt à l'emploi.

Vous pouvez, par exemple, consulter le fichier pour la fréquence des correspondances (plus la colonne est élevée, plus il y a de correspondances dans le fragment de fichier).

image

Ou vous pouvez spécifier un groupe dans une expression régulière et obtenir un beau graphique (dans l'exemple utilisé, l'expression utilisation du processeur: \ s + (\ d + \. \ D +) ). Et maintenant, vous voyez où la consommation du processeur était anormale et quel morceau de journaux doit être examiné attentivement.

image

En plus de la recherche par elle-même, des lignes individuelles de journaux peuvent être mises en signet, qui seront toujours présentées dans la fenêtre des résultats de la recherche. C'est très pratique lorsque j'ai vu quelque chose d'important sur quelques millions de lignes et que vous ne voulez pas le perdre de vue.

Combinaison de fichiers


Pour résoudre les problèmes associés à plusieurs fichiers, chipmunk peut masquer des fichiers en un seul (par exemple, à la date de la dernière modification du fichier). Tout ce qu'il faut:

  • jeter un groupe de fichiers dans la fenêtre tamia
  • si vous avez besoin de trier les fichiers comme vous le souhaitez
  • en outre, vous pouvez rechercher tous les fichiers et, par exemple, exclure les fichiers qui ne correspondent pas au mot "erreur" (eh bien, pourquoi devrions-nous aller là où tout est si calme?)

image

En conséquence, nous obtenons dans la fenêtre une séquence de tous les fichiers sélectionnés.

Si vous avez besoin d'un mécanisme plus complexe pour combiner les journaux (par exemple, si vous avez des journaux provenant de différents appareils / sources), vous pouvez utiliser la fonction de fusion, qui détermine le format de l'horodatage de chaque fichier et affiche les journaux par ordre chronologique.

image

Faites attention aux étiquettes de couleur à gauche de la sortie - ce sont des étiquettes de fichier. Autrement dit, vous ne voyez pas la sortie d'un fichier après un autre (concaténation), mais la sortie triée par le temps de tous les fichiers (fusion).

Particularités


Si vous avez déjà rencontré DLT, vous savez à quel point il est pénible d'utiliser DLTViewer. La bonne nouvelle est que le tamia est une alternative pour ouvrir et analyser les fichiers DLT. En outre, il prend également en charge le streaming DLT.

image

Lorsque vous ouvrez le fichier DLT, vous verrez immédiatement un résumé du fichier, y compris une liste de tous les composants, ce qui est pratique si vous êtes intéressé par un APID spécifique, et non par le journal entier.

En parlant de fils


Hors de la boîte avec chipmunk vient un plugin simple "Commandes", qui vous permettra d'exécuter n'importe quelle commande de console et de recevoir une sortie dans chipmunk avec la possibilité de rechercher cette sortie. Naturellement, si vous avez une recherche active (par exemple, un filtre enregistré), les données de résultat seront mises à jour lors de la mise à jour du flux à partir de votre commande de console.

image

Oh oui les plugins


Il y en a peu jusqu'à présent. C'est vrai, vraiment pas assez. Il n'y en a que 5 publiques (celles qui sont dans le domaine public et accessibles au gestionnaire de plugins), non publiques, je ne sais même pas, peut-être une douzaine.

L'écriture de votre plugin est très simple (je ferai une réservation pour une tâche simple).

Par exemple, si vos journaux contiennent des messages présentés sous forme d'octets et que vous souhaitez les voir immédiatement sous une forme lisible (c'est-à-dire décodés); il est facile d'entailler un plug-in, qui recevra le fragment de journal sélectionné en entrée et lancera la sortie décodée dans le panneau. Ou peut-être même décoder à la volée et afficher un texte intelligible à l'écran, et non A5 FF 13 EE ... etc.

En général, il existe deux types d'extensions: la première fonctionne avec le rendu, c'est-à-dire qu'elles vous permettent de modifier la présentation de la sortie: si vous voulez des colonnes, s'il vous plaît; Je veux décoder quelque chose à la volée - vous le pouvez; il y a un désir de coller des graphiques (par exemple, des icônes) - on ne sait pas pourquoi vous en avez besoin, mais vous pouvez.

Un autre type de plugins (et c'est plus intéressant), ceux qui peuvent fournir des données (créer des flux). Par exemple, vous voulez voir la sortie du port série? Pas de problème: le cas est un nouveau projet npm, nous y incluons notre port de port préféré, ajoutons une petite interface utilisateur à votre goût et maintenant votre plugin peut jeter des données dans chipmunk.

Pour des raisons de commodité et de premières dates, comme cela est habituel dans les familles décentes, il existe un référentiel de démarrage rapide avec quelques exemples.

Si vous êtes intéressé, faites-le moi savoir dans les commentaires - je ferai un post-guide séparé pour créer et publier des plugins (en passant, aucune inscription n'est requise pour la publication).

Au lieu d'une conclusion


C’est probablement tout. Je ne veux pas créer un livret publicitaire ou une carte d'utilisateur à partir de ce message - donc, donc brièvement avec un minimum de lettres. Mon objectif est de partager avec vous un autre outil pour travailler avec les journaux, qui peut être utile pour résoudre de nombreux problèmes.

Le projet est entièrement open-source et ouvert à votre participation, quelle que soit votre participation. Vous voulez voir du soutien pour quelque chose comme ça? Créez un problème et sélectionnez «Demande de fonctionnalité». Vous avez trouvé un bug? Nous serons heureux de voir un rapport de bogue de votre part avec une brève (mais suffisante) description du problème. L'anglais est le bienvenu, mais le russe n'est pas interdit.

Et bien sûr, mettre l'étoile précieuse sur github, en quelques secondes, vous ressentirez une légère amélioration de la chaleur et de l'humeur grâce à notre gratitude pour l'approbation de ce que nous faisons. Pour vous, cliquez - pour nous, commentaires et inspiration.

Remercier.

Communiqués

Autres liens

Clarification
(*) , (1 <). , . . 10-20 , . embedded .

(**), , . chipmunk . , chipmunk RAM, , SSD.

All Articles