يقوم معالج السجلات المضغوطة (CLP) الخاص بـ YScope بضغط سجلاتك، ويسمح لك بالبحث في السجلات المضغوطة دون فك الضغط. يدعم CLP كلاً من سجلات JSON والسجلات غير المنظمة (أي النص الحر). كما أنه يدعم ضغط السجل في الوقت الفعلي ضمن العديد من مكتبات التسجيل. يتضمن CLP أيضًا واجهات ويب مصممة خصيصًا للبحث في السجلات المضغوطة وعرضها. لمعرفة المزيد حول هذا الموضوع، اقرأ بحثنا لعام 2021 حول التعامل مع السجلات غير المنظمة ومقالنا لعام 2024 حول توسيعه ليشمل سجلات JSON.
توضح الأشكال أعلاه ضغط CLP وأداء البحث مقارنة بالأدوات الأخرى. نقوم بفصل التجارب بين JSON والسجلات غير المنظمة لأن (1) بعض الأدوات يمكنها التعامل مع نوع واحد فقط من السجلات، و(2) الأدوات التي يمكنها التعامل مع كلا النوعين غالبًا ما يكون لها تصميمات مختلفة لكل نوع (مثل CLP).
يتم قياس نسبة الضغط على أنها المتوسط عبر مجموعة متنوعة من مجموعات بيانات السجل. يمكن العثور على بعض مجموعات البيانات هذه هنا. يتم قياس أداء البحث باستخدام الاستعلامات الموجودة في سجلات MongoDB (لـ JSON) وسجلات Hadoop (للسجلات غير المنظمة). لاحظ أن CLP يستخدم تصميمًا بدون فهرس، لذا من أجل مقارنة عادلة، قمنا بتعطيل فهارس MongoDB وPostgreSQL؛ إذا تركناهما ممكّنين، ستكون نسبة ضغط MongoDB وPostgreSQL أسوأ. لم نقم بتعطيل فهرسة Elasticsearch أو Splunk نظرًا لأن هذه الأدوات تعتمد بشكل أساسي على الفهرس (على سبيل المثال، لا يمكن البحث في السجلات بدون فهارس). يمكن العثور على مزيد من التفاصيل حول منهجيتنا التجريبية في ورقة 2021 وورقة 2024.
يوفر CLP خط أنابيب لإدارة السجل من طرف إلى طرف يتكون من الضغط والبحث والتحليلات والعرض. يوضح الشكل أعلاه بنية النظام البيئي لـ CLP. ويتكون من الميزات التالية:
الضغط والبحث : يقوم CLP بضغط السجلات في الأرشيفات، والتي يمكن البحث فيها وتحليلها في واجهة مستخدم الويب. يمكن أن يكون الإدخال إما سجلات أولية أو IR مضغوط لـ CLP (التمثيل المتوسط) يتم إنتاجه بواسطة مكتبات التسجيل الخاصة بـ CLP.
الضغط في الوقت الفعلي باستخدام مكتبات تسجيل CLP : يوفر CLP مكتبات تسجيل لـ Python وJava (Log4j وLogback). تقوم مكتبات التسجيل بضغط السجلات في الوقت الفعلي، بحيث تتم كتابة السجلات المضغوطة فقط على القرص أو نقلها عبر الشبكة. تستخدم السجلات المضغوطة تنسيق التمثيل المتوسط (IR) الخاص بـ CLP والذي يحقق نسبة ضغط أعلى من ضواغط الأغراض العامة مثل Zstandard. يمكن أن يؤدي ضغط IR في الأرشيفات إلى مضاعفة نسبة الضغط وتمكين البحث الشامل، ولكن هذا يتطلب المزيد من استخدام الذاكرة لأنه يحتاج إلى تخزين سجلات كافية مؤقتًا. يمكن العثور على مزيد من التفاصيل حول IR مقابل الأرشيفات في مدونة Uber Engineering هذه.
عارض السجلات : يمكن عرض الأشعة تحت الحمراء المضغوطة في عارض السجلات المستند إلى الويب. بالمقارنة مع عرض السجلات في المحرر، يدعم عارض السجلات الخاص بـ CLP ميزات متقدمة مثل تصفية السجلات بناءً على الإسهاب في مستوى السجل (على سبيل المثال، عرض السجلات ذات مستوى السجل الذي يساوي أو أعلى من الخطأ فقط). هذه الميزات ممكنة لأن مكتبات التسجيل الخاصة بـ CLP تقوم بتحليل السجلات قبل ضغطها في IR.
مكتبات تحليلات IR : نوفر أيضًا مكتبة Python ومكتبة Go التي يمكنها تحليل الأشعة تحت الحمراء المضغوطة.
محلل السجل : يشتمل CLP أيضًا على محلل سجل مخصص يعتمد على الضغط لأسفل وهو أسرع بثلاث مرات من أحدث محركات التعبير العادي مثل RE2. يتوفر محلل السجل كمكتبة يمكن استخدامها بواسطة تطبيقات أخرى.
يمكنك تنزيل حزمة الإصدار التي تتضمن دعمًا للضغط الموزع والبحث. أو، لتجربة الضغط والبحث الأساسي لـ CLP بسرعة، يمكنك استخدام حاوية تم إنشاؤها مسبقًا.
لدينا أيضًا أدلة لبناء الحزمة ونواة CLP من المصدر.
بالنسبة لبعض السجلات التي يمكنك استخدامها لاختبار CLP، راجع مجموعات البيانات مفتوحة المصدر لدينا.
يمكنك العثور على مستنداتنا عبر الإنترنت أو عرض المصدر في docs/src
.
يمكنك استخدام مشكلات GitHub للإبلاغ عن خطأ أو طلب ميزة.
انضم إلينا على Zulip للدردشة مع المطورين وأعضاء المجتمع الآخرين.
هذا هو إصدارنا مفتوح المصدر والذي سنقوم بتحديثه باستمرار بإصلاحات الأخطاء والميزات وما إلى ذلك. إذا كنت تريد ميزة أو تريد الإبلاغ عن خطأ ما، فيرجى الإبلاغ عن مشكلة وسنكون سعداء بالمشاركة.