Changes in version 2024.3
- JVM support
- Networking
- Security
- User interface
- Thread profiling
- Telemetry
- IDE integration
- EE server support
- Events
- Profiler API
- Triggers
- Miscellaneous
- Deprecations
JVM support
- feature Java 22 is supported.
Networking
-
feature The profiler displays detected proxy settings when using the automatic proxy detection mode (the default mode). This can be very useful in cases where the profiler incorrectly identifies the proxy server, preventing connections with remote agents.
Security
-
improvement
Profiler agent does not log command line options unless the
verbose
option is specified.
User interface
- feature We've enhanced the user experience for two-finger scrolling. The profiler eliminates minor finger tremors during scrolling, ensuring a smooth, jitter-free scroll. Currently, this functionality is utilized in the Threads view, but it will be adapted across other parts of the UI in upcoming versions.
- feature Introduced the ability to close (and later reopen) top tabs displaying profiling results when the profiler is connected to profiled applications.
- feature Added functionality to reset collected profiling results when profiling is disabled. Previously, resetting was only possible while profiling was active.
- improvement Double-clicking the drawer's button now toggles the collapse/expand state of the drawer.
- caveat The Performance charts view has been renamed to Telemetry.
Thread profiling
We have completely overhauled the user interface for thread profiling. It's now more convenient, clearer, and works much faster. We've tried to address all the UX shortcomings you pointed out when working with the old interface.
-
feature The thread list has been turned into a table with columns, which can show an unlimited number of threads.
- feature You can sort threads by name and by consumed CPU time.
-
feature A tooltip appears upon mouse hover over individual thread activity bars, providing the name of the top method on the thread's stack.
- feature The ability to optionally display hot spots on the thread timeline has been added.
- feature Now it is possible to quickly change the range and scale of visible data in the thread state timeline using the actions from the toolbar: , ,
- feature You can control auto-scrolling behavior using the button in the toolbar. When toggled, the timeline will be automatically scrolled to the right when new data arrives.
-
feature It is now possible to
zoom in and zoom out the thread state timeline by
Ctrl + Mouse wheel
scrolling. -
feature You can control the amount of data collected (and accordingly, the profiler overhead) when starting thread profiling. You can do this through the UI, as well as with
threads
startup option. - feature You can now start , stop , and reset thread profiling at any time.
- improvement Data collection for thread profiling has been separated from data collection for telemetry. Now you can reset telemetry data and thread profiling results independently.
- improvement The profiler better preserves fine details when changing the scale of the thread state timeline. In most cases, even very rare states will be visible even at the smallest scale.
Telemetry
- feature The user interface has been updated with toolbar buttons to start and stop telemetry collection, expanding control beyond the previous capability of only clearing collected telemetry.
IDE integration
- feature NetBeans 21 is supported.
EE server support
- feature Apache TomEE 9.1 server is supported.
- feature Open Liberty 24 server is supported.
- feature WebSphere Liberty 24 server is supported.
- feature WildFly 31 server is supported.
Events
- feature HBase Java client version 2.5 is supported.
- feature Hibernate driver version 6.4 is supported.
- feature MongoDB driver version 5.0 is supported.
Profiler API
-
feature
New
/yjp/api/v2/startTelemetry
end-point to start telemetry collection. -
feature
New
/yjp/api/v2/stopTelemetry
end-point to stop telemetry collection. -
feature
New
/yjp/api/v2/resetThreadProfiling
end-point to reset thread profiling. -
feature
New methods in the profiler Java API
startTelemetry()
,stopTelemetry()
andresetTelemetry()
to control telemetry collection. -
improvement
The response of
getStatus
request has been changed: flagstackTelemetry
has been replaced with flagthreadProfiling
, flagtelemetry
has been added. -
improvement
The profiler HTTP API
has been updated to version v2.
We have added
reset
methods, which reset the profiling results and continue measurements. The HTTP API v1 is deprecated but continues to fully function. If you are using HTTP API v1, please make the corresponding changes. -
improvement
The new
com.yourkit.api.controller.v2.Controller
is a replacement for the deprecatedcom.yourkit.api.controller.Controller
.
Triggers
-
feature
Added new actions
StartTelemetry
andStopTelemetry
to start and stop a telemetry collection, respectively. - fix The profiler might crash if the profiled application finishes during the editing of triggers.
-
caveat
Action
StartAllocationRecording
is replaced withStartAllocationProfiling
. -
caveat
Action
StartAllocationRecordingHeapSampling
is replaced withStartAllocationProfilingHeapSampling
. -
caveat
Action
StopAllocationRecording
is replaced withStopAllocationProfiling
.
Miscellaneous
-
improvement
New
verbose
option to increase the level of detail in the agent's log file. - improvement We slightly changed the format of the agent's log file to make it clearer at what time events occur. Instead of uptime, wall time is now always recorded.
-
improvement
The command line interface
was simplified by replacing multiple scripts
(
attach.sh
,integrate.sh
,export.sh
) with a singleprofiler.sh
script that accepts parameters. For example, useprofiler.sh -integrate
instead ofintegrate.sh
. This streamlines operations and improves usability. -
improvement
Unified naming convention for agent options:
Multi-word option names now utilize underscores for separation.
Example change: from
probetablelengthlimit
toprobe_table_length_limit
. Legacy options remain functional, but users are encouraged to update to the new format. - caveat The support of FreeBSD which were deprecated in version 2023.9, have been removed.
- caveat The command line tool to control profiling, which was deprecated in version 2023.9, has been removed.
-
caveat
The following obsolete agent startup options have been removed:
builtinprobes=all
,builtinprobes=none
,probe
,noprobe
,filters
,samplingdelta
,samplingperiod
,onlylocal
,do_advanced_port_check
,skip_advanced_port_check
,profileruipath
,walltimespec
,disablej2ee
,noj2ee
,noperclassgc
Deprecations
Deprecation means that we intend to remove the feature or capability from a future release of YourKit Java Profiler. The feature or capability will continue to work and is fully supported until it is officially removed.
-
Trigger actions
StartAllocationRecording
,StartAllocationRecordingHeapSampling
andStopAllocationRecording
are deprecated and scheduled for removal. If you use these actions in the configuration files, please replace them withStartAllocationProfiling
,StartAllocationProfilingHeapSampling
andStopAllocationProfiling
accordingly. -
Trigger actions
StartStackTelemetry
andStopStackTelemetry
are deprecated and scheduled for removal. If you use these actions in the configuration files, please replace them withStartThreadProfiling
andStopThreadProfiling
accordingly. - The HTTP API v1 is deprecated and scheduled for removal. Please switch to HTTP API v2.
-
com.yourkit.api.controller.Controller
is deprecated and scheduled for removal. -
HTTP API end-point
/yjp/api/v1/startStackTelemetry
has been deprecated. Use/yjp/api/v2/startThreadProfiling
. -
HTTP API end-point
/yjp/api/v1/stopStackTelemetry
has been deprecated. Use/yjp/api/v2/stopThreadProfiling
. -
Agent startup option
disablestacktelemetry
is deprecated in favor of new optionthreads=off
. -
Export option
export.charts
has been deprecated. Useexport.telemetry
to export the telemetry.