Commit Graph

7738 Commits

Author SHA1 Message Date
Grot (@grafanabot) 8917c920ae Alerting: check provenance of alert rules in current API (#48694) (#48827)
(cherry picked from commit 30d9cc81ec)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-05-06 21:27:51 +02:00
Grot (@grafanabot) 6f5d6426c3 Cloudwatch: Add support for new AWS/RDS EBS* metrics (#48798) (#48801)
Add support for the missing AWS/RDS metrics, EBSIOBalance% and
EBSByteBalance%. Change is based on the official AWS blog post[1]. Those
metrics work on for Nitro instances.

1. https://aws.amazon.com/blogs/compute/improving-application-performance-and-reducing-costs-with-amazon-ebs-optimized-instance-burst-capability/

(cherry picked from commit b6c5f29373)

Co-authored-by: Szymon Szypulski <szymon.szypulski@gmail.com>
2022-05-06 10:53:34 +02:00
Grot (@grafanabot) bd9073a6b6 fix a bug (#48782) (#48800)
(cherry picked from commit 3c78196d0b)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-05-06 10:52:39 +02:00
Ieva fe351b308f backport 48171 (#48775) 2022-05-06 09:35:37 +01:00
Grot (@grafanabot) f76a5f1796 [v8.5.x] Alerting: Provisioning message templates (#48789)
* Alerting: Provisioning message templates (#48665)

* Generate API for writing templates

* Persist templates app logic layer

* Validate templates

* Extract logic, make set and delete methods

* Drop post route for templates

* Fix response details, wire up remainder of API

* Authorize routes

* Mirror some existing tests on new APIs

* Generate mock for prov store

* Wire up prov store mock, add tests using it

* Cover cases for both storage paths

* Add happy path tests and fix bugs if file contains no template section

* Normalize template content with define statement

* Tests for deletion

* Fix linter error

* Move provenance field to DTO

* empty commit

* ID to name

* Fix in auth too

(cherry picked from commit 0f56462fbe)

* ErrorContains -> Error then Contains

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-06 09:33:33 +02:00
Grot (@grafanabot) c375e67bf9 Update documentation to explicitly state we should not be putting migrations behind feature flags (#48663) (#48666)
(cherry picked from commit 38fc0c68e4)

Co-authored-by: Jeff Levin <jeff@levinology.com>
2022-05-05 10:12:34 -08:00
Grot (@grafanabot) ed24f18234 unhide alert rule's data sources during migraiton (#48559) (#48703)
(cherry picked from commit f85e758972)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-05-04 09:52:35 -04:00
Karl Persson 52d2419667 Fix permission query for postgres (#48543) (#48568)
(cherry picked from commit 9622e7457e)
2022-05-04 09:22:37 +02:00
Grot (@grafanabot) dd2bec5904 Alerting: skip flaky test (#48500) (#48517)
(cherry picked from commit 9e3a01a1be)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-05-04 07:31:51 +02:00
Will Browne 7f7803ba59 [v8.5.x] Backport 48550 to v8.5.x (#48656)
* resolve conflicts

* update swagger docs
2022-05-03 20:58:02 +02:00
Grot (@grafanabot) 633d598fcd Add new DynamoDB metrics & dimensions (#48551) (#48632)
(cherry picked from commit 7f4b1b767e)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2022-05-03 18:04:09 +01:00
Gábor Farkas a0ac6c692e loki: backend: use millisecond-timestamps (#48630) 2022-05-03 17:30:15 +02:00
Andreas Christou 5230178118 Backport 48077 to v8.5.x (#48620)
* AzureMonitor: Add support for not equals and startsWith operators when creating Azure Metrics dimension filters. (#48077)

* Allow dimension operator selection

- Add dimension operators and function to update the operator in the query
- Add logic to ensure the same dimension cannot be selected multiple times (Azure restriction)
- Add selection component

* Update backend logic to default operation and filter to eq '*'

- This must be done as the ne and sw operators do not work with the wildcard filter

* Add tests on dimension operators

* Correct placement of 'and' when building query

* Add comment and simplify filtering logic

* Allow multiSelect for eq and ne operators

- Pass PanelData to DimensionFields component
- Add logic to retrieve labels from PanelData
- Add MultiSelect component for relevant operators
- Update frontend types to allow filter to be an array of strings
- Update backend types to allow filter to be an array of strings
- Update filter string building

* Improve setting of labels

* Update go tests

* Update frontend tests

- Add panelData mock (to be expanded later)
- Update null check in DimensionFields

* Allow custom value and set default

* Add frontend test and fix lint issues

* Improved handling of options for sw operator

* Remove changes related to multiselect

* Add check on refId to ensure dimension labels are correct for query

* Extract custom hook for setting dimension labels

* Add documentation around Azure Monitor metrics dimensions

* Update MetricQueryEditor tests

- Add missing data prop

* Correctly set field values

* Add additional expect for onQueryChange

* Correctly set operators

- Simplify onFilterInputChange

* Ensure no duplicate filters appear

* Ensure that filters are displayed correctly for saved queries

* Update dimension filter test

* Include additional test around changing dimension labels

(cherry picked from commit d7c16e06d2)

# Conflicts:
#	public/app/plugins/datasource/grafana-azure-monitor-datasource/components/MetricsQueryEditor/MetricsQueryEditor.test.tsx
#	public/app/plugins/datasource/grafana-azure-monitor-datasource/components/NewMetricsQueryEditor/MetricsQueryEditor.test.tsx
#	public/app/plugins/datasource/grafana-azure-monitor-datasource/components/NewMetricsQueryEditor/MetricsQueryEditor.tsx
#	public/app/plugins/datasource/grafana-azure-monitor-datasource/components/QueryEditor/QueryEditor.tsx

* Update test for older testing-library version
2022-05-03 13:59:44 +01:00
Grot (@grafanabot) 3b40f18af1 Alerting: add safeguard for migrations that might cause dataloss (#48526) (#48570)
* Alerting: add safeguard for migrations that might cause dataloss

* add test for panic

* add documentation

(cherry picked from commit 0a87ef06af)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-05-02 11:12:39 +02:00
Grot (@grafanabot) 6fed38226d Alerting: Fix test intermittency caused by port conflicts (#48552) (#48556)
* Get golang to find an open port for us

* Update pkg/tests/api/alerting/api_notification_channel_test.go

Co-authored-by: gotjosh <josue.abreu@gmail.com>

* Fix merge

Co-authored-by: gotjosh <josue.abreu@gmail.com>
(cherry picked from commit a96510d03c)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-04-29 13:17:37 -05:00
Grot (@grafanabot) 92c08f0fb3 Plugins: Ensure catching all appropriate 4xx api/ds/query scenarios (#47565) (#48514)
* catch ds 404s

* catch plugin errs

* go step back

(cherry picked from commit c8a71a2f91)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-04-29 12:19:46 +02:00
Grot (@grafanabot) d2d2929e8d AzureAd Oauth: Fix strictMode to reject users without an assigned role (#48474) (#48479)
* AzureAd Oauth: Fix strictMode to reject users without an assigned role

Signed-off-by: kyschouv <kyschouv@microsoft.com>

* AzureAd OAuth: Add test for strictMode auth when no role claims are returned

Signed-off-by: kyschouv <kyschouv@microsoft.com>
(cherry picked from commit 7b224adf9f)

Co-authored-by: Kyle Schouviller <kyschouv@microsoft.com>
2022-04-29 08:29:39 +02:00
Jean-Philippe Quéméner 65e55b70a9 Alerting: indicate whether an alertrule is provisioned (#48458) (#48471)
(cherry picked from commit 9e21e4d1c1)
2022-04-29 00:51:41 +02:00
Grot (@grafanabot) d037b11e47 [v8.5.x] Alerting: Add provisioning GET routes for message templates (#48459)
* Alerting: Add provisioning GET routes for message templates (#48367)

* Template service

* Add GET routes and implement them

* Generate mock for persist layer

* Unit tests for reading templates

* Set up composition root and get integration tests working

* Fix prealloc issue

* Extract setup boilerplate

* Update AuthorizationTest

* Rebase and resolve

* Fix linter error

(cherry picked from commit 735822e48a)

* Avoid latest require features

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-04-28 14:33:37 -05:00
Grot (@grafanabot) 098871e3d8 Extract Route validation from serialization methods so it can be re-used (#47649) (#48374)
* Extract validation and reject invalid policies

* Validation in dedicated file

* Tests for validation

* Extract root route validation

* Update call and drop TODO

* empty commit to kick actions

* Normalization should be idempotent

* Cleaner representation of validation errors, chain errors properly

* Make internal validate unexported

* Fix missed rename

* Genericize error message

* Improve method names

* Rebase, fix

* Update asserts

(cherry picked from commit 60ec10566f)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-04-27 22:38:39 +02:00
Grot (@grafanabot) 61b6a61721 use NaN if condition value is nil (#48370) (#48371)
(cherry picked from commit 4b417c8f3e)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-04-27 16:34:47 -03:00
Jean-Philippe Quéméner b0cc736f4f Alerting: indicate whether contact point is provisioned (#48323) (#48372)
(cherry picked from commit a3256bafa7)
2022-04-27 21:19:40 +02:00
Grot (@grafanabot) 22d94d92ae Unified Alerting: Validate PostableSilence API. (#46892) (#48318)
Invalid PostableSilences could be passed to the Alerting API - if they
are passed all the way down into the alertmanager data layer, they can
cause a panic. This change adds validation to avoid a panic in the
alertmanager.

(cherry picked from commit 103087a1a5)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-04-27 15:00:44 +01:00
Grot (@grafanabot) be8419b384 Notifications: Hide display of trace ID behind feature flag (#48057) (#48273)
* Notifications: Hide display of trace ID behind feature flag

(cherry picked from commit 3b4d237ade)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2022-04-27 14:45:37 +01:00
Grot (@grafanabot) 35f60c9aa6 fixes invalid no data alerts in influx datasource (#48295) (#48316)
(cherry picked from commit 7798b08b1e)

Co-authored-by: Sriram <yesoreyeram@gmail.com>
2022-04-27 10:58:05 +01:00
Matthew Jacobson 771ab80b4b Alerting: Create fewer contact points on migration (#47291) (#48301)
* Alerting: Create fewer contact points on migration

Previously a new contact point was created for every unique combination
of channels attached to any legacy alert. This was very hard to maintain,
requiring modifications in every generated contact point.

This change deduplicates the generated contact points to a more
reasonable state. There should now only be one contact point per legacy
channel, and we attached multiple contact points to a route by nesting
them. The sole exception to this is if there were multiple default
legacy channels, in which case we create a redundant contact point
containing all of them used only in the root policy. This allows for a
much simpler notification policy structure.

Co-authored-by: gotjosh <josue.abreu@gmail.com>
(cherry picked from commit 0301d956da)
2022-04-26 14:07:07 -05:00
Grot (@grafanabot) 1473dd1365 Drop ProvenanceOrgAdapter and build into store API instead (#48137) (#48289)
(cherry picked from commit 078a578803)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-04-26 11:15:38 -05:00
Grot (@grafanabot) b09ce8478e Indicate whether routes are provisioned when GETting Alertmanager configuration (#47857) (#48286)
* Test composition simplification from last PR

* Policies use proper API model everywhere

* Expose policy provenance in API, miss some dep injection

* Complete injection

* fix args

* Tests for provenance value

* Extract test helpers so tests are very readable

* Single source adapter struct that was copied in 3 places

* Drop redundant test

* Resolve merge conflicts on changelog

(cherry picked from commit 8310789ef1)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-04-26 10:28:10 -05:00
Grot (@grafanabot) c67e1d37d3 [v8.5.x] Alerting: Refactor GET/POST alerting config routes to be more extensible (#48280)
* Alerting: Refactor GET/POST alerting config routes to be more extensible (#47229)

* Refactor GET am config to be extensible

* Extract post config route

* Fix tests

* Remove temporary duplication

* Fix broken test due to layer shift

* Fix duplicated error message

* Properly return 400 on config rejection

* Revert weird half method extraction

* Move things to notifier package and avoid redundant interface

* Simplify documentation

* Split encryption service and depend on minimal abstractions

* Properly initialize things all the way up to the composition root

* Encryption -> Crypto

* Address misc feedback

* Missing docstring

* Few more simple polish improvements

* Unify on MultiOrgAlertmanager. Discover bug in existing test

* Fix rebase conflicts

* Misc feedback, renames, docs

* Access crypto hanging off MultiOrgAlertmanager rather than having a separate API to initialize

(cherry picked from commit 758364e78b)

* Empty commit to kick PR build

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-04-26 10:13:18 -05:00
Grot (@grafanabot) 7bf41c7e39 Remove redundant queries in GetAlertRules and GetOrgAlertRules and replace with ListAlertRules (#48108) (#48173)
(cherry picked from commit c5547123bc)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-04-26 11:11:19 +08:00
Grot (@grafanabot) 88cb70b1cb fix argument ordering (#48124) (#48191)
(cherry picked from commit ea25f7e1ca)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-04-25 15:43:13 +02:00
Grot (@grafanabot) 899ba5e7da Usage stats: Detect Prometheus flavors (#47942) (#48187)
* Naïve Prometheus flavor detector

* Add concurrency and memoization

* Remove concurrency

* Fix tests

* close response body

* Add tests

(cherry picked from commit d76e5d7c6a)

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2022-04-25 15:27:35 +02:00
Grot (@grafanabot) 1db7ca2056 AzureMonitor: fix the encoding of the metrics query deep link to Azure Portal (#48139) (#48186)
(cherry picked from commit 9829195829)

Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
2022-04-25 15:12:17 +02:00
Grot (@grafanabot) e6b9f65c5c UsageStats: Move stats collection to separate service (#47381) (#47505)
* Remove specific stats from usage stats service

* Create statscollector service

* refactor

* Update and move tests

Mostly equivalent tests to before, but they've been divided over the two
services and removed the behavior driven legacy from GoConvey to
reduce the complexity of the tests.

* Collect featuremgmr metrics (copied over from #47407)

I removed the metrics registration from the feature manager in the merge
and re-add them in this commit. Separated to make things easier to
review.

(cherry picked from commit 3df625e9f4)

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2022-04-25 14:45:34 +02:00
Grot (@grafanabot) a3cbc6a272 Access control: refactor RBAC checks (#48107) (#48164)
* refactor RBAC checks

* fix a test

* another test fix

* and another

(cherry picked from commit 68ca5b2e05)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-04-25 10:59:26 +02:00
Grot (@grafanabot) 5328f55093 Alerting: Add GetRuleGroups to RuleStore (#48036) (#48075)
This commit adds a new method GetRuleGroups to RuleStore which returns the set of rule groups across all organizations.

(cherry picked from commit d66fc6ed1a)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-04-25 13:54:27 +08:00
Grot (@grafanabot) ad35db8636 Service accounts: rename feature toggle (#48037) (#48040)
* refactor: renaming service-accounts to serviceAccounts

* refactor: renaming service-accounts to serviceAccounts in docs

* tests

(cherry picked from commit 8677552dda)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2022-04-21 11:53:32 +02:00
Grot (@grafanabot) a228985d97 Alerting: Add integration test for AddDashAlertMigration (#47730) (#48019)
Adds tests for: 
what circumstances should trigger alert migration from legacy alerting to unified alerting. 
the execution of the migration itself.

Co-authored-by: gotjosh <josue.abreu@gmail.com>
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2022-04-21 13:38:31 +08:00
Grot (@grafanabot) d300a27ee7 Comments: fix wrong SQL query generated if Settings are not empty (#47552) (#47999)
(cherry picked from commit ce89d7e874)

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2022-04-20 13:00:37 -07:00
Grot (@grafanabot) 644b23aba2 Alerting: Fix navlinks for legacy alerting (#47972) (#47984)
* split building legacy and ng alert nav links.

(cherry picked from commit c1f766a374)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-04-20 18:26:11 +02:00
Grot (@grafanabot) e9c13f824c Alerting: Notification URL points to alert view page instead of alert edit page (#47752) (#47960)
Before this change, notifications generated by the Grafana Alertmanager
pointed to '/alerting/:ruleID/edit'. This change instead points them to
the view path '/alerting/grafana/:ruleID/view'. The view page has a
better UX, including timeseries display. It's also where many alert
state improvements will land in the next few versions of Grafana.

Fixes #45301

Signed-off-by: Joe Blubaugh <joe.blubaugh@grafana.com>
(cherry picked from commit 3d91047e6e)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-04-20 17:32:26 +02:00
Grot (@grafanabot) f08c5a796c Modify the Server Error scenario to return frontend errors (#47157) (#47425)
(cherry picked from commit 41642fd5f4)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2022-04-20 16:11:23 +01:00
Grot (@grafanabot) b37047eadb Chore: Try to fix flaky reverse proxy test (#47957) (#47966)
(cherry picked from commit 0afc542998)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-04-20 16:38:41 +02:00
Grot (@grafanabot) e59f21a22e Frontend: Add notification persistence behind feature flag (#47871) (#47931)
(cherry picked from commit c48d8d1d48)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2022-04-20 11:57:15 +02:00
Grot (@grafanabot) b53f5675f4 check that the user has RBAC permissions to save dashboard annotation (#47882) (#47920)
(cherry picked from commit 1588cd393a)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-04-20 10:49:32 +02:00
Grot (@grafanabot) 5de766a202 Update API Keys UI to adjust based on users permissions (#47802) (#47921)
* Update API Keys UI to adjust based on users permissions

Since API Keys support now RBAC we need to ensure that UI
is adjusted based on the user permissions.

* Applying PR suggestions

(cherry picked from commit cbd2d09d70)

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2022-04-20 10:45:54 +02:00
Grot (@grafanabot) 8888dac836 Alerting: Fix issue with Slack contact point validation (#47559) (#47919)
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
(cherry picked from commit 39d3c8afd7)

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
2022-04-20 10:18:41 +02:00
Grot (@grafanabot) aa5bc10bcf Instrumentation: Proxy status code correction and various improvements (#47473) (#47903)
For a proxied request, e.g. Grafana's datasource or plugin proxy:
If the request is cancelled, e.g. from the browser, the HTTP status code is
now 499 Client closed request instead of 502 Bad gateway.
If the request times out, e.g. takes longer time than allowed, the HTTP status
code is now 504 Gateway timeout instead of 502 Bad gateway.
This also means that request metrics and logs will get their status codes
adjusted according to above.

Fixes #46337
Fixes #46338

(cherry picked from commit 4bc582570e)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-04-19 20:41:57 +02:00
Grot (@grafanabot) bc9621699b Alerting: Fix nav-links for RBAC and other (#47798) (#47895)
(cherry picked from commit 0c31399e34)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-04-19 12:12:55 -04:00
Grot (@grafanabot) 190766fed1 Create fixed roles for reading API Keys and service accounts and fix listing of service account tokens (#47767) (#47777)
* Create fixed roles for reading API Keys and service accounts

* Handle PR comments and fix the listing of token

(cherry picked from commit 782ec05d8c)

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2022-04-18 20:34:12 +02:00