Skip to content
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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Fashander
Copy link
Member

Description

Closes FerretDB/engineering#168.

Readiness checklist

  • I added/updated unit tests (and they pass).
  • I added/updated integration/compatibility tests (and they pass).
  • I added/updated comments and checked rendering.
  • I made spot refactorings.
  • I updated user documentation.
  • I ran task all, and it passed.
  • I ensured that PR title is good enough for the changelog.
  • (for maintainers only) I set Reviewers (@FerretDB/core), Milestone (Next), Labels, Project and project's Sprint fields.
  • I marked all done items in this checklist.

@Fashander Fashander added the blog/marketing Marketing (and releases) blog posts label May 9, 2024
@Fashander Fashander added this to the v1.22.0 milestone May 9, 2024
@Fashander Fashander requested a review from a team May 9, 2024 05:04
@Fashander Fashander self-assigned this May 9, 2024
@Fashander Fashander enabled auto-merge (squash) May 9, 2024 05:04
Copy link
Contributor

mergify bot commented May 9, 2024

Marketing blog posts should be reviewed by @ptrfarkas and @AlekSi.

Copy link

codecov bot commented May 9, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 74.83%. Comparing base (fb4f384) to head (84c5f56).

Additional details and impacted files

Impacted file tree graph

@@            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

Flag Coverage Δ
filter-false ?
filter-true 67.97% <ø> (-0.76%) ⬇️
hana-1 13.90% <ø> (ø)
integration 67.97% <ø> (-0.81%) ⬇️
mongodb-1 5.11% <ø> (-0.01%) ⬇️
mysql-1 ?
mysql-2 ?
mysql-3 ?
postgresql-1 43.10% <ø> (-8.86%) ⬇️
postgresql-2 41.69% <ø> (-11.81%) ⬇️
postgresql-3 43.28% <ø> (-10.27%) ⬇️
postgresql-4 40.82% <ø> (ø)
postgresql-5 45.77% <ø> (-0.09%) ⬇️
sqlite-1 42.35% <ø> (-8.68%) ⬇️
sqlite-2 40.95% <ø> (-11.67%) ⬇️
sqlite-3 42.62% <ø> (-10.05%) ⬇️
sqlite-4 40.06% <ø> (-0.05%) ⬇️
sqlite-5 44.81% <ø> (ø)
unit 31.88% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

@Fashander Fashander added the trust PRs that can access Actions secrets label May 9, 2024
Comment on lines +13 to +19
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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we repeat it twice?

CleanShot 2024-05-14 at 21 07 02@2x

## 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

Comment on lines +137 to +140
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.
Copy link
Member

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?

Comment on lines +165 to +167
Using distributed tracing, Coroot provides a heat map showing operation requests, their status, durations, and details.

![Latency](/img/blog/ferretdb-coroot/07-latency.png)
Copy link
Member

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?

Comment on lines +169 to +171
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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blog/marketing Marketing (and releases) blog posts trust PRs that can access Actions secrets
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

None yet

2 participants