Commit Graph

8716 Commits

Author SHA1 Message Date
Will Browne
ecdcafb258 manager exposes renderer + secrets manager (#54629) 2022-09-02 14:20:10 +02:00
Will Browne
43987e7f8c Plugins: Fix plugin registered startup log line (#54634)
* fix plugin registered log

* remove stale test
2022-09-02 14:01:52 +02:00
Joe Blubaugh
5e4fd94413 Alerting: Write and Delete multiple alert instances. (#54072)
Prior to this change, all alert instance writes and deletes happened
individually, in their own database transaction. This change batches up
writes or deletes for a given rule's evaluation loop into a single
transaction before applying it.

Before:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8           398           2991381 ns/op         1133537 B/op      27703 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
    util.go:127: alert definition: {orgID: 1, UID: FovKXiRVzm} with title: "an alert definition FTvFXmRVkz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: foDFXmRVkm} with title: "an alert definition fovFXmRVkz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: VQvFuigVkm} with title: "an alert definition VwDKXmR4kz" interval: 60 created
PASS
ok      github.com/grafana/grafana/pkg/services/ngalert/store   1.619s
```

After:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8          1440            816484 ns/op          352297 B/op       6529 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
    util.go:127: alert definition: {orgID: 1, UID: 302r_igVzm} with title: "an alert definition q0h9lmR4zz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: 71hrlmR4km} with title: "an alert definition nJ29_mR4zz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: Cahr_mR4zm} with title: "an alert definition ja2rlmg4zz" interval: 60 created
PASS
ok      github.com/grafana/grafana/pkg/services/ngalert/store   1.383s
```

So we cut time by about 75% and memory allocations by about 60% when
storing and deleting 100 instances.

This change also updates some of our tests so that they run successfully against postgreSQL - we were using random Int64s, but postgres integers, which our tables use, max out at 2^31-1
2022-09-02 11:17:20 +08:00
Michael Mandrus
39c31416a4 improve log in plugin check (#54599) 2022-09-01 13:47:37 -04:00
Timur Olzhabayev
b5b41988cf Docs: Deprecating packages_api and removing it from our pipelines (#54473) 2022-09-01 18:15:44 +02:00
Serge Zaitsev
927ddf9376 Chore: Move login attempt methods to separate service (#54479)
* Chore: Move login attempt methods to separate service

* attempt to fix tests

* fix syntax

* better time mocking

* initialise now func
2022-09-01 18:08:42 +02:00
Dimitris Sotirakis
212f0609eb Check if dist dir exists (#54590) 2022-09-01 10:43:04 -04:00
Timur Olzhabayev
f7302149d0 Fix: Adjusting plugin.json schema regex (#54515) 2022-09-01 15:53:38 +02:00
Dimitris Sotirakis
7e2238cf6f CI: Generate Grafana version (and metadata) when the build binary is built (#54393)
* Add GenerateVersions as BeforeFunc

* Delete gen-version

* Fix lint

* Get build id from env var
2022-09-01 15:43:40 +03:00
Karl Persson
be6b8d91eb Correlations: Use correct fallback handlers (#54511)
* Correlations: Use correct fallback handlers

* Add signed in middleware to all routes
2022-09-01 12:29:44 +02:00
Josh Hunt
f15ce633c9 Navigation: Don't round app plugin icon images (#54543)
* Navigation: Don't round app plugin icon images

* round icon
2022-09-01 10:28:50 +01:00
Kat Yang
58449d42ed Chore: Add dashboard thumbnails service (#54500)
* Chore: Add dashboard thumbnails service

* Fix errors in dashboard thumbs impl

* Inject dashboardThumbsService into wire
2022-08-31 16:45:41 -04:00
Ryan McKinley
55fe1506ba Plugins: unlock on plugin startup failure (#54555) 2022-08-31 16:02:07 -04:00
owensmallwood
f4bbce15a0 Public Dashboards: Add Expressions Support (#54336)
Adds support for expressions with public dashboards
2022-08-31 09:11:10 -06:00
Yuriy Tseretyan
76ea0b15ae Alerting: Scheduler to fetch folders along with rules (#52842)
* Update GetAlertRulesForScheduling to query for folders (if needed)
* Update scheduler's alertRulesRegistry to cache folder titles along with rules
* Update rule eval loop to take folder title from the
* Extract interface RuleStore 
* Pre-fetch the rule keys with the version to detect changes, and query the full table only if there are changes.
2022-08-31 11:08:19 -04:00
Mihály Gyöngyösi
60839d9c30 RBAC: Config setting to disable permission validation (#54447)
* Add scope_validation_enabled config setting to rbac section

* Rename config setting
2022-08-31 16:58:45 +02:00
Kristina
38c1f3d054 Explore: Add Mixed Datasource (#53429)
* Toggle on the mixed mode option

* Ensure switching to mixed gives existing query prev datasource

* WIP - Populate datasource when switching between mixed and not

* WIP - handle change from mixed

* Remove preimport filter, refine filter to work for queries

* WIP debugging datasource transition

* Ensure creating a new query gets target data source if switching with no matches between

* Add mixed datasource to rich history display

* Cleanup console logs, add relevant comments

* Add feature toggle for mixed datasource

* Fix Wrapper tests

* Fix tests!

* Fix test types and add feature tracking

* Remove unnecessary default, remove explore/mixed workarounds for D2E

* Move display text logic to mixed datasource file

* Add in the default query parameters to a generated empty query

* Condense some code

* Apply suggestions from code review

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Add more logic around mixed datasource being off for explore

* Build out logic to handle different datasource scenarios

* Add tests

* Finalize last test

* Fix mixed URL with mixed ds off, and relevant test

* Fix datasource to explore workflow

* Add datasource change function, call import queries if needed

* add logic for changing single query ds

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2022-08-31 09:24:20 -05:00
Dave Henderson
713075c494 Metrics: Fixed grafana_database_conn_* metrics, and added new go_sql_stats_* metrics as eventual replacement (#54405)
* metrics: Fix broken DBStats metrics

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* Register the sqlstats metrics by default

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2022-08-31 08:54:32 -04:00
Dimitris Sotirakis
239c4cdb25 Add CustomMode in versions.go (#54482) 2022-08-31 09:21:33 +03:00
Will Browne
166b981019 ensure process manager is background service (#54475) 2022-08-30 13:09:52 -04:00
Artur Wierzbicki
9284216880 Search: ordering tests (#54432)
* search ordering tests

* lintt
2022-08-30 18:58:19 +02:00
Will Browne
4a707e2a88 Plugins: Split plugin manager into smaller components (#54384)
* split out plugin manager

* remove whitespace

* fix tests

* split up tests

* updating naming conventions

* simplify manager

* tidy

* add more fakes

* testing time

* add query verif to int test

* renaming

* add process tests

* tidy up manager tests

* add extra case to int test

* add more coverage to store and process tests

* remove comment

* fix capatilization

* init on provide

* remove addfromsource from API
2022-08-30 17:30:43 +02:00
Gabriel MABILLE
c2c319146a FIX: RBAC prevents deleting empty snapshots (#54385)
* FIX: RBAC prevents deleting empty snapshots

* Update pkg/api/dashboard_snapshot.go

Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>

* Simplify else case

Co-authored-by: Emil Tullsted <sakjur@users.noreply.github.com>

Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Emil Tullsted <sakjur@users.noreply.github.com>
2022-08-30 17:19:52 +02:00
Dimitris Sotirakis
933bbe228b Add PackagesBucketEnterprise2 field in config (#54449) 2022-08-30 10:47:12 -04:00
Artur Wierzbicki
7a340f486b Storage: add WithContents option to storage.Get() (#53105)
* Storage: add `WithContents` option to `storage.Get()`

* fix tests

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-08-30 15:23:16 +02:00
Joan López de la Franca Beltran
6ec06f66b9 Rendering: Add support for renderer token (#54425)
(cherry picked from commit a4f75cc0438712c90b02d24740416f8615e3a0cb)
2022-08-30 12:09:38 +02:00
Esteban Beltran
56bceacfb1 Navigation Bar: Remove plugins link under Server Admin (#54386)
* Navigation Bar: Remove plugins link under Server Admin

* Modify frontend to handle admin plugins as just plugins

* update assets and documentation mentioned path

* Fix copy to remove redundant text
2022-08-30 03:40:04 -04:00
Ezequiel Victorero
722aca5c53 Public Dashboards: use intervalMs and maxDataPoints from request (#53613) 2022-08-29 18:13:06 -03:00
Michael Mandrus
2c21113917 Secrets: Implement admin mechanism for deleting all secrets stored on the secrets plugin (#54264)
* implement delete all secrets endpoint

* change deletion check to just check for installed plugin

* refactor function call
2022-08-29 14:44:55 -04:00
ying-jeanne
fe062f2eaa Chore: Use db.DB interface instead of sqlstore (#54358)
* use db.DB interface instead of sqlstore

* make store service depends on db.DB instead of sqlstore
2022-08-26 19:07:58 -05:00
Ryan McKinley
216185b7f0 Storage: Avoid UID errors from annotations api when loading dashboards from storage (#54346) 2022-08-26 15:09:56 -07:00
Jean-Philippe Quéméner
a932428057 Alerting: use raw query data in provisioning to bypass interpolation of macros (#54293) 2022-08-26 23:54:30 +02:00
Jean-Philippe Quéméner
49b1182f34 Alerting: add missing yaml tag to mute time struct (#54287) 2022-08-26 23:30:07 +02:00
Jeff Levin
5cb9fca990 public-dashboards: Add log statement when public dashboard enabled or disabled (#54133)
* refactor apis for consistent outputs
* add dashboardUid validation at API layer
* add check for empty dashboardUid on SavePublicDashboard
* remove public dashboard errors from models package.

Co-authored-by: Ezequiel Victorero <evictorero@gmail.com>
2022-08-26 11:28:54 -08:00
Yuriy Tseretyan
b9be2815d3 Chore: Fix cue loader to use absolute path (#54257) 2022-08-26 14:08:12 -04:00
Ryan McKinley
2db6a199b8 Preferences: Support setting any dashboard as home, not just the starred ones (#54258) 2022-08-26 12:40:40 -04:00
Karl Persson
9d2f5ef62f RBAC: Add function to generate wildcards from prefix (#54275)
* RBAC: Move metadata to own file

* RBAC: Rename test files

* RBAC: Add wildcard structure and helper function to generate wildcards
from prefix

* RBAC: Refactor filter to use WildcardsFromPrefix

* RBAC: Refactor GetResourceMetadata to use WildcardsFromPrefix
2022-08-26 17:10:35 +02:00
ying-jeanne
6227528ea0 Chore: SQL Store Split of datasource (#54262)
* refectory datasource

* fix linter
2022-08-26 11:03:38 -04:00
Selene
ec3697584a Move config nodes to another function (#54330) 2022-08-26 16:30:21 +02:00
Yuriy Tseretyan
db09a76125 update test environment to create folders (#54254) 2022-08-26 09:46:41 -04:00
Gábor Farkas
a58edc9f5e elastic: always use millisecond-intervals for alerting (#54157) 2022-08-26 14:40:28 +02:00
Giordano Ricci
c68d7f1e35 Correlations: Add CorrelationSettings Page (#53821)
* GrafanaUI: add option to close DeleteButton on confirm click

* add datasource readOnly info to frontend settings

* move isTruthy utility type guard

* add generic non-visualization table component

* Add correlations settings page

* add missing readOnly in mock

* Fix typo

* avoid reloading correlations after add/remove

* use DeepPartial from rhf

* validate source data source

* fix validation logic

* fix navmodel test

* add missing readonly property

* remove unused styles

* handle multiple clicks on elements

* better UX for loading states

* fix remove handler

* add glue icon
2022-08-26 11:27:28 +01:00
Marcus Efraimsson
87afd9cadc Plugins: Remove various custom headers logic (#54146)
Removes various custom headers logic sprinkled around in the backend. 
It should automatically be applied to outgoing HTTP requests via the 
CustomHeadersMiddleware.
This also removes decryption of SecureJSONData to populate custom 
headers in ngalert which seemed to have caused a ton of CPU usage.
2022-08-26 11:56:10 +02:00
Jeff Levin
681bdf1a2d public-dashboards: refactor query method (#54119)
This PR refactors the GetPublicDashboard method so we don't need to make extra database calls. Also adds general documentation
2022-08-26 05:21:52 -04:00
Artur Wierzbicki
74158ed66b Search: use SQL search as a fallback during bluge's initial indexing (#54095)
* Search: use SQL search as a fallback when bluge indexing is ongoing

* Search: lint

* Search: feedback fixes - return an empty frame with a special name

* Search: revert readiness check query type

* Search: remove println

* remove sleep, get coffee
2022-08-26 12:36:41 +04:00
Karl Persson
5a1b9d2283 RBAC: Remove DeclareFixedRoles wrapper on Access control and inject service (#54153)
* RBAC: Remove DeclareFixedRoles wrapper on Access control and inject service when needed
2022-08-26 09:59:34 +02:00
Guilherme Caulada
f25c7f6ddd Chore: Refactor secrets kvstore to organize testing and migrations (#54249)
* Refactor migrations and tests for secrets kvstore

* Use fake secrets store as a shortcut on tests

* Update wire

* Use global migration logger

* Fix ds proxy tests

* Fix linting issues

* Rename data source test setup function
2022-08-25 18:04:44 -03:00
ying-jeanne
fd01161bcc Chore: replace xorm by sqlx in dashboardversion service (#53869) 2022-08-25 16:04:16 -05:00
Michael Mandrus
8deababa50 Chore: Refactor secrets plugin unit tests code (#54231)
* refactor test setup to return struct rather than many values

* changes to code style from review

* apply diff from Leandro for logging
2022-08-25 15:15:58 -04:00
Yuriy Tseretyan
03e746d9df Alerting: Delete state from the database on reset (#53919)
* make ResetStatesByRuleUID return states
* delete rule states when reset
* rule eval routine to clean up the state only when rule is deleted
2022-08-25 14:12:22 -04:00