Compressed Log Processor (CLP) YScope mengompresi log Anda, dan memungkinkan Anda mencari log terkompresi tanpa dekompresi. CLP mendukung log JSON dan log tidak terstruktur (yaitu teks bebas). Ini juga mendukung kompresi log waktu nyata dalam beberapa perpustakaan logging. CLP juga menyertakan antarmuka web yang dibuat khusus untuk mencari dan melihat log terkompresi. Untuk mempelajari lebih lanjut tentang hal ini, baca makalah tahun 2021 kami tentang penanganan log tidak terstruktur dan makalah tahun 2024 kami tentang memperluasnya ke log JSON.
Gambar di atas menunjukkan kinerja kompresi dan pencarian CLP dibandingkan dengan alat lainnya. Kami memisahkan eksperimen antara JSON dan log tidak terstruktur karena (1) beberapa alat hanya dapat menangani satu jenis log, dan (2) alat yang dapat menangani kedua jenis tersebut sering kali memiliki desain berbeda untuk setiap jenis (seperti CLP).
Rasio kompresi diukur sebagai rata-rata di berbagai kumpulan data log. Beberapa kumpulan data ini dapat ditemukan di sini. Performa pencarian diukur menggunakan kueri pada log MongoDB (untuk JSON) dan log Hadoop (untuk log tidak terstruktur). Perhatikan bahwa CLP menggunakan desain tanpa indeks, jadi untuk perbandingan yang adil, kami menonaktifkan indeks MongoDB dan PostgreSQL; Jika kita membiarkannya aktif, rasio kompresi MongoDB dan PostgreSQL akan menjadi lebih buruk. Kami tidak menonaktifkan pengindeksan untuk Elasticsearch atau Splunk karena alat ini pada dasarnya berbasis indeks (yaitu, log tidak dapat dicari tanpa indeks). Detail lebih lanjut tentang metodologi eksperimental kami dapat ditemukan di makalah tahun 2021 dan makalah tahun 2024.
CLP menyediakan saluran manajemen log ujung ke ujung yang terdiri dari kompresi, pencarian, analitik, dan tampilan. Gambar di atas menunjukkan arsitektur ekosistem CLP. Ini terdiri dari beberapa fitur berikut:
Kompresi dan Pencarian : CLP mengompresi log menjadi arsip, yang dapat dicari dan dianalisis di UI web. Masukannya dapat berupa log mentah atau IR terkompresi (representasi perantara) CLP yang dihasilkan oleh pustaka logging CLP.
Kompresi Real-time dengan Perpustakaan Logging CLP : CLP menyediakan perpustakaan logging untuk Python dan Java (Log4j dan Logback). Pustaka logging mengompresi log secara real-time, sehingga hanya log terkompresi yang ditulis ke disk atau dikirimkan melalui jaringan. Log terkompresi menggunakan format representasi perantara (IR) CLP yang mencapai rasio kompresi lebih tinggi dibandingkan kompresor tujuan umum seperti Zstandard. Mengompresi IR ke dalam arsip dapat melipatgandakan rasio kompresi dan mengaktifkan pencarian global, namun hal ini memerlukan lebih banyak penggunaan memori karena memerlukan buffering log yang cukup. Detail selengkapnya tentang IR versus arsip dapat ditemukan di Blog Teknik Uber ini.
Penampil Log : IR terkompresi dapat dilihat di penampil log berbasis web. Dibandingkan dengan melihat log di editor, penampil log CLP mendukung fitur-fitur canggih seperti memfilter log berdasarkan verbositas tingkat log (misalnya, hanya menampilkan log dengan tingkat log sama atau lebih tinggi dari ERROR). Fitur-fitur ini dimungkinkan karena pustaka logging CLP mengurai log sebelum mengompresinya menjadi IR.
Perpustakaan Analisis IR : kami juga menyediakan perpustakaan Python dan perpustakaan Go yang dapat menganalisis IR terkompresi.
Pengurai log : CLP juga menyertakan pengurai log berbasis automata pushdown khusus yang 3x lebih cepat dibandingkan mesin ekspresi reguler canggih seperti RE2. Parser log tersedia sebagai perpustakaan yang dapat digunakan oleh aplikasi lain.
Anda dapat mengunduh paket rilis yang mencakup dukungan untuk kompresi dan pencarian terdistribusi. Atau, untuk mencoba kompresi dan pencarian inti CLP dengan cepat, Anda dapat menggunakan wadah bawaan.
Kami juga memiliki panduan untuk membangun paket dan inti CLP dari sumber.
Untuk beberapa log yang dapat Anda gunakan untuk menguji CLP, lihat kumpulan data sumber terbuka kami.
Anda dapat menemukan dokumen kami secara online atau melihat sumbernya di docs/src
.
Anda dapat menggunakan masalah GitHub untuk melaporkan bug atau meminta fitur.
Bergabunglah dengan kami di Zulip untuk mengobrol dengan pengembang dan anggota komunitas lainnya.
Ini adalah rilis sumber terbuka kami yang akan terus kami perbarui dengan perbaikan bug, fitur, dll. Jika Anda menginginkan fitur atau ingin melaporkan bug, silakan ajukan masalah dan kami akan dengan senang hati membantu.