-
Notifications
You must be signed in to change notification settings - Fork 922
Closed
Labels
Description
Background
async-profiler currently includes the following components:
libasyncProfiler.so
- profiler engine that works in the context of Java process;jattach
- utility to inject the profiler engine into the target JVM;fdtransfer
- helper for profiling containerized applications;profiler.sh
- profiler command-line interface written in shell script.
The package has non-standard structure: with binaries in the build
folder and CLI together with the documentation in the root folder.
Proposal
- Reshape the package to a more conventional structure:
/bin
directory with the profiler launcher;/lib
withlibasyncProfiler.so
.
- Make the launcher a binary executable
asprof
instead ofprofiler.sh
. - Incorporate the functionality of
jattach
andfdtransfer
in the launcher, so the package contains no other executables besidesasprof
.
Motivation
- Intuitive usage.
- Simpler deployment / integration.
- Less typing.
- Preparation for building packages in commonly used formats: RPM, DEB, etc.
- More flexibility, e.g., the binary launcher may in future switch between host and container namespaces to provide seamless user experience: automatically copy the profiler library into the container and get the output from the container.
- The same statically linked executable may work both with glibc and musl.
Non-goals
- There is no intention to change existing command line syntax, except for minor nuances.
Target release
async-profiler 3.x
Jongy, drewhammond, sherman and ijumakakkoyun and ijuma