profiling with small overhead
- Dominant language
- Erlang
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 9
Description
## Summary
Time to time, we catch CPU high load like
During this time, CouchDB returns an error response.
To resolve this, we are restarting all CouchDB nodes in the cluster.
To troubleshoot this issue, it will be fine to get CouchDB profiling with the busiest functions at this time.
Like it was done for RabbitMQ.
https://www.rabbitmq.com/blog/2022/05/31/flame-graphs
Could you implement a similar feature for CouchDB?
## Desired Behaviour
Attach the performance profiling tool to the running CouchDB process and record function performance metrics.
Then use these metrics to draw a graph with most busiest functions.
## Possible Solution
Probably it can be done like in RabbitMQ
https://www.rabbitmq.com/blog/2022/05/31/flame-graphs
Contributor guide
Research direction
Start by studying the linked RabbitMQ flame-graph approach and how CouchDB runs its processes. Define the profiling tool, runtime attachment method, recording format, and graph output needed for a complete implementation, then validate the design against the reported high-load failure scenario.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- erlang
- Domain
- databases, observability-sre, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100