-
Notifications
You must be signed in to change notification settings - Fork 937
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:
/bindirectory with the profiler launcher;/libwithlibasyncProfiler.so.
- Make the launcher a binary executable
asprofinstead ofprofiler.sh. - Incorporate the functionality of
jattachandfdtransferin 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