इस प्रोजेक्ट के बारे में

BTrace चल रहे Java एप्लिकेशन को डायनामिक रूप से इंस्ट्रुमेंट करता है और रनटाइम पर ट्रेसिंग कोड इंजेक्ट करता है, ताकि लक्ष्य को रीस्टार्ट या रीकंपाइल किए बिना व्यवहार देखा जा सके। यह प्रोजेक्ट प्रोडक्शन सुरक्षा पर जोर देता है: स्क्रिप्ट सत्यापित की जाती हैं, और README कहता है कि सत्यापित स्क्रिप्ट एप्लिकेशन को क्रैश नहीं कर सकतीं। ओवरहेड को कम बताया गया है, जो बाइटकोड इंजेक्शन के माध्यम से प्राप्त होता है। समर्थित रनटाइम: BTrace 3.0 Java 8–25+ पर चलता है, और Java 17 से पुराने JVM के विरुद्ध चलाना अप्रचलित है (3.x में चेतावनी के साथ अभी भी कार्यात्मक; 4.0 में हटाने की योजना)। 2.x से अपग्रेड करने के लिए एक माइग्रेशन गाइड उपलब्ध है। README में उजागर क्षमताएँ: - मेथड एंट्री/एग्ज़िट, टाइमिंग, फ़ील्ड एक्सेस और एलोकेशन के लिए प्रोब। - मेथड टाइमिंग, अपवाद ट्रैकिंग, और एनोटेटेड Java क्लासेस के रूप में लिखे गए कस्टम प्रोब (जैसे @Self और @Duration पैरामीटर के साथ @OnMethod)। - त्वरित डिबगिंग के लिए DTrace-शैली वनलाइनर: लोकेशन (@entry, @return, @error), एक्शन (print, count, time, stack), फ़िल्टर (अवधि थ्रेशोल्ड, आर्गुमेंट तुलना), और वाइल्डकार्ड या रेगेक्स क्लास/मेथड पैटर्न। इंस्टॉलेशन और पैकेजिंग विकल्पों में JBang (अनुशंसित, प्रकाशित कैटलॉग के साथ ज़ीरो-इंस्टॉल), SDKMan, मैनुअल बाइनरी आर्काइव, RPM/DEB पैकेज, और Docker इमेज (Debian, Alpine, Distroless वेरिएंट) शामिल हैं। एक फैट एजेंट JAR बिल्ड Spark, Hadoop और Kubernetes जैसे वातावरणों के लिए सिंगल-JAR डिप्लॉयमेंट का समर्थन करता है, साथ में चयनित एक्सटेंशन एम्बेड करने के लिए एक Gradle प्लगइन (io.btrace.fat-agent) है। एक Maven स्क्रिप्ट-कंपाइलेशन प्लगइन अलग रिपॉज़िटरी में है। एक्सटेंशन एक स्थिर बूटस्ट्रैप API के माध्यम से कार्यक्षमता जोड़ते हैं, जिसमें अलग-थलग इम्प्लीमेंटेशन होते हैं। लेगेसी 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) में अंतर करता है। विशेषाधिकार प्राप्त अनुदान एजेंट विकल्पों या पॉलिसी फ़ाइल के माध्यम से सेट किए जाते हैं; allow/deny सूचियाँ एक्सटेंशन लिंकिंग को नियंत्रित करती हैं, और अवरुद्ध इम्प्लीमेंटेशन SHIM पर वापस आ जाते हैं ताकि प्रोब सुरक्षित रूप से जारी रहें। btracex CLI एक्सटेंशन और पॉलिसी का निरीक्षण और प्रबंधन करता है, जिसमें allow/deny स्थिति ब्राउज़ करने और टॉगल करने के लिए एक इंटरैक्टिव टर्मिनल UI भी शामिल है। डॉक्यूमेंटेशन में एक क्विक रेफरेंस, गेटिंग-स्टार्टेड ट्यूटोरियल, पूर्ण ट्यूटोरियल, वनलाइनर गाइड, एक्सटेंशन डेवलपमेंट गाइड और एक डॉक्यूमेंटेशन हब शामिल हैं। कम्युनिटी चैनल Slack, Gitter और GitHub Issues हैं। योगदान के लिए Oracle Contributor Agreement पर हस्ताक्षर करना आवश्यक है। Apache 2.0 के अंतर्गत लाइसेंस प्राप्त; ASM, JCTools और hppcrt के साथ बनाया गया।