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

Dashboard: Add panels for ingest storage to Writes and Queries dashboards #7670

Merged
merged 12 commits into from
Mar 20, 2024

Conversation

pstibrany
Copy link
Member

@pstibrany pstibrany commented Mar 20, 2024

What this PR does

This PR adds panels for monitoring distributor and ingester when using ingest-storage. These panels can be enabled by setting show_ingest_storage_panels option (defaults to false) in dashboard config. Irrelevant panels used for monitoring distributors and ingesters when using gRPC communication internally can be hidden by setting show_grpc_ingestion_panels: false (defaults to true).

Write dashboard has new "Ingester (ingest storage)" section:

image

Queries dashboard has new ingest-storage related sections:

image

Checklist

  • [na] Tests updated.
  • [na] Documentation added.
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX].
  • [na] about-versioning.md updated with experimental features.

Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
…cy panels.

Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
@pstibrany pstibrany requested a review from a team as a code owner March 20, 2024 09:26
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
@pracucci pracucci self-requested a review March 20, 2024 11:25
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
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.

Exciting work! Can't wait to see it live! I left few comments. Let me know if it makes sense to you.

operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
) + $.aliasColors({ failed: '#FF0000', 'read errors': '#FF0000' }) + $.stack,
)
.addPanel(
$.timeseriesPanel('Records per fetch') +
Copy link
Collaborator

Choose a reason for hiding this comment

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

Instead of this panel I would add "Kafka records / sec", which similar to "Kafka fetches / sec" but based on cortex_ingest_storage_reader_records_* metrics. I think it's important to show the rate of records / s, as much as the rate of fetches / s.

Copy link
Member Author

Choose a reason for hiding this comment

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

Great idea, this is much more useful than records per fetch.

operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
Copy link
Member Author

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

@pracucci I've updated PR based on your feedback, and also updated screenshots in description. PTAL

) + $.aliasColors({ failed: '#FF0000', 'read errors': '#FF0000' }) + $.stack,
)
.addPanel(
$.timeseriesPanel('Records per fetch') +
Copy link
Member Author

Choose a reason for hiding this comment

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

Great idea, this is much more useful than records per fetch.

operations/mimir-mixin/dashboards/writes.libsonnet Outdated Show resolved Hide resolved
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
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! I just few final nits. No need for me to re-review it. Thanks!

$._config.show_ingest_storage_panels,
($.row('Ingester (ingest storage: strong consistency)'))
.addPanel(
$.timeseriesPanel('Requests with strong consistency') +
Copy link
Collaborator

Choose a reason for hiding this comment

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

[nit] WDYT about being more specific about the "strong consistency"?

Suggested change
$.timeseriesPanel('Requests with strong consistency') +
$.timeseriesPanel('Requests with strong read consistency / sec') +

If you agree, same comment applies in other places.

Copy link
Member Author

Choose a reason for hiding this comment

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

Sounds good, fixing.

operations/mimir-mixin/dashboards/queries.libsonnet Outdated Show resolved Hide resolved
@@ -649,6 +649,8 @@
'debug_pprof',
],

ingester_read_path_routes_regex: '/cortex.Ingester/Query(Stream)?|/cortex.Ingester/MetricsForLabelMatchers|/cortex.Ingester/LabelValues|/cortex.Ingester/MetricsMetadata',
Copy link
Collaborator

Choose a reason for hiding this comment

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

I know this is what we use in the Reads dashboard but I think it's missing several stuff (e.g. ActiveSeries, UserStats, ...).

Copy link
Member Author

Choose a reason for hiding this comment

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

Will send separate PR to fix, since it's unrelated to this PR.

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed in #7676.

operations/mimir-mixin/dashboards/queries.libsonnet Outdated Show resolved Hide resolved
Signed-off-by: Peter Štibraný <pstibrany@gmail.com>
@pstibrany pstibrany enabled auto-merge (squash) March 20, 2024 15:09
@pstibrany pstibrany changed the title Write dashboard: Add panels for ingest storage Dashboard: Add panels for ingest storage to Writes and Queries dashboards Mar 20, 2024
@pstibrany pstibrany merged commit 48a1a24 into main Mar 20, 2024
29 checks passed
@pstibrany pstibrany deleted the ingest-storage-dashboard branch March 20, 2024 15:39
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.

2 participants