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
Add blogpost on "monitoring FerretDB performance using Coroot" #4279
base: main
Are you sure you want to change the base?
Conversation
Marketing blog posts should be reviewed by @ptrfarkas and @AlekSi. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4279 +/- ##
==========================================
- Coverage 75.33% 74.83% -0.50%
==========================================
Files 323 323
Lines 22408 22408
==========================================
- Hits 16882 16770 -112
- Misses 4306 4402 +96
- Partials 1220 1236 +16 see 24 files with indirect coverage changes
Flags with carried forward coverage won't be shown. Click here to find out more. |
Effective real-time monitoring is a critical aspect of any infrastructure. | ||
[Coroot](https://coroot.com/) is an open source observability platform that can provide real-time monitoring and visibility into a [FerretDB](https://www.ferretdb.com/) setup. | ||
|
||
<!--truncate--> | ||
|
||
Effective real-time monitoring is a critical aspect of any infrastructure. | ||
[Coroot](https://coroot.com/) is an open source observability platform that can provide real-time monitoring and visibility into a [FerretDB](https://www.ferretdb.com/) setup. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Setting up Coroot for FerretDB monitoring | ||
|
||
Since Coroot uses eBPF, you need the right environment before setting it up. | ||
The most recent versions of the Linux kernel (v 4.16 and above) should be compatible since they offer at least minimal eBPF support. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The most recent versions of the Linux kernel (v 4.16 and above) should be compatible since they offer at least minimal eBPF support. | |
The most recent versions of the Linux kernel (v4.16 and above) should be compatible since they offer at least minimal eBPF support. |
The Coroot dashboard provides the full details on all components. | ||
|
||
At first glance, we can see a memory leak on the `ferretdb` and `postgres` databases. | ||
That suggests that allocated memory is not being efficiently reused or deallocated, causing the total memory usage to grow progressively as the services operate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
… so we want to publish a blog post that casually mentions that FerretDB and PostgreSQL have memory leaks just like that?
Using distributed tracing, Coroot provides a heat map showing operation requests, their status, durations, and details. | ||
|
||
![Latency](/img/blog/ferretdb-coroot/07-latency.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we write something that has nothing to do with FerretDB?
The above image shows how response time for the `ferretdb` increased progressively over time. | ||
It shows that the system takes a long time to handle queries. | ||
That should prompt us to take additional measures to improve performance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wat
Description
Closes FerretDB/engineering#168.
Readiness checklist
task all
, and it passed.@FerretDB/core
), Milestone (Next
), Labels, Project and project's Sprint fields.