عن المشروع

تقوم BTrace بأدوات ديناميكية لتطبيقات Java قيد التشغيل، فتحقن كود التتبع في وقت التشغيل بحيث يمكنك مراقبة السلوك دون إعادة تشغيل الهدف أو إعادة ترجمته. يركز المشروع على السلامة في بيئات الإنتاج: يتم التحقق من السكربتات، ويذكر ملف README أن السكربتات المتحقق منها لا يمكن أن تتسبب في انهيار التطبيق. يوصف الحمل الإضافي بأنه منخفض، ويتحقق ذلك عبر حقن البايت كود. بيئات التشغيل المدعومة: تعمل BTrace 3.0 على Java 8–25+، مع إهمال التشغيل مقابل أجهزة JVM الأقدم من Java 17 (لا يزال يعمل في 3.x مع تحذير؛ ومن المخطط إزالته في 4.0). يتوفر دليل ترحيل يغطي الترقية من 2.x. القدرات البارزة في ملف README: - مجسات لدخول/خروج الدوال، والتوقيتات، والوصول إلى الحقول والتخصيصات. - توقيت الدوال، وتتبع الاستثناءات، ومجسات مخصصة تُكتب كأصناف Java موسومة (مثل @OnMethod مع معاملات @Self و@Duration). - أوامر سطر واحد بنمط DTrace لتصحيح سريع: المواقع (@entry، @return، @error)، والإجراءات (print، count، time، stack)، والمرشحات (عتبات المدة، ومقارنات الوسائط)، وأنماط الأصناف/الدوال بالبدائل أو التعبيرات النمطية. تشمل خيارات التثبيت والتغليف JBang (موصى به، بدون تثبيت مع كتالوج منشور)، وSDKMan، وأرشيفات ثنائية يدوية، وحزم RPM/DEB، وصور Docker (بنى Debian وAlpine وDistroless). يدعم بناء وكيل JAR سمين النشر كملف JAR واحد لبيئات مثل Spark وHadoop وKubernetes، مع إضافة Gradle (io.btrace.fat-agent) لتضمين إضافات مختارة. توجد إضافة ترجمة السكربتات لـ Maven في مستودع منفصل. تضيف الإضافات وظائف عبر واجهة bootstrap مستقرة مع تطبيقات معزولة. أُزيلت آلية libs/profiles القديمة؛ وينبغي تغليف التكاملات كإضافات. يميز نموذج الصلاحيات بين الصلاحيات الافتراضية (MESSAGING، AGGREGATION، JFR_EVENTS، PROFILING)، والصلاحيات القياسية (FILE_READ، SYSTEM_PROPS، THREAD_INFO، MEMORY_INFO)، والصلاحيات المميزة (FILE_WRITE، NETWORK، THREADS، NATIVE، EXEC، REFLECTION، CLASSLOADER، UNLIMITED_MEMORY). تُضبط المنح المميزة عبر خيارات الوكيل أو ملف سياسة؛ وتتحكم قوائم السماح/الرفض في ربط الإضافات، وتتراجع التطبيقات المحظورة إلى SHIMs بحيث تستمر المجسات بأمان. تفحص أداة سطر الأوامر btracex الإضافات والسياسات وتديرها، بما في ذلك واجهة طرفية تفاعلية لتصفح حالة السماح/الرفض وتبديلها. تشمل الوثائق مرجعًا سريعًا، ودرسًا تعليميًا للبدء، ودرسًا تعليميًا كاملًا، ودليل الأوامر أحادية السطر، ودليل تطوير الإضافات، ومركز وثائق. قنوات المجتمع هي Slack وGitter وGitHub Issues. تتطلب المساهمات توقيع اتفاقية مساهم Oracle. مرخص بموجب Apache 2.0؛ ومبني باستخدام ASM وJCTools وhppcrt.