Skip to content

Create a Embeddable package to monitor and profile go tools/apps #344

@tarunKoyalwar

Description

@tarunKoyalwar

Proposed Changes

  • To easily detect and share performance issues we need a library that effectively profiles application and monitors itself without any external dependency
### Tasks
- [ ] Env Based Input ( we can reuse existing logic in pprof package but cpuprofile might need to be improved)
- [ ] When this package is embedded it should launch a seperate process ( with appropriate syscall attributes to make it completely indedepent of current process ) and monitor/profile and save resulting data in cache directory . similar to screen command (Ref: https://github.com/projectdiscovery/utils/issues/346)
- [ ] Detection logic should be based on below logic 
- [ ] Add Endpoint in PDTM API to support uploading and generating uuid of these profiles for effective sharing and ease of analysis

Detection Logic ( Task 3)

  • continious monitering of Process MAX RSS with time as key
  • profiling on every tick with time as key
  • by plotting MAX RSS over time we can find inflection points and filter out IMP/CRITICAL profiles and share them instead of sharing all xGB of profiles

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: EnhancementMost issues will probably ask for additions or changes.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions