Prevent crash while executing concurrent mixed queries (#874)
limit parallel query execution to 1 at a time
(cherry picked from commit 96579a60e19e2a9f2d6bdaeba64e0e702211eb73)
Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
Require alert.notifications:write permissions to test receivers and templates (#865)
(cherry picked from commit 3c21ab70075256d4ba8e4fbfdcb15f5a394161fa)
Revert: Allow editors to access GET /datasources (#68632)
Revert "Allow editors to access GET /datasources"
This reverts commit 5a830c43c0.
(cherry picked from commit 6a2bcba078)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Prometheus: Fix fallback http method when no http method specified in jsonData (#65229)
Use POST as default if no http method specified in jsonData
(cherry picked from commit 959349d191)
AzureMonitor: Fix logs query multi-resource and timespan values (#67914)
* Update TimeGrain interface methods
- Make them util functions because it's simpler
* Update logs ds to appropiately set resources and timespan
* Set timespan using RCF times
* Update tests
(cherry picked from commit 9d16718acc)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Grafana Cloud: Put cloud artifacts to `*/release` dir (#66168)
Put cloud artifacts to */release dir
(cherry picked from commit a2634495e5)
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
Alerting: Update migration to put alerts to the default folder if dashboard folder is missing (#65577)
* extract function
* use context logger
* put alert to general folder if folder is missing
* move folderHelper init
* add test
* Update pkg/services/sqlstore/migrations/ualert/ualert.go
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
---------
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
(cherry picked from commit 7b2f44762e)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Google Cloud Monitoring: Fix project variable (#66524)
Google Cloud Monitoring: fix project variable
Also fix typo found while debugging
(cherry picked from commit 02951e8a26)
Co-authored-by: Adam Simpson <adam@adamsimpson.net>
Auth: Remove the session cookie only if it's invalid or revoked (#65984)
Remove the cookie if it's invalid or revoked
(cherry picked from commit 4cac95d1c2)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
AccessControl: Allow editors to access GET /api/datasources (#66343)
Allow editors to access GET /datasources
(cherry picked from commit 2c21090931)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Auth: Fix orgrole picker disabled if isSynced user (#64033)
* fix: disable orgrolepicker if externaluser is synced
* add disable to role picker
* just took me 2 hours to center the icon
* wip
* fix: check externallySyncedUser for API call
* remove check from store
* add: tests
* refactor authproxy and made tests run
* add: feature toggle
* set feature toggle for tests
* add: IsProviderEnabled
* refactor: featuretoggle name
* IsProviderEnabled tests
* add specific tests for isProviderEnabled
* fix: org_user tests
* add: owner to featuretoggle
* add missing authlabels
* remove fmt
* feature toggle
* change config
* add test for a different authmodule
* test refactor
* gen feature toggle again
* fix basic auth user able to change the org role
* test for basic auth role
* make err.base to error
* lowered lvl of log and input mesg
(cherry picked from commit 3cd952b8ba)
Build: Add CloudMode to build versions (#65651)
* Add CloudMode to build versions
* Use linux-amd64 variant without musl for cloud mode
* Add cloud mode to version folder on package upload
* Use musl variant for CloudMode
* Only sign rpm packages if there's any to sign
* Remove trailing whitespace
(cherry picked from commit 8f282b8a6e)
Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
Alerting: Fix integration test for creating silences (#65722)
* fix integration test for creating silences
to create correct silence with endsAt in the future
* Update api_alertmanager_test.go
(cherry picked from commit ed8628e39d)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* Alerting: Introduce proper feature toggles for common state history backend combinations (#65497)
* define 3 feature toggles for rollout phases
* Pass feature toggles along
* Implement first feature toggle
* Try a different strategy with fall-throughs to specific configurations
* Apply toggle overrides once outside of backend composition
* Emit log messages when we coerce backends
* Run code generator for feature toggle files
* Improve wording in flag descs
* Re-run generator
* Use code-generated constants instead of plain strings
* Use converted enum values rather than strings for pre-parsing
(cherry picked from commit b2abb63286)
* Remove generated file that is only present in future versions
Alerting: No longer index state history log streams by instance labels (#65474)
* Remove private labels
* No longer index by instance labels
* Labels are now invariant, only build them once
* Remove bucketing since everything is in a single stream
* Refactor statesToStreams to only return a single unified log stream
* Don't query on labels that no longer exist
* Move selector logic to loki layer, genericize client to work in terms of straight logQL
* Add support for line-level label filters in query
* Combine existing selector tests for better parallelism
* Tests for logQL construction
* Underscore instead of dot for unwrapping labels in logql
(cherry picked from commit a416100abc)
Backport from #65184 using github.com/xorcare/pointer instead of the newer util.Pointer.
(cherry picked from commit b210a39cb7)
---------
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
CI: Allow overwriting of existing GitHub release assets (#65127)
* CI: Allow overwriting of existing GitHub release assets
This closes#63698
* Use c for *cli.Context in publishgithub.go
(cherry picked from commit 4ab3bd6f7e)
Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
Alerting: Add alert instance labels to Loki log lines in addition to stream labels (#65403)
Add instance labels to log line
(cherry picked from commit de1637afe5)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
Alerting: Add "backend" label to state history writes metrics (#65395)
* Add backend label to state history writes metrics
* Update test expectations
(cherry picked from commit dd04757fc9)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
* Alerting: Fix stats that display alert count when using unified alerting (#64852)
* Alerting: Fix stats when using unified alerting
(cherry picked from commit 02a8f62021)
* bundle services is not needed for 9.4.x
---------
Co-authored-by: gotjosh <josue.abreu@gmail.com>
Database: Don't sleep 10ms before every request (#64832)
Previously every DB operation would wait 10ms before even trying.
Now we try first, and defer creating the ticker until we need it.
(cherry picked from commit f4a5f91496)
Co-authored-by: Bryan Boreham <bjboreham@gmail.com>
Alerting: Fix attachment of external labels to Loki state history log streams (#65140)
Fix attachment of external labels, add tests
(cherry picked from commit 07368dec74)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
* Alerting: Switch to snappy-compressed-protobuf for outgoing push requests to Loki (#65077)
* Encode with snappy, always
* JSON encoder type
* Headers
* Copy labels formatter from promtail
* Implement snappy-proto encoding
* Create encoder interface, test both encoders, choose snappy-proto by default
* Make encoder configurable at the LokiCfg level
* Export both encoders
* Touch up comment and tests
* Drop unnecessary conversions after move to plain strings to appease linter
(cherry picked from commit bf54f2672e)
* Sample fields got renamed between 9.4 and main
Alerting: Fix ambiguous handling of equals in labels when bucketing Loki state history streams (#65013)
* Use JSON instead of data.Labels string format as label repr
* Drop debug log line
(cherry picked from commit cc7e5ce62e)
Alerting: Elide requests to Loki if nothing should be recorded (#65011)
Exit early if no log streams or annotations
(cherry picked from commit e39d7f44c9)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
Vendor errors.Join from Go standard library to avoid version incompatibilities (#64985)
Vendor errors.Join from std lib
(cherry picked from commit 40c5713cbd)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
Alerting: Create new state history "fanout" backend that dispatches to multiple other backends at once (#64774)
* Rename RecordStatesAsync to Record
* Rename QueryStates to Query
* Implement fanout writes
* Implement primary queries
* Simplify error joining
* Add test for query path
* Add tests for writes and error propagation
* Allow fanout backend to be configured
* Touch up log messages and config validation
* Consistent documentation for all backend structs
* Parse and normalize backend names more consistently against an enum
* Touch-ups to documentation
* Improve clarity around multi-record blocking
* Keep primary and secondaries more distinct
* Rename fanout backend to multiple backend
* Simplify config keys for multi backend mode
(cherry picked from commit a31672fa40)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
SQLStore: Fix setting query tries for integration tests (#64944)
* SQLStore: Pass testinfra database configuration to the test database
* Add test
* Bypass gocyclo check for initTestDB
(cherry picked from commit f5cb8c660e)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Alerting: Handful of small adjustments to log levels and parameters (#64572)
Calculate duration earlier in scheduler
(cherry picked from commit 9bcf8819d3)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
SQLStore: Fix SQLite error propagation if query retries are disabled (#64904)
* SQLStore: Add test when query retrying is disabled
* Fix condition
* Add test cases for sqlite3.ErrLocked
(cherry picked from commit 41843464d1)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Navigation: handle case when there is no alerting node at all (#64941)
* handle case when there is no alerting node at all
* update backend tests
(cherry picked from commit f4c62a5c5d)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Navigation: Correctly create `Alerts and incidents` section when using legacy alerting (#64924)
check for legacy alerting node as well
(cherry picked from commit 54dd8943ca)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Alerting: Update scheduler to get updates only from database (#64635)
* stop using the scheduler's Update and Delete methods all communication must be via the database
* update scheduler's registry to calculate diff before re-setting the cache
* update fetcher to return the diff generated by registry
* update processTick to update rule eval routine if the rule was updated and it is not going to be evaluated at this tick.
* remove references to the scheduler from api package
* remove unused methods in the scheduler
(cherry picked from commit 85a954cd81)
# Conflicts:
# pkg/services/ngalert/schedule/schedule.go
# pkg/services/ngalert/schedule/schedule_unit_test.go