Skip to content
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

[DOC] Restructure Pyroscope documentation and share content #3798

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

knylander-grafana
Copy link
Contributor

@knylander-grafana knylander-grafana commented Dec 20, 2024

Restructure Pyroscope documentation to share content to other profiles-related content.

  • Changes into content to shared files
  • Updates the Pyroscope UI content to include Explore Profiles
  • Restructures the Configure the server section - moves the API docs out to a new reference section, moves the two storage docs into a storage directory

These changes will go live with the next Pyroscope release and should not be backported.

Notes for reviewer

Part of https://github.com/grafana/pyroscope-squad/issues/223 (reference the mind map linked in the issue for the file changes)

You can check out the PR using gh pr checkout 3798 in your local tempo repo.

Changes to check:

  • Intro section now has shared content. Please verify that the correct content shows in each page.
  • Check aliases in the front matter for moved pages
  • Check the page weights and order using the mind map as a guide.

Blocks these PRs:

@knylander-grafana knylander-grafana added the type/docs Improvements for doc docs. Used by Docs team for project management label Dec 20, 2024
@knylander-grafana knylander-grafana self-assigned this Dec 20, 2024
@knylander-grafana knylander-grafana requested review from a team as code owners December 20, 2024 07:32
docs/sources/configure-client/grafana-alloy/_index.md Outdated Show resolved Hide resolved
docs/sources/configure-server/about-configurations.md Outdated Show resolved Hide resolved
docs/sources/configure-server/about-ip-address-logging.md Outdated Show resolved Hide resolved
docs/sources/reference-server-api/index.md Outdated Show resolved Hide resolved

<!-- vale Grafana.Spelling = NO -->

[Brendan Gregg](https://www.brendangregg.com/flamegraphs.html), the creator of flame graphs, was inspired by the inability to view, read, and understand stack traces using the regular profilers to debug performance issues.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hah, this is so cool 😎

docs/sources/shared/intro/flame-graphs.md Outdated Show resolved Hide resolved
docs/sources/shared/intro/flame-graphs.md Outdated Show resolved Hide resolved
Comment on lines +38 to +40
Horizontally, the flame graph represents 100% of the time that this application was running.
The width of each node represents the amount of time spent in that function.
The wider the node, the more time spent in that function. The narrower the node, the less time spent in that function.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is such a good, succinct description ❤️

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The flame graph text was written by the team. Good stuff! :)


CPU profiling measures the amount of CPU time consumed by different parts of your application code.
High CPU usage can indicate inefficient code, leading to poor performance and increased operational costs.
It's used to identify and optimize CPU-intensive functions in your application.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You do such a fantastic job of introducing concepts throughout all of these topics, Kim!

Copy link
Contributor Author

@knylander-grafana knylander-grafana Jan 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! This is largely a team effort. The team has these gems tucked all over the place. so much good stuff. I just provide some structure to it. :)

Comment on lines +18 to +20
Traditionally, profiling is used as a free-form debugging tool in languages like Go and Java.
You are probably used to running a benchmark tool locally and getting a `pprof` file in Go or maybe connecting into a misbehaving prod instance and pulling a flame graph from a `JFR` file in Java.
This is great for debugging but not so great for production.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How's this?

Suggested change
Traditionally, profiling is used as a free-form debugging tool in languages like Go and Java.
You are probably used to running a benchmark tool locally and getting a `pprof` file in Go or maybe connecting into a misbehaving prod instance and pulling a flame graph from a `JFR` file in Java.
This is great for debugging but not so great for production.
Traditionally, profiling is a free-form debugging tool in languages like Go and Java.
For example, you can run a benchmark tool locally and get a `pprof` file in Go or connect to a misbehaving prod instance and pull a flame graph from a `JFR` file in Java.
This method is good for debugging, but not robust enough for production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/docs Improvements for doc docs. Used by Docs team for project management
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants