- System requirements
- Profiler architecture
- Profiler installation
- Uninstall profiler
- Running the profiler
- Profiler activation
- Welcome screen
- Start profiling
- Profiling overhead
- Snapshots
- Solving performance problems
- CPU profiling
- Thread profiling
- Virtual threads support
- Object allocation profiling
- Memory profiling
- Monitor profiling
- Exception profiling
- Telemetry
- Probes: monitor events of various kinds
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Automatic deobfuscation
- Summary
- Filters
- Profiler command line
- Export of profiling results to external formats
- Profiler Java API
- Profiler HTTP API
- Settings
- Troubleshooting and FAQ
Telemetry
Telemetry plays an important role in understanding and optimizing the performance of Java applications. YourKit Java Profiler captures a wide array of telemetry data, ranging from CPU usage to memory allocation, and I/O operations. This data is organized hierarchically in a tree structure and visualized through intuitive performance charts, with each telemetry metric presented in a dedicated chart for ease of analysis.
Controlling telemetry collection
Profiler UI
When the profiler is connected to the profiled application, the toolbar contains the following telemetry controls:
Toolbar button | Description |
![]() ![]() |
Start/Stop telemetry collection. |
![]() |
Clears all current telemetry data. |
When telemetry collection is started, previously collected data is cleared automatically.
Agent startup options
Telemetry collection is enabled by default and starts right away.
Interval for collecting telemetry data is set to 1 second and limited to 1 hour.
However, this can be adjusted with startup options
telemetry_period
,
telemetry_limit
,
delay
,
telemetry=off
.
HTTP API
For users requiring remote control or automation within their profiling workflows, YourKit Java Profiler offers control over the telemetry collection through HTTP API endpoints. The documentation outlines startTelemetry, stopTelemetry and resetTelemetry methods available for this purpose.
Java API
The YourKit Java Profiler also provides a
Java API
for deep integration with Java applications.
The com.yourkit.api.controller.v2.Controller
includes methods for starting,
stopping, and resetting the telemetry collection, similar to the toolbar buttons.
Telemetry tab
All collected telemetry is shown on the Telemetry tab. Some other tabs may contain telemetry views, which is specific to them.

Toolbar
-
: Zoom in and out to quickly change the range of visible data.
-
: Show "empty" charts, i.e. the charts that have only zero values.
-
: Smooth out short-term fluctuations on graphs. This is useful for visualizing of fast-changing data.
-
: Control auto-scrolling behavior of telemetry charts. When toggled, the graphs will be automatically scrolled to the right when new data arrives.
Changing the scale of the charts
Using the time range selector, which appears when the mouse pointer is over the chart, you can select the rage and scale of the visible data. You can also hold down the Ctrl key and use the mouse wheel to zoom the graphs.
Customization of the visible charts
By utilizing the chart selector located on the left side of the interface, you can choose which metrics to show or hide. This functionality supports you in identifying patterns and correlations across different performance metrics by stacking them together.

As a chart is selected in the hierarchical tree of metrics, the interface intelligently scrolls to bring the chosen chart into view, ensuring that you can quickly navigate through the wealth of information without losing track of the metric of interest.
Working with telemetry charts
Clicking on chart: Clicking on a chart reveals the call stacks of the Java threads running at that specific moment, providing a snapshot of the application's state.
Selecting the time interval: Analyzing performance over a time span is equally straightforward. By selecting a range within the telemetry data, profiler builds an estimated call tree and computes the CPU usage for that interval. This can be invaluable for pinpointing performance bottlenecks or understanding the behavior of the application during periods of high load.