Commit Graph

10062 Commits

Author SHA1 Message Date
Grot (@grafanabot) cb5c92a375 [v9.4.x] CI: Allow overwriting of existing GitHub release assets (#65459)
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>
2023-03-28 17:31:14 +02:00
Gilles De Mey 6a73b2b726 Email: Mark HTML comments as "safe" in email templates (#64546) (#65443) 2023-03-28 17:26:15 +02:00
Grot (@grafanabot) d3c37d28ed [v9.4.x] Alerting: Add alert instance labels to Loki log lines in addition to stream labels (#65454)
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>
2023-03-28 17:11:43 +03:00
Grot (@grafanabot) 1b8d220d96 [v9.4.x] Alerting: Add "backend" label to state history writes metrics (#65453)
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>
2023-03-28 17:06:57 +03:00
Will Browne 0d7efc076c [v9.4.x] Plugins: Markdown fetch retry with lowercase (#65388)
cherry pick
2023-03-28 12:19:20 +02:00
Grot (@grafanabot) bb3e08a0a1 [v9.4.x] Alerting: Fix stats that display alert count when using unified alerting (#64951)
* 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>
2023-03-27 14:30:27 +01:00
Grot (@grafanabot) 0680231781 [v9.4.x] Database: Don't sleep 10ms before every request (#65334)
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>
2023-03-27 12:30:50 +03:00
Grot (@grafanabot) 950b15d0aa [v9.4.x] Alerting: Fix attachment of external labels to Loki state history log streams (#65142)
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>
2023-03-22 09:15:44 +02:00
Alexander Weaver 788dc25416 Alerting: Switch to snappy-compressed-protobuf for outgoing push requests to Loki (#65137)
* 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
2023-03-21 16:42:01 -05:00
Alexander Weaver 744c1164e7 Alerting: Fix ambiguous handling of equals in labels when bucketing Loki state history streams (#65135)
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)
2023-03-21 19:59:57 +02:00
Grot (@grafanabot) 4b6a015256 [v9.4.x] Alerting: Elide requests to Loki if nothing should be recorded (#65118)
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>
2023-03-21 16:50:47 +02:00
Grot (@grafanabot) 553b90d1e7 [v9.4.x] CloudWatch Logs: Revert "Queries in an expression should run synchronously (#64443)" (#65067)
CloudWatch Logs: Revert "Queries in an expression should run synchronously (#64443)" (#65036)

Revert "CloudWatch Logs: Queries in an expression should run synchronously (#64443)"

This reverts commit 74436d31de.

(cherry picked from commit 972e611f76)

Co-authored-by: Shirley <4163034+fridgepoet@users.noreply.github.com>
2023-03-20 19:51:38 +01:00
Grot (@grafanabot) 6a1d736f03 [v9.4.x] KVStore: Include database field in migration (#65037)
KVStore: Include database field in migration (#62790)

(cherry picked from commit b0213a4877)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2023-03-20 12:44:03 +01:00
Grot (@grafanabot) a440178397 [v9.4.x] Vendor errors.Join from Go standard library to avoid version incompatibilities (#64986)
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>
2023-03-17 14:42:31 -05:00
Grot (@grafanabot) 85c794d932 [v9.4.x] Alerting: Create new state history "fanout" backend that dispatches to multiple other backends at once (#64983)
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>
2023-03-17 20:13:12 +02:00
Grot (@grafanabot) 7e5e3d78d0 [v9.4.x] SQLStore: Fix setting query retries for integration tests (#64972)
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>
2023-03-17 18:05:30 +02:00
Grot (@grafanabot) c5f4ef6c3e [v9.4.x] Alerting: Handful of small adjustments to log levels and parameters (#64954)
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>
2023-03-17 14:33:55 +02:00
Grot (@grafanabot) 69a7d5d6a6 [v9.4.x] SQLStore: Fix SQLite error propagation if query retries are disabled (#64948)
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>
2023-03-17 13:33:37 +02:00
Grot (@grafanabot) 3d1085c6ad [v9.4.x] Navigation: handle case when there is no alerting node at all (#64950)
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>
2023-03-17 13:27:40 +02:00
Grot (@grafanabot) b5c092f03e [v9.4.x] Navigation: Correctly create Alerts and incidents section when using legacy alerting (#64926)
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>
2023-03-16 20:17:48 +02:00
ismail simsek 412f1c1cc6 Influxdb: Re-introduce backend migration feature toggle (#64842)
* Put feature toggle back

* Influxdb: Re-introduce backend migration feature toggle (#64829)

* Revert "Influxdb: Remove backend migration feature toggle (#61308)"

This reverts commit 67c02f66

* Put feature toggle back

(cherry picked from commit 0823672fce)
2023-03-15 19:15:55 +01:00
Yuri Tseretyan 10a2245f93 Alerting: Update scheduler to receive rule updates only from database (#64780)
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
2023-03-14 19:44:34 -04:00
Grot (@grafanabot) b5a274f392 [v9.4.x] CloudWatch Logs: Queries in an expression should run synchronously (#64707)
CloudWatch Logs: Queries in an expression should run synchronously (#64443)

(cherry picked from commit 74436d31de)

Co-authored-by: Isabella Siu <Isabella.siu@grafana.com>
2023-03-14 08:49:40 -04:00
Grot (@grafanabot) fc8002d9ab [v9.4.x] Alerting: Log error but don't fail initialization if state history connection test fails (#64719)
Alerting: Log error but don't fail initialization if state history connection test fails (#64699)

Don't return init error if ping fails, add tests

(cherry picked from commit faef3a8258)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-13 23:59:21 +02:00
Grot (@grafanabot) 01917df71a [v9.4.x] InfluxDB: Fix type assertion panics for interface conversion: interface {} is nil (#64623)
InfluxDB: Fix type assertion panics for interface conversion: interface {} is nil (#64556)

* fix type assertions

* fix chk

* add nil and fix tests

* add test for null bool and strings in the JSON response to be parsed as nil in Go

* reduce complexity

* reduce complexity

* reduce complexity again

* switch case for valTypes

(cherry picked from commit 50ef183208)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2023-03-10 14:51:52 -05:00
Ashley Harrison aa09499343 Backport 62658 to v9.4.x (#64545)
* Navigation: Fix Home logo always going to `/login` (#62658)

* only redirect to /login when anonymous access is disabled

* only search for dashboards when not logged in if anon access is enabled

* fix go logic

* add unit tests

(cherry picked from commit 3336327306)

* remove file i accidentally left in :/

* import correct method
2023-03-10 04:59:06 -05:00
Grot (@grafanabot) de7d18d4e0 [v9.4.x] CI: Add PrereleaseBucket field in versions.go (#64524)
CI: Add `PrereleaseBucket` field in `versions.go` (#64519)

Add PrereleaseBucket in versions.go

(cherry picked from commit 29b3f3fbf4)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-03-09 17:49:59 +02:00
Brendan O'Handley b66e903439 Prometheus: Metric encyclopedia (#63423) (#64455)
* add metric encyclopedia feature toggle and component

* remove unused button

* move file, add test file

* add tests

* add pagination and tests

* test with 10,000,000 metrics

* remove unused import

* add filter by type

* search alphabetically and add switch to exclude metrics with no metadata

* add suggested functions and filter for functions

* allow user to select variables in encyclopedia

* fix style and tests

* add fuzzy search by either metric name or all metadata

* if missing metadata, remove metadata fuzzy search option, exclude metadata, and filter by type

* add encyclopedia feature tracking

* indicate that metrics are filtered by labels

* handle metric singular or plural

* add tooltips and fix language

* add filtering tests

* change 'search' to 'browse'

* remove functions filter and tests as not part of work flow

* add m.e. button and selected metric is a tag

* fix hanging search and update styles, padding, labels, and groupings

* small performance improvements

* fix tests

* add backend metrics query option

* add loading spinner for start load and backend search

* autofocus search input

* Update docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>

* run prettier

* run prettier

* fix text for feature toggle

* for license check since https://cla-assistant.io/check/grafana/grafana?pullRequest=<PR#> is not working

* fixing tests

* fix feature toggle docs

* fix feature toggle

* fix feature toggle

* add owner to feature toggle

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 9b6e531549)
2023-03-08 13:47:05 -05:00
Grot (@grafanabot) 2911eec518 [v9.4.x] Plugins: Fix bug with copying grafanaData (#64454)
Plugins: Fix bug with copying grafanaData (#64446)

(cherry picked from commit 39a4634ae9)

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2023-03-08 13:40:21 -05:00
Grot (@grafanabot) ea660e188e [v9.4.x] Snapshots: Fix deleting snapshot with non existent dashboard ID (#64371)
Snapshots: Fix deleting snapshot with non existent dashboard ID (#64345)

* Add test for deleting snapshot for non existent dashboard

* Add test for failure to fetch guardian other than ErrDashboardNotFound

* Fix dashboard snapshot delete

(cherry picked from commit 43095d84e4)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-03-08 03:33:23 -05:00
Grot (@grafanabot) 4474649869 [v9.4.x] Cloudwatch Logs: Make mixed type fields fallback to being strings (#64359)
Cloudwatch Logs: Make mixed type fields fallback to being strings (#63981)

* Cloudwatch Logs: make mixed type fields fallback to being strings

* addressing pr comments

(cherry picked from commit 70f600db10)

Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
2023-03-07 17:57:12 -05:00
Grot (@grafanabot) 772eb4b58a [v9.4.x] Alerting: Fix intermittency when seeding database in rule store tests (#64326)
Alerting: Fix intermittency when seeding database in rule store tests (#64322)

Force unique IDs when seeding database

(cherry picked from commit 4a1c18abf6)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-07 11:00:50 -05:00
Will Browne 2d0324ec70 [v9.4.x] Plugins: Fix Cache-Control header response for public/plugins/* assets API (#64255)
resolve conflicts
2023-03-06 19:20:54 +01:00
Grot (@grafanabot) 0d2a01f03f [v9.4.x] Alerting: Fix Classic Conditions $values variable (#64249)
Alerting: Fix Classic Conditions $values variable (#64243)

This commit fixes a bug in the $values variable in notification
templates when using Classic Conditions. Since Classic Conditions
are not multi-dimensional, the values of each series that exceeded
the condition should be available as a RefID and offset. For example,
B0, B1, etc. However, this bug meant that instead just a single
condition would be printed as B, not B0.

(cherry picked from commit ed71012ced)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-03-06 12:33:30 -05:00
Alexander Weaver 4c38e25ecd Alerting: Expose Prometheus metrics for persisting state history (#64246)
Alerting: Expose Prometheus metrics for persisting state history (#63157)

* Create historian metrics and dependency inject

* Record counter for total number of state transitions logged

* Track write failures

* Track current number of active write goroutines

* Record histogram of how long it takes to write history data

* Don't copy the registerer

* Adjust naming of write failures metric

* Introduce WritesTotal to complement WritesFailedTotal

* Measure TransitionsFailedTotal to complement TransitionsTotal

* Rename all to state_history

* Remove redundant Total suffix

* Increment totals all the time, not just on success

* Drop ActiveWriteGoroutines

* Drop PersistDuration in favor of WriteDuration

* Drop unused gauge

* Make writes and writesFailed per org

* Add metric indicating backend and a spot for future metadata

* Drop _batch_ from names and update help

* Add metric for bytes written

* Better pairing of total + failure metric updates

* Few tweaks to wording and naming

* Record info metric during composition

* Create fakeRequester and simple happy path test using it

* Blocking test for the full historian and test for happy path metrics

* Add tests for failure case metrics

* Smoke test for full annotation persistence

* Create test for metrics on annotation persistence, both happy and failing paths

* Address linter complaints

* More linter complaints

* Remove unnecessary whitespace

* Consistency improvements to help texts

* Update tests to match new descs

(cherry picked from commit 19d01dff91)
2023-03-06 12:10:11 -05:00
Sofia Papagiannaki 8c12f75b0b [v9.4.x] Chore: Remove CreateUserForTests() (#64125) (#64165)
Chore: Remove CreateUserForTests() (#64125)

* Chore: Remove CreateUserForTests

* Apply suggestion from code review

(cherry picked from commit e6e8351ee9)
2023-03-03 18:43:10 +02:00
Grot (@grafanabot) 5014df0521 [v9.4.x] fix: create temp user no longer sets ID to 0 for all users (#64160)
fix: create temp user no longer sets ID to 0 for all users (#64149)

* fix: create temp user no longer sets ID to 0 for all users

The xorm tag added to the tempuser ID field caused xorm to create all temp users with ID 0. Removing that tag allows xorm to set the ID based on the database result instead. I also added a test which was failing before this.

Fixes #63995

(cherry picked from commit dbb72f2c6e)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
2023-03-03 11:24:21 -05:00
Grot (@grafanabot) 6d0beaedaf [v9.4.x] build: fix corss build (#63261)
build: fix corss build (#61121)

* build: fix corss build

* fix lint

(cherry picked from commit 37baae3699)

Co-authored-by: Jimmie Han <hanjinming@outlook.com>
2023-03-03 10:04:12 -06:00
Ashley Harrison 4ee064da11 Chore: Pass signed user_hash to Intercom via Rudderstack (#63921) (#64145)
* move analytics identifiers to backend

* implement hash function

* grab secret from env

* expose and retrieve intercom secret from config

* concat email with appUrl to ensure uniqueness

* revert to just using email

* Revert "revert to just using email"

This reverts commit 8f10f9b1bc.

* add docstring

(cherry picked from commit d61bcdf4ca)
2023-03-03 10:06:13 -05:00
Grot (@grafanabot) aad839e5b9 [v9.4.x] Alerting: Fix client to external Alertmanager to correctly build URL for Mimir Alertmanager (#63684)
Alerting: Fix client to external Alertmanager to correctly build URL for Mimir Alertmanager (#63676)

(cherry picked from commit 98e1aeaebd)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2023-03-03 09:14:33 -05:00
Giordano Ricci bdf8b7531b [9.4.x] Correlations: Fix flaky integration tests (#64004) (#64139)
Correlations: Fix flaky integration tests (#64004)

* Correlations: Fix flaky integration tests

* set explore-squad as correlations tests code owners

(cherry picked from commit 4a7fbea7a4)
2023-03-03 14:06:59 +00:00
Grot (@grafanabot) b733b4fd5c [v9.4.x] Docker Build: Use tonistiigi/binfmt image for cross compilation (#64117)
Docker Build: Use `tonistiigi/binfmt` image for cross compilation (#64108)

* Change docker image used for cross-compilation

* Replace fmt.Println with log.Println

* Add specific tag for docker image

(cherry picked from commit b42fd92fad)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-03-03 13:19:00 +02:00
Grot (@grafanabot) 8861a8a977 [v9.4.x] SQLStore: Enable clientFoundRows for MySQL connections (#64083)
SQLStore: Enable clientFoundRows for MySQL connections (#64070)

Enable clientFoundRows for MySQL connections

(cherry picked from commit 8ea71d37c2)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-02 17:49:33 -06:00
Grot (@grafanabot) f8df798afd [v9.4.x] NPM: Stop using the folder path before the name path (#64071)
NPM: Stop using the folder path before the name path (#63851)

Stop using the folder path before the name path

(cherry picked from commit 177aa254c5)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-03-02 14:28:45 -06:00
Yuri Tseretyan 25c31c2c7c [v9.4.x] Alerting: Use background context for maintenance function (#64066)
Alerting: Use background context for maintenance function (#64065)

(cherry picked from commit e760f22402)

# Conflicts:
#	pkg/services/ngalert/notifier/alertmanager.go
2023-03-02 14:45:27 -05:00
Emil Tullstedt 4e687dfb6f [v9.4.x] Chore: Upgrade Go to 1.20.1 and Alpine to 3.17 (#63891) 2023-03-02 11:53:45 +01:00
Grot (@grafanabot) 0299b18b88 [v9.4.x] Reqcontext: Use err status code instead of always fallback (#63977)
Reqcontext: Use err status code instead of always fallback (#63974)

(cherry picked from commit 8bd4e2cb25)

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2023-03-01 18:48:33 -03:00
Grot (@grafanabot) 8c483cca31 [v9.4.x] Alerting: Fix migration pauses all alert rules on PostgreSQL (#63968)
Alerting: Fix migration pauses all alert rules on PostgreSQL (#63951)

This commit fixes a serious bug in Grafana 9.4.1 where on upgrade
a migration would pause all existing alert rules and change the
default value of the column to true.

(cherry picked from commit 030f6c948f)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-03-01 18:00:08 +00:00
Grot (@grafanabot) 4c22a2b8fb [v9.4.x] Alerting: Fix boolean default in migration from false to 0 (#63963)
Alerting: Fix boolean default in migration from false to 0 (#63952)

Fix boolean default in migration from false to 0

(cherry picked from commit a05bf41ff9)

Co-authored-by: Alex Moreno <alexander.moreno@grafana.com>
2023-03-01 17:34:53 +00:00
Timur Olzhabayev 183f9317c5 fix(dashboard version service): add DashboardUID to query and respons… (#63821)
fix(dashboard version service): add DashboardUID to query and responses (#60800)

* fix(dashboard version service): add DashboardUID to query and responses

The DashboardUID was not populated in the response from Get and ListDashboardVersions. This adds the DashboardUID to the Get query (it was already in List) and populated the DashboardUID in the returned DashboardVersionDTOs.

(cherry picked from commit 42be0e106f)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
2023-02-27 23:01:48 +01:00