awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
qunarcorp avatar

qunarcorp/bistoury

0
View on GitHub↗
4,077 stars·838 forks·Java·GPL-3.0·20 views

Bistoury

Bistoury is a production diagnostics tool for Java applications that provides a distributed debugging console, a performance profiler, and a runtime bytecode manipulator. It enables real-time application debugging and production diagnostics by analyzing running Java applications through dynamic instrumentation and state inspection.

The system distinguishes itself through a remote agent manager that coordinates diagnostic connections and a runtime bytecode manipulator capable of redefining classes in memory without requiring process restarts. It features a web interface for capturing heap dumps, thread stacks, and local variables across multiple server instances, supported by a proxy-mediated communication layer to route commands to remote targets.

The project covers a broad range of observability capabilities, including CPU performance profiling via asynchronous stack sampling and flame graphs, distributed log management across multiple machines, and non-blocking state capture using conditional breakpoints. It also includes source recovery utilities that link runtime bytecode to original source code through decompilation or integration with Git and Maven repositories.

The tool provides a web console and command-line interfaces for managing logs, retrieving system files, and inspecting system configuration and environment variables.

Features

  • Live Instrumentation - Performs dynamic instrumentation and real-time debugging on active production environments without requiring process restarts.
  • Java Diagnostic Toolkits - Provides a comprehensive suite for real-time troubleshooting of live Java applications through dynamic instrumentation and state inspection.
  • Java Application Profilers - Identifies CPU bottlenecks and hot methods in running Java applications using flame graphs and asynchronous stack trace analysis.
  • System State Snapshotting - Captures point-in-time snapshots of local variables and call stacks at specific code lines without pausing the system.
  • Non-pausing State Capture - Snapshots local variables and call stacks at breakpoints without pausing the execution of the active application.
  • CPU Profilers - Measures and visualizes CPU usage and execution time through asynchronous stack traces to find processing bottlenecks.
  • Application-to-Host Registries - Maintains mappings between logical application names, physical servers, and process IDs for distributed discovery.
  • Diagnostic Agent Management - Coordinates the mapping of applications to physical hosts and manages the lifecycle of remote diagnostic agents.
  • Dynamic Instrumentation Debugging - Inspects variable values and captures runtime state in active environments using dynamic instrumentation.
  • Proxy Routing - Routes diagnostic requests from a central console through a secure proxy layer to remote target agents.
  • Dynamic Class Redefinition - Redefines loaded classes in memory at runtime to modify application behavior without process restarts.
  • Bytecode Modification Frameworks - Compiles files in memory and redefines loaded classes using external bytecode to modify behavior without restarts.
  • Conditional Variable Captures - Triggers state captures of local variables and call stacks only when specific logical expressions evaluate to true.
  • Runtime Bytecode Instrumentation - Injects modified class data into a running JVM to monitor execution and capture state dynamically.
  • Java Bytecode Manipulation - Enables the modification of loaded Java classes and redefinition of bytecode in memory without requiring process restarts.
  • Production Diagnostics - Troubleshoots live production environments using a unified interface for system state monitoring and thread analysis.
  • Application Performance Monitoring - Tracks runtime system metrics and identifies resource bottlenecks in live Java applications.
  • Diagnostic Web Consoles - Provides a browser interface for diagnostics and logs to avoid direct server shell access.
  • Java Heap Snapshot Capturers - Captures heap dumps from running Java processes to identify memory leaks and analyze object allocations.
  • Remote Command Execution - Sends troubleshooting commands to target applications via a proxy and agent for real-time results.
  • Application State Inspection - Examines running application state and variable values using decompiled code or linked source repositories.
  • System Performance Profiling - Captures periodic snapshots of thread call stacks to identify CPU bottlenecks and generate flame graphs.
  • Method Performance Profiling - Identifies hot methods and generates flame graphs to analyze execution time and optimize application speed.
  • Distributed File Managers - Enables searching and reading files or compressed logs across multiple remote machines via a unified interface.
  • Application Configuration Inspection - Retrieves and updates system properties, environment variables, and diagnostic parameters of a running application.
  • Debugging Consoles - Provides a web-based console for real-time inspection of heap dumps, thread stacks, and variables across multiple server instances.
  • Non-disruptive Monitoring - Adds observability probes to specific methods in a running application without interrupting execution.
  • Diagnostic Source Integration - Integrates diagnostic tools with version control systems to display original source code during live analysis.
  • Runtime Analysis - Collects operational data, system properties, and machine metrics to analyze the overall health of the JVM.
  • Java Bytecode Decompilers - Converts compiled Java class files back into human-readable source code when original files are unavailable.
  • Bytecode-to-Source Mapping - Links runtime bytecode execution steps to the original source code lines for real-time debugging.
  • Version Control Integration - Links runtime bytecode to specific Git or Maven version hashes to retrieve the original source code.
  • Thread Dumps - Generates snapshots of active JVM threads to diagnose deadlocks and concurrency issues.
  • Thread Inspection - Inspects thread stacks and analyzes state to resolve lock contention and concurrency issues.
  • Class Metadata Inspection - Analyzes loaded classes and their methods within a running process to diagnose runtime issues.
  • Classloader Hierarchy Analysis - Visualizes classloader hierarchies and method signatures by analyzing classes loaded in the runtime environment.
  • Remote Access Proxies - Routes diagnostic commands from a central console to target servers through a secure proxy isolation layer.
  • Call Stack Samplers - Provides periodic call stack snapshots to build statistical CPU profiles and generate flame graphs.
  • JMX Bean Inspections - Queries Java Management Extensions MBeans to retrieve and analyze internal runtime state and configuration.
  • Log Analysis - Provides tools to search and analyze application logs across multiple remote machines using tail and grep operations.
  • Method Call Chain Analysis - Maps the internal call path of methods and calculates the time spent at each node in the chain.
  • Method Performance Metrics - Captures quantitative execution data including method call counts, exception rates, and response times.
  • Thread Performance Analyzers - Identifies CPU-intensive threads and retains historical call stacks for performance analysis.
  • Remote Log Management - Provides a command-line interface to view and download logs from production environments.
  • Method Execution Tracking - Monitors the invocation sequence, input parameters, and return values of methods during runtime.
  • System Health Dashboards - Displays real-time request rates, response times, and thread pool status on a centralized health dashboard.
  • Unified Log Management - Provides a unified interface for searching and retrieving application logs across multiple remote servers.
  • Call Argument History - Records and stores the history of method input parameters and return values for retrospective analysis.

