-
Notifications
You must be signed in to change notification settings - Fork 90
Enable Memory & CPU Profiling for df_engine #2420
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
jmacd
merged 52 commits into
open-telemetry:main
from
sapatrjv:dev/sapatr/memprofilingwithdhat
Apr 15, 2026
+144
−20
Merged
Changes from 11 commits
Commits
Show all changes
52 commits
Select commit
Hold shift + click to select a range
c294b16
Memory & CPU Profiling.
sapatrjv 062e1fb
Enable Memory & CPU profiling for df_engine.
sapatrjv f79dffd
Merge branch 'main' into dev/sapatr/memprofilingwithdhat
sapatrjv 1ab21be
Enable Memory & CPU Profiling for df_engine
sapatrjv 8c6daa6
Merge branch 'dev/sapatr/memprofilingwithdhat' of https://github.com/…
sapatrjv d23af0e
Enable Memory & CPU Profiling for df_engine
sapatrjv ad71e6b
Revert "Enable Memory & CPU Profiling for df_engine"
sapatrjv 7482d31
Enable Memory & CPU Profiling for df_engine
sapatrjv aebde81
Enable Memory & CPU Profiling for df_engine
sapatrjv cc9e748
Enable Memory & CPU Profiling for df_engine
sapatrjv 9222922
Merge branch 'main' into dev/sapatr/memprofilingwithdhat
sapatrjv 6568f0d
Enable Memory & CPU Profiling for df_engine
sapatrjv a87c8fe
Enable Memory & CPU Profiling for df_engine.
sapatrjv 157f5ab
Enable Memory & CPU Profiling for df_engine.
sapatrjv d73b21e
Enable Memory & CPU Profiling for df_engine
sapatrjv eed136f
Merge branch 'main' into dev/sapatr/memprofilingwithdhat
sapatrjv 34c417c
Enable Memory & CPU Profiling for df_engine
sapatrjv 0ad845f
Merge branch 'dev/sapatr/memprofilingwithdhat' of https://github.com/…
sapatrjv 30b679a
Enable Memory & CPU Profiling for df_engine
sapatrjv a7c9240
Enable Memory & CPU Profiling for df_engine
sapatrjv 12b6ba4
Enable Memory & CPU Profiling for df_engine
sapatrjv 6e77031
Enable Memory & CPU Profiling for df_engine
sapatrjv 37891c6
Enable Memory & CPU Profiling for df_engine
sapatrjv d95c7b7
Enable Memory & CPU Profiling for df_engine
sapatrjv b46664d
Enable Memory & CPU Profiling for df_engine
sapatrjv bba7248
Enable Memory & CPU Profiling for df_engine
sapatrjv 64f7ec7
Enable Memory & CPU Profiling for df_engine
sapatrjv 2af5ef7
Enable Memory & CPU Profiling for df_engine
sapatrjv 8c9801b
Apply suggestion from @reyang
reyang 7c28e45
Merge branch 'dev/sapatr/memprofilingwithdhat' of https://github.com/…
sapatrjv 3897c66
Apply suggestions from code review
sapatrjv 1720c5f
Enable Memory & CPU Profiling for df_engine
sapatrjv 72377fb
Enable Memory & CPU Profiling for df_engine
sapatrjv 42c08f2
Enable Memory & CPU Profiling for df_engine
sapatrjv 6d6b315
Apply suggestions from code review
sapatrjv 8856edc
Enable Memory & CPU Profiling for df_engine
sapatrjv d9e0bfd
Merge branch 'dev/sapatr/memprofilingwithdhat' of https://github.com/…
sapatrjv 66f02a4
Enable Memory & CPU Profiling for df_engine
sapatrjv a9186cc
Enable Memory & CPU Profiling for df_engine
sapatrjv e533701
Enable Memory & CPU Profiling for df_engine
sapatrjv 0358fa0
Enable Memory & CPU Profiling for df_engine
sapatrjv 06111a1
Enable Memory & CPU Profiling for df_engine
sapatrjv ebdf8d4
Enable Memory & CPU Profiling for df_engine
sapatrjv cd8bf90
Enable Memory & CPU Profiling for df_engine
sapatrjv 1b4185f
Enable Memory & CPU Profiling for df_engine.
sapatrjv 600d336
Merge branch 'main' into dev/sapatr/memprofilingwithdhat
sapatrjv a6dad10
Merge branch 'main' into dev/sapatr/memprofilingwithdhat
jmacd 658e151
Enable Memory & CPU Profiling for df_engine
sapatrjv 285883f
Merge branch 'dev/sapatr/memprofilingwithdhat' of https://github.com/…
sapatrjv 787bfa5
Remove code coverage on profiling path.
sapatrjv 7c81041
Remove code coverage on profiling path.
sapatrjv 7d2a092
Merge branch 'main' into dev/sapatr/memprofilingwithdhat
lalitb 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
Some comments aren't visible on the classic Files Changed page.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -384,6 +384,50 @@ cargo run --example <example_name> | |
| docker build --build-context otel-arrow=../../ -f Dockerfile -t df_engine . | ||
| ``` | ||
|
|
||
| ## Profiling | ||
|
sapatrjv marked this conversation as resolved.
|
||
|
|
||
| This section covers Memory & CPU Profiling for df_engine using dhat-rs and | ||
| samply profilers respectively. | ||
|
|
||
| **Requirements**: | ||
|
|
||
| - dhat-rs <https://docs.rs/dhat/latest/dhat/> | ||
| - samply <https://github.com/mstange/samply> | ||
|
|
||
| **Installation**: | ||
|
|
||
| cargo install --locked samply | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
|
|
||
| Note: dhat-rs is a library crate designed for heap profiling in Rust programs. | ||
| Hence it does not require explicit installation. | ||
|
Member
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. If this is not explicitly required, why would we want to document it under the "Requirements" section? |
||
|
|
||
| **Build**: | ||
|
|
||
| **Build for both CPU & Memory profiling**: | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
| cargo build --profile profiling --features dhat-heap --workspace | ||
|
|
||
| **Build for only CPU profiling**: | ||
| cargo build --profile profiling --workspace | ||
|
|
||
| **Run**: | ||
|
|
||
| **Run with both Memory & CPU profiling enabled**: | ||
|
reyang marked this conversation as resolved.
Outdated
|
||
| samply record ./target/profiling/df_engine.exe --config .\configs\otap-noop.yaml | ||
|
|
||
| **Run with only Memory profiling enabled**: | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
| ./target/profiling/df_engine.exe --config .\configs\otap-noop.yaml | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
|
|
||
| **Result**: | ||
|
|
||
| On successful termination of df_engine.exe, it will generate dhat-heap.json file | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
| for Memory profiling that need to be rendered by uploading it to: | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
| <https://nnethercote.github.io/dh_view/>. | ||
|
|
||
| CPU profiling output will be automatically renderd on browser. | ||
|
sapatrjv marked this conversation as resolved.
Outdated
|
||
|
|
||
| Note: dhat needs a clean shutdown to generate dhat-heap.json file. In df_engine | ||
| this can be done manually with Ctrl-C. | ||
|
sapatrjv marked this conversation as resolved.
Outdated
sapatrjv marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## Contributing | ||
|
|
||
| - [Contribution Guidelines](CONTRIBUTING.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
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.