Commit Graph

6144 Commits

Author SHA1 Message Date
David Parrott 39099bf3c0 Alerting nested state cache (#33666)
* nest cache by orgID, ruleUID, stateID

* update accessors to use new cache structure

* test and linter fixup

* fix panic

Co-authored-by: Kyle Brandt <kyle@grafana.com>

* add comment to identify what's going on with nested maps in cache

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2021-05-04 09:57:50 -07:00
David Parrott 5072fefc22 allow saving pending alerts (#33667) 2021-05-04 09:24:20 -07:00
Sofia Papagiannaki 540f110220 [Alerting]: Extend quota service to optionally set limits on alerts (#33283)
* Quota: Extend service to set limit on alerts

* Add test for applying quota to alert rules

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Get used alert quota only if naglert is enabled

* Set alert limit to zero if nglalert is not enabled
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-05-04 19:16:28 +03:00
Ryan McKinley 33e4f8d7ac Live: remove feature toggle and enable by default (#33654) 2021-05-04 08:44:55 -07:00
Hugo Häggmark c6d4d14a89 LibraryPanels: Adds folder filter to manage library panel page (#33560)
* LibraryPanels: Adds folder filter

* Refactor: Adds folder filter to library search

* Refactor: splits huge function into smaller functions

* LibraryPanels: Adds Panels Page to Manage Folder tabs (#33618)

* Chore: adds tests to LibraryPanelsSearch

* Refactor: Adds reducer and tests

* Chore: changes GrafanaThemeV2

* Refactor: pulls everything behind the feature toggle

* Chore: removes clear icon from FolderFilter

* Chore: adds filter to SortPicker

* Refactor: using useAsync instead
2021-05-04 13:59:40 +02:00
Ganesh Vernekar 918552d34b NGAlert: Send list of available ngalert notification channels via API (#33489)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-04 13:58:39 +02:00
Carl Bergquist 06dc2b24bf dont consider invalid email address a failed email (#33671)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2021-05-04 12:07:50 +02:00
kay delaney 2cc66e548a Library panels: Normalize feature name as "Library panels" (#33540) 2021-05-04 09:00:44 +01:00
ying-jeanne 22b2d3c38a frontend for trim/apply defaults and some bug fixing (#33561)
* remove empty object and workaround on list

* frontend

* add toggle on frontend
2021-05-04 15:03:42 +08:00
Kyle Brandt 48358efc13 Alerting: remove State cache entries on Ruler Delete (#33638)
for https://github.com/grafana/alerting-squad/issues/133
2021-05-03 14:01:33 -04:00
Alexander Emelin fa866f1154 Live: client connection concurrency (#33642) 2021-05-03 20:29:23 +03:00
sam boyer 806761fe70 Schema: Change Subsume check so optionality is respected (#33650) 2021-05-03 10:24:28 -07:00
Owen Diehl 070627d11e better handle metrics for state transitions (#33648) 2021-05-03 11:57:24 -04:00
Kyle Brandt 57d46ea991 AlertingMigration: Separate info into multiple annos (#33641) 2021-05-03 11:42:31 -04:00
Torkel Ödegaard 578283078b PanelEdit: Improves viz picker ux, auto close on click (#33633)
* PanelEdit: Improves viz picker ux, auto close on click

* Fixing strict ts error

* Updated e2e
2021-05-03 16:49:09 +02:00
Sergey Kostrukov 19f520d891 PluginProxy: Split implementations of token providers (#32820)
* Split implementations of token providers

* Fix imports

* Fix code racing in unit tests
2021-05-03 13:46:32 +01:00
Kyle Brandt c1034f3118 Alerting: Create instanceStore (#33587)
for https://github.com/grafana/alerting-squad/issues/129
2021-05-03 07:19:15 -04:00
Emil Tullstedt 4496ae496e Access control: Clean up users scopes (#33532)
Following discussion in grafana/grafana-enterprise#1292, removing
org-scoped users scopes to make it clear that the local organization is
the default and the alternative to that is a global scope (for a select
few endpoints)
2021-05-03 10:27:12 +02:00
Arve Knudsen 567b852072 PagerDuty: Omit empty message (#33614)
Co-authored by pkoenig10

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-03 08:51:22 +02:00
Sofia Papagiannaki 49e9f7e3b6 Chore: Fix mysql integration tests (#33606) 2021-05-02 19:49:38 +02:00
Torkel Ödegaard cbf30aac82 Revert "Omit empty message in PagerDuty notifier (#31359)" (#33604)
This reverts commit d652d035ab.
2021-05-02 14:06:28 +02:00
Patrick Koenig d652d035ab Omit empty message in PagerDuty notifier (#31359) 2021-05-02 08:53:20 +02:00
Kyle Brandt c2a5da79e3 Alerting: Avoid panic by not loading instances without a rule (#33597) 2021-05-01 19:01:28 +02:00
Kyle Brandt 759a0cd71b Build: Fix with cleanup call maybe? (#33590) 2021-04-30 13:02:37 -07:00
Kyle Brandt efe856ae4e AlertingMigration: Create alert_rule_version entry (#33585)
Create the alert rule version entry during the migration so it is consistent with rules created via api.
for https://github.com/grafana/alerting-squad/issues/123
2021-04-30 15:08:01 -04:00
Kyle Brandt 7823842c5d Alerting: Load annotations from rule into State cache (#33542)
for https://github.com/grafana/alerting-squad/issues/127
2021-04-30 20:23:12 +02:00
Alexander Emelin 0c2bcbf2bc Live: persisting last message in cache for broadcast scope (#32938) 2021-04-30 11:06:33 -07:00
Kyle Brandt c25eab4eda AlertMigration: remove alert_rule UID db check (#33568)
do not believe this is needed due to uniqueness promised by shortid lib
since there is no provisioning yet. https://github.com/teris-io/shortid
2021-04-30 13:35:26 -04:00
Kyle Brandt b8f01fe034 Alerting: backend "ng" code cleanup (#33578) 2021-04-30 13:21:57 -04:00
Owen Diehl 5e48b54549 Alerting/metrics (#33547)
* moves alerting metrics to their own pkg

* adds grafana_alerting_alerts (by state) metric

* alerts_received_{total,invalid}

* embed alertmanager alerting struct in ng metrics & remove duplicated notification metrics (already embed alertmanager notifier metrics)

* use silence metrics from alertmanager lib

* fix - manager has metrics

* updates ngalert tests

* comment lint
Signed-off-by: Owen Diehl <ow.diehl@gmail.com>

* cleaner prom registry code

* removes ngalert global metrics

* new registry use in all tests

* ngalert metrics impl service, hack testinfra code to prevent duplicate metric registrations

* nilmetrics unexported
2021-04-30 12:28:06 -04:00
Kyle Brandt 713260f6fa Alerting: Remove datasource (name) from migration (#33544)
no longer needed as of https://github.com/grafana/grafana/pull/33416
for https://github.com/grafana/alerting-squad/issues/126
2021-04-30 07:47:01 -04:00
Arve Knudsen ec3d8b590a Server: Implement timeout waiting for server to shut down (#33333)
* tests: Undo cleanup in goroutine

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Server: Implement timeout waiting for it to shut down

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-04-30 10:55:59 +02:00
Owen Diehl e4d3161690 revendors loki & alertmanager (#33534)
* revendors loki

* revendors alertmanager
2021-04-29 18:29:42 +01:00
Kyle Brandt 6c8ef2a9c2 Alerting: Alert Rule migration (#33000)
* Not complete, put migration behind env flag for now:
UALERT_MIG=iDidBackup
* Important to backup, and not expect the same DB to keep working until the env trigger is removed.
* Alerting: Migrate dashboard alert permissions
* Do not use imported models
* Change folder titles

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2021-04-29 13:24:37 -04:00
Sofia Papagiannaki 1e380e869e [Alerting]: some fixes (#33538)
* Fix fialure when adding state annotations

* Fix get org rules API

Do not fail response if user has no access to view a namespace.
Do not include the namespace in the response instead.

* lint
2021-04-29 19:15:15 +03:00
dependabot[bot] 8dea72a763 Chore(deps): Bump go.opentelemetry.io/collector from 0.22.0 to 0.25.0 (#33365)
* Chore(deps): Bump go.opentelemetry.io/collector from 0.22.0 to 0.25.0

Bumps [go.opentelemetry.io/collector](https://github.com/open-telemetry/opentelemetry-collector) from 0.22.0 to 0.25.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.22.0...v0.25.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Apply changes to tempo code

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-04-29 15:01:48 +02:00
Kyle Brandt d32fcbe2bc Alerting: Eval pkg tests and more specific error handling (#33496)
* comment updates
* more friendly error messages, in particular if it looks like time series data
2021-04-29 07:27:32 -04:00
Emil Tullstedt 840828b5d2 Access control: Allow empty scope requirement lists (#33518) 2021-04-29 13:22:13 +02:00
Sofia Papagiannaki fcd674ec58 Fix deleting prom rules endpoints via ds_proxy (#33491) 2021-04-29 10:20:51 +03:00
Owen Diehl ec37b4cb87 [Alerting] Automatic request instrumentation (#33444)
* alerting: automatic request instrumentation

* always expose alerting prom metrics

* globally register alerting metrics
2021-04-28 16:59:15 -04:00
Kyle Brandt 914443c816 Alerting: Fix state cache id duplication (#33480) 2021-04-28 11:42:19 -04:00
Marcus Efraimsson 7e6db1ee7e Permissions: Fix inherited folder permissions can prevent new permissions being added to a dashboard (#33329)
In the case permissions has been added on dashboard(s). Later permissions for the 
parent folder of the dashboard is edited in such a way that dashboard in that folder 
has a permission that is a duplicate of an inherited one. This PR changes so that 
duplicate permissions are now filtered out from /api/dashboards/id/<dashboard id>/permissions.
Duplicate permission are not filtered out if the permission on dashboard is higher 
than on the inherited folder.

Fixes #33296

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-04-28 14:42:18 +02:00
ying-jeanne 748778fff0 new endpoint to post/get trimmed dashboard json (#33465)
* new endpoint to post/get trimed dashboard json

* add isdisabled check in dashboard.go
2021-04-28 19:38:33 +08:00
Christian Haudum 076e2ce06a Return 404 when deleting non-existing API key (#33346)
The server needs to return a HTTP 404 (Not Found) when an API key that does not exist is deleted.
2021-04-28 13:30:09 +02:00
Joan López de la Franca Beltran c41b08bd59 Settings: Encapsulate settings within an extensible provider (#32219)
* Encapsulate settings with a provider with support for runtime reloads

* SettingsProvider: reload is controlled by the services

* naive impl of reload handlers for settings

* working naive detection on new changes

* Trigger settings reload from API endpoint

* validation step added

* validation of settings

* Fix linting errors

* Replace DB_Varchar by DB_NVarchar

* Reduce settings columns (section, key) lenghts

* wip db update logic

* Db Settings: separate updates and removals

* Fix: removes incorrectly added code

* Minor code improvements

* Runtime settings: moved oss -> ee

* Remove no longer used setting.Cfg SAML-related fields

* Rename file setting/settings.go => setting/provider.go

* Apply suggestions from code review

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Minor code improvements on OSS settings provider

* Fix some login API tests

* Correct some GoDoc comments

* Apply suggestions from code review

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2021-04-28 11:26:58 +02:00
Sofia Papagiannaki 7ccb022c03 Alerting: validate condition before updating rulegroup (#33367)
* Alerting: validate condition before updating rulegroup

* Apply suggestions from code review
2021-04-28 11:31:51 +03:00
Hugo Häggmark 20ee0e9601 LibraryPanels: Adds panel type filter and sorting (#33425)
* Wip: inital commit

* Chore: updating api

* Refactor: adds description search and sorting

* Refactor: adds panel filtering

* Refactor: limits the height of select

* Tests: updates snapshot

* Refactor: small UI improvements
2021-04-28 09:18:13 +02:00
Kyle Brandt 968935b8b7 TestData: Change predictable csv scenario to multi-series (#33442)
Allow multiple series in Predictable CSV Wave testdata scenario

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-04-27 16:35:43 -04:00
Kyle Brandt b590e95682 AlertingAPI: Change list response query prop (#33419)
* Alerting: change to full []AlertQuery as json in a string and not just model.
2021-04-27 22:15:00 +02:00
Vardan Torosyan 5bf6d7dad8 Access control: Update evaluator to authorize when at least one of the scopes is a match (#33393) 2021-04-27 18:22:18 +02:00