From 2276e9556a31999ef2a6da181036092a43a65128 Mon Sep 17 00:00:00 2001 From: David Parrott Date: Thu, 15 Apr 2021 13:23:16 -0700 Subject: [PATCH] Alerting: set query in rules response (#33010) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * set query in rules response * Theme: tweaking dark theme colors (#33007) * Library Panels: Add library panel tab to share modal (#32953) * Explore: Scroll split panes in Explore independently (#32978) * Change default prometheus to latest and prometheus v1 to prometheus1 * Update README * Remove prometheus1 block as not used * Explore: Separatae scrolling in split view * Update snapshot * Allow skip migrations in tests via environment variable (#32958) * Dashboard: Fix issue where Slack notifications won't link to users (#32861) * DashboardPage: refactored styles from sass to emotion (#32955) * DashboardPage: refactored styles from sass to emotion * refactored dashboardPage component to be alot easier to read and understand * more refactoring... * more cleaning... * fixes frontend test * fixes frontend test- I hope * fixes frontend test- I hope * moves dashboard scss styles back to it's standalone file * GraphNG: use theme font family and size for axis labels (#33009) * GraphNG: use theme font family and size for axis labels * fix test * AlertingNG: Slack notification channel (#32675) * AlertingNG: Slack notification channel Signed-off-by: Ganesh Vernekar * Add tests Signed-off-by: Ganesh Vernekar * Fix review comments Signed-off-by: Ganesh Vernekar * Fix review comments and small refactoring Signed-off-by: Ganesh Vernekar * GraphNG: stacking (#30749) * First iteration * Dev dash * Re-use StackingMode type * Fix ts and api issues * Stacking work resurected * Fix overrides * Correct values in tooltip and updated test dashboard * Update dev dashboard * Apply correct bands for stacking * Merge fix * Update snapshot * Revert go.sum * Handle null values correctyl and make filleBelowTo and stacking mutual exclusive * Snapshots update * Graph->Time series stacking migration * Review comments * Indicate overrides in StandardEditorContext * Change stacking UI editor, migrate stacking to object option * Small refactor, fix for hiding series and dev dashboard * VizLegend: sets a min and max value of the seriesCount control in Storybook (#33022) * Alerting: Filter rules list (#32818) * Chore: Reduces strict errors (#33012) * Chore: reduces strict error in OptionPicker tests * Chore: reduces strict errors in FormDropdownCtrl * Chore: reduces has no initializer and is not definitely assigned in the constructor errors * Chore: reduces has no initializer and is not definitely assigned in the constructor errors * Chore: lowers strict count limit * Tests: updates snapshots * Tests: updates snapshots * Chore: updates after PR comments * Refactor: removes throw and changes signature for DashboardSrv.getCurrent * [Alerting]: Several modifications in alert rules (#32983) * [Alerting]: Use common properties for all rules * Add Labels in rules * Fix update ruleGroup API Return 400 Bad Request response when the request contains a UID that does not exist * Check permissions and return namespace id * Apply suggestions from code review Co-authored-by: gotjosh * WIP (#33025) * Chore: Bump strict error count limit (#33035) * set query in rules response Co-authored-by: Torkel Ödegaard Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com> Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Co-authored-by: Dafydd <72009875+dafydd-t@users.noreply.github.com> Co-authored-by: n-wbrown Co-authored-by: Uchechukwu Obasi Co-authored-by: Leon Sorokin Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com> Co-authored-by: Dominik Prokop Co-authored-by: Nathan Rodman Co-authored-by: Hugo Häggmark Co-authored-by: Sofia Papagiannaki Co-authored-by: gotjosh Co-authored-by: Marcus Efraimsson --- pkg/services/ngalert/api/api_prometheus.go | 4 ++-- pkg/services/ngalert/models/alert_rule.go | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pkg/services/ngalert/api/api_prometheus.go b/pkg/services/ngalert/api/api_prometheus.go index 442ab658c23..8d3533de658 100644 --- a/pkg/services/ngalert/api/api_prometheus.go +++ b/pkg/services/ngalert/api/api_prometheus.go @@ -79,7 +79,7 @@ func (srv PrometheusSrv) RouteGetRuleStatuses(c *models.ReqContext) response.Res newGroup := &apimodels.RuleGroup{ Name: groupId, // This doesn't make sense in our architecture - // so we use this field for passing to the frontend the namaspace + // so we use this field for passing to the frontend the namespace File: namespace, LastEvaluation: time.Time{}, EvaluationTime: 0, // TODO: see if we are able to pass this along with evaluation results @@ -99,7 +99,7 @@ func (srv PrometheusSrv) RouteGetRuleStatuses(c *models.ReqContext) response.Res alertingRule := apimodels.AlertingRule{ State: "inactive", Name: rule.Title, - Query: "", // TODO: get this from parsing AlertRule.Data + Query: rule.DataToString(), // TODO: don't escape <>& etc Duration: rule.For.Seconds(), Annotations: rule.Annotations, } diff --git a/pkg/services/ngalert/models/alert_rule.go b/pkg/services/ngalert/models/alert_rule.go index 6b8d4a7e579..fc1c98e3490 100644 --- a/pkg/services/ngalert/models/alert_rule.go +++ b/pkg/services/ngalert/models/alert_rule.go @@ -61,6 +61,18 @@ type AlertRule struct { Labels map[string]string } +func (alertRule *AlertRule) DataToString() string { + response := "[" + for i, part := range alertRule.Data { + response += string(part.Model) + if i < len(alertRule.Data)-1 { + response += "," + } + } + response += "]" + return response +} + // AlertRuleKey is the alert definition identifier type AlertRuleKey struct { OrgID int64