-
Notifications
You must be signed in to change notification settings - Fork 3
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
docs: Add intro content from Pyroscope #326
Open
knylander-grafana
wants to merge
7
commits into
main
Choose a base branch
from
ps-233-share-intro-profiles-content
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+231
−0
Open
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
c27989c
Add intro content from Pyroscope
knylander-grafana d3abdef
Fix page weights
knylander-grafana 90bad3c
Merge branch 'main' into ps-233-share-intro-profiles-content
knylander-grafana c821a6b
Apply suggestions from code review
knylander-grafana e265c4c
Apply suggestions from code review
knylander-grafana 45b1e7b
Merge branch 'main' into ps-233-share-intro-profiles-content
knylander-grafana 602c5a6
Apply suggestions from code review
knylander-grafana 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
File renamed without changes.
This file contains 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,53 @@ | ||
--- | ||
description: Configure available settings for Explore Profiles. | ||
keywords: | ||
- pyroscope | ||
- continuous profiling | ||
- settings | ||
menuTitle: Profile settings | ||
title: Profile settings | ||
weight: 800 | ||
aliases: | ||
- /docs/grafana-cloud/monitor-applications/profiles/profile-settings/ | ||
--- | ||
|
||
# Profiles settings | ||
|
||
The **Profiles settings** page lets you modify flame graph, export, and function details options used for Profiles and [Explore Profiles](). | ||
|
||
![The Profiles Settings page](/media/docs/explore-profiles/explore-profiles-settings.png) | ||
|
||
| Features | Options | Explanation | | ||
| --------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| **Collapsed flame graph** | Default: Off | When this feature is active, you can collapse flame graphs to minimize their screen space. | | ||
| **Maximum number of nodes** | Default: 16384 | This number controls the maximum number of nodes, which controls the depth of the flame graph. The higher the number, the more nodes are used in the flame graph. The flame graphs appear longer. | | ||
<!-- Commenting out flamegraph.com | ||
| **Enable flamegraph.com** | Default: On | Adds a `flamegraph.com` export option to the **Export flame graph** menu. Flame graphs uploaded to `flamegraph.com` have a publicly accessible URL. Deactivate this option if data privacy is a concern. | | ||
knylander-grafana marked this conversation as resolved.
Show resolved
Hide resolved
|
||
--> | ||
| **Enable function details** | Default: On | Enables mapping of resource usage to lines of source code. If the [GitHub integration](https://grafana.com/docs/grafana-cloud/monitor-applications/profiles/pyroscope-github-integration/) is configured, then the source code is downloaded from GitHub. | | ||
|
||
|
||
## Modify settings | ||
|
||
To change the settings for Explore Profiles: | ||
|
||
1. Sign in to your Grafana instance. | ||
1. Select **Explore** > **Profiles** in the left navigation. | ||
1. Select the **Settings** (gear) icon in the right corner. | ||
![Access the Settings by selecting the gear icon](/media/docs/explore-profiles/explore-profiles-settings-icon.png) | ||
1. Change any options as desired. | ||
1. Select **Save settings** to preserve the changes. | ||
|
||
<!-- Commented out -- feature disabled for now | ||
|
||
## Export flame graphs to flamegraph.com | ||
|
||
You can export flame graphs using the **Export** option on any of the flame graph views. | ||
|
||
To export a flame graph: | ||
|
||
1. View a flame graph in **Explore** > **Profiles**. | ||
1. Select the **Export** icon at the end of the toolbar. | ||
![Available export options for the flame graph](/media/docs/grafana-cloud/profiles/profiles-export-flamegraph.png) | ||
1. Choose an export option. | ||
1. Save the file to your system. --> |
File renamed without changes.
This file contains 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,20 @@ | ||
--- | ||
title: What is continuous profiling? | ||
menuTitle: Continuous profiling | ||
description: Discover the benefits of continuous profiling and its role in modern application performance analysis. | ||
weight: 200 | ||
keywords: | ||
- continuous profiling | ||
- flame graphs | ||
refs: | ||
flame-graphs: | ||
- pattern: /docs/explore-profiles/ | ||
destination: https://grafana.com/docs/explore-profiles/<EXPLORE_PROFILES_VERSION>/concepts/flame-graphs/ | ||
--- | ||
|
||
# What is continuous profiling? | ||
|
||
[//]: # 'Shared content for the when to use continuous profiling.' | ||
[//]: # 'This content is located in /pyroscope/docs/sources/shared/intro/continuous-profiling.md' | ||
|
||
{{< docs/shared source="pyroscope" lookup="intro/continuous-profiling.md" version="<PYROSCOPE_VERSION>" >}} |
This file contains 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,15 @@ | ||
--- | ||
title: Flame graphs | ||
menuTitle: Flame graphs | ||
description: Learn about flame graphs to help visualize performance data. | ||
weight: 400 | ||
keywords: | ||
- Flame graphs | ||
--- | ||
|
||
# Flame graphs | ||
|
||
[//]: # 'Shared content for intro to flame graphs.' | ||
[//]: # 'This content is located in /pyroscope/docs/sources/shared/intro/flame-graphs.md' | ||
|
||
{{< docs/shared source="pyroscope" lookup="intro/flame-graphs.md" version="<PYROSCOPE_VERSION>" >}} |
This file contains 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,36 @@ | ||
--- | ||
title: Understand profiling types and their uses in Pyroscope | ||
menuTitle: Understand profiling types | ||
description: Learn about the different profiling types available in Pyroscope and how to effectively use them in your application performance analysis. | ||
weight: 300 | ||
keywords: | ||
- profiles | ||
- profiling types | ||
- application performance | ||
- flame graphs | ||
--- | ||
|
||
# Understand profiling types and their uses in Pyroscope | ||
|
||
{{< docs/shared source="pyroscope" lookup="intro/continuous-profiling.md" version="<PYROSCOPE_VERSION>" >}} | ||
|
||
Profiling is an essential tool for understanding and optimizing application performance. In Pyroscope, various profiling types allow for an in-depth analysis of different aspects of your application. This guide explores these types and explain their impact on your program. | ||
|
||
## Profiling types | ||
|
||
In Pyroscope, profiling types refer to different dimensions of application performance analysis, focusing on specific aspects like CPU usage, memory allocation, or thread synchronization. | ||
|
||
[//]: # 'Shared content for available profile types' | ||
[//]: # 'This content is located in /pyroscope/docs/sources/shared/available-profile-types.md' | ||
|
||
{{< docs/shared source="pyroscope" lookup="available-profile-types.md" version="latest" >}} | ||
|
||
Refer to the Profile types tables for information on supported profile types based on instrumentation method. | ||
|
||
For information on auto-instrumentation and supported language SDKs, refer to [Configure the client](https://grafana.com/docs/pyroscope/<PYROSCOPE_VERSION>/configure-client/). | ||
|
||
<!-- Description of profiling types --> | ||
|
||
[//]: # 'Shared content for profile type explanations.' | ||
[//]: # 'This content is located in /pyroscope/docs/sources/shared/intro/profile-types-descriptions.md' | ||
|
This file contains 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,16 @@ | ||
--- | ||
title: What is profiling? | ||
menuTitle: What is profiling? | ||
description: Discover the types of profiling and how to apply each profiling method. | ||
weight: 100 | ||
keywords: | ||
- Pyroscope | ||
- Profiling | ||
--- | ||
|
||
# What is profiling? | ||
|
||
[//]: # 'Shared content for What is profiling?' | ||
[//]: # 'This content is located in /pyroscope/docs/sources/shared/intro/what-is-profiling.md' | ||
|
||
{{< docs/shared source="pyroscope" lookup="intro/what-is-profiling.md" version="<PYROSCOPE_VERSION>" >}} |
File renamed without changes.
This file contains 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,91 @@ | ||||||||||
--- | ||||||||||
description: Use Flame graph AI to better understand your profile data and flame graphs. | ||||||||||
keywords: | ||||||||||
- continuous profiling | ||||||||||
- flame graphs | ||||||||||
- Flame graph AI | ||||||||||
menuTitle: Use Flame graph AI | ||||||||||
title: Use Flame graph AI | ||||||||||
weight: 100 | ||||||||||
refs: | ||||||||||
flame-graph-panel: | ||||||||||
- pattern: /docs/grafana/ | ||||||||||
destination: /docs/grafana/<GRAFANA_VERSION>/panels-visualizations/visualizations/flame-graph/ | ||||||||||
- pattern: /docs/grafana-cloud/ | ||||||||||
destination: /docs/grafana-cloud/visualizations/panels-visualizations/visualizations/flame-graph/ | ||||||||||
--- | ||||||||||
|
||||||||||
# Use Flame graph AI | ||||||||||
|
||||||||||
Flame graph AI helps you understand your profiling data by using a large-language model (LLM) to assist with data interpretation. | ||||||||||
|
||||||||||
A flame graph provides a convenient way to visualize performance data. | ||||||||||
These graphs provide a clear, intuitive understanding of resource allocation and bottlenecks within an application. | ||||||||||
To learn more, refer to [Flame graph visualizations](ref:flame-graph-panel). | ||||||||||
|
||||||||||
Flame graphs and profiling data in general can help you understand: | ||||||||||
|
||||||||||
1. Performance bottlenecks: What's causing the slowdown? | ||||||||||
1. Root causes: Why is it happening? | ||||||||||
1. Recommended fixes: How would you resolve it? | ||||||||||
|
||||||||||
Flame graph AI answers these questions when explaining your flame graph. | ||||||||||
To learn more, refer to [AI-powered insights for continuous profiling: introducing Flame graph AI in Grafana Cloud](https://grafana.com/blog/2024/05/15/ai-powered-insights-for-continuous-profiling-introducing-flame-graph-ai-in-grafana-cloud/). | ||||||||||
|
||||||||||
![Flame graph analysis with performance bottleneck, root cause, and recommended fix](/media/docs/grafana-cloud/profiles/pyorsope-flamegraph-ai-analysis.png) | ||||||||||
|
||||||||||
## Flame graph AI compliments human interpretation | ||||||||||
|
||||||||||
Flame graph AI analyzes a flame graph and provides a plain English interpretation of the flame graph. | ||||||||||
|
||||||||||
It only takes using a flame graph successfully once to really move from the beginner to advanced interpretation. | ||||||||||
From a product standpoint, one challenge has been building a user-experience that can span from beginner to expert and still be useful for both. | ||||||||||
|
||||||||||
When compared to volunteers in a limited flame graph interpretation test, the Flame graph AI's interpreter scored 100%. Beginners scored 25% and flame graph experts scored 83%. | ||||||||||
The AI consistently outperformed beginners and advanced users, providing accurate, albeit less detailed/nuanced, interpretations than the experts. | ||||||||||
|
||||||||||
These initial results at least point towards a great opportunity in adding value to most users by incorporating AI. | ||||||||||
|
||||||||||
Refer to the [AI-powered flame graph interpreter](https://pyroscope.io/blog/ai-powered-flamegraph-interpreter/) blog post to learn more. | ||||||||||
|
||||||||||
## Explore your profile data with Flame graph AI | ||||||||||
|
||||||||||
Flame graph AI uses the LLM plugin for Grafana to provide the large-language model using OpenAI API. | ||||||||||
|
||||||||||
You can use Flame graph AI in Grafana **Explore** > **Profiles** and the Explore Profiles app, nested underneath **Explore** > **Profiles** > **Explore profiles**. | ||||||||||
|
||||||||||
### Before you begin | ||||||||||
|
||||||||||
To use Flame graph AI, you must have: | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
- Configured a [Grafana Pyroscope data source](https://grafana.com/docs/grafana-cloud/connect-externally-hosted/data-sources/pyroscope/) that has profiling data | ||||||||||
|
||||||||||
- Enabled the [LLM plugin](https://grafana.com/docs/grafana-cloud/alerting-and-irm/machine-learning/configure/llm-plugin/) for your Grafana instance | ||||||||||
- Activated the [Explore Profiles](https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/profiles/access/) app for your Grafana instance | ||||||||||
|
||||||||||
### Use Flame graph AI | ||||||||||
|
||||||||||
To use Flame graph AI when viewing a flame graph: | ||||||||||
|
||||||||||
1. Sign on to your Grafana Cloud account and start your Grafana instance. | ||||||||||
1. Select **Explore** > **Profiles** from the left navigation. | ||||||||||
1. Select **Flame graph** view from the **Exploration** types or select any view or service with an available flame graph. For example, from the **All services** view, select any **Flame graph** link to open the flame graph for that service. | ||||||||||
1. Select **Explain Flame Graph** to view the **Flame graph analysis**. | ||||||||||
|
||||||||||
### Use Flame graph AI in Diff flame graph view | ||||||||||
|
||||||||||
The **Diff flame graph** view facilitates side-by-side comparison of profiles either based on different label sets, different time periods, or both. This feature is extremely valuable for understanding the impact of changes or differences between do distinct queries of your application. | ||||||||||
|
||||||||||
The **Diff flame graph** view is an extension of **Comparison view**, crucial for more easily visually showing the differences between two profiling datasets. | ||||||||||
Similar to a `git diff`, the comparison takes the flame graphs from the comparison view and highlights the differences between the two flame graphs. | ||||||||||
|
||||||||||
You can use Flame graph AI to interpret the diff view. | ||||||||||
|
||||||||||
To use Flame graph AI when comparing two different flame graphs: | ||||||||||
|
||||||||||
1. Sign on to your Grafana Cloud account and start your Grafana instance. | ||||||||||
1. Select **Explore** > **Profiles** from the left navigation. | ||||||||||
1. Select a **Service**, **Profile**, and time range (optional; default value is **Last 1 hour**). | ||||||||||
1. Optional: In **Baseline time range**, select one or more labels to use as filters. Select **Execute**. | ||||||||||
1. Optional: In **Comparison time range**, select one or more labels to use as filters. Select **Execute**. | ||||||||||
1. Select **Explain Flame Graph**. |
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As done below, let's also comment out the "flamegraph.com" settings here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done.