Commit efbf7fc
authored
Add Profiling Support for Indexer/tap-agent services (#704)
* feat(docker): Add continuous profiling with embedded pprof and external tools
- Embedded continuous profiling using pprof in Rust code
- External tools: flamegraph, valgrind, callgrind, strace
- Docker support for all profiling methods
- Just commands for easy profiling management
Flamegraphs and profiles are saved to contrib/profiling/output.
* feat(indexer): Integrate pprof tool into service binary
* feat(gitignore): Ignore profiling files
* feat(profiling): Integrate profiling into tap-agent service
* feat(profiling): Integrate pprof into tap-agent binary
* refactor(profiling): extract profiling into dedicated crate
Move duplicated profiling functionality from multiple crates into a single
shared 'profiler' crate.
Key changes:
- Create new 'profiler' crate with optimized implementation
- Use AtomicU64 instead of Mutex for snapshot counter
- Add proper error handling with thiserror
- Ensure proper directory structure for profiling output
- Make profiling opt-in via a feature flag
* fix(profiler): Add missing script to setup profiling
* fix(docker): Fix base image for profiling
* fix(justfile): Add tap-agent
* chore(cargo): Add debug symbols comment
* chore(cargo): Add comment to enable debug symbols
* feat(profiler): Use human readable date/time
* feat(profiler): Enable other callgrind options
* chore(code): Some cleanups
* feat(profiler): Add profiling instructions
* fix(profiler): Fix doctest documentation in profiler
* fix(test): Disable profiling in cargo test1 parent 6e49c0c commit efbf7fc
File tree
22 files changed
+1175
-23
lines changed- contrib
- base
- indexer-service
- tap-agent
- crates
- profiler
- src
- service
- src
- tap-agent
- src
22 files changed
+1175
-23
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
18 | 26 | | |
19 | 27 | | |
20 | 28 | | |
| |||
0 commit comments