-
Notifications
You must be signed in to change notification settings - Fork 1.2k
JetBrains IDE plugin / Move Profiler docs to separate page #29758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
joepeeples
merged 7 commits into
master
from
david.gilbert/IDE-4596-jetbrains-ide-profiler
Jun 13, 2025
Merged
Changes from 6 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
aa8cf3e
Create separate page for Continuous Profiler
jfree 61e677c
Update screenshots
jfree bbeab9a
Minor updates
jfree 2ef1ed1
Update main screenshot
jfree 238059b
Move updated image to correct directory
jfree 60e7316
Reword overview
jfree ad549e3
Apply suggestions from code review
jfree File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
80 changes: 80 additions & 0 deletions
80
content/en/developers/ide_plugins/idea/continuous_profiler.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
--- | ||
title: Continuous Profiler | ||
type: documentation | ||
further_reading: | ||
- link: "/getting_started/profiler/" | ||
tag: "Documentation" | ||
text: "Getting started with Continuous Profiler." | ||
- link: "/integrations/guide/source-code-integration/" | ||
tag: "Documentation" | ||
text: "Learn about Source Code Integration." | ||
--- | ||
|
||
## Overview | ||
The **Continuous Profiler** highlights resource consumption (CPU, memory allocation, and thrown exceptions amongst others) using profiling data collected from deployed services. This information helps developers eliminate bottlenecks and write more efficient code. | ||
jfree marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Profiler tab | ||
|
||
The Continuous Profiler tab shows profiling information for the service in a selected environment, aggregated over a specific time frame. Available views are: | ||
- [Top list](#top-list): Displays a list of the most resource intensive methods for the current profiling measure. | ||
- [Flame graph](#flame-graph): A flame graph representing stack traces in the profiles. | ||
|
||
You can specify the following parameters for the profiling data: | ||
- The profile type to be displayed | ||
- The environment in which the service is running | ||
- The time frame for the profile samples to be aggregated | ||
|
||
The available profiling types usually include options like **CPU Time** and **Allocated Memory**, but are determined by the platform and vary by language. | ||
|
||
## Top list | ||
|
||
The **Top List** sub-tab shows the methods that consume the most resources based on the aggregated profile data loaded from the Datadog servers. These are the methods that are most likely candidates for optimization. | ||
|
||
{{< img src="/developers/ide_plugins/idea/continuous_profiler/top-list.png" alt="The Top-list view" style="width:100%;" >}} | ||
|
||
- Double-clicking an item in the list (or selecting **Jump to Source** from the context menu) opens a source code editor showing where the method is defined. | ||
jfree marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- To see a flame graph visualization of a method, select **Search in Flame Graph** from the context menu. | ||
|
||
### Call tree | ||
|
||
The call tree to the right of the **Top List** shows the paths that lead to (and from) the selected method. | ||
|
||
The default **Caller Hierarchy** view shows the callers (or predecessors) of the target method and the frequency with which they appear in the call stack. To view the callees (or successors), click the **Callee Hierarchy** button on the toolbar. | ||
|
||
Right-click on a method in the call tree to see options to navigate to the source editor or flame graph. | ||
|
||
## Flame graph | ||
|
||
A flame graph is a visualization of profiling samples that shows stack traces and their relative frequency during the sample period. The Datadog plugin collects multiple individual profiles from the requested time frame, and aggregates them. Each individual profile covers a 60 second interval within the requested time frame. | ||
jfree marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
{{< img src="/developers/ide_plugins/idea/continuous_profiler/flamegraph.png" alt="A flame graph showing CPU Time over the past hour" style="width:100%;" >}} | ||
|
||
Each time you change the profile type, the time frame, or the environment, the Datadog plugin generates a new flame graph. | ||
|
||
You can navigate the flame graph in several ways: | ||
- Double-click on any frame to focus on that method and all the methods that it has called during the sampling period. | ||
- Use the minimap to pan around the graph. | ||
- Right-click on a method and select **Jump to Source** to go to the corresponding point in the source code. | ||
jfree marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Hovering over a method displays a tooltip with the following information: | ||
- The class name and method signature | ||
- The package name | ||
- The profiling metric value and percentage breakdown. | ||
|
||
Profiling samples include stack trace and line number information. Use the **Separate Flame Graph by** button to switch between separating frames by method or line number. | ||
|
||
{{< img src="/developers/ide_plugins/idea/separate-flamegraph-by.png" alt="Use the tooltip button to separate frames by method or line number" style="width:40%;" >}} | ||
|
||
## Source highlighting | ||
|
||
When the Continuous Profiler tab is active, the plugin adds code highlights to the source code editor margin. For Top Methods, an icon appears in the editor margin, and line-level highlights appear in the code based on the active Profiling data. | ||
- Hover over the icon to see more information. | ||
- Click the icon to open the top list Profiling tab or open Profiling in Datadog. | ||
{{< img src="/developers/ide_plugins/idea/interest-options.png" alt="Click the Datadog icon to open the Profiling data in a tab or in Datadog" style="width:100%;" >}} | ||
|
||
The active Profiling tab also affects the project tree view, which is annotated with the selected profile's metrics: | ||
{{< img src="/developers/ide_plugins/idea/project-tree-view.png" alt="The project tree annotated with profile metrics from a profile tab" style="width:60%;" >}} | ||
|
||
## Further reading | ||
|
||
{{< partial name="whats-next/whats-next.html" >}} |
Binary file added
BIN
+93.4 KB
static/images/developers/ide_plugins/idea/continuous_profiler/flamegraph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+166 KB
static/images/developers/ide_plugins/idea/continuous_profiler/top-list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.