Verrückte Protokolle

Am Morgen, ohne einen Schluck Kaffee zu trinken, öffnen Sie die Mail und sehen einen Fehlerbericht darüber, was für sich selbst gut funktioniert hat. Es ist nicht fehlgeschlagen und es hat nicht wirklich gestört. Es sind keine Ideen unterwegs, es gibt keine Verdächtigen, es gab auch keine großen Änderungen im Code - Sie müssen in die Protokolle gehen.

Und Sie sind vor nicht allzu langer Zeit dorthin gegangen, dass Sie eine Datei mit Protokollen von bis zu 100 MB verteilt haben. oder bis zu 500 mb. Teufel! Oder vielleicht bis zu 10 GB (*). Und wertvolle Beweise liegen irgendwo zwischen 10.737.418.240 Bytes, die dringend ausgeführt werden müssen, um herauszufinden, was los ist, während der Kaffee bereits abkühlt.

Oder vielleicht ging ein Archiv mit zweihundert Dateien (sagen wir jeweils 5 MB) der kaputten Protokolle mit einem Trailer zum Bericht, und Sie müssen sie irgendwie kleben und dann schauen, graben und nachdenken.

Ist das bekannt?

Im Allgemeinen sind wir alle auf die eine oder andere Weise mit der Notwendigkeit konfrontiert, die „Lebensspuren“ unserer Kreationen zu analysieren. Es ist gut, wenn die Datei ein paar MB wiegt, da das Öffnen eines 1-GB-Protokolls mit einem Notizblock und sogar der Versuch, eine Suche durchzuführen, eine zweifelhafte Aufgabe ist.

Unter dem Schnitt erzähle ich Ihnen von einem Tool, das keine Begrenzung (**) für die Größe der geöffneten Dateien hat, aber eine sehr schnelle Suche bietet.

Und ich lade Sie ein, sich der Entwicklung anzuschließen.

Und ja, es wird viele interessante Bilder geben.

Es scheint also eine triviale Aufgabe zu sein, die Protokolle zu öffnen und zu suchen. Manchmal kann es zu einer banalen Dateigröße kommen. Sie können eine Kleinigkeit mit allem öffnen, zumindest mit demselben Notizblock oder Notizblock ++, aber unter Mohn und Linux. Daher ist es manchmal einfacher, alles mit einer Katze in die Konsole zu legen und eine Suche durchzuführen.

Unter anderem können Sie den erwähnten Editor ++, Atom, LogExpert, Sublime, Bare Vim, Bbedit, Glogg usw. verwenden. Ich muss sofort sagen, dass nicht jeder Gigabyte 2 öffnen wird und einige der überlebenden leider bei der Suche zusammenbrechen werden. Und von alledem ist vielleicht nur Atom wirklich plattformübergreifend, und ich möchte eines haben, wenn ich parallel auf mehreren Plattformen arbeiten muss. Und wie viele RAM-Speicher verbrauchen, um mindestens ein paar hundert Megabyte an Protokollen zu verarbeiten, ist eine andere Geschichte.

Deshalb haben wir das Chipmunk-Tool, das unter engen Aufgaben gesägt wurde, sich aber schnell zu einer umfassenden Lösung für die Analyse von Protokollen entwickelte. Chipmunk kann nichts anderes tun, seine Aufgaben sind auf eine einfache reduziert:

  • Öffnen Sie Protokolle, ohne sich um die Dateigröße kümmern zu müssen.
  • Suchen Sie, damit Sie nicht warten, sondern das Ergebnis sofort sehen.
  • Erinnern Sie sich an alle Ihre Suchanfragen und speichern Sie sie bei Bedarf sorgfältig.
  • Ihnen helfen, die Informationen visuell wahrzunehmen;
  • sich in Bezug auf RAM bescheiden verhalten;
  • andere engere Aufgaben zu lösen, aber immer auf die Analyse von Protokollen reduziert.

Lassen Sie uns über alles in der richtigen Reihenfolge sprechen.

Ressourcen


