Support pprof profiling feature - #13502
Merged
Merged
Conversation
wankai123
reviewed
Sep 19, 2025
wankai123
reviewed
Sep 19, 2025
mrproliu
reviewed
Oct 22, 2025
| } | ||
| } | ||
|
|
||
|
|
Contributor
There was a problem hiding this comment.
Please remove empty lines.
mrproliu
previously approved these changes
Oct 22, 2025
wu-sheng
reviewed
Oct 22, 2025
| @@ -0,0 +1,107 @@ | |||
| # Go App Profiling | |||
Member
There was a problem hiding this comment.
This file should be linked from doc menu.
wu-sheng
reviewed
Oct 22, 2025
|
|
||
| Go App Profiling uses the Pprof for sampling | ||
|
|
||
| Pprof is bound within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). |
Member
There was a problem hiding this comment.
Suggested change
| Pprof is bound within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). | |
| pprof is bound within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). |
pprof is a project name. They don't use capital first letter, ref to https://github.com/google/pprof
wu-sheng
reviewed
Oct 22, 2025
| Pprof is bound within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). | ||
|
|
||
| It is delivered to the agent in the form of a task, allowing it to be enabled or disabled dynamically. | ||
| When service encounters performance issues (cpu usage, memory allocation, etc.), Pprof task can be created. |
Member
There was a problem hiding this comment.
Suggested change
| When service encounters performance issues (cpu usage, memory allocation, etc.), Pprof task can be created. | |
| When service encounters performance issues (CPU usage, memory allocation, etc.), pprof task can be created. |
Please fix nits in your words.
wu-sheng
reviewed
Oct 22, 2025
wu-sheng
reviewed
Oct 22, 2025
| * Self Observability: add `metrics_aggregation_queue_used_percentage` and `metrics_persistent_collection_cached_size` metrics for the OAP server. | ||
| * Optimize metrics aggregate/persistent worker: separate `OAL` and `MAL` workers and consume pools. The dataflow signal drives the new MAL consumer, | ||
| the following table shows the pool size,driven mode and queue size for each worker. | ||
| * Support pprof profiling feature. |
Member
There was a problem hiding this comment.
Suggested change
| * Support pprof profiling feature. | |
| * Support the go agent(0.7.0 release) bundled pprof profiling feature. |
mrproliu
previously approved these changes
Oct 24, 2025
mrproliu
previously approved these changes
Oct 24, 2025
wu-sheng
reviewed
Oct 24, 2025
| * pprof taskId | ||
| */ | ||
| private String taskId; | ||
| // Type of profiling (CPU/Heap/Block/Mutex/Goroutine/Threadcreate/Allocs) |
Member
There was a problem hiding this comment.
The comment format is not consistent, please fix this.
| * Self Observability: add `metrics_aggregation_queue_used_percentage` and `metrics_persistent_collection_cached_size` metrics for the OAP server. | ||
| * Optimize metrics aggregate/persistent worker: separate `OAL` and `MAL` workers and consume pools. The dataflow signal drives the new MAL consumer, | ||
| the following table shows the pool size,driven mode and queue size for each worker. | ||
| * Support the go agent(0.7.0 release) bundled pprof profiling feature. |
Member
There was a problem hiding this comment.
You injected the change logs into a wrong place move it to the last line of oap changes section.
|
|
||
| ### Go App Profiling | ||
|
|
||
| Go App Profiling uses the [Pprof](https://github.com/google/pprof) for sampling. |
Member
There was a problem hiding this comment.
Suggested change
| Go App Profiling uses the [Pprof](https://github.com/google/pprof) for sampling. | |
| Go App Profiling uses the [pprof](https://github.com/google/pprof) for sampling. |
|
|
||
| Go App Profiling uses the pprof for sampling | ||
|
|
||
| pprof is bound within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). |
Member
There was a problem hiding this comment.
Suggested change
| pprof is bound within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). | |
| pprof is bundled within the auto-instrument agent and corresponds to [In-Process Profiling](../../concepts-and-designs/profiling.md#in-process-profiling). |
typo?
wu-sheng
approved these changes
Oct 25, 2025
4 tasks
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR introduces a new pprof profiling analysis feature for Go services in SkyWalking.
It enables on-demand performance profiling of Go applications through SkyWalking’s UI, including CPU, Heap, Block, Mutex, Goroutine, ThreadCreate, and Allocs events.
CHANGESlog.