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

Updated diagrams on the architecture page #1459

Merged
merged 2 commits into from
Mar 14, 2022
Merged

Updated diagrams on the architecture page #1459

merged 2 commits into from
Mar 14, 2022

Conversation

09jvilla
Copy link
Contributor

@09jvilla 09jvilla commented Mar 10, 2022

Removed the diagram at the top of the architecture page, since we have almost the same diagram on the deployment-modes.md page under the 'microservices' header.

Replaced the read and write diagrams with svg files (formerly png) for higher resolution. Changed the background to white since @pstibrany pointed out it improves the contrast.

For the read diagram, I added a bubble to represent the caches, with the caches labeled as optional.

Since we have no overall architecture diagram which shows the ruler (the one on deployment-modes.md excludes the optional components), I added a ruler specific diagram to the ruler.md page.

All diagrams come from here:
https://docs.google.com/presentation/d/1LemaTVqa4Lf_tpql060vVoDGXrthp-Pie_SQL7qwHjc/edit

Fixes #1192 and replaces #1360

Copy link
Member

@RichiH RichiH left a comment

Choose a reason for hiding this comment

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

The arrows to/from "cache" should arguably go both ways, else LGTM.

@pstibrany
Copy link
Member

Thank for you addressing my feedback from the other PR.

  • "black text on red background" combination used for caches still looks strange to my eyes.

  • Can we change orange arrows to black ones in Read diagram? (Thin orange lines are not very contrasting on white background)

  • When I view the original SVG files in Safari and Firefox I see:

  • Read path

Screenshot 2022-03-11 at 09 10 06

Screenshot 2022-03-11 at 09 14 15

Screenshot 2022-03-11 at 09 14 52

Copy link
Collaborator

@pracucci pracucci left a comment

Choose a reason for hiding this comment

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

Love it! The diagrams look good to me.

[not a blocker, can be done in a follow up PR] The diagrams in the deployment modes page still have the gray background. Can we remove the background from there too?

@pracucci
Copy link
Collaborator

When I view the original SVG files in Safari and Firefox I see:

Same happen to me when I look at the raw file from github, but if I compile the website make docs and navigate though it, the images are displayed correctly.

Copy link
Member

@pstibrany pstibrany left a comment

Choose a reason for hiding this comment

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

Forgot to send my comment.

@@ -11,13 +11,9 @@ The system has multiple horizontally scalable microservices that can run separat
Grafana Mimir microservices are called components.

Grafana Mimir's design compiles the code for all components into a single binary.
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run as a monolith, with all components running simultaneously in one process.
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run in monolithic mode, with all components running simultaneously in one process.
Copy link
Member

Choose a reason for hiding this comment

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

This is configured using -target=all, should it be mentioned?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

that is mentioned in the deployment-modes.md file so I'm going to leave it off. I add a link to that section of the docs under "monolithic mode"

@@ -11,13 +11,9 @@ The system has multiple horizontally scalable microservices that can run separat
Grafana Mimir microservices are called components.

Grafana Mimir's design compiles the code for all components into a single binary.
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run as a monolith, with all components running simultaneously in one process.
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run in monolithic mode, with all components running simultaneously in one process.
Copy link
Member

Choose a reason for hiding this comment

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

The -target parameter controls which componentS ...

I'd use plural, as it is possible to use -target=compactor,ingester for example.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point. I will updated to component(s)

Copy link
Contributor

@Logiraptor Logiraptor left a comment

Choose a reason for hiding this comment

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

Just left some minor feedback. Looks good!

@@ -11,13 +11,9 @@ The system has multiple horizontally scalable microservices that can run separat
Grafana Mimir microservices are called components.

Grafana Mimir's design compiles the code for all components into a single binary.
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run as a monolith, with all components running simultaneously in one process.
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run in monolithic mode, with all components running simultaneously in one process.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run in monolithic mode, with all components running simultaneously in one process.
The `-target` parameter controls which components that single binary will behave as. For those looking for a simple way to get started in a development environment, Grafana Mimir can also be run in monolithic mode by setting `-target=all`. This will run the minimally required components in one process.

Just clarified that monolithic mode is for development only and it technically doesn't run everything, just the minimally necessary components.

Copy link
Member

Choose a reason for hiding this comment

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

Just clarified that monolithic mode is for development only and it technically doesn't run everything, just the minimally necessary components.

I don't think that's true. It's not for development only, and it actually runs most of the components. Notably missing is alertmanager, but it's easy to enable it as well. (-target=all,alertmanager).

While it's not recommended for production, because it's easier to control resources of individual components, it's absolutely possible to use Mimir that way.

Copy link
Contributor

Choose a reason for hiding this comment

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

Fair enough, I was thinking of this from a support perspective at Grafana Labs, but you're right that it can work.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@pstibrany @Logiraptor we already have some of this information in deployment-modes.md file so I'm going to leave it off.

@09jvilla 09jvilla requested a review from pstibrany March 12, 2022 21:56
@09jvilla
Copy link
Contributor Author

09jvilla commented Mar 12, 2022

@pstibrany changed all the arrows to be black and updated the cache to be the same color as the object store to help improve readability. Lemme know if you think its good to go.

@09jvilla 09jvilla requested a review from chri2547 March 12, 2022 21:59
@09jvilla
Copy link
Contributor Author

@pracucci - I think this might be related to your relref observation/proposal for how to rework things but I see that the diagram on the ruler.md page renders correctly when I run make docs but it does not render correctly if I just look at the markdown on Github.

@pracucci
Copy link
Collaborator

@pracucci - I think this might be related to your relref observation/proposal for how to rework things but I see that the diagram on the ruler.md page renders correctly when I run make docs but it does not render correctly if I just look at the markdown on Github.

Right now, due to how URLs are built in grafana.com website, either we make it work for GitHub or grafana.com. We obviously need images working in grafana.com so we start prioritizing them. At the moment, the docs/ in this repo should be seen as "source code", while doc is expected to be read through grafana.com (or locally via make docs while writing doc).

Copy link
Collaborator

@pracucci pracucci left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

09jvilla and others added 2 commits March 14, 2022 15:59
Signed-off-by: Marco Pracucci <marco@pracucci.com>
@pracucci
Copy link
Collaborator

I rebased and fixed conflicts.

@pracucci pracucci merged commit 7252d08 into main Mar 14, 2022
@pracucci pracucci deleted the overall-diagram-2 branch March 14, 2022 16:13
pracucci added a commit that referenced this pull request Mar 21, 2022
* Refreshing read and write diagrams and removing parent architecture diagram. Adding ruler diagram.

* Moved images

Signed-off-by: Marco Pracucci <marco@pracucci.com>

Co-authored-by: Marco Pracucci <marco@pracucci.com>
@pracucci pracucci mentioned this pull request Mar 21, 2022
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Mimir architecture overview diagram
6 participants