Chipmunk lädt nichts in den RAM, außer den Protokollen, die auf dem Bildschirm sichtbar sind (nun, etwas mehr Pufferung, aber das ist eine Kleinigkeit). Chipmunk geht durch die Datei und liest einen Teil der Datei (entsprechend der Position des Bildlaufs) und lädt ihn nur in den Speicher. Dank dessen ist der Appetit auf RAM gut verständlich und schwankt nicht, und der erste "Bildschirm" mit dem Inhalt der Datei wird sofort angezeigt (obwohl die Indizierung mit dem Hintergrund fortgesetzt wird).

Bequemlichkeit und Visualisierung


Bild

Es gibt einen Suchanfragen-Manager, in dem Sie:

  • Weisen Sie Filtern Farben zu (was die Wahrnehmung von Daten erleichtert)
  • Speichern Sie die Sammlung von Filtern in einer Datei, damit Sie immer ein vorgefertigtes Suchmuster zur Hand haben.

Sie können beispielsweise in der Datei nach der Häufigkeit der Übereinstimmungen suchen (je höher die Spalte, desto mehr Übereinstimmungen im Dateifragment).

Bild

Oder Sie können eine Gruppe in einem regulären Ausdruck angeben und ein schönes Diagramm erhalten (im verwendeten Beispiel der Ausdruck CPU-Auslastung: \ s + (\ d + \. \ D +) ). Und jetzt sehen Sie, wo der CPU-Verbrauch abnormal war und welche Protokolle sorgfältig geprüft werden sollten.

Bild

Neben der Suche selbst können einzelne Protokollzeilen mit Lesezeichen versehen werden, die immer im Suchergebnisfenster angezeigt werden. Dies ist sehr praktisch, wenn ich unter ein paar Millionen Zeilen etwas Wichtiges gesehen habe und Sie es nicht aus den Augen verlieren möchten.

Dateikombination


Um Probleme zu lösen, die mit mehreren Dateien verbunden sind, kann Chipmunk Dateien in eine blenden (z. B. bis zum Datum der letzten Änderung in der Datei). Alles was benötigt wird:

  • Wirf eine Gruppe von Dateien in das Chipmunk-Fenster
  • Wenn Sie Dateien nach Ihren Wünschen sortieren müssen
  • Außerdem können Sie alle Dateien durchsuchen und beispielsweise diejenigen Dateien ausschließen, die nicht mit dem Wort "Fehler" übereinstimmen (warum sollten wir dorthin gehen, wo alles so ruhig ist?)

Bild

Als Ergebnis erhalten wir im Fenster eine Sequenz aller ausgewählten Dateien.

Wenn Sie einen komplexeren Mechanismus zum Kombinieren von Protokollen benötigen (z. B. wenn Sie Protokolle von verschiedenen Geräten / Quellen haben), können Sie die Zusammenführungsfunktion verwenden, die das Format des Zeitstempels für jede Datei bestimmt und die Protokolle in chronologischer Reihenfolge anzeigt.

Bild

Achten Sie auf die Farbetiketten links von der Ausgabe - dies sind Dateibeschriftungen. Das heißt, Sie sehen nicht die Ausgabe einer Datei nach der anderen (Verkettung), sondern die Ausgabe nach Zeit sortiert aus allen Dateien (Zusammenführen).

Besondere Merkmale


Wenn Sie jemals auf DLT gestoßen sind, wissen Sie, wie schmerzhaft es ist, DLTViewer zu verwenden. Die gute Nachricht ist, dass Chipmunk eine Alternative zum Öffnen und Analysieren von DLT-Dateien ist. Darüber hinaus unterstützt es auch DLT-Streaming.

Bild

Wenn Sie die DLT-Datei öffnen, wird sofort eine Zusammenfassung der Datei angezeigt, einschließlich einer Liste aller Komponenten. Dies ist praktisch, wenn Sie an einer bestimmten APID und nicht am gesamten Protokoll interessiert sind.

Apropos Fäden


