apache / apache/couchdb

profiling with small overhead

Open
#5,640 3 comments 0 reactions 0 assignees View on GitHub
enhancement needs-triage
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

Image
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.