Der Compressed Log Processor (CLP) von YScope komprimiert Ihre Protokolle und ermöglicht Ihnen, die komprimierten Protokolle ohne Dekomprimierung zu durchsuchen. CLP unterstützt sowohl JSON-Protokolle als auch unstrukturierte (d. h. Freitext-)Protokolle. Es unterstützt auch die Echtzeit-Protokollkomprimierung innerhalb mehrerer Protokollierungsbibliotheken. CLP umfasst außerdem speziell entwickelte Webschnittstellen zum Durchsuchen und Anzeigen der komprimierten Protokolle. Um mehr darüber zu erfahren, lesen Sie unser Papier von 2021 über den Umgang mit unstrukturierten Protokollen und unser Papier von 2024 über die Erweiterung auf JSON-Protokolle.
Die obigen Zahlen zeigen die Komprimierungs- und Suchleistung von CLP im Vergleich zu anderen Tools. Wir trennen die Experimente zwischen JSON und unstrukturierten Protokollen, weil (1) einige Tools nur einen Protokolltyp verarbeiten können und (2) Tools, die beide Typen verarbeiten können, oft unterschiedliche Designs für jeden Typ haben (z. B. CLP).
Das Komprimierungsverhältnis wird als Durchschnitt verschiedener Protokolldatensätze gemessen. Einige dieser Datensätze finden Sie hier. Die Suchleistung wird mithilfe von Abfragen in den MongoDB-Protokollen (für JSON) und den Hadoop-Protokollen (für unstrukturierte Protokolle) gemessen. Beachten Sie, dass CLP ein indexloses Design verwendet. Aus Gründen eines fairen Vergleichs haben wir die Indizes von MongoDB und PostgreSQL deaktiviert. Wenn wir sie aktiviert ließen, wäre das Komprimierungsverhältnis von MongoDB und PostgreSQL schlechter. Wir haben die Indizierung für Elasticsearch oder Splunk nicht deaktiviert, da diese Tools grundsätzlich indexbasiert sind (dh Protokolle können nicht ohne Indizes durchsucht werden). Weitere Einzelheiten zu unserer experimentellen Methodik finden Sie im Papier von 2021 und im Papier von 2024.
CLP bietet eine End-to-End-Protokollverwaltungspipeline bestehend aus Komprimierung, Suche, Analyse und Anzeige. Die obige Abbildung zeigt die Architektur des CLP-Ökosystems. Es besteht aus folgenden Funktionen:
Komprimierung und Suche : CLP komprimiert Protokolle in Archive, die in einer Web-Benutzeroberfläche durchsucht und analysiert werden können. Die Eingabe kann entweder aus Rohprotokollen oder aus der komprimierten IR (Zwischendarstellung) von CLP bestehen, die von den Protokollierungsbibliotheken von CLP erstellt wird.
Echtzeitkomprimierung mit CLP-Protokollierungsbibliotheken : CLP bietet Protokollierungsbibliotheken für Python und Java (Log4j und Logback). Die Protokollierungsbibliotheken komprimieren Protokolle in Echtzeit, sodass nur komprimierte Protokolle auf die Festplatte geschrieben oder über das Netzwerk übertragen werden. Die komprimierten Protokolle verwenden das Intermediate Representation (IR)-Format von CLP, das eine höhere Komprimierungsrate als Allzweckkompressoren wie Zstandard erreicht. Durch das Komprimieren von IR in Archiven kann die Komprimierungsrate weiter verdoppelt und eine globale Suche ermöglicht werden. Dies erfordert jedoch mehr Speicherverbrauch, da genügend Protokolle gepuffert werden müssen. Weitere Einzelheiten zu IR versus Archiven finden Sie in diesem Uber Engineering Blog.
Protokoll-Viewer : Die komprimierte IR kann in einem webbasierten Protokoll-Viewer angezeigt werden. Im Vergleich zur Anzeige der Protokolle in einem Editor unterstützt der Protokoll-Viewer von CLP erweiterte Funktionen wie das Filtern von Protokollen basierend auf der Ausführlichkeit der Protokollebene (z. B. werden nur Protokolle angezeigt, deren Protokollebene gleich oder höher als ERROR ist). Diese Funktionen sind möglich, weil die Protokollierungsbibliotheken von CLP die Protokolle analysieren, bevor sie in IR komprimiert werden.
IR-Analysebibliotheken : Wir bieten auch eine Python-Bibliothek und eine Go-Bibliothek an, die komprimierte IR analysieren können.
Protokollparser : CLP enthält außerdem einen benutzerdefinierten, auf Pushdown-Automaten basierenden Protokollparser, der dreimal schneller ist als hochmoderne Engines für reguläre Ausdrücke wie RE2. Der Protokollparser ist als Bibliothek verfügbar, die von anderen Anwendungen verwendet werden kann.
Sie können ein Release-Paket herunterladen, das Unterstützung für verteilte Komprimierung und Suche enthält. Um die Kernkomprimierung und -suche von CLP schnell auszuprobieren, können Sie auch einen vorgefertigten Container verwenden.
Wir haben auch Anleitungen zum Erstellen des Pakets und des CLP-Kerns aus dem Quellcode.
Einige Protokolle, die Sie zum Testen von CLP verwenden können, finden Sie in unseren Open-Source-Datensätzen.
Sie können unsere Dokumente online finden oder die Quelle unter docs/src
ansehen.
Sie können GitHub-Probleme verwenden, um einen Fehler zu melden oder eine Funktion anzufordern.
Besuchen Sie uns auf Zulip, um mit Entwicklern und anderen Community-Mitgliedern zu chatten.
Dies ist unsere Open-Source-Version, die wir ständig mit Fehlerbehebungen, Funktionen usw. aktualisieren. Wenn Sie eine Funktion wünschen oder einen Fehler melden möchten, reichen Sie bitte ein Problem ein und wir werden uns gerne darum kümmern.