Im Lieferumfang von Chipmunk ist ein einfaches Plugin „Commands“ enthalten, mit dem Sie jeden Konsolenbefehl ausführen und Ausgaben in Chipmunk empfangen können, um nach diesen Ausgaben zu suchen. Wenn Sie eine aktive Suche haben (z. B. einen gespeicherten Filter), werden die Ergebnisdaten natürlich aktualisiert, wenn der Stream von Ihrem Konsolenbefehl aktualisiert wird.

Bild

Oh ja Plugins


Bisher gibt es nur wenige. Das stimmt, wirklich nicht genug. Es gibt nur 5 öffentliche (solche, die gemeinfrei sind und für den Plugin-Manager zugänglich sind), nicht öffentlich, ich weiß nicht einmal, vielleicht ein paar Dutzend.

Das Schreiben Ihres Plugins ist sehr einfach (ich werde eine Reservierung für eine einfache Aufgabe vornehmen).

Wenn Ihre Protokolle beispielsweise Nachrichten enthalten, die in Form von Bytes angezeigt werden, und Sie diese sofort in lesbarer Form (dh dekodiert) anzeigen möchten. Es ist einfach, ein Plug-In zu öffnen, das das ausgewählte Protokollfragment als Eingabe empfängt und die dekodierte Ausgabe in das Bedienfeld wirft. Oder vielleicht sogar im laufenden Betrieb dekodieren und einen verständlichen Text auf dem Bildschirm anzeigen, und nicht A5 FF 13 EE ... usw.

Im Allgemeinen gibt es zwei Arten von Erweiterungen: Die erste Arbeit mit dem Rendering, dh Sie können die Darstellung der Ausgabe ändern: Wenn Sie Spalten möchten, bitte; Ich möchte etwas im laufenden Betrieb entschlüsseln - Sie können; Es besteht der Wunsch, Grafiken (z. B. Symbole) zu kleben - es ist nicht klar, warum Sie sie benötigen, aber Sie können.

Eine andere Art von Plugins (und es ist interessanter), solche, die Daten liefern können (Streams erstellen). Möchten Sie beispielsweise die Ausgabe von der seriellen Schnittstelle sehen? Kein Problem: Der Fall ist ein neues npm-Projekt, wir fügen unseren bevorzugten Port-Port hinzu, fügen Ihrem Geschmack eine kleine Benutzeroberfläche hinzu und jetzt kann Ihr Plugin Daten in Chipmunk werfen.

Der Einfachheit halber und für erste Termine gibt es, wie es in anständigen Familien üblich ist, ein Schnellstart-Repository mit drei Beispielen.

Wenn Sie interessiert sind, lassen Sie es mich in den Kommentaren wissen - ich werde einen separaten Post-Guide zum Erstellen und Veröffentlichen von Plugins erstellen (für die Veröffentlichung ist übrigens keine Registrierung erforderlich).

Anstelle einer Schlussfolgerung


Das ist wahrscheinlich alles. Ich möchte aus diesem Beitrag weder eine Werbebroschüre noch eine Benutzerkarte erstellen - daher so kurz mit einem Minimum an Buchstaben. Mein Ziel ist es, Ihnen ein weiteres Tool für die Arbeit mit Protokollen zur Verfügung zu stellen, das zur Lösung vieler Probleme hilfreich sein kann.

Das Projekt ist vollständig Open Source und offen für Ihre Teilnahme, jede Ihrer Teilnahme. Möchten Sie Unterstützung für so etwas sehen? Erstellen Sie ein Problem und wählen Sie "Funktionsanforderung". Einen Fehler gefunden? Wir freuen uns über einen Fehlerbericht von Ihnen mit einer kurzen (aber ausreichenden) Beschreibung des Problems. Englisch ist willkommen, aber Russisch ist nicht verboten.

Und natürlich den geschätzten Stern auf Github setzenIn nur wenigen Sekunden werden Sie eine leichte Verbesserung der Wärme und Stimmung spüren, wenn wir uns für die Zustimmung zu dem, was wir tun, bedanken. Für Sie klicken - für uns Feedback und Inspiration.

Danke.

Veröffentlichungen

Andere Links

Klärung
(*) , (1 <). , . . 10-20 , . embedded .

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

All Articles