I have no issues adding it. I think my only real comment would be the same as with manager; w/e we expose to the public api (in this case Nodetool) we have to support, so if a 3rd party lib breaks compatibility that puts us in a bind if we didn’t think about that up front.
Having async-profiler exposed makes it easier to profile is a good thing. Manager has (or is in the process of adding) API auth so we can lock down async-profiler to those “allowed” but do we have similar in Nodetool? We had an issue in the past that async-profiler would trigger a JVM crash (JVM bug), so we had to limit calls to it until it was fixed. > On Dec 10, 2025, at 9:00 AM, Štefan Miklošovič <[email protected]> wrote: > > Worth to mention that we were also contemplating about the inclusion > of jfr-convert so a user can also convert raw JFR files to e.g. HTML > with heatmaps but we evaluated that it is not necessary. Sure, it > would be comfortable, but ultimately not needed. Conversion of such a > file via nodetool, on server side, is just not a good idea, it is not > a job of a server to convert anything. > > In majority of cases, people using the profiler just want to get a > HTML with cpu / allocation profile, it can even gather JFR files as > such and fetch it is, it is just that the conversion as such can > happen on client's side instead. > > I am +1 for introducing the core async profiler library only. > > On Wed, Dec 10, 2025 at 5:46 PM Bernardo Botella > <[email protected]> wrote: >> >> Hi everyone! >> >> I’d like to propose adding the async-profiler library to the Cassandra >> project. This will enable us to add a new nodetool command to do profiling >> tasks on the process running Cassandra. This information can be useful to >> debug a wide range of potential issues and performance optimizations. >> CASSANDRA-20854 captures the effort and the details of the proposal, and >> this PR proposes its implementation. >> >> I want to note that this feature was already discussed in this thread, and >> this one only want to make sure that no one has any concerns about adding >> the library as a dependency. >> >> What is async-profiler? >> async-profiler is a low overhead sampling profiler for Java that does not >> suffer from the Safepoint bias problem. It features HotSpot-specific API to >> collect stack traces and to track memory allocations. The profiler works >> with OpenJDK and other Java runtimes based on the HotSpot JVM. >> >> Unlike traditional Java profilers, async-profiler monitors non-Java threads >> (e.g., GC and JIT compiler threads) and shows native and kernel frames in >> stack traces. >> >> What can be profiled: >> >> CPU time >> Allocations in Java Heap >> Native memory allocations and leaks >> Contended locks >> Hardware and software performance counters like cache misses, page faults, >> context switches >> and more. >> >> >> We propose to add async-profiler 4.2 as a dependency to Cassandra. >> >> Any concerns? >> Bernardo
