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

Update mimirtool grafana analyze to support more panel types #10669

Conversation

LasseHels
Copy link
Contributor

@LasseHels LasseHels commented Feb 17, 2025

What this PR does

This pull request updates mimirtool grafana analyze to support the following panel types:

  • Custom.
  • Bar chart.
  • Pie chart.
  • State timeline.
  • Status history.
  • Histogram.
  • Candlestick.
  • Canvas.
  • Flame graph.
  • Geomap.
  • Node Graph.
  • Trend.
  • XY chart.

At Maersk, our adaptive metrics solution uses mimirtool grafana analyze to determine whether a metric is referenced in a dashboard. We discovered that the command skips more than half of the panel types that can reference Prometheus metrics. This is problematic, as we don't want to drop or aggregate metrics that are used in a dashboard.

The panel types in pkg/mimirtool/minisdk were unnecessarily complex with most of their fields being unused. Now, there is a single minisdk.Panel type that has only the fields that are used.

Previously, the targets of a custom panel would always be skipped. Now, mimirtool will include metrics from custom panels if the custom panel follows the same structure as normal panels of having a target field in the root panel JSON.

The standalone TestParseMetricsInBoardWithTimeseriesPanel test has been merged with the TestParseMetricsInBoard test which now tests all panel types in a single test.

Checklist

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

@LasseHels LasseHels marked this pull request as ready for review February 17, 2025 14:12
@LasseHels LasseHels requested a review from a team as a code owner February 17, 2025 14:12
Copy link
Contributor

@56quarters 56quarters left a comment

Choose a reason for hiding this comment

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

Thank you! This is a nice cleanup

@56quarters 56quarters merged commit 587ad03 into grafana:main Feb 18, 2025
28 checks passed
ying-jeanne pushed a commit that referenced this pull request Feb 19, 2025
* add support for custom panel types

* add support for bar chart, pie chart, state timeline, status history, histogram, candlestick, canvas, flame graph, geomap, node graph, trend and XY chart panel types

* add license header

* update CHANGELOG

* remove white noise

* fix typo
ying-jeanne pushed a commit that referenced this pull request Feb 19, 2025
* add support for custom panel types

* add support for bar chart, pie chart, state timeline, status history, histogram, candlestick, canvas, flame graph, geomap, node graph, trend and XY chart panel types

* add license header

* update CHANGELOG

* remove white noise

* fix typo
ying-jeanne pushed a commit that referenced this pull request Feb 20, 2025
* add support for custom panel types

* add support for bar chart, pie chart, state timeline, status history, histogram, candlestick, canvas, flame graph, geomap, node graph, trend and XY chart panel types

* add license header

* update CHANGELOG

* remove white noise

* fix typo
ying-jeanne pushed a commit that referenced this pull request Feb 20, 2025
* add support for custom panel types

* add support for bar chart, pie chart, state timeline, status history, histogram, candlestick, canvas, flame graph, geomap, node graph, trend and XY chart panel types

* add license header

* update CHANGELOG

* remove white noise

* fix typo
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.

3 participants