Star history

Star history chart for qunarcorp/bistouryStar history chart for qunarcorp/bistoury

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Bistoury

These projects share indexed features with Bistoury. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • oldmanpushcart/greys-anatomyoldmanpushcart avatar

    oldmanpushcart/greys-anatomy

    4,007View on GitHub↗

    This project is a Java runtime diagnostic tool and bytecode instrumentation framework. It provides a remote troubleshooting interface for inspecting live Java systems, analyzing execution traces, and monitoring method performance without requiring application restarts. The system distinguishes itself through its ability to modify Java classes at runtime to capture parameters and return values, combined with a JavaScript-based scripting engine for custom diagnostic logic. It further supports collaborative live debugging, allowing multiple users to connect to a single remote process simultaneou

    Javadiagnosisgreysjvmti
    View on GitHub↗4,007
  • alibaba/arthasalibaba avatar

    alibaba/arthas

    37,367View on GitHub↗

    Arthas is a Java diagnostic tool and runtime debugger designed for real-time troubleshooting of applications. It functions as a remote diagnostics agent that allows users to inspect the runtime state of a Java process, including its heap objects and classloader hierarchies, without requiring a process restart. The project distinguishes itself through advanced bytecode manipulation capabilities, enabling live class hotswapping and the modification of bytecode in running processes. It supports in-memory source compilation and runtime bytecode decompilation to verify and update logic instantly w

    Javaagentalibabaarthas
    View on GitHub↗37,367
  • vipshop/vjtoolsvipshop avatar

    vipshop/vjtools

    7,636View on GitHub↗

    vjtools is a comprehensive Java development toolset and runtime monitor designed for optimizing application performance and ensuring codebase consistency. It provides a suite of JVM diagnostics tools, a performance profiler, and a static analysis system for enforcing coding standards. The project distinguishes itself through specialized runtime observability, including the ability to attach to processes via process ID and inject dynamic probes to monitor method calls without restarting the system. It features container-aware resource detection that reads control group files to report actual C

    Javajavajava-library
    View on GitHub↗7,636
  • jacoco/jacocojacoco avatar

    jacoco/jacoco

    4,580View on GitHub↗

    JaCoCo is a Java code coverage tool and bytecode instrumenter that measures which parts of source code are executed during tests. It functions as a runtime agent to monitor application execution on the fly or as a library for offline bytecode instrumentation, allowing it to capture execution data in environments where runtime agents are restricted. The project distinguishes itself by providing both dynamic and static instrumentation paths to track execution. It includes a runtime agent for on-the-fly monitoring and the ability to modify compiled class files before execution. It further enable

    Javabytecodecoveragegroovy
    View on GitHub↗4,580
Compare all 30 related projects→

Frequently asked questions

What does qunarcorp/bistoury do?

Bistoury is a production diagnostics tool for Java applications that provides a distributed debugging console, a performance profiler, and a runtime bytecode manipulator. It enables real-time application debugging and production diagnostics by analyzing running Java applications through dynamic instrumentation and state inspection.

What are the main features of qunarcorp/bistoury?

The main features of qunarcorp/bistoury are: Live Instrumentation, Java Diagnostic Toolkits, Java Application Profilers, System State Snapshotting, Non-pausing State Capture, CPU Profilers, Application-to-Host Registries, Diagnostic Agent Management.

Which projects share features with qunarcorp/bistoury?

Projects with overlapping indexed features include: oldmanpushcart/greys-anatomy — This project is a Java runtime diagnostic tool and bytecode instrumentation framework. It provides a remote… alibaba/arthas — Arthas is a Java diagnostic tool and runtime debugger designed for real-time troubleshooting of applications. It… vipshop/vjtools — vjtools is a comprehensive Java development toolset and runtime monitor designed for optimizing application… jacoco/jacoco — JaCoCo is a Java code coverage tool and bytecode instrumenter that measures which parts of source code are executed… jvm-profiling-tools/async-profiler — Async-profiler is a suite of performance tools designed for sampling Java runtimes, tracking memory allocations, and… google/perfetto — Perfetto is a platform for system-level performance tracing and analysis on Linux and Android. It combines a…