-
Notifications
You must be signed in to change notification settings - Fork 161
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
Basic native histogram utilities #1164
Conversation
Give utilities to generate native and classic queries over generic histogram metrics defined by a metric name and selectors. Add utility to define a dashboard variable that can be used to select what queries to show. Native histograms are https://grafana.com/docs/mimir/latest/send/native-histograms/ Signed-off-by: György Krajcsovits <[email protected]>
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.
Approved for the PromQL queries. But see my note. I'm not an expert in how to turn Grafana nobs via jsonnet, but there surely must be a way to hide or show a query based on a dashboard variable?
showClassicHistogramQuery(query, dashboard_variable='latency_metrics'):: '%s < ($%s * +Inf)' % [query.classic, dashboard_variable], | ||
// showNativeHistogramQuery wraps a query defined as map {classic: q, native: q}, and compares the native query | ||
// to dashboard variable which should take -1 or +1 as values in order to show or hide the native query. | ||
showNativeHistogramQuery(query, dashboard_variable='latency_metrics'):: '%s < ($%s * -Inf)' % [query.native, dashboard_variable], |
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.
If I understand correctly, with this utility function, Grafana would always run all the (possibly very expensive) queries, only to get an empty result in one of the cases. (Remember, the PromQL engine doesn't do any smart moves to short-cut evaluations that can never ever return anything.)
Isn't there a Grafana nob we can turn here? Like switching off and on the query on the Grafana level?
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.
Unfortunately there's no Grafana nob at the moment. So the alternative is to optimize away the query or try to get Grafana to implement something. Both seems like a kind of optimization to be honest.
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.
Yes, sure, this is just about optimization. I was just hoping there is a simple way of accomplishing it.
Updates grafana-builder and mixin-utils to latest version in master branch. This will be helpful in creating Grafana panels that use the timeseriesPanel instead of the deprecated panel. grafana-builder changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - grafana-builder: rename template variable "Data Source" to "Data source" (grafana/jsonnet-libs#1111) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Allow dashboards to show gRPC codes as labels (grafana/jsonnet-libs#1098) - Allow configuring sort order for variables (grafana/jsonnet-libs#1014) - remove unused/wrong step param (grafana/jsonnet-libs#999) - Show cancelled requests in grey on QPS dashboards. (grafana/jsonnet-libs#988) - Show cancelled requests in yellow on QPS dashboards. (grafana/jsonnet-libs#986) - Add timeseriesPanel (grafana/jsonnet-libs#824) - Allow including "All" for single template var - Allow datasource's regex to be configured - grafana-builder: make allValue configurable (grafana/jsonnet-libs#703) - grafana_builder: add dashboard link func (grafana/jsonnet-libs#683) - Add 'Data Source' label for the default datasource template variable. (grafana/jsonnet-libs#672) - enable toolip by default (grafana/jsonnet-libs#665) mixin-utils changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - nativeClassicSumBy: format list of labels nicer (grafana/jsonnet-libs#1204) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - chore: fix hardcoded range interval (grafana/jsonnet-libs#1190) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - utils: allow defining native histogram recording rule (grafana/jsonnet-libs#1156) - modify withRunbookURL to allow internal annotation (grafana/jsonnet-libs#1139) - mixin-utils: drop unsupported step target parameter (grafana/jsonnet-libs#1128) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Align with style conventions (grafana/jsonnet-libs#1038) - Add a function to remove an alert rule (grafana/jsonnet-libs#812) - mixin-utils: Parameterize interval for histogramRules (grafana/jsonnet-libs#806) - refactor(grafana/jsonnet-libsprometheus): shard mixins over multiple configmaps (grafana/jsonnet-libs#497) - Not all Prometheus rules are alerts. (grafana/jsonnet-libs#490)
Updates grafana-builder and mixin-utils to latest version in master branch. This will be helpful in creating Grafana panels that use the timeseriesPanel instead of the deprecated panel. grafana-builder changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - grafana-builder: rename template variable "Data Source" to "Data source" (grafana/jsonnet-libs#1111) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Allow dashboards to show gRPC codes as labels (grafana/jsonnet-libs#1098) - Allow configuring sort order for variables (grafana/jsonnet-libs#1014) - remove unused/wrong step param (grafana/jsonnet-libs#999) - Show cancelled requests in grey on QPS dashboards. (grafana/jsonnet-libs#988) - Show cancelled requests in yellow on QPS dashboards. (grafana/jsonnet-libs#986) - Add timeseriesPanel (grafana/jsonnet-libs#824) - Allow including "All" for single template var - Allow datasource's regex to be configured - grafana-builder: make allValue configurable (grafana/jsonnet-libs#703) - grafana_builder: add dashboard link func (grafana/jsonnet-libs#683) - Add 'Data Source' label for the default datasource template variable. (grafana/jsonnet-libs#672) - enable toolip by default (grafana/jsonnet-libs#665) mixin-utils changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - nativeClassicSumBy: format list of labels nicer (grafana/jsonnet-libs#1204) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - chore: fix hardcoded range interval (grafana/jsonnet-libs#1190) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - utils: allow defining native histogram recording rule (grafana/jsonnet-libs#1156) - modify withRunbookURL to allow internal annotation (grafana/jsonnet-libs#1139) - mixin-utils: drop unsupported step target parameter (grafana/jsonnet-libs#1128) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Align with style conventions (grafana/jsonnet-libs#1038) - Add a function to remove an alert rule (grafana/jsonnet-libs#812) - mixin-utils: Parameterize interval for histogramRules (grafana/jsonnet-libs#806) - refactor(grafana/jsonnet-libsprometheus): shard mixins over multiple configmaps (grafana/jsonnet-libs#497) - Not all Prometheus rules are alerts. (grafana/jsonnet-libs#490) Signed-off-by: Charlie Le <[email protected]>
Updates grafana-builder and mixin-utils to latest version in master branch. This will be helpful in creating Grafana panels that use the timeseriesPanel instead of the deprecated panel. grafana-builder changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - grafana-builder: rename template variable "Data Source" to "Data source" (grafana/jsonnet-libs#1111) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Allow dashboards to show gRPC codes as labels (grafana/jsonnet-libs#1098) - Allow configuring sort order for variables (grafana/jsonnet-libs#1014) - remove unused/wrong step param (grafana/jsonnet-libs#999) - Show cancelled requests in grey on QPS dashboards. (grafana/jsonnet-libs#988) - Show cancelled requests in yellow on QPS dashboards. (grafana/jsonnet-libs#986) - Add timeseriesPanel (grafana/jsonnet-libs#824) - Allow including "All" for single template var - Allow datasource's regex to be configured - grafana-builder: make allValue configurable (grafana/jsonnet-libs#703) - grafana_builder: add dashboard link func (grafana/jsonnet-libs#683) - Add 'Data Source' label for the default datasource template variable. (grafana/jsonnet-libs#672) - enable toolip by default (grafana/jsonnet-libs#665) mixin-utils changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - nativeClassicSumBy: format list of labels nicer (grafana/jsonnet-libs#1204) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - chore: fix hardcoded range interval (grafana/jsonnet-libs#1190) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - utils: allow defining native histogram recording rule (grafana/jsonnet-libs#1156) - modify withRunbookURL to allow internal annotation (grafana/jsonnet-libs#1139) - mixin-utils: drop unsupported step target parameter (grafana/jsonnet-libs#1128) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Align with style conventions (grafana/jsonnet-libs#1038) - Add a function to remove an alert rule (grafana/jsonnet-libs#812) - mixin-utils: Parameterize interval for histogramRules (grafana/jsonnet-libs#806) - refactor(grafana/jsonnet-libsprometheus): shard mixins over multiple configmaps (grafana/jsonnet-libs#497) - Not all Prometheus rules are alerts. (grafana/jsonnet-libs#490) Signed-off-by: Charlie Le <[email protected]>
Updates grafana-builder and mixin-utils to latest version in master branch. This will be helpful in creating Grafana panels that use the timeseriesPanel instead of the deprecated panel. grafana-builder changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - grafana-builder: rename template variable "Data Source" to "Data source" (grafana/jsonnet-libs#1111) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Allow dashboards to show gRPC codes as labels (grafana/jsonnet-libs#1098) - Allow configuring sort order for variables (grafana/jsonnet-libs#1014) - remove unused/wrong step param (grafana/jsonnet-libs#999) - Show cancelled requests in grey on QPS dashboards. (grafana/jsonnet-libs#988) - Show cancelled requests in yellow on QPS dashboards. (grafana/jsonnet-libs#986) - Add timeseriesPanel (grafana/jsonnet-libs#824) - Allow including "All" for single template var - Allow datasource's regex to be configured - grafana-builder: make allValue configurable (grafana/jsonnet-libs#703) - grafana_builder: add dashboard link func (grafana/jsonnet-libs#683) - Add 'Data Source' label for the default datasource template variable. (grafana/jsonnet-libs#672) - enable toolip by default (grafana/jsonnet-libs#665) mixin-utils changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - nativeClassicSumBy: format list of labels nicer (grafana/jsonnet-libs#1204) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - chore: fix hardcoded range interval (grafana/jsonnet-libs#1190) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - utils: allow defining native histogram recording rule (grafana/jsonnet-libs#1156) - modify withRunbookURL to allow internal annotation (grafana/jsonnet-libs#1139) - mixin-utils: drop unsupported step target parameter (grafana/jsonnet-libs#1128) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Align with style conventions (grafana/jsonnet-libs#1038) - Add a function to remove an alert rule (grafana/jsonnet-libs#812) - mixin-utils: Parameterize interval for histogramRules (grafana/jsonnet-libs#806) - refactor(grafana/jsonnet-libsprometheus): shard mixins over multiple configmaps (grafana/jsonnet-libs#497) - Not all Prometheus rules are alerts. (grafana/jsonnet-libs#490) Signed-off-by: Charlie Le <[email protected]>
* Update jsonnet-libs to Fri Jul 19 12:51:49 2024 Updates grafana-builder and mixin-utils to latest version in master branch. This will be helpful in creating Grafana panels that use the timeseriesPanel instead of the deprecated panel. grafana-builder changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - grafana-builder: rename template variable "Data Source" to "Data source" (grafana/jsonnet-libs#1111) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Allow dashboards to show gRPC codes as labels (grafana/jsonnet-libs#1098) - Allow configuring sort order for variables (grafana/jsonnet-libs#1014) - remove unused/wrong step param (grafana/jsonnet-libs#999) - Show cancelled requests in grey on QPS dashboards. (grafana/jsonnet-libs#988) - Show cancelled requests in yellow on QPS dashboards. (grafana/jsonnet-libs#986) - Add timeseriesPanel (grafana/jsonnet-libs#824) - Allow including "All" for single template var - Allow datasource's regex to be configured - grafana-builder: make allValue configurable (grafana/jsonnet-libs#703) - grafana_builder: add dashboard link func (grafana/jsonnet-libs#683) - Add 'Data Source' label for the default datasource template variable. (grafana/jsonnet-libs#672) - enable toolip by default (grafana/jsonnet-libs#665) mixin-utils changes: - grafana-builder: add support for native/classic stat panel query (grafana/jsonnet-libs#1285) - More native histograms related utils and renaming (grafana/jsonnet-libs#1270) - nativeClassicSumBy: format list of labels nicer (grafana/jsonnet-libs#1204) - Support recording and switching between naive and classic latency histograms (grafana/jsonnet-libs#1150) - chore: fix hardcoded range interval (grafana/jsonnet-libs#1190) - Basic native histogram utilities (grafana/jsonnet-libs#1164) - utils: allow defining native histogram recording rule (grafana/jsonnet-libs#1156) - modify withRunbookURL to allow internal annotation (grafana/jsonnet-libs#1139) - mixin-utils: drop unsupported step target parameter (grafana/jsonnet-libs#1128) - Mixins: draw graphs at full resolution (grafana/jsonnet-libs#825) - Align with style conventions (grafana/jsonnet-libs#1038) - Add a function to remove an alert rule (grafana/jsonnet-libs#812) - mixin-utils: Parameterize interval for histogramRules (grafana/jsonnet-libs#806) - refactor(grafana/jsonnet-libsprometheus): shard mixins over multiple configmaps (grafana/jsonnet-libs#497) - Not all Prometheus rules are alerts. (grafana/jsonnet-libs#490) Signed-off-by: Charlie Le <[email protected]> * Use `timeseriesPanel` instead of `panel` when creating panels Fixes: #44 Depends on: #57 Signed-off-by: Charlie Le <[email protected]> * Add units to timeseries panel The yaxes field doesn't seem to do anything in the timeseries panel and was replaced with the units field instead. So I defaulted the units to be short and allowed it to be set for the panel. Signed-off-by: Charlie Le <[email protected]> * Update CHANGELOG.md --------- Signed-off-by: Charlie Le <[email protected]> Co-authored-by: Friedrich Gonzalez <[email protected]>
Give utilities to generate native and classic queries over generic histogram metrics defined by a metric name and selectors. Add utility to define a dashboard variable that can be used to select what queries to show.
Native histograms are
https://grafana.com/docs/mimir/latest/send/native-histograms/
Queries:
https://grafana.com/docs/mimir/latest/visualize/native-histograms/
Related to grafana/mimir#7154