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

Reply via email to