Bistoury
is an application-transparent, non-intrusive Java application diagnostic tool open sourced by Qunar.com, which is used to improve developers' diagnostic efficiency and capabilities.
Bistoury
's goal is a one-stop Java application diagnosis solution that allows developers to diagnose applications from various aspects such as logs, memory, threads, class information, debugging, machine and system properties, etc., without logging into the machine or modifying the system, and improve the performance of the application. Developer efficiency and ability to diagnose problems.
Bistoury
integrated Alibaba's open source arthas and Vipshop's open source vjtools on the basis of the company's original agent to provide richer functions. We thank them for their excellent work.
Arthas and vjtools are already excellent tools, why do we need to develop Bistoury?
Arthas and vjtools are used through the command line or similar methods. It is undeniable that the command line is more efficient in many cases; but the graphical interface also has its own advantages, especially when the parameters are complex, it is simpler to use and more efficient. On the basis of retaining the command line interface, Bistoury also provides a graphical interface for many commands for users to use.
Arthas and vjtools target a single machine and diagnose the system from the machine dimension, without providing a global perspective; while online applications are often deployed on multiple machines, Bistoury can be integrated with the user's application center to diagnose the system from the application dimension. , providing more possibilities.
When using Arthas and vjtools, you either need to log in to the machine, or the user needs to provide the corresponding IP and port; Bistoury removes various settings and provides a unified web entrance, and you can select the application and machine from the page to use.
In addition to these targeted optimizations, Bistoury retains all the functions of arthas and vjtools, and also provides richer functions.
Bistoury's online debugging function removes various complex parameters, simulates the IDE debugging experience, and provides breakpoint debugging functions through the web interface. It can capture information at breakpoints (including local variables, member variables, static variables, etc.) without blocking the application. variables and method call stacks).
Bistoury provides thread-level CPU usage monitoring, which can monitor the minute-level CPU usage of each thread of the system and provide historical data queries in recent days.
Bistoury can dynamically add monitoring to methods, monitor the number of method calls, the number of exceptions, and the execution time, and also retain the monitoring data of the last few days.
Bistoury provides a log viewing function. You can use tail, grep and other commands to view the logs of a single machine or multiple machines at the same time.
Bistoury provides a visual page to view various information about machines and applications in real time, including host memory and disk usage, cpu usage and load, system configuration files, jar package information, jvm information, memory usage and gc, etc.
Maybe you are facing an elusive online problem and are at a loss. You might as well try Bistoury's quick deployment script. Start Bistoury in one minute and insert breakpoints to start debugging!
The ui and proxy use Java1.8+, and the agent uses Java1.7+. Since the agent will attach to the application, the application also needs to use Java1.7+. It is best to keep the versions of the application and the agent consistent. Click here to run bistoury using Java11
Currently only supports linux system (supports mac os)
Everyone is welcome to star, fork, issue, and pull requests. If you think it's okay, just give it a star!
Some parts of the front end seem a bit unattractive, and the implementation doesn’t seem to be great either.
All front-end codes are completed part-time by back-end students. Front-end experts are welcome to contribute relevant codes.
If you have any problems using Bistoury, please click here first.
QQ group: 717242486
View logs through the command line interface and use various functions of arthas and vjtools
Online debug, online application debugging artifact
Thread-level CPU monitoring helps you understand thread-level CPU usage
View JVM running information and various other information in the web interface
Dynamically add monitoring to methods
Thread dump
File download
Flame graph
java hotspot method