Compare commits

...

127 Commits

Author SHA1 Message Date
Dimitris Sotirakis
3eed090568 Merge branch 'v9.0.x' into release-v9.0.0 2022-06-15 10:57:21 +03:00
Grot (@grafanabot)
0ab0fe9d16 RolePicker: Fix submenu position on horizontal space overflow (#50769) (#50843)
(cherry picked from commit 2fbe99c1be)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2022-06-15 09:20:03 +02:00
Grot (@grafanabot)
8ef7fd3859 backend: add PlaylistUIDs to Playlist; remove playlist IDs from API (#49609) (#50828)
* backend/api: refactor PlaylistId to PlaylistUid
* Add org_id to Get and Update playlist functions
Fix migration - no longer pad the uid; fix mysql syntax

The relevant tests are passing using postgres, mysql and the default sqllite backends, but there are a number of other failing tests when using postgres and myself so I'm not entirely confident with those results.

* fix bad query in GetPlaylistItem and add a test that would have caught the mistake in the first place. Reverted the playlist_uid column addition in playlist_item; it became unnecessary after this PR.

Added default value to the new UID column based on PR feedback.

* break this PRs migration into its own function

* Playlists: Update UI to use the updated API

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
(cherry picked from commit a33a023629)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
2022-06-14 15:48:44 -04:00
Grot (@grafanabot)
d78c04c8e6 Remove beta note (#50824) (#50825)
* Remove beta note

Remove manually added Beta note.

* Remove beta

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 39b467b46d)

Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
2022-06-14 19:41:56 +01:00
Grot (@grafanabot)
1a915c2284 MSSQL: Fix ParseFloat error (#50815) (#50818)
(cherry picked from commit 65a5ac462a)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2022-06-14 19:55:57 +02:00
Dimitris Sotirakis
700e7e36e3 Modify publish.yml (#50813) 2022-06-14 18:44:03 +02:00
Grot (@grafanabot)
57300f6b6d Metrics: Expose functions to initialize counters at zero (#50122) (#50750)
(cherry picked from commit 97baa6911d)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2022-06-14 18:07:35 +02:00
Grot (@grafanabot)
ef7148fc4a Formatting: Fixes valueFormats for a value of 0 (#50719) (#50805)
(cherry picked from commit f9d31d0612)

Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
2022-06-14 17:19:03 +02:00
Dimitris Sotirakis
e35b901ed6 ReleaseNotes: Updated changelog and release notes for 9.0.0 (#50794) (#50799)
* ReleaseNotes: Updated changelog and release notes for 9.0.0

* Update CHANGELOG.md

* Update release-notes-9-0-0.md

Co-authored-by: Dimitris Sotirakis <sotirakis.dim@gmail.com>
(cherry picked from commit 0f91864227)

Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
2022-06-14 16:56:54 +02:00
Grot (@grafanabot)
d9a53c5b63 Update header (#50787) (#50795)
(cherry picked from commit 0073f1b0b5)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-06-14 16:38:09 +02:00
Grot (@grafanabot)
5bca6cccd2 "Release: Updated versions in package to 9.0.0" (#50793) 2022-06-14 14:29:35 +00:00
Grot (@grafanabot)
4569ac3056 Docs: Add envelope encryption as breaking change (#50716) (#50749)
* Docs: Add envelope encryption as breaking change

* Minor improvements

* Apply suggestions from code review

Co-authored-by: Tania <yalyna.ts@gmail.com>
(cherry picked from commit fcf6b29987)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2022-06-14 15:44:46 +02:00
Grot (@grafanabot)
b4f9f19ed1 GrafanaData: Fix week start for non-English browsers (#50582) (#50784)
* grafana-data: Fix start week for non-English browsers

* apply review suggestion

(cherry picked from commit 99c8ce5ab9)

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2022-06-14 15:26:54 +02:00
Grot (@grafanabot)
88188d63c8 rm debug log when publishing live message (#50774) (#50779)
(cherry picked from commit c581f6d945)

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2022-06-14 14:27:11 +02:00
Grot (@grafanabot)
1fb920e02d Loki: Handle invalid query type values (#50755) (#50763)
* loki: more robust query-type handling

* better comment

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
(cherry picked from commit a97f022612)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2022-06-14 12:14:26 +02:00
Sven Grossmann
5215514bf3 added opensearch annotations to not use default ui (#50655) (#50751)
(cherry picked from commit d8d3a9c561)
2022-06-14 10:23:08 +02:00
Grot (@grafanabot)
6ac398763a Heatmap: Remove alpha flag from new heatmap panel (#50733) (#50742)
(cherry picked from commit b75cc7a86c)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-06-14 09:56:45 +02:00
Grot (@grafanabot)
e235af676b Instrumentation: Define handlers for requests that are not handled with named handlers (#50613) (#50744)
Signed-off-by: bergquist <carl.bergquist@gmail.com>

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
(cherry picked from commit b8b6d0e1a1)

Co-authored-by: Carl Bergquist <carl.bergquist@gmail.com>
2022-06-14 08:10:23 +02:00
Grot (@grafanabot)
1479a46997 Timeseries: Improve cursor Y sync behavior (#50740) (#50741)
(cherry picked from commit 4e4686001b)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-06-13 22:45:15 -07:00
Grot (@grafanabot)
c62ccbd988 Alerting: Fix rendering issues in OpenAPI docs (#50630) (#50725)
* Clean up status codes

* Missing consumes tag

* Regenerate

* Fix incorrect documented responses and missing UI elements

* Fix response docs

* Fix wrong response copy paste

* Regenerate

* Temporarily revert

(cherry picked from commit 17e76b06ff)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-06-13 15:05:59 -05:00
Grot (@grafanabot)
9f0908f6fd SearchV2: support keyboard navigation (#49650) (#50715)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
(cherry picked from commit 402b5ce4c6)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-06-13 10:02:37 -07:00
Jack Baldry
1f9afb4f43 Use more relevant links to legacy alerting documentation (#50607) (#50695)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 4cc3bc37a0)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2022-06-13 18:29:11 +02:00
Grot (@grafanabot)
da9dca03ea Alerting: add right provenance when creating mute timings (#50707) (#50714)
(cherry picked from commit 1ed7280363)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-06-13 18:18:10 +02:00
Grot (@grafanabot)
d5eb7cc42a Alerting: remove unused function in alert rule store (#50696) (#50705)
(cherry picked from commit ed6a887737)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-06-13 18:06:47 +02:00
Grot (@grafanabot)
de0b107188 Never set gridPos to null (#50400) (#50709)
(cherry picked from commit 759e3ec4fa)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-13 17:55:47 +02:00
Grot (@grafanabot)
cffb340c14 logs: better hasLogsVolumeSupport check (#50676) (#50704)
(cherry picked from commit d872aa993d)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2022-06-13 17:34:40 +02:00
Grot (@grafanabot)
5c3bac348c OAuth: Redirect to login if no oauth module is found or if module is not configured (#50661) (#50702)
* OAuth: Redirect to login if no oauth module is found or if module is not
configured

* OAuth: Update test to check for location header

(cherry picked from commit 95a4c4a4d6)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-06-13 17:14:49 +02:00
Grot (@grafanabot)
efdde61c52 Docs: Update documentation now create functionality has moved (#50663) (#50693)
* Update documentation now + button functionality has moved

* Updates following comments

(cherry picked from commit 27e3e79661)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-13 16:30:42 +02:00
Ivana Huckova
95b545908f Loki, Prometheus: Show Query patterns in all editor modes (#50263) (#50653) 2022-06-13 15:47:54 +02:00
Grot (@grafanabot)
da76c87bfe Loki: Fix showing of duplicated label values in dropdown in query builder (#50680) (#50688)
* Prometheus,Loki: Fix showing of duplicated values in dropdown

* Use different more readable solution

* Update

(cherry picked from commit 77bdbe1dea)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-06-13 15:47:36 +02:00
Carl Bergquist
001f3709ae Instrumentation: Add feature toggle for logging requests instrumented as unknown (#50566) (#50670)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
(cherry picked from commit 2d6e69226b)
2022-06-13 15:19:07 +02:00
Grot (@grafanabot)
4eeb6750f0 add missing return (#50667) (#50675)
(cherry picked from commit 8da9b4f2b5)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-06-13 14:27:45 +02:00
Grot (@grafanabot)
4d1ee06b1b Prometheus: Don't show undefined for step in collapsed options in query editor when value is "auto" (#50511) (#50658)
(cherry picked from commit bd04b776b5)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2022-06-13 14:26:04 +02:00
Grot (@grafanabot)
b5c56f6371 "Release: Updated versions in package to 9.0.0" (#369) 2022-06-13 13:06:48 +01:00
Dan Cech
bc2f941004 clean up duplicated user creation code (#50178) (#50327)
* clean up duplicated user creation code

* remove unused duplicate getOrCreateOrg function

* fix up tests

(cherry picked from commit 9350ab781c)
2022-06-13 07:12:00 -04:00
Grot (@grafanabot)
5390fa57e9 Expression: Execute hidden expressions (#50636) (#50659)
(cherry picked from commit ede7b29db5)

Co-authored-by: Sriram <yesoreyeram@gmail.com>
2022-06-13 11:39:56 +02:00
Grot (@grafanabot)
b4dba8d14e logs: histogram: handle backend-mode queries (#50535) (#50650)
(cherry picked from commit a0e5a4eba2)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2022-06-13 08:50:50 +02:00
Grot (@grafanabot)
98c540f51e Loki: Fix issues with using query patterns (#50414) (#50646)
* WIP

* Loki: Fix running of query patterns

* Remove console.log

* Add test

* Update empty line filter test

(cherry picked from commit 88279dda1c)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-06-11 21:53:46 +02:00
Grot (@grafanabot)
342af69edb Explore: Fix log context scroll to bottom (#50600) (#50645)
* Explore: Fix log context scroll to bottom

* Update

(cherry picked from commit 1231e0dd69)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-06-11 21:50:53 +02:00
Grot (@grafanabot)
5ca6b7cd2d Panels: Fixes issue with showing 'Cannot visualize data' when there issue really was no data (#50485) (#50615)
(cherry picked from commit 56a9994a13)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-06-10 14:36:00 -07:00
Grot (@grafanabot)
d301b6611f SearchV2: move search parameters to a nested object (#50561) (#50635)
(cherry picked from commit b6f97e8101)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-06-10 14:31:47 -07:00
Grot (@grafanabot)
af33b9ec89 RBAC: Inheritance permission migration should handle empty managed roles (#50611) (#50622)
* Make inheritance permission migration more robust

* Better fix

* Add more tests to the migration

* Add removed test case

* Add test case for empty role in empty org

* Handling the role.ID 0 case with a log

Co-authored-by: Jguer <joao.guerreiro@grafana.com>

Co-authored-by: Jguer <joao.guerreiro@grafana.com>
(cherry picked from commit 307a0d4538)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-06-10 19:18:02 +03:00
Grot (@grafanabot)
d32ca6a159 RBAC: Inheritance permission migration should handle empty managed roles (#50611) (#50621)
* Make inheritance permission migration more robust

* Better fix

* Add more tests to the migration

* Add removed test case

* Add test case for empty role in empty org

* Handling the role.ID 0 case with a log

Co-authored-by: Jguer <joao.guerreiro@grafana.com>

Co-authored-by: Jguer <joao.guerreiro@grafana.com>
(cherry picked from commit 307a0d4538)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-06-10 17:34:17 +02:00
Grot (@grafanabot)
1a928a70ba Dashboard: Clean up state after deletion (#50316) (#50625)
* Dashboard: Clean up after deletion

* cleanup

* rename cleanUp function

(cherry picked from commit a832b92988)

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2022-06-10 17:19:16 +02:00
Grot (@grafanabot)
fa4fa0bf4f doc fix (#50624) (#50626)
(cherry picked from commit 336c9fd513)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-06-10 17:17:40 +02:00
Grot (@grafanabot)
0604765bea doc fix (#50624) (#50627)
(cherry picked from commit 336c9fd513)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-06-10 17:17:34 +02:00
Grot (@grafanabot)
5d9178f6ab Dashboards: Fix folder picker not showing correct results when typing too fast (#50303) (#50623)
* Use callback form for loadOptions in folder picker

* clean up

* fix other tests

* clarify comment

(cherry picked from commit 32d4f6ac60)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2022-06-10 17:05:55 +02:00
Grot (@grafanabot)
fd33095837 Alerting: improve provisioning docs (#50347) (#50618)
* Alerting: improve provisioning docs

* add new provisioning page

* add api docs

* fix formatting and add better descriptions

* fix typo

(cherry picked from commit 862f51216b)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-06-10 16:41:55 +02:00
Armand Grillet
64ca25247c Backport docs changes for Grafana Alerting (#50620) 2022-06-10 14:41:09 +00:00
Grot (@grafanabot)
c2c7f0292e Alerting: improve provisioning docs (#50347) (#50619)
* Alerting: improve provisioning docs

* add new provisioning page

* add api docs

* fix formatting and add better descriptions

* fix typo

(cherry picked from commit 862f51216b)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-06-10 16:37:43 +02:00
Grot (@grafanabot)
870986caad Docs: Backport 49739 to v9.0.x (#50123) (#50614)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 49b20ad76c)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2022-06-10 16:23:01 +02:00
Armand Grillet
d8f5a3b799 Backport docs changes for Grafana Alerting (#50610) 2022-06-10 16:02:45 +02:00
Grot (@grafanabot)
a4958a437f No longer generate theme json as it's not compatible with the right tooling (#50605) (#50609)
(cherry picked from commit 9d73264895)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2022-06-10 15:00:42 +01:00
Grot (@grafanabot)
d00ba7d49b [v9.0.x] Alerting: use "find" to wait for expression editor to load (#50603)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2022-06-10 15:21:32 +02:00
Grot (@grafanabot)
23251f15c6 [release-v9.0.0] Alerting: use "find" to wait for expression editor to load (#50604)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2022-06-10 15:13:09 +02:00
Grot (@grafanabot)
83956baf2b Prometheus: Templating queries should pass on custom headers (#50344) (#50408)
* pass on all headers except for accept headers

* touch up and testing

* add custom header values to resource queries

* remove my picture. oops

* handle gzip responses as well

* fix linting issues

* add my space

* no lint

* removed cookies from being proxied

* clean up and handle errors from io.reader.Close() calls

(cherry picked from commit 49dc9da9c1)

Co-authored-by: Stephanie Closson <srclosson@gmail.com>
2022-06-10 08:51:26 -03:00
Grot (@grafanabot)
1e3d8610e1 loki: better error message when escaping is involved (#50352) (#50595)
(cherry picked from commit 130bd26edd)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2022-06-10 13:16:08 +02:00
Grot (@grafanabot)
b32a61933a [v9.0.x] Grafana UI: Put back production build in rollup config (#50580)
* Grafana UI: Put back production build in rollup config (#50575)

(cherry picked from commit 2d1ab27636)

* chore: refresh yarn.lock

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2022-06-10 12:17:29 +02:00
Grot (@grafanabot)
0b48f0f97b [release-v9.0.0] Grafana UI: Put back production build in rollup config (#50581)
* Grafana UI: Put back production build in rollup config (#50575)

(cherry picked from commit 2d1ab27636)

* chore: refresh yarn.lock

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2022-06-10 12:15:58 +02:00
Christopher Moyer
49b20ad76c Docs: Backport 49739 to v9.0.x (#50123)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2022-06-10 12:15:42 +02:00
Grot (@grafanabot)
ea6d827038 Search: Fixes margins and paddings and left position (#50570) (#50578)
(cherry picked from commit c1d405a200)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-06-10 11:47:47 +02:00
Grot (@grafanabot)
5a5ecbe00b [v9.0.x] Grafana UI: Fix nonexistent indexof module for plugin tests (#50572)
* Grafana UI: Fix nonexistent indexof module for plugin tests (#50529)

* fix(grafana-ui): prevent module resolution failure where component-indexof appears as indexof

* chore(grafana-ui): update comment explaining need for alias plugin

(cherry picked from commit 6a4906ef7e)

* chore: refresh yarn.lock

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2022-06-10 11:32:58 +02:00
Grot (@grafanabot)
11a920ef55 [release-v9.0.0] Grafana UI: Fix nonexistent indexof module for plugin tests (#50573)
* Grafana UI: Fix nonexistent indexof module for plugin tests (#50529)

* fix(grafana-ui): prevent module resolution failure where component-indexof appears as indexof

* chore(grafana-ui): update comment explaining need for alias plugin

(cherry picked from commit 6a4906ef7e)

* chore: refresh yarn.lock

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2022-06-10 11:32:53 +02:00
Grot (@grafanabot)
e760ffab0a Alerting: Invalid setting of enabled for unified alerting should return error (#49876) (#50569)
(cherry picked from commit bda47df4ad)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-10 09:15:46 +01:00
Grot (@grafanabot)
2f9bb4a347 Alerting: Fix force_migration when alerting is disabled (#50431) (#50481) (#50565)
This pull request fixes a bug where force_migration must be set to true when both unified and legacy alerting is disabled.

(cherry picked from commit c312188cb2)
2022-06-10 09:04:27 +01:00
Grot (@grafanabot)
c312188cb2 Alerting: Fix force_migration when alerting is disabled (#50431) (#50481)
This pull request fixes a bug where force_migration must be set to true when both unified and legacy alerting is disabled.
2022-06-10 08:30:06 +01:00
Zoltán Bedi
ca2bd11f80 [v9.0.x] TimeSeries: Add an option to set legend width (#50550)
* TimeSeries: Add an option to set legend width (#49126)

* Add an option to set legend width

* Add width to the cue file

* Use legendStyle

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
(cherry picked from commit a6693ba62f)

* Add migration

Co-authored-by: Ivan Babrou <github@ivan.computer>
2022-06-09 22:16:44 +02:00
Grot (@grafanabot)
447ce0aa30 AzureMonitor: changes to azureMonitorExperimentalUI after feedback (#50455) (#50546)
* AzureMonitor: tweak experimental-ui after UX discussions.
- move metrics up to resource row
- allow resources field to take an inlineField prop and a labelWidth prop. Eventually once the feature toggle is removed
the inlineField prop will be the only code branch in Field.tsx.

* AzureMonitor: remove devmode req for azureMonitorExperimentalUI flag

* refactor: consolidate logic branch for inline Field

(cherry picked from commit 5df694b924)

Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2022-06-09 18:41:21 +00:00
Grot (@grafanabot)
4f011515c6 AzureMonitor: Remove unused code (#50399) (#50531)
(cherry picked from commit 9703c9211e)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2022-06-09 17:37:58 +02:00
Gábor Farkas
cfe8116791 logs: track the usage of certain features (#50325) (#50526)
* logs: track the usage of certain features

* Add report interaction for logs interactions

* mock reportInteraction in test

* mock reportInteraction

Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
(cherry picked from commit c412a3b052)
2022-06-09 17:04:51 +02:00
Grot (@grafanabot)
dd7ea16eb1 AzureMonitor: Clean namespace when changing the resource (#50311) (#50342)
(cherry picked from commit ae449cc823)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2022-06-09 16:58:04 +02:00
Grot (@grafanabot)
7a4e3a3588 [v9.0.x] Docs: Manual backport of alert list panel docs rewrite (#50516)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2022-06-09 16:27:59 +02:00
Grot (@grafanabot)
e92f9931ad ReleaseNotes: Updated changelog and release notes for 9.0.0-beta2 (#50398) (#50521)
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
(cherry picked from commit a6943cb399)
2022-06-09 16:00:16 +02:00
Grot (@grafanabot)
06ed6d25f5 ReleaseNotes: Updated changelog and release notes for 9.0.0-beta2 (#50398) (#50520)
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
(cherry picked from commit a6943cb399)
2022-06-09 15:43:32 +02:00
Grot (@grafanabot)
1ca5f3c5b7 Updating migration docs to include most relevant breaking changes (#50356) (#50514)
(cherry picked from commit cd01eb541a)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2022-06-09 15:09:54 +02:00
Grot (@grafanabot)
b243ff8dc0 Updating migration docs to include most relevant breaking changes (#50356) (#50515)
(cherry picked from commit cd01eb541a)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2022-06-09 14:45:27 +02:00
Gilles De Mey
7a033078ee Docs: Manual backport of alert list panel docs rewrite (#50512) 2022-06-09 14:40:53 +02:00
Grot (@grafanabot)
33c0a53369 DataSources: Fixes issue with expressions not being queried (#50446) (#50509)
(cherry picked from commit ce1ee4de04)

Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
2022-06-09 15:08:30 +03:00
Grot (@grafanabot)
18cf84112e Docs: Images in Notifications (#50425) (#50503)
(cherry picked from commit 9d537efb48)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-09 14:10:23 +03:00
Grot (@grafanabot)
d53a750c18 Docs: extend RBAC breaking changes (#50495) (#50501)
* extend RBAC breaking changes

* Update docs/sources/whatsnew/whats-new-in-v9-0.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
(cherry picked from commit 7e59fd3ecf)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-06-09 12:35:00 +02:00
Grot (@grafanabot)
d96e12efc4 Alerting: Schedule Alert rules metric tracking (#50415) (#50497)
* Alerting: Schedule Alert rules metric tracking

Change the record of metrics from one place to two as an attempt to have a semi-accurate record.

(cherry picked from commit c59938b235)

Co-authored-by: gotjosh <josue.abreu@gmail.com>
2022-06-09 12:27:22 +02:00
Grot (@grafanabot)
e9d3d6057e FeatureToggles: Support changing feature toggles with URL parameters (#50275) (#50496) 2022-06-09 12:06:45 +02:00
Grot (@grafanabot)
d71e7ef4a3 docs: clarify how PR titles should be formatted (#49682) (#49979)
(cherry picked from commit e452785291)

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2022-06-09 13:04:18 +03:00
Grot (@grafanabot)
df7c4ca137 Alerting: Tidy up input fields for name, folder and group (#50432) (#50486)
* aligned fields moved labels

* reduce width for labels inputs

(cherry picked from commit 06bbf870da)

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
2022-06-09 11:57:49 +02:00
Grot (@grafanabot)
79fd17c22a Fix metric names for screenshots (#50426) (#50494)
(cherry picked from commit c636685ca2)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-09 11:50:13 +02:00
Marcus Efraimsson
1a05f7c1dc Chore: Upgrade grafana-plugin-sdk-go to v0.137.0 (#50443) (#50489)
Co-authored-by: Todd Treece <todd.treece@grafana.com>
(cherry picked from commit cddab15769)
2022-06-09 11:47:30 +02:00
gotjosh
7e0a3c34d2 Alerting: Logs should not be capitalized and the errors key should be "err" (#50333) (#50487)
* Alerting: decapitalize log lines and use "err" as the key for errors

Found using (logger|log).(Warn|Debug|Info|Error)\([A-Z] and (logger|log).(Warn|Debug|Info|Error)\(.+"error"

(cherry picked from commit 0cde283505)
2022-06-09 11:44:54 +02:00
Grot (@grafanabot)
612e0c1545 Chore: Remove react-testing-lib from bundles (#50442) (#50490)
* refactor(selectoptiontest): move helper function out of grafana/ui so testing-lib isn't in bundle

* test(selectoptionintest): update import location of helper function

* test(amroutes): put back missing selectOptionInTest helper

* test(selectoptionintest): clean up remaining file imports / exports

* test(queryeditor): fix failing import

* refactor(grafana-ui): reuse selectOptionInTest in SelectBase test

(cherry picked from commit ccd75d72f8)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2022-06-09 11:34:44 +02:00
Grot (@grafanabot)
9722ade9c9 [v9.0.x] Alerting: Unify alert status labels on the alert list panel (#50488)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2022-06-09 11:30:54 +02:00
Armand Grillet
94a3704c09 [v9.0.x] Alerting: Add RBAC actions and role for provisioning API routes (#50483)
* Alerting: Add RBAC actions and role for provisioning API routes (#50459)

* add alert provisioning actions and role

* linter

(cherry picked from commit 54fa04263b)

* Fix cherry-pick conflict in rbac-fixed-basic-role-definitions.md

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-06-09 11:07:38 +02:00
Agnès Toulet
b033a4e04f Docs: update license restrictions (#49334) (#50387)
* Docs: update license restrictions

* apply review feedback

* remove initial description of two license types

Clean up tiered licensing copy and keep it all in one deprecated section, refer to old docs if user wants to learn more.

* fix linting issues

* update title

* fix config url

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
(cherry picked from commit 3df7ee81f3)
2022-06-09 11:01:13 +02:00
Grot (@grafanabot)
18fc138157 Alerting: Fix provisioning validation status codes and panics (#50464) (#50484)
* Updates to all except alert rules

* Return 400 when rules fail to validate, add testinfra

* More sane package aliases

* More package alias renames

* One more bug in contact point validation

* remove unused function

Co-authored-by: Jean-Philippe Quémémer <jeanphilippe.quemener@grafana.com>
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
(cherry picked from commit 7dd78fee2c)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-06-09 10:58:47 +02:00
Grot (@grafanabot)
8c0decbabd scroll nav elements into view when using the keyboard (#50434) (#50479)
(cherry picked from commit 3fa7f72d6c)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-09 09:36:28 +01:00
Andrej Ocenas
1924cfc3c0 Docs: Fix Prometheus query editor Legend docs (#50312) (#50480)
* Docs: Fix Prometheus query editor Legend docs (#50312)

* Update docs for label

* Fix wording

* Fix typo

(cherry picked from commit fee0b9d1f2)

* Fix
2022-06-09 10:30:42 +02:00
Grot (@grafanabot)
d33b53b329 SearchV2: optionally exclude panels from search results (#49971) (#50026)
(cherry picked from commit 4dfab0b7d5)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Artur Wierzbicki <artur.wierzbicki@grafana.com>
2022-06-09 10:05:12 +02:00
Grot (@grafanabot)
5dcc334d9c Alerting: bump rule version when updating rule group interval (#50295) (#50476)
* Alerting: move group update to alert rule service

* rename validateAlertRuleInterval to validateRuleGroupInterval

* init baseinterval correctly

* add seconds suffix

* extract validation function for reusability

* add context to err message

(cherry picked from commit cf684ed38f)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-06-09 09:40:00 +02:00
Grot (@grafanabot)
5eb5779a82 Formatting: Make SI number formats more robust (#50117) (#50292)
Closes #49372

(cherry picked from commit a9a276a9da)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2022-06-09 09:33:17 +02:00
Grot (@grafanabot)
4bb2ba53e8 Alerting: Improve Unified Alerting Rollback Warning (#50470) (#50472)
After migrating to unified alerting, users must explicitly allow rolling
back to legacy alerting by setting force_migration = true in config.
This updates the panic message to clarify why that's required and what
the consequences of rolling back will be.

Fixes #50469

(cherry picked from commit 30f035ca34)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-06-09 07:48:59 +02:00
Joe Blubaugh
3fe8fec086 Alerting: Fix image embed in email template. (#50370) (#50468)
The ng_alert_notification email template did not include templating for
linked or embedded images. This change updates that.

Additionally, this change supports embedding an image for each alert in
an email batch.

Fixes #50315

(cherry picked from commit ecf080825e)
2022-06-09 11:20:01 +08:00
Grot (@grafanabot)
406f286e51 RBAC: Fix migrations running into the wrong order (#50452) (#50454)
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>

Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
(cherry picked from commit 2813e49842)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-06-08 19:53:30 +02:00
Grot (@grafanabot)
9ccee68c71 Bumping protobufjs version (#50435) (#50440)
(cherry picked from commit b9cce18f72)

Co-authored-by: lean.dev <34773040+leandro-deveikis@users.noreply.github.com>
2022-06-08 12:19:12 -03:00
Grot (@grafanabot)
a13ce8dbd8 Docs: Fix release notes formatting issues in 9.0.0-beta.3 (#50410) (#50428)
(cherry picked from commit aace6a95f0)

Co-authored-by: Sriram <yesoreyeram@gmail.com>
2022-06-08 14:54:46 +01:00
Grot (@grafanabot)
ffc7d688c2 Angular: Fixes minor mistake in previous bsTypeahead PR (#50411) (#50417)
(cherry picked from commit 3866debae9)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-06-08 14:33:20 +02:00
Grot (@grafanabot)
54bd556843 Security: Fixes javascript security warnings in old vendored libs (#50382) (#50413)
(cherry picked from commit 74608d6480)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-06-08 14:13:38 +02:00
Artur Wierzbicki
1eca4c113e Previews: update docs for the new search layout (#50247) 2022-06-08 13:48:42 +02:00
Grot (@grafanabot)
addb1dd979 Reporting: Update documentation and screenshots with v9 changes (#50072) (#50401)
* Reporting: Update docs

* Update screenshots

* Update docs/sources/enterprise/reporting.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* reporting docs copy edits

reformat reporting docs, slightly correct multiple dashboard rendering doc

* Format

* Format[2]

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
(cherry picked from commit 35ba4a6ac1)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2022-06-08 14:18:19 +03:00
Grot (@grafanabot)
11af837916 Dashboard: Fixes random scrolling on time range change (#50379) (#50384)
* Dashboard: Fixes random scrolling on time range change

* fix ts issue

* removed logging

(cherry picked from commit fd408652dc)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-06-08 13:16:52 +02:00
Grot (@grafanabot)
c9352f1778 Angular: Adds back two angular directives that are still used by remaining angular bits and plugins (#50380) (#50385)
(cherry picked from commit 288eede638)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-06-08 13:16:42 +02:00
Grot (@grafanabot)
f843c6c9d7 Remove test_steps (#50396) (#50403)
(cherry picked from commit 63ed5367c3)

Co-authored-by: Dimitris Sotirakis <sotirakis.dim@gmail.com>
2022-06-08 13:15:28 +02:00
Grot (@grafanabot)
faf3add82d Improve docs for values in custom annotations and labels (#50346) (#50389)
(cherry picked from commit 6e3d58d779)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-08 11:41:39 +01:00
Grot (@grafanabot)
0690e19029 Playlists: Save button now correctly creates a new playlist (#50381) (#50390)
* Add type="submit" to PlaylistForm submit button

* fix linting errors

(cherry picked from commit a1cf709ad2)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-08 11:53:21 +02:00
Grot (@grafanabot)
29b2c71517 Alerting: replace a duplicated configuration key (#50350) (#50368)
This PR renames the configuration key enabled to capture. This is needed as we already have a configuration key with the name enabled.

Fixes #50328

(cherry picked from commit fd664e4beb)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-06-08 05:22:41 +02:00
Grot (@grafanabot)
ef8ad0f74a Bump provisioning to admin-only in lieu of dedicated RBAC permissions (#50366) (#50367)
(cherry picked from commit 28a47b56d2)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-06-08 00:43:33 +02:00
Grot (@grafanabot)
2acf5ed0c0 Alerting: Fix database unavailable removes rules from scheduler (#49874) (#50345)
(cherry picked from commit c83f84348c)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-07 16:41:07 +01:00
Grot (@grafanabot)
521264b647 RBAC: docs, update alerting.rules write permission (#50304) (#50329)
(cherry picked from commit f54adf6c22)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-06-07 16:59:15 +02:00
Ezequiel Victorero
deea0fcfc0 ReleaseNotes: Updated changelog and release notes for 9.0.0-beta3 (#50317) (#50321)
(cherry picked from commit 32a8af59d6)

Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
2022-06-07 10:42:30 -03:00
Grot (@grafanabot)
a3fb261d6f "Release: Updated versions in package to 9.0.0-beta.3" (#50314) 2022-06-07 10:23:05 -03:00
Artur Wierzbicki
239956d02e Search: fix 'Clear filters' button (#50283)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 49112c8356)
2022-06-07 14:21:48 +02:00
Grot (@grafanabot)
b01a07921f Loki: Add more query patterns (#50248) (#50301)
* Loki: Add query patterns

* Update

* Update queries

* Update public/app/plugins/datasource/loki/querybuilder/LokiQueryModeller.ts

Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>

* Update public/app/plugins/datasource/loki/querybuilder/LokiQueryModeller.ts

* Update descriptions

* Update

Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
(cherry picked from commit be712a5f17)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-06-07 13:33:40 +02:00
Grot (@grafanabot)
66cc24b7cb docs: describe cookie handling in backend data source plugins (#49986) (#50299)
* docs: describe cookie handling in backend data source plugins

* adjusted text

(cherry picked from commit 19df6d52b7)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2022-06-07 13:18:44 +02:00
Grot (@grafanabot)
56e353cfed Prometheus, Loki: Update run queries button (#50005) (#50281)
* Prometheus, Loki: Updare run queries button

* Update docs

* Update docs

(cherry picked from commit 9f6afb3475)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-06-07 13:08:09 +02:00
Grot (@grafanabot)
e63dde02c5 AddDataSourceConfig: Remove deprecated checkHealth prop (#50296) (#50298)
(cherry picked from commit e9fac9ee03)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2022-06-07 12:44:03 +02:00
Grot (@grafanabot)
2a1a75c6fd Data: Remove deprecated types and functions from valueMappings (#50035) (#50293)
(cherry picked from commit c96fa4c77d)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2022-06-07 12:05:28 +02:00
Grot (@grafanabot)
3057181fbe Fix Whats New docs for images in notifications (#50250) (#50289)
(cherry picked from commit 2e1827127d)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-07 10:58:47 +01:00
Grot (@grafanabot)
1bac7a8306 [v9.0.x] Tracing: Deprecate opentracing (#50082)
* Tracing: Deprecate opentracing (#50058)

* Deprecate opentracing

* Fix comment

* Adjust comment

* Fix docs for opentelemetry

* Add deprecated to sample.ini

(cherry picked from commit 24c6a73095)

* Update docs/sources/administration/configuration.md

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

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2022-06-07 11:53:37 +02:00
Grot (@grafanabot)
5275a21c5c Add back a lower z-index (#50285) (#50288)
(cherry picked from commit 13a71e7219)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-07 11:49:23 +02:00
Grot (@grafanabot)
fe220eb570 CloudWatch: Dynamic label documentation (#49463) (#50286)
* dynamic label documentation

* Update docs/sources/datasources/aws-cloudwatch/_index.md

Co-authored-by: JitaC <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/aws-cloudwatch/_index.md

Co-authored-by: JitaC <70489351+achatterjee-grafana@users.noreply.github.com>

* formatting

Co-authored-by: JitaC <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit 5932a22996)

Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
2022-06-07 11:40:38 +02:00
650 changed files with 14283 additions and 11380 deletions

View File

@@ -3,7 +3,7 @@ name: publish_docs
on:
push:
branches:
- main
- v9.0.x
paths:
- 'docs/sources/**'
- 'packages/grafana-*/**'
@@ -41,7 +41,7 @@ jobs:
host: github.com
github_pat: '${{ secrets.GH_BOT_ACCESS_TOKEN }}'
source_folder: docs/sources
target_folder: content/docs/grafana/next
target_folder: content/docs/grafana/latest
allow_no_changes: 'true'
- shell: bash
run: |

View File

@@ -1,3 +1,320 @@
<!-- 9.0.0 START -->
# 9.0.0 (2022-06-10)
### Features and enhancements
- **API:** Add GET /api/annotations/:annotationId endpoint. [#47739](https://github.com/grafana/grafana/pull/47739), [@scottbock](https://github.com/scottbock)
- **API:** Add endpoint for updating a data source by its UID. [#49396](https://github.com/grafana/grafana/pull/49396), [@papagian](https://github.com/papagian)
- **AccessControl:** Add enterprise only setting for rbac permission cache. [#49006](https://github.com/grafana/grafana/pull/49006), [@kalleep](https://github.com/kalleep)
- **AccessControl:** Document basic roles changes and provisioning V2. [#48910](https://github.com/grafana/grafana/pull/48910), [@gamab](https://github.com/gamab)
- **AccessControl:** Enable RBAC by default. [#48813](https://github.com/grafana/grafana/pull/48813), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **AddDataSourceConfig:** Remove deprecated checkHealth prop. [#50296](https://github.com/grafana/grafana/pull/50296), [@kaydelaney](https://github.com/kaydelaney)
- **Alerting:** Add Image URLs to Microsoft Teams notifier. [#49385](https://github.com/grafana/grafana/pull/49385), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Add RBAC actions and role for provisioning API routes. [#50459](https://github.com/grafana/grafana/pull/50459), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Add Screenshot URLs to Pagerduty Notifier. [#49377](https://github.com/grafana/grafana/pull/49377), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Add a "Reason" to Alert Instances to show underlying cause of state. [#49259](https://github.com/grafana/grafana/pull/49259), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Add a general screenshot service and alerting-specific image service. [#49293](https://github.com/grafana/grafana/pull/49293), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Add image url or file attachment to email notifications. [#49381](https://github.com/grafana/grafana/pull/49381), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Add image_urls to OpsGenie notification details. [#49379](https://github.com/grafana/grafana/pull/49379), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Add notification policy flow chart. [#49405](https://github.com/grafana/grafana/pull/49405), [@peterholmberg](https://github.com/peterholmberg)
- **Alerting:** Attach image URL to alerts in Webhook notifier format. [#49378](https://github.com/grafana/grafana/pull/49378), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Attach image URLs or upload files to Discord notifications. [#49439](https://github.com/grafana/grafana/pull/49439), [@alexweav](https://github.com/alexweav)
- **Alerting:** Attach image URLs to Google Chat notifications. [#49445](https://github.com/grafana/grafana/pull/49445), [@alexweav](https://github.com/alexweav)
- **Alerting:** Attach screenshot data to Unified Alerting notifications. [#49374](https://github.com/grafana/grafana/pull/49374), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Create folder for alerting when start from the scratch. [#48866](https://github.com/grafana/grafana/pull/48866), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Modify alertmanager endpoints for proxying using the datasource UID. [#47978](https://github.com/grafana/grafana/pull/47978), [@papagian](https://github.com/papagian)
- **Alerting:** Modify endpoint for testing a datasource rule using the UID. [#48070](https://github.com/grafana/grafana/pull/48070), [@papagian](https://github.com/papagian)
- **Alerting:** Modify prometheus endpoints for proxying using the datasource UID. [#48052](https://github.com/grafana/grafana/pull/48052), [@papagian](https://github.com/papagian)
- **Alerting:** State Manager takes screenshots. [#49338](https://github.com/grafana/grafana/pull/49338), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Use UID scope for folders authorization. [#48970](https://github.com/grafana/grafana/pull/48970), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** modify ruler endpoints for proxying using the datasource UID. [#48046](https://github.com/grafana/grafana/pull/48046), [@papagian](https://github.com/papagian)
- **Angular:** Adds back two angular directives that are still used by remaining angular bits and plugins. [#50380](https://github.com/grafana/grafana/pull/50380), [@torkelo](https://github.com/torkelo)
- **Azure Monitor:** Add Resource Picker to Metrics Queries. [#49029](https://github.com/grafana/grafana/pull/49029), [@sarahzinger](https://github.com/sarahzinger)
- **Azure Monitor:** Add search feature to resource picker. [#48234](https://github.com/grafana/grafana/pull/48234), [@sarahzinger](https://github.com/sarahzinger)
- **AzureMonitor:** Add support for selecting multiple options when using the equals and not equals dimension filters. [#48650](https://github.com/grafana/grafana/pull/48650), [@aangelisc](https://github.com/aangelisc)
- **AzureMonitor:** Remove deprecated code. [#48328](https://github.com/grafana/grafana/pull/48328), [@andresmgot](https://github.com/andresmgot)
- **Build:** Change names to PascalCase to match. [#48949](https://github.com/grafana/grafana/pull/48949), [@zuchka](https://github.com/zuchka)
- **Chore:** Remove deprecated DataSourceAPI methods. [#49313](https://github.com/grafana/grafana/pull/49313), [@ifrost](https://github.com/ifrost)
- **Chore:** Upgrade typescript to 4.6.4. [#49016](https://github.com/grafana/grafana/pull/49016), [@kaydelaney](https://github.com/kaydelaney)
- **Cloud Monitoring:** Use new annotation API. [#49026](https://github.com/grafana/grafana/pull/49026), [@kevinwcyu](https://github.com/kevinwcyu)
- **CloudMonitoring:** Allow to set a custom value or disable graph_period. [#48646](https://github.com/grafana/grafana/pull/48646), [@andresmgot](https://github.com/andresmgot)
- **CloudWatch:** Add generic filter component to variable editor. [#47907](https://github.com/grafana/grafana/pull/47907), [@iwysiu](https://github.com/iwysiu)
- **CloudWatch:** Added missing AWS/AppRunner metrics. [#49174](https://github.com/grafana/grafana/pull/49174), [@Aton-Kish](https://github.com/Aton-Kish)
- **CloudWatch:** Enable support for dynamic labels with migrated alias patterns. [#49173](https://github.com/grafana/grafana/pull/49173), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Pass label in deep link. [#49160](https://github.com/grafana/grafana/pull/49160), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Use new annotation API. [#48102](https://github.com/grafana/grafana/pull/48102), [@sunker](https://github.com/sunker)
- **Dashboard:** Validate dashboards against schema on save. [#48252](https://github.com/grafana/grafana/pull/48252), [@sdboyer](https://github.com/sdboyer)
- **DashboardPickerByID:** Add option to exclude dashboards. [#49211](https://github.com/grafana/grafana/pull/49211), [@Clarity-89](https://github.com/Clarity-89)
- **DashboardPickerById:** Add optionLabel prop. [#47556](https://github.com/grafana/grafana/pull/47556), [@Clarity-89](https://github.com/Clarity-89)
- **Dashboards:** Display values of 0 with the configured decimal places. [#48155](https://github.com/grafana/grafana/pull/48155), [@wx1322](https://github.com/wx1322)
- **Data:** Remove deprecated types and functions from valueMappings. [#50035](https://github.com/grafana/grafana/pull/50035), [@kaydelaney](https://github.com/kaydelaney)
- **Elasticsearch:** Remove browser access mode. [#49014](https://github.com/grafana/grafana/pull/49014), [@gabor](https://github.com/gabor)
- **Elasticsearch:** Remove support for versions after their end of the life (<7.10.0). [#48715](https://github.com/grafana/grafana/pull/48715), [@ivanahuckova](https://github.com/ivanahuckova)
- **Encryption:** Add support for multiple data keys per day. [#47765](https://github.com/grafana/grafana/pull/47765), [@joanlopez](https://github.com/joanlopez)
- **Encryption:** Enable envelope encryption by default. [#49301](https://github.com/grafana/grafana/pull/49301), [@joanlopez](https://github.com/joanlopez)
- **Explore:** Remove support for legacy, compact format URLs. [#49350](https://github.com/grafana/grafana/pull/49350), [@gelicia](https://github.com/gelicia)
- **Explore:** Skip Angular error handling when Angular support is disabled. [#49311](https://github.com/grafana/grafana/pull/49311), [@ifrost](https://github.com/ifrost)
- **Explore:** simplify support for multiple query editors. [#48701](https://github.com/grafana/grafana/pull/48701), [@Elfo404](https://github.com/Elfo404)
- **FeatureToggles:** Support changing feature toggles with URL parameters. [#50275](https://github.com/grafana/grafana/pull/50275), [@ryantxu](https://github.com/ryantxu)
- **FileUpload:** Make component accessible by keyboard navigation. [#47497](https://github.com/grafana/grafana/pull/47497), [@tolzhabayev](https://github.com/tolzhabayev)
- **Formatting:** Make SI number formats more robust. [#50117](https://github.com/grafana/grafana/pull/50117), [@kaydelaney](https://github.com/kaydelaney)
- **Graph:** Deprecate Graph (old) and make it no longer a visualization option for new panels. [#48034](https://github.com/grafana/grafana/pull/48034), [@torkelo](https://github.com/torkelo)
- **IconButton:** IconButtons are now correctly aligned in Safari. [#48759](https://github.com/grafana/grafana/pull/48759), [@ashharrison90](https://github.com/ashharrison90)
- **Logger:** Enable new logging format by default. [#47584](https://github.com/grafana/grafana/pull/47584), [@ying-jeanne](https://github.com/ying-jeanne)
- **Loki:** Add more query patterns. [#50248](https://github.com/grafana/grafana/pull/50248), [@ivanahuckova](https://github.com/ivanahuckova)
- **Loki:** Enable new visual query builder by default. [#48346](https://github.com/grafana/grafana/pull/48346), [@ivanahuckova](https://github.com/ivanahuckova)
- **Loki:** use the same dataframe-format for both live and normal queries. [#47153](https://github.com/grafana/grafana/pull/47153), [@gabor](https://github.com/gabor)
- **OAuth:** Make allowed email domain case insensitive. [#49252](https://github.com/grafana/grafana/pull/49252), [@Jguer](https://github.com/Jguer)
- **Panels:** Use the No value option when showing the no data message. [#47675](https://github.com/grafana/grafana/pull/47675), [@torkelo](https://github.com/torkelo)
- **Plugins:** Remove plugin list panel. [#46914](https://github.com/grafana/grafana/pull/46914), [@tolzhabayev](https://github.com/tolzhabayev)
- **Query History:** Enable new query history by default. [#49407](https://github.com/grafana/grafana/pull/49407), [@ifrost](https://github.com/ifrost)
- **QueryEditorRow:** Show query errors next to query in a consistent way across Grafana. [#47613](https://github.com/grafana/grafana/pull/47613), [@torkelo](https://github.com/torkelo)
- **SAML:** Implement Name Templates for assertion_attribute_name option. [#48022](https://github.com/grafana/grafana/pull/48022), [@mmandrus](https://github.com/mmandrus)
- **Service accounts:** Do not display service accounts assigned to team. [#48995](https://github.com/grafana/grafana/pull/48995), [@eleijonmarck](https://github.com/eleijonmarck)
- **Settings:** Use Grafana Azure SDK to pass Azure env vars for external plugins. [#48954](https://github.com/grafana/grafana/pull/48954), [@kostrse](https://github.com/kostrse)
- **Shortcuts:** Add shortcut to show shortcuts to the list of shortcuts. [#48395](https://github.com/grafana/grafana/pull/48395), [@ivanahuckova](https://github.com/ivanahuckova)
- **Traces Panel:** Add new Traces Panel visualization. [#47534](https://github.com/grafana/grafana/pull/47534), [@joey-grafana](https://github.com/joey-grafana)
- **Traces:** Filter by service/span name and operation in Tempo and Jaeger. [#48209](https://github.com/grafana/grafana/pull/48209), [@joey-grafana](https://github.com/joey-grafana)
- **Transformations:** Allow more complex regex expressions in `Rename by regex`. [#48179](https://github.com/grafana/grafana/pull/48179), [@ashharrison90](https://github.com/ashharrison90)
- **grafana/ui:** Add default type="button" to <Button>. [#48183](https://github.com/grafana/grafana/pull/48183), [@axelavargas](https://github.com/axelavargas)
### Bug fixes
- **Alerting:** Fix database unavailable removes rules from scheduler. [#49874](https://github.com/grafana/grafana/pull/49874), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **AzureMonitor:** Fix auto-selection of time-grain for metrics. [#49278](https://github.com/grafana/grafana/pull/49278), [@aangelisc](https://github.com/aangelisc)
- **DataSources:** Fixes issue with expressions not being queried. [#50446](https://github.com/grafana/grafana/pull/50446), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **GraphNG:** Fix thresholds by color not following data update. [#48571](https://github.com/grafana/grafana/pull/48571), [@zoltanbedi](https://github.com/zoltanbedi)
- **Jaeger:** Update operations dropdown. [#49329](https://github.com/grafana/grafana/pull/49329), [@joey-grafana](https://github.com/joey-grafana)
- **Login:** Fix mismatching label on auth_module in user list. [#49177](https://github.com/grafana/grafana/pull/49177), [@Jguer](https://github.com/Jguer)
- **Playlists:** Save button now correctly creates a new playlist. [#50381](https://github.com/grafana/grafana/pull/50381), [@ashharrison90](https://github.com/ashharrison90)
- **RBAC:** Fix migrations running in the wrong order causing inheritance problem in enterprise. [#50452](https://github.com/grafana/grafana/pull/50452), [@gamab](https://github.com/gamab)
- **RBAC:** Fix migrations running into the wrong order. (Enterprise)
- **ServiceAccounts:** Add identifiable token prefix to service account tokens. [#49011](https://github.com/grafana/grafana/pull/49011), [@Jguer](https://github.com/Jguer)
- **Traces:** Fix missing CopyButton on KeyValueTables and overlapping of panels. [#49271](https://github.com/grafana/grafana/pull/49271), [@svennergr](https://github.com/svennergr)
### Breaking changes
The `@grafana/ui` package helper function `selectOptionInTest` used in frontend tests has been removed as it caused testing libraries to be bundled in the production code of Grafana. If you were using this helper function in your tests please update your code accordingly:
```js
// before
import { selectOptionInTest } from '@grafana/ui';
// ...test usage
await selectOptionInTest(selectEl, 'Option 2');
// after
import { select } from 'react-select-event';
// ...test usage
await select(selectEl, 'Option 2', { container: document.body });
```
Issue [#50442](https://github.com/grafana/grafana/issues/50442)
Removed deprecated `checkHealth` prop from the `@grafana/e2e` `addDataSource` config. Previously this value defaulted to `false`, and has not been used in end-to-end tests since Grafana 8.0.3. Issue [#50296](https://github.com/grafana/grafana/issues/50296)
Removes the deprecated `LegacyBaseMap`, `LegacyValueMapping`, `LegacyValueMap`, and `LegacyRangeMap` types, and `getMappedValue` function from grafana-data. Migration is as follows:
| Old | New |
| ------------- | ------------- |
| `LegacyBaseMap` | `MappingType` |
| `LegacyValueMapping` | `ValueMapping` |
| `LegacyValueMap` | `ValueMap` |
| `LegacyRangeMap` | `RangeMap` |
| `getMappedValue` | `getValueMappingResult` | Issue [#50035](https://github.com/grafana/grafana/issues/50035)
This change fixes a bug in Grafana where intermittent failure of database, network between Grafana and the database, or error in querying the database would cause all alert rules to be unscheduled in Grafana. Following this change scheduled alert rules are not updated unless the query is successful.
The `get_alert_rules_duration_seconds` metric has been renamed to `schedule_query_alert_rules_duration_seconds`. Issue [#49874](https://github.com/grafana/grafana/issues/49874)
- Any secret (data sources credential, alert manager credential, etc, etc) created or modified with Grafana v9.0 won't be decryptable from any previous version (by default) because the way encrypted secrets are stored into the database has changed. Although secrets created or modified with previous versions will still be decryptable by Grafana v9.0.
- If required, although generally discouraged, the `disableEnvelopeEncryption` feature toggle can be enabled to keep envelope encryption disabled once updating to Grafana v9.0.
- In case of need to rollback to an earlier version of Grafana (i.e. Grafana v8.x) for any reason, after being created or modified any secret with Grafana v9.0, the `envelopeEncryption` feature toggle will need to be enabled to keep backwards compatibility (only from `v8.3.x` a bit unstable, from `8.5.x` stable).
- As a final attempt to deal with issues related with the aforementioned situations, the `grafana-cli admin secrets-migration rollback` command has been designed to move back all the Grafana secrets encrypted with envelope encryption to legacy encryption. So, after running that command it should be safe to disable envelope encryption and/or roll back to a previous version of Grafana.
- Alternatively or complementarily to all the points above, backing up the Grafana database before updating could be a good idea to prevent disasters (although the risk of getting some secrets corrupted only applies to those updates/created with after updating to Grafana v9.0). Issue [#49301](https://github.com/grafana/grafana/issues/49301)
- According to the dynamic labels documentation, you can use up to five dynamic values per label. Theres currently no such restriction in the alias pattern system, so if more than 5 patterns are being used the GetMetricData API will return an error.
- Dynamic labels only allow ${LABEL} to be used once per query. Theres no such restriction in the alias pattern system, so in case more than 1 is being used the GetMetricData API will return an error.
- When no alias is provided by the user, Grafana will no longer fallback with custom rules for naming the legend.
- In case a search expression is being used and no data is returned, Grafana will no longer expand dimension values, for instance when using a multi-valued template variable or star wildcard `*` in the dimension value field. Ref https://github.com/grafana/grafana/issues/20729
- Time series might be displayed in a different order. Using for example the dynamic label `${PROP('MetricName')}`, might have the consequence that the time series are returned in a different order compared to when the alias pattern `{{metric}}` is used
Issue [#49173](https://github.com/grafana/grafana/issues/49173)
In Elasticsearch, browser access mode was deprecated in grafana 7.4.0 and removed in 9.0.0. If you used this mode, please switch to server access mode on the datasource configuration page. Issue [#49014](https://github.com/grafana/grafana/issues/49014)
Environment variables passed from Grafana to external Azure plugins have been renamed:
- `AZURE_CLOUD` renamed to `GFAZPL_AZURE_CLOUD`
- `AZURE_MANAGED_IDENTITY_ENABLED` renamed to `GFAZPL_MANAGED_IDENTITY_ENABLED`
- `AZURE_MANAGED_IDENTITY_CLIENT_ID` renamed to `GFAZPL_MANAGED_IDENTITY_CLIENT_ID`
There are no known plugins which were relying on these variables. Moving forward plugins should read Azure settings only via Grafana Azure SDK which properly handles old and new environment variables. Issue [#48954](https://github.com/grafana/grafana/issues/48954)
Removes support for for ElasticSearch versions after their end-of-life, currently versions < 7.10.0. To continue to use ElasticSearch data source, upgrade ElasticSearch to version 7.10.0+.
Issue [#48715](https://github.com/grafana/grafana/issues/48715)
Application Insights and Insight Analytics queries in Azure Monitor were deprecated in Grafana 8.0 and finally removed in 9.0. Deprecated queries will no longer be executed. Please refer to the [documentation](https://grafana.com/docs/grafana/latest/datasources/azuremonitor/deprecated-application-insights/) for more information about this change.
Issue [#48328](https://github.com/grafana/grafana/issues/48328)
**grafana/ui: Button now specifies a default type="button"**
The `Button` component provided by @grafana/ui now specifies a default `type="button"` when no type is provided. In previous versions, if the attribute was not specified for buttons associated with a `<form>` the default value was `submit` per the [specification](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type)
You can preserve the old behavior by explicitly setting the type attribute: `<Button type="submit" />`
[Github Issue #41863](https://github.com/grafana/grafana/issues/41863).
Issue [#48183](https://github.com/grafana/grafana/issues/48183)
The `Rename by regex` transformation has been improved to allow global patterns of the form `/<stringToReplace>/g`. Depending on the regex match used, this may cause some transformations to behave slightly differently. You can guarantee the same behaviour as before by wrapping the `match` string in forward slashes (`/`), e.g. `(.*)` would become `/(.*)/` Issue [#48179](https://github.com/grafana/grafana/issues/48179)
`<Select />` menus will now portal to the document body by default. This is to give more consistent behaviour when positioning and overlaying. If you were setting `menuShouldPortal={true}` before you can safely remove that prop and behaviour will be the same. If you weren't explicitly setting that prop, there should be no visible changes in behaviour but your tests may need updating. Please see the original PR (https://github.com/grafana/grafana/pull/36398) for migration guides. If you were setting `menuShouldPortal={false}` this will continue to prevent the menu from portalling.
Issue [#48176](https://github.com/grafana/grafana/issues/48176)
Grafana alerting endpoint prefixed with `api/v1/rule/test` that tests a rule against a Corte/Loki data source now expects the data source UID as a path parameter instead of the data source numeric identifier. Issue [#48070](https://github.com/grafana/grafana/issues/48070)
Grafana alerting endpoints prefixed with `api/prometheus/` that proxy requests to a Cortex/Loki data source now expect the data source UID as a path parameter instead of the data source numeric identifier. Issue [#48052](https://github.com/grafana/grafana/issues/48052)
Grafana alerting endpoints prefixed with `api/ruler/` that proxy requests to a Cortex/Loki data source now expect the data source UID as a path parameter instead of the data source numeric identifier. Issue [#48046](https://github.com/grafana/grafana/issues/48046)
Grafana alerting endpoints prefixed with `api/alertmanager/` that proxy requests to an Alertmanager now expect the data source UID as a path parameter instead of the data source numeric identifier. Issue [#47978](https://github.com/grafana/grafana/issues/47978)
The format of log messages have been updated, `lvl` is now `level` and `eror`and `dbug` has been replaced with `error` and `debug`. The precision of timestamps has been increased. To smooth the transition, it is possible to opt-out of the new log format by enabling the feature toggle `oldlog`. This option will be removed in a future minor release. Issue [#47584](https://github.com/grafana/grafana/issues/47584)
In the Loki data source, the dataframe format used to represent Loki logs-data has been changed to a more efficient format. The query-result is represented by a single dataframe with a "labels" column, instead of the separate dataframes for every labels-value. When displaying such data in explore, or in a logs-panel in the dashboard will continue to work without changes, but if the data was loaded into a different dashboard-panel, or Transforms were used, adjustments may be necessary. For example, if you used the "labels to fields" transformation with the logs data, please switch to the "extract fields" transformation. Issue [#47153](https://github.com/grafana/grafana/issues/47153)
### Deprecations
`setExploreQueryField`, `setExploreMetricsQueryField` and `setExploreLogsQueryField` are now deprecated and will be removed in a future release. If you need to set a different query editor for Explore, conditionally render based on `props.app` in your regular query editor. Please refer to https://grafana.com/docs/grafana/latest/developers/plugins/add-support-for-explore-queries/ for more information.
Issue [#48701](https://github.com/grafana/grafana/issues/48701)
### Plugin development fixes & changes
- **Chore:** Remove react-testing-lib from bundles. [#50442](https://github.com/grafana/grafana/pull/50442), [@jackw](https://github.com/jackw)
- **Select:** Portal menu by default. [#48176](https://github.com/grafana/grafana/pull/48176), [@ashharrison90](https://github.com/ashharrison90)
<!-- 9.0.0 END -->
<!-- 9.0.0-beta3 START -->
# 9.0.0-beta3 (2022-06-06)
### Features and enhancements
- **Alerting:** Add provenance guard to config api. [#50147](https://github.com/grafana/grafana/pull/50147), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **Alerting:** Make folder filter clearable in Alert list panel. [#50093](https://github.com/grafana/grafana/pull/50093), [@peterholmberg](https://github.com/peterholmberg)
- **Alerting:** Provisioning API - Alert rules. [#47930](https://github.com/grafana/grafana/pull/47930), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **Alerting:** Remove Image Upload code from Slack notifier. [#50062](https://github.com/grafana/grafana/pull/50062), [@joeblubaugh](https://github.com/joeblubaugh)
- **Alerting:** Remove double quotes from matchers. [#50038](https://github.com/grafana/grafana/pull/50038), [@gotjosh](https://github.com/gotjosh)
- **Cloudwatch:** Dynamic labels autocomplete. [#49794](https://github.com/grafana/grafana/pull/49794), [@sunker](https://github.com/sunker)
- **Datasource:** Remove deprecated max_idle_connections_per_host setting. [#49948](https://github.com/grafana/grafana/pull/49948), [@marefr](https://github.com/marefr)
- **Datasource:** Remove support for unencrypted passwords. [#49987](https://github.com/grafana/grafana/pull/49987), [@marefr](https://github.com/marefr)
- **Dependencies:** Update to Golang version `1.17.11`. [#50253](https://github.com/grafana/grafana/pull/50253), [@dsotirakis](https://github.com/dsotirakis)
- **Loki:** Run query when pressing Enter on line-filters. [#49913](https://github.com/grafana/grafana/pull/49913), [@svennergr](https://github.com/svennergr)
- **Metrics:** Remove support for using summaries instead of histogram for HTTP instrumentation. [#49985](https://github.com/grafana/grafana/pull/49985), [@bergquist](https://github.com/bergquist)
- **Plugins:** Remove deprecated /api/tsdb/query metrics endpoint. [#49916](https://github.com/grafana/grafana/pull/49916), [@wbrowne](https://github.com/wbrowne)
- **Plugins:** Support headers field for check health. [#49930](https://github.com/grafana/grafana/pull/49930), [@marefr](https://github.com/marefr)
- **Prometheus/Loki:** Add raw query and syntax highlight in explain mode. [#50070](https://github.com/grafana/grafana/pull/50070), [@aocenas](https://github.com/aocenas)
- **Prometheus:** Migrate metadata queries to use resource calls. [#49921](https://github.com/grafana/grafana/pull/49921), [@srclosson](https://github.com/srclosson)
- **RBAC:** Make RBAC action names more consistent. [#49730](https://github.com/grafana/grafana/pull/49730), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **RBAC:** Make RBAC action names more consistent. (Enterprise)
- **Settings:** Sunset non-duration based login lifetime config. [#49944](https://github.com/grafana/grafana/pull/49944), [@sakjur](https://github.com/sakjur)
- **[9.0.x] Alerting:** Update alert rule diff to not see difference between nil and empty map. [#50198](https://github.com/grafana/grafana/pull/50198), [@yuri-tceretian](https://github.com/yuri-tceretian)
### Bug fixes
- **Alerting:** Fix alert list panel showing firing alerts with no instances. [#50069](https://github.com/grafana/grafana/pull/50069), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix notification policy "Override grouping" form save. [#50031](https://github.com/grafana/grafana/pull/50031), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Remove double quotes from matchers. [#50046](https://github.com/grafana/grafana/pull/50046), [@alexweav](https://github.com/alexweav)
- **Alerting:** Use correct permission scope for external AM updates. [#50159](https://github.com/grafana/grafana/pull/50159), [@gillesdemey](https://github.com/gillesdemey)
- **Datasource:** Fix allowed cookies to be forwarded as header to backend datasources. [#49541](https://github.com/grafana/grafana/pull/49541), [@marefr](https://github.com/marefr)
- **Licensing:** Fix trial expiration warning. (Enterprise)
- **Loki:** Fix uncaught errors if `labelKey` contains special characters. [#49887](https://github.com/grafana/grafana/pull/49887), [@svennergr](https://github.com/svennergr)
- **Prometheus:** Fix aligning of labels of exemplars after backend migration. [#49924](https://github.com/grafana/grafana/pull/49924), [@aocenas](https://github.com/aocenas)
- **SharePDF:** Fix repeated datasource variables in PDF. (Enterprise)
- **State Timeline:** Fix Null Value Filling and Value Transformation. [#50054](https://github.com/grafana/grafana/pull/50054), [@codeincarnate](https://github.com/codeincarnate)
- **Usage stats:** Divide collection into multiple functions to isolate failures. [#49928](https://github.com/grafana/grafana/pull/49928), [@sakjur](https://github.com/sakjur)
### Breaking changes
Removes support for storing/using datasource `password` and `basicAuthPassword` unencrypted which was [deprecated in Grafana v8.1.0](https://grafana.com/docs/grafana/latest/installation/upgrading/#use-of-unencrypted-passwords-for-data-sources-no-longer-supported). Please use `secureJsonData.password` and `secureJsonData.basicAuthPassword`. Issue [#49987](https://github.com/grafana/grafana/issues/49987)
Removes the option to instrument HTTP request in Grafana using summaries instead of histograms. Issue [#49985](https://github.com/grafana/grafana/issues/49985)
Removes support for deprecated dataproxy.max_idle_connections_per_host setting. Please use max_idle_connections instead. Issue [#49948](https://github.com/grafana/grafana/issues/49948)
Removes the deprecated `getFormStyles` function from grafana-ui.
Prefer using `GrafanaTheme2` and the `useStyles2` hook. Issue [#49945](https://github.com/grafana/grafana/issues/49945)
The configuration options `auth.login_maximum_inactive_lifetime_days` and `auth.login_maximum_lifetime_days` were deprecated in Grafana v7.2.0 and have now been removed. Use `login_maximum_inactive_lifetime_duration` and `login_maximum_lifetime_duration` to customize the maximum lifetime of a login session. Issue [#49944](https://github.com/grafana/grafana/issues/49944)
Removed the deprecated `isFocused` and `isInvalid` props from the `InlineLabel` component. These props haven't done anything for a while, so migration is just a matter of removing the props. Issue [#49929](https://github.com/grafana/grafana/issues/49929)
Removed the deprecated `onColorChange` prop from `ColorPicker`. Moving forward the `onChange` prop should be used. Issue [#49923](https://github.com/grafana/grafana/issues/49923)
`/api/tsdb/query` API has been removed. Use [/api/ds/query](https://grafana.com/docs/grafana/latest/http_api/data_source/#query-a-data-source) instead.
Issue [#49916](https://github.com/grafana/grafana/issues/49916)
`onClipboardCopy` and `onClipboardError` APIs have been changed such that the callback's argument is just the text that's been copied rather than the old `ClipboardEvent` interface.
Migration should just be a matter of going from
```tsx
<ClipboardButton
{/*other props... */}
onClipboardCopy={(e) => {
console.log(`Text "${e.text}" was copied!`);
}}
/>
```
to
````tsx
<ClipboardButton
{/* other props... */}
onClipboardCopy={(copiedText) => {
console.log(`Text "${copiedText}" was copied!`);
}}
/>
``` Issue [#49847](https://github.com/grafana/grafana/issues/49847)
The following RBAC action renames have been carried out:
* `users.authtoken:update` -> `users.authtoken:write`;
* `users.password:update` -> `users.password:write`;
* `users.permissions:update` -> `users.permissions:write`;
* `users.quotas:update` -> `users.quotas:write`;
* `org.users.role:update` -> `org.users:write`;
* `alert.instances:update` -> `alert.instances:write`;
* `alert.rules:update` -> `alert.rules:write`;
* `users.authtoken:list` -> `users.authtoken:read`;
* `users.quotas:list` -> `users.quotas:read`;
* `users.teams:read` -> replaced by `users.read` + `teams:read`
We've added a migration from the old action names to the new names and have updated our documentation. But you will have to update any scripts and provisioning files that are using the old action names. Issue [#49730](https://github.com/grafana/grafana/issues/49730)
The following RBAC action renames have been carried out:
* `reports.admin:write` -> `reports:write`;
* `reports.admin:create` -> `reports:create`;
* `licensing:update` -> `licensing:write`;
* `roles:list` -> `roles:read`;
* `teams.roles:list` -> `teams.roles:read`;
* `users.roles:list` -> `users.roles:read`;
* `users.permissions:list` -> `users.permissions:read`
We've added a migration from the old action names to the new names and have updated our documentation. But you will have to update any scripts and provisioning files that are using the old action names. Issue [#3372](https://github.com/grafana/grafana/issues/3372)
### Plugin development fixes & changes
- **UI:** Remove deprecated getFormStyles function. [#49945](https://github.com/grafana/grafana/pull/49945), [@kaydelaney](https://github.com/kaydelaney)
- **InlineLabel:** Remove deprecated props. [#49929](https://github.com/grafana/grafana/pull/49929), [@kaydelaney](https://github.com/kaydelaney)
- **ColorPicker:** Remove deprecated onColorChange prop. [#49923](https://github.com/grafana/grafana/pull/49923), [@kaydelaney](https://github.com/kaydelaney)
- **ClipboardButton:** Simplify callbacks. [#49847](https://github.com/grafana/grafana/pull/49847), [@kaydelaney](https://github.com/kaydelaney)
<!-- 9.0.0-beta3 END -->
<!-- 9.0.0-beta2 START -->
# 9.0.0-beta2 (2022-05-31)
@@ -74,7 +391,7 @@ module.exports.getWebpackConfig = (config, options) => ({
},
},
});
```
````
Please refer to the webpack build error messages or the [official migration guide](https://webpack.js.org/migrate/5/) for assistance with fallbacks.

View File

@@ -844,7 +844,7 @@ min_interval = 10s
[unified_alerting.screenshots]
# Enable screenshots in notifications. This option requires a remote HTTP image rendering service. Please
# see [rendering] for further configuration options.
enabled =
capture = false
# The maximum number of screenshots that can be taken at the same time. This option is different from
# concurrent_render_request_limit as max_concurrent_screenshots sets the number of concurrent screenshots
@@ -972,6 +972,7 @@ url = https://grafana.com
url = https://grafana.com
#################################### Distributed tracing ############
# Opentracing is deprecated use opentelemetry instead
[tracing.jaeger]
# jaeger destination (ex localhost:6831)
address =

View File

@@ -937,6 +937,7 @@
;url = https://grafana.com
#################################### Distributed tracing ############
# Opentracing is deprecated use opentelemetry instead
[tracing.jaeger]
# Enable by setting the address sending traces to jaeger (ex localhost:6831)
;address = localhost:6831

View File

@@ -117,11 +117,14 @@ If you're unsure, see the existing [changelog](https://github.com/grafana/grafan
### Pull request titles
The pull request title should be formatted according to `<Area>: <Summary>` (Both "Area" and "Summary" should start with a capital letter).
The Grafana team _squashes_ all commits into one when we accept a pull request. The title of the pull request becomes the subject line of the squashed commit message. We still encourage contributors to write informative commit messages, as they becomes a part of the Git commit body.
We use the pull request title when we generate change logs for releases. As such, we strive to make the title as informative as possible.
Make sure that the title for your pull request uses the same format as the subject line in the commit message.
**Example:**
`Docs: Change url to URL in all documentation files`
## Configuration changes

View File

@@ -27,10 +27,15 @@ Before you can merge a pull request, it must have a review approval, and all the
### Format the pull request title
The pull request title should be formatted according to `<Area>: <Summary>`. Keep the summary short and understandable for the community as a whole.
The pull request title should be formatted according to `<Area>: <Summary>` (Both "Area" and "Summary" should start with a capital letter).
Keep the summary short and understandable for the community as a whole.
All commits in a pull request are squashed when merged and the pull request title will be the default subject line of the squashed commit message. It's also used for [changelog/release notes](#include-in-changelog-and-release-notes).
**Example:**
`Docs: Change url to URL in all documentation files`
See [formatting guidelines](create-pull-request.md#formatting-guidelines) for more information.
### Assign a milestone

View File

@@ -17,22 +17,22 @@ title: Grafana documentation
## Installing Grafana
<div class="nav-cards">
<a href="{{< relref "installation/debian.md" >}}" class="nav-cards__item nav-cards__item--install">
<a href="{{< relref "setup-grafana/installation/debian/" >}}" class="nav-cards__item nav-cards__item--install">
<div class="nav-cards__icon fa fa-linux">
</div>
<h5>Install on Linux</h5>
</a>
<a href="{{< relref "installation/mac.md" >}}" class="nav-cards__item nav-cards__item--install">
<a href="{{< relref "setup-grafana/installation/mac/" >}}" class="nav-cards__item nav-cards__item--install">
<div class="nav-cards__icon fa fa-apple">
</div>
<h5>Install on macOS</h5>
</a>
<a href="{{< relref "installation/windows.md" >}}" class="nav-cards__item nav-cards__item--install">
<a href="{{< relref "setup-grafana/installation/windows/" >}}" class="nav-cards__item nav-cards__item--install">
<div class="nav-cards__icon fa fa-windows">
</div>
<h5>Install on Windows</h5>
</a>
<a href="{{< relref "installation/docker.md" >}}" class="nav-cards__item nav-cards__item--install">
<a href="{{< relref "setup-grafana/installation/docker/" >}}" class="nav-cards__item nav-cards__item--install">
<img src="/static/img/logos/logo-docker.svg">
<h5>Run Docker image</h5>
</a>
@@ -51,27 +51,27 @@ title: Grafana documentation
## Guides
<div class="nav-cards">
<a href="{{< relref "getting-started/getting-started.md" >}}" class="nav-cards__item nav-cards__item--guide">
<a href="{{< relref "getting-started/build-first-dashboard/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Getting started</h4>
<p>Learn the basics of using Grafana.</p>
</a>
<a href="{{< relref "basics/_index.md" >}}" class="nav-cards__item nav-cards__item--guide">
<a href="{{< relref "basics/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Grafana basics</h4>
<p>Learn basic observability.</p>
</a>
<a href="{{< relref "administration/configuration.md" >}}" class="nav-cards__item nav-cards__item--guide">
<a href="{{< relref "setup-grafana/configure-grafana/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Configure Grafana</h4>
<p>Review the configuration and setup options.</p>
</a>
<a href="{{< relref "basics/timeseries.md" >}}" class="nav-cards__item nav-cards__item--guide">
<a href="{{< relref "basics/timeseries/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Intro to time series</h4>
<p>Learn about time series data.</p>
</a>
<a href="{{< relref "administration/provisioning.md" >}}" class="nav-cards__item nav-cards__item--guide">
<a href="{{< relref "administration/provisioning/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Provisioning</h4>
<p>Learn how to automate your Grafana configuration.</p>
</a>
<a href="{{< relref "whatsnew/whats-new-in-v8-0.md" >}}" class="nav-cards__item nav-cards__item--guide">
<a href="{{< relref "whatsnew/whats-new-in-v8-0/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v8.0</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>
@@ -81,51 +81,51 @@ title: Grafana documentation
## Data source guides
<div class="nav-cards">
<a href="{{< relref "datasources/graphite.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/graphite/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_graphite.svg" >
<h5>Graphite</h5>
</a>
<a href="{{< relref "datasources/elasticsearch.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/elasticsearch/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_elasticsearch.svg" >
<h5>Elasticsearch</h5>
</a>
<a href="{{< relref "datasources/influxdb/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/influxdb/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_influxdb.svg" >
<h5>InfluxDB</h5>
</a>
<a href="{{< relref "datasources/prometheus.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/prometheus/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_prometheus.svg" >
<h5>Prometheus</h5>
</a>
<a href="{{< relref "datasources/google-cloud-monitoring/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/google-cloud-monitoring/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_cloudmonitoring.svg">
<h5>Google Cloud Monitoring</h5>
</a>
<a href="{{< relref "datasources/aws-cloudwatch/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/aws-cloudwatch/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_cloudwatch.svg">
<h5>AWS CloudWatch</h5>
</a>
<a href="{{< relref "datasources/azuremonitor/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/azuremonitor/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_azure_monitor.jpg">
<h5>Azure Monitor</h5>
</a>
<a href="{{< relref "datasources/loki.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/loki/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_loki.svg">
<h5>Loki</h5>
</a>
<a href="{{< relref "datasources/mysql.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/mysql/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_mysql.png" >
<h5>MySQL</h5>
</a>
<a href="{{< relref "datasources/postgres.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/postgres/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_postgres.svg" >
<h5>Postgres</h5>
</a>
<a href="{{< relref "datasources/mssql.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/mssql/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/sql_server_logo.svg">
<h5>Microsoft SQL Server</h5>
</a>
<a href="{{< relref "datasources/opentsdb.md" >}}" class="nav-cards__item nav-cards__item--ds">
<a href="{{< relref "datasources/opentsdb/" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_opentsdb.png" >
<h5>OpenTSDB</h5>
</a>

View File

@@ -11,8 +11,8 @@ weight: 40
This section includes information for Grafana administrators, team administrators, and users performing administrative tasks:
- [Change Preferences]({{< relref "preferences/" >}})
- [Configuration]({{< relref "configuration/" >}})
- [Configuration]({{< relref "../setup-grafana/configure-grafana/" >}})
- [Configure Docker image]({{< relref "configure-docker/" >}})
- [Security]({{< relref "security/" >}})
- [Database encryption]({{< relref "database-encryption/" >}})
- [Security]({{< relref "../setup-grafana/configure-security/" >}})
- [Database encryption]({{< relref "../setup-grafana/configure-security/configure-database-encryption/" >}})
- [Service accounts]({{< relref "service-accounts/" >}})

View File

@@ -14,6 +14,6 @@ weight: 300
API Keys can be used to interact with Grafana HTTP APIs.
We recommend using service accounts instead of API keys if you are on Grafana 8.5+, for more information refer to [About service accounts]({{< relref "../service-accounts/about-service-accounts.md#" >}}).
We recommend using service accounts instead of API keys if you are on Grafana 8.5+, for more information refer to [About service accounts]({{< relref "../service-accounts/about-service-accounts/#" >}}).
{{< section >}}

View File

@@ -11,4 +11,4 @@ weight: 30
An API key is a randomly generated string that external systems use to interact with Grafana HTTP APIs.
When you create an API key, you specify a **Role** that determines the permissions associated with the API key. Role permissions control that actions the API key can perform on Grafana resources. For more information about creating API keys, refer to [Create an API key]({{< relref "create-api-key.md#" >}}).
When you create an API key, you specify a **Role** that determines the permissions associated with the API key. Role permissions control that actions the API key can perform on Grafana resources. For more information about creating API keys, refer to [Create an API key]({{< relref "create-api-key/#" >}}).

View File

@@ -14,13 +14,13 @@ weight: 50
Create an API key when you want to manage your computed workload with a user.
For more information about API keys, refer to [About API keys in Grafana]({{< relref "about-api-keys.md" >}}).
For more information about API keys, refer to [About API keys in Grafana]({{< relref "about-api-keys/" >}}).
This topic shows you how to create an API key using the Grafana UI. You can also create an API key using the Grafana HTTP API. For more information about creating API keys via the API, refer to [Create API key via API]({{< relref "../../developers/http_api/create-api-tokens-for-org.md#how-to-create-a-new-organization-and-an-api-token" >}}).
This topic shows you how to create an API key using the Grafana UI. You can also create an API key using the Grafana HTTP API. For more information about creating API keys via the API, refer to [Create API key via API]({{< relref "../../developers/http_api/create-api-tokens-for-org/#how-to-create-a-new-organization-and-an-api-token" >}}).
## Before you begin:
- Ensure you have permission to create and edit API keys. For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}).
- Ensure you have permission to create and edit API keys. For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#" >}}).
**To create an API key:**

View File

@@ -137,7 +137,7 @@ grafana-cli --homepath "/usr/share/grafana" admin reset-admin-password <new pass
### Override config file
`--config value` overrides the default location where Grafana expects the configuration file. Refer to [Configuration]({{< relref "configuration.md" >}}) for more information about configuring Grafana and default configuration file locations.
`--config value` overrides the default location where Grafana expects the configuration file. Refer to [Configuration]({{< relref "../setup-grafana/configure-grafana/" >}}) for more information about configuring Grafana and default configuration file locations.
**Example:**
@@ -147,7 +147,7 @@ grafana-cli --config "/etc/configuration/" admin reset-admin-password mynewpassw
## Plugins commands
Grafana CLI allows you to install, upgrade, and manage your Grafana plugins. For more information about installing plugins, refer to [plugins page]({{< relref "../plugins/installation.md" >}}).
Grafana CLI allows you to install, upgrade, and manage your Grafana plugins. For more information about installing plugins, refer to [plugins page]({{< relref "../plugins/installation/" >}}).
All listed commands apply to the Grafana default repositories and directories. You can override the defaults with [Global Options](#global-options).
@@ -219,7 +219,7 @@ grafana-cli --homepath "/usr/share/grafana" admin reset-admin-password <new pass
If you have not lost the admin password, we recommend that you change the user password either in the User Preferences or in the Server Admin > User tab.
If you need to set the password in a script, then you can use the [Grafana User API]({{< relref "../developers/http_api/user.md#change-password" >}}).
If you need to set the password in a script, then you can use the [Grafana User API]({{< relref "../developers/http_api/user/#change-password" >}}).
### Migrate data and encrypt passwords

View File

@@ -14,7 +14,7 @@ weight: 200
# Configure a Grafana Docker image
If you are running Grafana in a Docker image, then you configure Grafana using [environment variables]({{< relref "configuration.md#configure-with-environment-variables" >}}) rather than directly editing the configuration file. If you want to save your data, then you also need to designate persistent storage or bind mounts for the Grafana container.
If you are running Grafana in a Docker image, then you configure Grafana using [environment variables]({{< relref "../setup-grafana/configure-grafana/#configure-with-environment-variables" >}}) rather than directly editing the configuration file. If you want to save your data, then you also need to designate persistent storage or bind mounts for the Grafana container.
> **Note:** These examples use the Grafana Enterprise docker image. You can use the Grafana Open Source edition by changing the docker image to `grafana/grafana-oss`.
@@ -59,7 +59,7 @@ The following settings are hard-coded when launching the Grafana Docker containe
## Logging
Logs in the Docker container go to standard out by default, as is common in the Docker world. Change this by setting a different [log mode]({{< relref "configuration.md#mode" >}}).
Logs in the Docker container go to standard out by default, as is common in the Docker world. Change this by setting a different [log mode]({{< relref "../setup-grafana/configure-grafana/#mode" >}}).
Example:

View File

@@ -1,21 +0,0 @@
---
aliases:
- /docs/grafana/latest/administration/jaeger-instrumentation/
description: Jaeger traces emitted and propagation by Grafana
keywords:
- grafana
- jaeger
- tracing
title: Jaeger instrumentation
weight: 900
---
# Jaeger instrumentation
Grafana supports [Jaeger tracing](https://www.jaegertracing.io/).
Grafana can emit Jaeger traces for its HTTP API endpoints and propagate Jaeger trace information to data sources.
All HTTP endpoints are logged evenly (annotations, dashboard, tags, and so on).
When a trace ID is propagated, it is reported with operation 'HTTP /datasources/proxy/:id/\*'.
Refer to [Configuration]({{< relref "configuration.md#tracing-jaeger" >}}) for information about enabling Jaeger tracing.

View File

@@ -42,7 +42,7 @@ The following table summarizes the resources you can share and/or isolate using
The member of one organization cannot view dashboards assigned to another organization. However, a user can belong to multiple organizations.
Grafana Server Administrators are responsible for creating organizations. For more information about the Grafana Server Administrator role, refer to [Grafana server administrators]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#Grafana server administrators" >}}).
Grafana Server Administrators are responsible for creating organizations. For more information about the Grafana Server Administrator role, refer to [Grafana server administrators]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#Grafana server administrators" >}}).
## View a list of organizations
@@ -80,9 +80,9 @@ Create an organization when you want to isolate dashboards and other resources f
1. On the **Preferences** tab, select a home dashboard, time zone, and week start.
For more information about preferences, refer to [Preferences]({{< relref "../preferences/_index.md" >}}).
For more information about preferences, refer to [Preferences]({{< relref "../preferences/" >}}).
For more information about adding users to an organization, refer to [Add a user to an organization]({{< relref "../manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md" >}}).
For more information about adding users to an organization, refer to [Add a user to an organization]({{< relref "../manage-users-and-permissions/manage-server-users/add-remove-user-to-org/" >}}).
## Delete an organization

View File

@@ -22,7 +22,7 @@ You can also view important information about your account, such as the organiza
You can change your Grafana password at any time.
> **Note**: If your Grafana instance uses an <!--[external authentication provider]({{< relref "../../auth/_index.md" >}})--> external authentication provider, then you might not be able to change your password in Grafana. Contact your Grafana administrator for more information.
> **Note**: If your Grafana instance uses an <!--[external authentication provider]({{< relref "../../setup-grafana/configure-security/configure-authentication/" >}})--> external authentication provider, then you might not be able to change your password in Grafana. Contact your Grafana administrator for more information.
**To change your password**:
@@ -47,7 +47,7 @@ Your profile includes your name, user name, and email address, which you can upd
## Edit your preferences
You can choose the way you would like data to appear in Grafana, including the UI theme, home dashboard, timezone, and first day of the week. You can set these preferences for your own account, for a team, for an organization, or Grafana-wide using configuration settings. Your user preferences take precedence over team, organization, and Grafana default preferences. For more information, see [Grafana preferences]({{< relref "../preferences/_index.md" >}}).
You can choose the way you would like data to appear in Grafana, including the UI theme, home dashboard, timezone, and first day of the week. You can set these preferences for your own account, for a team, for an organization, or Grafana-wide using configuration settings. Your user preferences take precedence over team, organization, and Grafana default preferences. For more information, see [Grafana preferences]({{< relref "../preferences/" >}}).
- **UI theme** determines whether Grafana appears in light mode or dark mode. By default, UI theme is set to dark mode.
- **Home dashboard** refers to the dashboard you see when you sign in to Grafana. By default, this is set to the Home dashboard.
@@ -81,7 +81,7 @@ Every user is a member of at least one organization. You can have different role
1. Hover your cursor over the user icon in the lower-left corner of the page and click **Preferences**.
1. Scroll down to the **Organizations** section and review the following information:
- **Name**: The name of the organizations of which you are a member.
- **Role**: The role to which you are assigned in the organization. For more information about roles and permissions, refer to [Organization users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}).
- **Role**: The role to which you are assigned in the organization. For more information about roles and permissions, refer to [Organization users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#organization-users-and-permissions" >}}).
- **Current**: Grafana indicates the organization that you are currently signed into as _Current_. If you are a member of multiple organizations, you can click **Select** to switch to that organization.
## View your Grafana sessions

View File

@@ -31,7 +31,7 @@ A server administrator can perform the following tasks:
- Manage users and permissions
- Create, edit, and delete organizations
- View server-wide settings defined in the [Configuration]({{< relref "../configuration.md" >}}) file
- View server-wide settings defined in the [Configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}) file
- View Grafana server statistics, including total users and active sessions
- Upgrade the server to Grafana Enterprise.
@@ -57,7 +57,7 @@ Permissions assigned to a user within an organization control the extent to whic
### Organization roles
Organization role-based permissions are global, which means that each permission level applies to all Grafana resources within an given organization. For example, an editor can see and update _all_ dashboards in an organization, unless those dashboards have been specifically restricted using [dashboard permissions]({{< relref "manage-dashboard-permissions/_index.md" >}}).
Organization role-based permissions are global, which means that each permission level applies to all Grafana resources within an given organization. For example, an editor can see and update _all_ dashboards in an organization, unless those dashboards have been specifically restricted using [dashboard permissions]({{< relref "manage-dashboard-permissions/" >}}).
Grafana uses the following roles to control user access:
@@ -97,9 +97,9 @@ You can specify the following permissions to dashboards and folders.
- **Edit**: Can create and edit dashboards. Editors _cannot_ change folder or dashboard permissions, or add, edit, or delete folders.
- **View**: Can only view dashboards and folders.
For more information about assigning dashboard folder permissions, refer to [Grant dashboard folder permissions]({{< relref "manage-dashboard-permissions/_index.md#grant-dashboard-folder-permissions" >}}).
For more information about assigning dashboard folder permissions, refer to [Grant dashboard folder permissions]({{< relref "manage-dashboard-permissions/#grant-dashboard-folder-permissions" >}}).
For more information about assigning dashboard permissions, refer to [Grant dashboard permissions]({{< relref "manage-dashboard-permissions/_index.md#grant-dashboard-permissions" >}}).
For more information about assigning dashboard permissions, refer to [Grant dashboard permissions]({{< relref "manage-dashboard-permissions/#grant-dashboard-permissions" >}}).
## Editors with administrator permissions
@@ -109,18 +109,18 @@ If you have access to the Grafana server, you can modify the default editor role
This setting can be used to enable self-organizing teams to administer their own dashboards.
For more information about assigning administrator permissions to editors, refer to [Grant editors administrator permissions]({{< relref "manage-server-users/grant-editor-admin-permissions.md" >}}).
For more information about assigning administrator permissions to editors, refer to [Grant editors administrator permissions]({{< relref "manage-server-users/grant-editor-admin-permissions/" >}}).
## Viewers with dashboard preview and Explore permissions
If you have access to the Grafana server, you can modify the default viewer role so that viewers can:
- Edit and preview dashboards, but cannot save their changes or create new dashboards.
- Access and use [Explore]({{< relref "../../explore/_index.md" >}}).
- Access and use [Explore]({{< relref "../../explore/" >}}).
Extending the viewer role is useful for public Grafana installations where you want anonymous users to be able to edit panels and queries, but not be able to save or create new dashboards.
For more information about assigning dashboard preview permissions to viewers, refer to [Enable viewers to preview dashboards and use Explore]({{< relref "manage-dashboard-permissions/_index.md#enable-viewers-to-preview-dashboards-and-use-explore" >}}).
For more information about assigning dashboard preview permissions to viewers, refer to [Enable viewers to preview dashboards and use Explore]({{< relref "manage-dashboard-permissions/#enable-viewers-to-preview-dashboards-and-use-explore" >}}).
## Teams and permissions
@@ -131,7 +131,7 @@ You can assign a team member one of the following permissions:
- **Member**: Includes the user as a member of the team. Members do not have team administrator privileges.
- **Admin**: Administrators have permission to manage various aspects of the team, including team membership, permissions, and settings.
Because teams exist inside an organization, the organization administrator can manage all teams. When the `editors_can_admin` setting is enabled, editors can create teams and manage teams that they create. For more information about the `editors_can_admin` setting, refer to [Grant editors administrator permissions]({{< relref "manage-server-users/grant-editor-admin-permissions.md" >}}).
Because teams exist inside an organization, the organization administrator can manage all teams. When the `editors_can_admin` setting is enabled, editors can create teams and manage teams that they create. For more information about the `editors_can_admin` setting, refer to [Grant editors administrator permissions]({{< relref "manage-server-users/grant-editor-admin-permissions/" >}}).
## Grafana Enterprise user permissions features
@@ -146,7 +146,7 @@ Grafana Enterprise provides the following permissions-related features:
By default, a user can query any data source in an organization, even if the data source is not linked to the user's dashboards.
Data source permissions enable you to restrict data source query permissions to specific **Users** and **Teams**. For more information about assigning data source permissions, refer to [Data source permissions]({{< relref "../../enterprise/datasource_permissions.md" >}}).
Data source permissions enable you to restrict data source query permissions to specific **Users** and **Teams**. For more information about assigning data source permissions, refer to [Data source permissions]({{< relref "../../enterprise/datasource_permissions/" >}}).
### Role-based access control

View File

@@ -76,7 +76,7 @@ This modification is useful for public Grafana installations where you want anon
1. Open the Grafana configuration file.
For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../configuration/" >}}).
For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../setup-grafana/configure-grafana/" >}}).
1. Locate the `viewers_can_edit` parameter.
1. Set the `viewers_can_edit` value to `true`.
@@ -144,4 +144,4 @@ Dashboard permissions settings:
Result: You receive an error message that cannot override a higher permission with a lower permission in the same dashboard. User1 has administrator permissions.
> Refer to [Role-based access Control]({{< relref "../../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how to use RBAC permissions to restrict access to dashboards, folders, administrative functions, and other resources.
> Refer to [Role-based access Control]({{< relref "../../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how to use RBAC permissions to restrict access to dashboards, folders, administrative functions, and other resources.

View File

@@ -25,4 +25,4 @@ Update user permissions when you want to enhance or restrict a user's access to
1. Select the role that you want to assign.
1. Click **Update**.
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../manage-server-users/change-user-org-permissions.md" >}}) in the Server Admin section.
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../manage-server-users/change-user-org-permissions/" >}}) in the Server Admin section.

View File

@@ -12,7 +12,7 @@ When you invite users to join an organization, you assign the **Admin**, **Edito
- If you know that the user already has access Grafana and you know their user name, then you issue an invitation by entering their user name.
- If the user is new to Grafana, then use their email address to issue an invitation. The system automatically creates the user account on first sign in.
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../manage-server-users/add-remove-user-to-org.md" >}}).
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../manage-server-users/add-remove-user-to-org/" >}}).
## Before you begin

View File

@@ -25,4 +25,4 @@ This action does not remove the user account from the Grafana server.
1. Click the red **X** to remove the user from the organization.
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [remove a user from an organization]({{< relref "../manage-server-users/add-remove-user-to-org.md#remove-a-user-from-an-organization" >}}) on the Users page of the Server Admin section.
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [remove a user from an organization]({{< relref "../manage-server-users/add-remove-user-to-org/#remove-a-user-from-an-organization" >}}) on the Users page of the Server Admin section.

View File

@@ -20,4 +20,4 @@ You can see a list of users with accounts in your Grafana organization. If neces
![Org Admin user list](/static/img/docs/manage-users/org-user-list-7-3.png)
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../manage-server-users/view-list-users.md" >}}) in the Server Admin section of Grafana.
> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../manage-server-users/view-list-users/" >}}) in the Server Admin section of Grafana.

View File

@@ -11,10 +11,10 @@ weight: 300
A _user_ is defined as any individual who can log in to Grafana. Each user is associated with a _role_ that includes _permissions_. Permissions determine the tasks a user can perform in the system.
If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions in Grafana, you can manage all users for a Grafana instance in the Server Admin section:
If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions in Grafana, you can manage all users for a Grafana instance in the Server Admin section:
{{< section >}}
If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, refer to [Manage users in a organization]({{< relref "../manage-org-users/_index.md" >}}).
If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, refer to [Manage users in a organization]({{< relref "../manage-org-users/" >}}).
For more information about users and permissions, refer to [About users and permissions]({{< relref "../about-users-and-permissions/" >}}).

View File

@@ -14,8 +14,8 @@ You are required to specify an Admin role for each organization. The first user
## Before you begin
- [Create an organization]({{< relref "../../manage-organizations/_index.md" >}})
- [Add a user]({{< relref "add-user.md" >}}) to Grafana
- [Create an organization]({{< relref "../../manage-organizations/" >}})
- [Add a user]({{< relref "add-user/" >}}) to Grafana
- Ensure you have Grafana server administrator privileges
**To add a user to an organization**:
@@ -32,7 +32,7 @@ You are required to specify an Admin role for each organization. The first user
The next time the user signs in, they will be able to navigate to their new organization using the Switch Organizations option in the user profile menu.
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org.md" >}}).
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org/" >}}).
# Remove a user from an organization
@@ -50,4 +50,4 @@ Remove a user from an organization when they no longer require access to the das
1. In the **Organization** section, click **Remove from organization** next to the organization from which you want to remove the user.
1. Click **Confirm removal**.
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [remove a user from an organization]({{< relref "../manage-org-users/remove-user-from-org.md" >}}) in the Users section of organization configuration.
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [remove a user from an organization]({{< relref "../manage-org-users/remove-user-from-org/" >}}) in the Users section of organization configuration.

View File

@@ -9,7 +9,7 @@ weight: 10
Add users when you want to manually provide individuals with access to Grafana.
When you create a user using this method, you must create their password. The user does not receive a notification by email. To invite a user to Grafana and allow them to create their own password, [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org.md" >}}).
When you create a user using this method, you must create their password. The user does not receive a notification by email. To invite a user to Grafana and allow them to create their own password, [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org/" >}}).
When you configure advanced authentication using Oauth, SAML, LDAP, or the Auth proxy, users are created automatically.
@@ -24,6 +24,6 @@ When you configure advanced authentication using Oauth, SAML, LDAP, or the Auth
1. Click **New user**.
1. Complete the fields and click **Create user**.
When you create a user, the system assigns the user viewer permissions in a default organization, which you can change. You can now [add a user to a second organization]({{< relref "add-remove-user-to-org.md" >}}).
When you create a user, the system assigns the user viewer permissions in a default organization, which you can change. You can now [add a user to a second organization]({{< relref "add-remove-user-to-org/" >}}).
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still add users by [inviting a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org.md" >}}).
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still add users by [inviting a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org/" >}}).

View File

@@ -13,7 +13,7 @@ Grafana server administrators are responsible for creating users, organizations,
## Before you begin
- [Add a user]({{< relref "add-user.md" >}})
- [Add a user]({{< relref "add-user/" >}})
- Ensure you have Grafana server administrator privileges
**To assign or remove Grafana administrator privileges**:

View File

@@ -11,7 +11,7 @@ Update organization permissions when you want to enhance or restrict a user's ac
## Before you begin
- [Add a user to an organization]({{< relref "add-remove-user-to-org.md" >}})
- [Add a user to an organization]({{< relref "add-remove-user-to-org/" >}})
- Ensure you have Grafana server administrator privileges
**To change a user's organization permissions**:

View File

@@ -13,8 +13,8 @@ This setting can be used to enable self-organizing teams to administer their own
When `editors_can_admin` is enabled:
- Users with the Editor role in an organization are Administrators for new dashboards and folders they create, meaning they can edit dashboard permissions. To learn more about dashboard permissions, refer to [Manage dashboard permissions]({{< relref "../manage-dashboard-permissions/_index.md" >}}).
- Users with the Editor role in an organization can create teams, and they are Administrators of the teams they create. To learn more about team permissions, refer to [Manage teams]({{< relref "../manage-teams/_index.md" >}})
- Users with the Editor role in an organization are Administrators for new dashboards and folders they create, meaning they can edit dashboard permissions. To learn more about dashboard permissions, refer to [Manage dashboard permissions]({{< relref "../manage-dashboard-permissions/" >}}).
- Users with the Editor role in an organization can create teams, and they are Administrators of the teams they create. To learn more about team permissions, refer to [Manage teams]({{< relref "../manage-teams/" >}})
> **Note**: If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `editors_can_admin` flag.
@@ -26,7 +26,7 @@ When `editors_can_admin` is enabled:
1. Log in to the Grafana server and open the Grafana configuration file.
For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../administration/configuration/" >}}).
For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../setup-grafana/configure-grafana/" >}}).
1. Locate the `editors_can_admin` parameter.
1. Set the `editors_can_admin` value to `true`.

View File

@@ -20,4 +20,4 @@ You can see a list of users with accounts on your Grafana server. This action mi
![Server Admin user list](/static/img/docs/manage-users/server-user-list-7-3.png)
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../manage-org-users/view-list-org-users.md" >}}).
> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../manage-org-users/view-list-org-users/" >}}).

View File

@@ -11,9 +11,9 @@ Grafana preferences are basic settings. They control the Grafana UI theme, home
Preferences are sometimes confusing because they can be set at four different levels, listed from highest level to lowest:
- **Server -** Affects all users on the Grafana server. Set by a [Grafana server admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#grafana-server-administrators" >}}).
- **Organization -** Affects all users in an organization. Set by an [Organization admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#organization-roles" >}}).
- **Team -** Affects all users assigned to a team. Set by an Organization Admin or Team Admin. To learn more about these roles, refer to [Teams and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#teams-and-permissions" >}}).
- **Server -** Affects all users on the Grafana server. Set by a [Grafana server admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#grafana-server-administrators" >}}).
- **Organization -** Affects all users in an organization. Set by an [Organization admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#organization-roles" >}}).
- **Team -** Affects all users assigned to a team. Set by an Organization Admin or Team Admin. To learn more about these roles, refer to [Teams and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#teams-and-permissions" >}}).
- **User account -** Affects the individual user. Set by the user on their own account.
The lowest level always takes precedence. For example, if a user sets their theme to **Light**, then their visualization of Grafana displays the light theme. Nothing at any higher level can override that.

View File

@@ -59,4 +59,4 @@ To change the team name or email, follow these steps:
## Change user name or email
To learn how to edit your user information, refer to [Edit your profile]({{< relref "../manage-user-preferences/_index.md#edit-your-profile" >}}).
To learn how to edit your user information, refer to [Edit your profile]({{< relref "../manage-user-preferences/#edit-your-profile" >}}).

View File

@@ -39,9 +39,9 @@ Here is an example of the light theme.
## Change server UI theme
Grafana server administrators can change the Grafana UI theme for all users on the server by setting the [default_theme]({{< relref "../configuration.md#default-theme" >}}) option in the Grafana configuration file.
Grafana server administrators can change the Grafana UI theme for all users on the server by setting the [default_theme]({{< relref "../../setup-grafana/configure-grafana/#default-theme" >}}) option in the Grafana configuration file.
To see what the current settings are, refer to [View server settings]({{< relref "../view-server/view-server-settings.md" >}}).
To see what the current settings are, refer to [View server settings]({{< relref "../view-server/view-server-settings/" >}}).
## Change organization UI theme

View File

@@ -19,7 +19,7 @@ By default, Grafana uses the timezone in your web browser. However, you can over
## Set server timezone
Grafana server administrators can choose a default timezone for all users on the server by setting the [default_timezone]({{< relref "../configuration.md#default-timezone" >}}) option in the Grafana configuration file.
Grafana server administrators can choose a default timezone for all users on the server by setting the [default_timezone]({{< relref "../../setup-grafana/configure-grafana/#default-timezone" >}}) option in the Grafana configuration file.
## Set organization timezone

View File

@@ -38,7 +38,7 @@ Users with the Grafana Server Admin flag on their account or access to the confi
### Use a JSON file as the home dashboard
1. Save your JSON file somewhere that Grafana can access it. For example, in the Grafana `data` folder of Grafana.
1. Update your configuration file to set the path to the JSON file. Refer to [default_home_dashboard_path]({{< relref "../configuration.md#default_home_dashboard_path" >}}) for more information about modifying the Grafana configuration files.
1. Update your configuration file to set the path to the JSON file. Refer to [default_home_dashboard_path]({{< relref "../../setup-grafana/configure-grafana/#default_home_dashboard_path" >}}) for more information about modifying the Grafana configuration files.
```ini
[dashboards]

View File

@@ -16,7 +16,7 @@ In previous versions of Grafana, you could only use the API for provisioning dat
## Config File
Check out the [configuration]({{< relref "configuration.md" >}}) page for more information on what you can configure in `grafana.ini`
Check out the [configuration]({{< relref "../setup-grafana/configure-grafana/" >}}) page for more information on what you can configure in `grafana.ini`
### Config File Locations
@@ -194,7 +194,7 @@ Since not all datasources have the same configuration settings we only have the
`{"authType":"keys","defaultRegion":"us-west-2","timeField":"@timestamp"}`
Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "configuration.md#secret-key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "../setup-grafana/configure-grafana/#secret-key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
> **Note:** Datasources tagged with _HTTP\*_ below denotes any data source which communicates using the HTTP protocol, e.g. all core data source plugins except MySQL, PostgreSQL and MSSQL.
@@ -233,7 +233,7 @@ datasources:
> This feature is available from v7.1
You can manage plugins in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "configuration.md#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
You can manage plugins in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "../setup-grafana/configure-grafana/#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
### Example plugin configuration file
@@ -261,7 +261,7 @@ apps:
## Dashboards
You can manage dashboards in Grafana by adding one or more YAML config files in the [`provisioning/dashboards`]({{< relref "configuration.md" >}}) directory. Each config file can contain a list of `dashboards providers` that load dashboards into Grafana from the local filesystem.
You can manage dashboards in Grafana by adding one or more YAML config files in the [`provisioning/dashboards`]({{< relref "../setup-grafana/configure-grafana/" >}}) directory. Each config file can contain a list of `dashboards providers` that load dashboards into Grafana from the local filesystem.
The dashboard provider config file looks somewhat like this:
@@ -316,7 +316,7 @@ Note: The JSON definition in the input field when using `Copy JSON to Clipboard`
### Reusable Dashboard URLs
If the dashboard in the JSON file contains an [UID]({{< relref "../dashboards/json-model.md" >}}), Grafana forces insert/update on that UID. This allows you to migrate dashboards between Grafana instances and provisioning Grafana from configuration without breaking the URLs given because the new dashboard URL uses the UID as identifier.
If the dashboard in the JSON file contains an [UID]({{< relref "../dashboards/json-model/" >}}), Grafana forces insert/update on that UID. This allows you to migrate dashboards between Grafana instances and provisioning Grafana from configuration without breaking the URLs given because the new dashboard URL uses the UID as identifier.
When Grafana starts, it updates/inserts all dashboards available in the configured folders. If you modify the file, then the dashboard is also updated.
By default, Grafana deletes dashboards in the database if the file is removed. You can disable this behavior using the `disableDeletion` setting.
@@ -601,4 +601,4 @@ The following sections detail the supported settings and secure settings for eac
Grafana Enterprise supports provisioning for the following resources:
- [Role-based access control provisioning]({{< relref "../enterprise/access-control/rbac-provisioning.md" >}})
- [Role-based access control provisioning]({{< relref "../enterprise/access-control/rbac-provisioning/" >}})

View File

@@ -11,7 +11,7 @@ weight: 30
A service account can be used to run automated workloads in Grafana, like dashboard provisioning, configuration, or report generation. Create service accounts and tokens to authenticate applications like Terraform with the Grafana API.
> **Note:** Service accounts are available in Grafana 8.5+ as a beta feature. To enable service accounts, refer to [Enable service accounts]({{< relref "enable-service-accounts.md#" >}}) section. Service accounts will eventually replace [API keys]({{< relref "../api-keys/_index.md" >}}) as the primary way to authenticate applications that interact with Grafana.
> **Note:** Service accounts are available in Grafana 8.5+ as a beta feature. To enable service accounts, refer to [Enable service accounts]({{< relref "enable-service-accounts/#" >}}) section. Service accounts will eventually replace [API keys]({{< relref "../api-keys/" >}}) as the primary way to authenticate applications that interact with Grafana.
A common use case for creating a service account is to perform operations on automated or triggered tasks. You can use service accounts to:
@@ -20,7 +20,7 @@ A common use case for creating a service account is to perform operations on aut
- Set up an external SAML authentication provider
- Interact with Grafana without signing in as a user
In [Grafana Enterprise]({{< relref "../../enterprise/_index.md" >}}), you can also use service accounts in combination with [role-based access control]({{< relref "../../enterprise/access-control/about-rbac.md" >}}) to grant very specific permissions to applications that interact with Grafana.
In [Grafana Enterprise]({{< relref "../../enterprise/" >}}), you can also use service accounts in combination with [role-based access control]({{< relref "../../enterprise/access-control/about-rbac/" >}}) to grant very specific permissions to applications that interact with Grafana.
> **Note:** Service accounts can only act in the organization they are created for. If you have the same task that is needed for multiple organizations, we recommend creating service accounts in each organization.
@@ -46,4 +46,4 @@ The added benefits of service accounts to API keys include:
- Service accounts resemble Grafana users and can be enabled/disabled, granted specific permissions, and remain active until they are deleted or disabled. API keys are only valid until their expiry date.
- Service accounts can be associated with multiple tokens.
- Unlike API keys, service account tokens are not associated with a specific user, which means that applications can be authenticated even if a Grafana user is deleted.
- You can grant granular permissions to service accounts by leveraging [fine-grained access control]({{< relref "../../enterprise/access-control/" >}}). For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}).
- You can grant granular permissions to service accounts by leveraging [fine-grained access control]({{< relref "../../enterprise/access-control/" >}}). For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#" >}}).

View File

@@ -9,14 +9,14 @@ weight: 60
# Add a token to a service account in Grafana
A service account token is a generated random string that acts as an alternative to a password when authenticating with Grafanas HTTP API. For more information about service accounts, refer to [About service accounts in Grafana]({{< relref "about-service-accounts.md" >}}).
A service account token is a generated random string that acts as an alternative to a password when authenticating with Grafanas HTTP API. For more information about service accounts, refer to [About service accounts in Grafana]({{< relref "about-service-accounts/" >}}).
You can create a service account token using the Grafana UI or via the API. For more information about creating a service account token via the API, refer to [Create service account tokens using the HTTP API]({{< relref "../../developers/http_api/serviceaccount.md#create-service-account-tokens" >}}).
You can create a service account token using the Grafana UI or via the API. For more information about creating a service account token via the API, refer to [Create service account tokens using the HTTP API]({{< relref "../../developers/http_api/serviceaccount/#create-service-account-tokens" >}}).
## Before you begin
- Ensure you have added the `serviceAccounts` feature toggle to Grafana. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "enable-service-accounts.md#" >}}).
- Ensure you have permission to create and edit service accounts. By default, the organization administrator role is required to create and edit service accounts. For more information about user permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}).
- Ensure you have added the `serviceAccounts` feature toggle to Grafana. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "enable-service-accounts/#" >}}).
- Ensure you have permission to create and edit service accounts. By default, the organization administrator role is required to create and edit service accounts. For more information about user permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#" >}}).
## To add a token to a service account

View File

@@ -11,14 +11,14 @@ weight: 50
# Create a service account in Grafana
A service account can be used to run automated workloads in Grafana, like dashboard provisioning, configuration, or report generation. For more information about how you can use service accounts, refer to [About service accounts]({{< relref "about-service-accounts.md#" >}}).
A service account can be used to run automated workloads in Grafana, like dashboard provisioning, configuration, or report generation. For more information about how you can use service accounts, refer to [About service accounts]({{< relref "about-service-accounts/#" >}}).
For more information about creating service accounts via the API, refer to [Create a service account in the HTTP API]({{< relref "../../developers/http_api/serviceaccount.md#create-service-account" >}}).
For more information about creating service accounts via the API, refer to [Create a service account in the HTTP API]({{< relref "../../developers/http_api/serviceaccount/#create-service-account" >}}).
## Before you begin
- Ensure you have added the feature toggle for service accounts `serviceAccounts`. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "enable-service-accounts.md#" >}}).
- Ensure you have permission to create and edit service accounts. By default, the organization administrator role is required to create and edit service accounts. For more information about user permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}).
- Ensure you have added the feature toggle for service accounts `serviceAccounts`. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "enable-service-accounts/#" >}}).
- Ensure you have permission to create and edit service accounts. By default, the organization administrator role is required to create and edit service accounts. For more information about user permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#" >}}).
## To create a service account

View File

@@ -25,7 +25,7 @@ You can enable service accounts by:
This topic shows you how to enable service accounts by modifying the Grafana configuration file.
1. Sign in to the Grafana server and locate the configuration file. For more information about finding the configuration file, refer to LINK.
2. Open the configuration file and locate the [feature toggles section]({{< relref "../configuration.md#feature_toggles" >}}). Add `serviceAccounts` as a [feature_toggle]({{< relref "../configuration.md#feature_toggle" >}}).
2. Open the configuration file and locate the [feature toggles section]({{< relref "../../setup-grafana/configure-grafana/#feature_toggles" >}}). Add `serviceAccounts` as a [feature_toggle]({{< relref "../../setup-grafana/configure-grafana/#feature_toggle" >}}).
```
[feature_toggles]
@@ -39,6 +39,6 @@ enable = serviceAccounts
This topic shows you how to enable service accounts by setting environment variables before starting Grafana.
Follow the instructions to [override configuration with environment variables]({{< relref "../configuration.md#override-configuration-with-environment-variables" >}}). Set the following environment variable: `GF_FEATURE_TOGGLES_ENABLE = serviceAccounts`.
Follow the instructions to [override configuration with environment variables]({{< relref "../../setup-grafana/configure-grafana/#override-configuration-with-environment-variables" >}}). Set the following environment variable: `GF_FEATURE_TOGGLES_ENABLE = serviceAccounts`.
> **Note:** Environment variables override configuration file settings.

View File

@@ -14,11 +14,11 @@ weight: 300
# View Grafana server settings
> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../configuration.md#config-file-locations" >}}) file and any environmental variables.
If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../../setup-grafana/configure-grafana/#config-file-locations" >}}) file and any environmental variables.
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md" >}}).
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/" >}}).
## View server settings
@@ -27,4 +27,4 @@ If you are a Grafana server administrator, use the Settings tab to view the sett
## Available settings
For a full list of server settings, refer to [Configuration]({{< relref "../configuration.md" >}}).
For a full list of server settings, refer to [Configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}).

View File

@@ -12,11 +12,11 @@ weight: 400
# View Grafana server stats
> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
If you are a Grafana server admin, then you can view useful statistics about your Grafana server in the Stats & Licensing tab.
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md" >}}).
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/" >}}).
## View server stats

View File

@@ -6,33 +6,33 @@ title: Alerting
weight: 114
---
# Grafana alerting
# Grafana Alerting
Grafana alerts allow you to learn about problems in your systems moments after they occur. Robust and actionable alerts help you identify and resolve issues quickly, minimizing disruption to your services. It centralizes alerting information in a single, searchable view that allows you to:
Grafana Alerting allows you to learn about problems in your systems moments after they occur. Robust and actionable alerts help you identify and resolve issues quickly, minimizing disruption to your services. It centralizes alerting information in a single, searchable view that allows you to:
- Create and manage Grafana alerts
- Create and manage Grafana Mimir and Loki managed alerts
- View alerting information from Prometheus and Alertmanager compatible data sources
For new installations or existing installs without alerting configured, Grafana alerting is enabled by default.
For new installations or existing installs without alerting configured, Grafana Alerting is enabled by default.
| Release | Cloud | Enterprise | OSS |
| ----------- | ------------- | ------------- | ------------- |
| Grafana 9.0 | On by default | On by default | On by default |
Existing installations that upgrade to v9.0 will have Grafana alerting enabled by default. For more information on migrating from legacy or the cloud alerting plugin, see [Migrating to Grafana alerting]({{< relref "./migrating-alerts/_index.md" >}}).
Existing installations that upgrade to v9.0 will have Grafana Alerting enabled by default. For more information on migrating from legacy or the cloud alerting plugin, see [Migrating to Grafana Alerting]({{< relref "migrating-alerts/" >}}).
Before you begin, we recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "fundamentals/_index.md" >}}) of Grafana alerting. Refer to [Role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to learn more about controlling access to alerts using role-based permissions.
Before you begin, we recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "fundamentals/" >}}) of Grafana Alerting. Refer to [Role-based access control]({{< relref "../enterprise/access-control/" >}}) in Grafana Enterprise to learn more about controlling access to alerts using role-based permissions.
- [About alert rules]({{< relref "./fundamentals/alert-rules/_index.md" >}})
- [Migrating legacy alerts]({{< relref "./migrating-alerts/_index.md" >}})
- [Disable Grafana alerting in OSS]({{< relref "./migrating-alerts/opt-out.md" >}})
- [Create Grafana managed alerting rules]({{< relref "alerting-rules/create-grafana-managed-rule.md" >}})
- [Create Grafana Mimir or Loki managed alerting rules]({{< relref "alerting-rules/create-mimir-loki-managed-rule.md" >}})
- [View existing alerting rules and manage their current state]({{< relref "alerting-rules/rule-list.md" >}})
- [View the state and health of alerting rules]({{< relref "fundamentals/state-and-health.md" >}})
- [View alert groupings]({{< relref "alert-groups/_index.md" >}})
- [Add or edit an alert contact point]({{< relref "contact-points/_index.md" >}})
- [Add or edit notification policies]({{< relref "notifications/_index.md" >}})
- [Add or edit silences]({{< relref "silences/_index.md" >}})
- [Performance considerations for alerting]({{< relref "performance.md" >}})
- [About alert rules]({{< relref "fundamentals/alert-rules/" >}})
- [Migrating legacy alerts]({{< relref "migrating-alerts/" >}})
- [Disable Grafana Alerting in OSS]({{< relref "migrating-alerts/opt-out/" >}})
- [Create Grafana managed alerting rules]({{< relref "alerting-rules/create-grafana-managed-rule/" >}})
- [Create Grafana Mimir or Loki managed alerting rules]({{< relref "alerting-rules/create-mimir-loki-managed-rule/" >}})
- [View existing alerting rules and manage their current state]({{< relref "alerting-rules/rule-list/" >}})
- [View the state and health of alerting rules]({{< relref "fundamentals/state-and-health/" >}})
- [View alert groupings]({{< relref "alert-groups/" >}})
- [Add or edit an alert contact point]({{< relref "contact-points/" >}})
- [Add or edit notification policies]({{< relref "notifications/" >}})
- [Add or edit silences]({{< relref "silences/" >}})
- [Performance considerations for alerting]({{< relref "performance/" >}})

View File

@@ -1,33 +1,33 @@
---
aliases:
- /docs/grafana/latest/alerting/about-alerting/
description: A quick overview of Grafana alerting
description: A quick overview of Grafana Alerting
keywords:
- grafana
- alerting
- overview
- concepts
- basics
title: About Grafana alerting
title: About Grafana Alerting
weight: 100
---
# About Grafana alerting
# About Grafana Alerting
Grafana Alerting consists of several individual concepts that are at the core of a flexible and powerful alerting engine.
This topic explains how to create [alert rules]({{< relref "./fundamentals/alert-rules/_index.md" >}}), their relationship with [alert instances]({{< relref "./fundamentals/alert-rules/alert-instances.md" >}}) and the various alert rule [states and transitions]({{< relref "./fundamentals/state-and-health.md" >}}), [notification policies]({{< relref "./notifications/_index.md" >}}) and [contact points]({{< relref "./contact-points/_index.md" >}}).
This topic explains how to create [alert rules]({{< relref "fundamentals/alert-rules/" >}}), their relationship with [alert instances]({{< relref "fundamentals/alert-rules/alert-instances/" >}}) and the various alert rule [states and transitions]({{< relref "fundamentals/state-and-health/" >}}), [notification policies]({{< relref "notifications/" >}}) and [contact points]({{< relref "contact-points/" >}}).
These three individual concepts are the minimum necessities to successfully create alerts and receive notifications.
We will also touch on various other concepts such as [silences]({{< relref "./silences/_index.md" >}}) and [mute timings]({{< relref "./notifications/mute-timings.md" >}}) to more granularly manage alert notifications, [role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) to limit access and manage permissions and additional advanced topics such as [external alertmanagers]({{< relref "./fundamentals/alertmanager.md#add-a-new-external-alertmanager" >}}) and [high availability]({{< relref "./high-availability/_index.md" >}}).
We will also touch on various other concepts such as [silences]({{< relref "silences/" >}}) and [mute timings]({{< relref "notifications/mute-timings/" >}}) to more granularly manage alert notifications, [role-based access control]({{< relref "../enterprise/access-control/" >}}) to limit access and manage permissions and additional advanced topics such as [external alertmanagers]({{< relref "fundamentals/alertmanager/#add-a-new-external-alertmanager" >}}) and [high availability]({{< relref "high-availability/" >}}).
## Overview
{{< figure src="/static/img/docs/alerting/unified/about-alerting-flow-diagram.jpg" caption="Grafana alerting overview" >}}
{{< figure src="/static/img/docs/alerting/unified/about-alerting-flow-diagram.jpg" caption="Grafana Alerting overview" >}}
As shown in the diagram above, Grafana alerting uses [labels]({{< relref "./fundamentals/annotation-label/how-to-use-labels.md" >}}) to match an alert rule and its instances to a specific notification policy. This concept of labels and label matching is important and is also used in [silences]({{< relref "./silences/_index.md" >}}).
As shown in the diagram above, Grafana Alerting uses [labels]({{< relref "fundamentals/annotation-label/how-to-use-labels/" >}}) to match an alert rule and its instances to a specific notification policy. This concept of labels and label matching is important and is also used in [silences]({{< relref "silences/" >}}).
Each notification policy specifies a set of [label matchers]({{< relref "./fundamentals/annotation-label/labels-and-label-matchers.md" >}}) to indicate what alerts they are responsible for.
Each notification policy specifies a set of [label matchers]({{< relref "fundamentals/annotation-label/labels-and-label-matchers/" >}}) to indicate what alerts they are responsible for.
A notification policy has a [contact point]({{< relref "./contact-points/_index.md" >}}) assigned to it that consists of one or more [notifiers]({{< relref "./contact-points/_index.md#list-of-notifiers-supported-by-grafana" >}}).
A notification policy has a [contact point]({{< relref "contact-points/" >}}) assigned to it that consists of one or more [notifiers]({{< relref "contact-points/#list-of-notifiers-supported-by-grafana" >}}).

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/alert-groups/
- /docs/grafana/latest/alerting/unified-alerting/alert-groups/
description: Alert groups
keywords:
@@ -13,9 +14,9 @@ weight: 445
# Alert groups
Alert groups show grouped alerts from an Alertmanager instance. By default, the alerts are grouped by the label keys for the root policy in [notification policies]({{< relref "../notifications/_index.md" >}}). Grouping common alerts into a single alert group prevents duplicate alerts from being fired.
Alert groups show grouped alerts from an Alertmanager instance. By default, the alerts are grouped by the label keys for the root policy in [notification policies]({{< relref "../notifications/" >}}). Grouping common alerts into a single alert group prevents duplicate alerts from being fired.
For more information, see:
- [View alert groupings]({{< relref "view-alert-grouping.md" >}})
- [Filter alerts by group]({{< relref "filter-alerts.md" >}})
- [View alert groupings]({{< relref "view-alert-grouping/" >}})
- [Filter alerts by group]({{< relref "filter-alerts/" >}})

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/alert-groups/filter-alerts/
- /docs/grafana/latest/alerting/unified-alerting/alert-groups/
description: Alert groups
keywords:

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/alert-groups/
- /docs/grafana/latest/alerting/alert-groups/view-alert-grouping/
- /docs/grafana/latest/alerting/unified-alerting/alert-groups/
description: Alert groups
keywords:

View File

@@ -7,5 +7,22 @@ weight: 552
# Limitations
- Grafana alerting system can retrieve rules from all available Prometheus, Loki, and Alertmanager data sources. It might not be able to fetch alerting rules from all other supported data sources at this time.
- We aim to support the latest two minor versions of both Prometheus and Alertmanager. We cannot guarantee that older versions will work. As an example, if the current Prometheus version is `2.31.1`, we support >= `2.29.0`.
## Limited rule sources support
Grafana Alerting can retrieve alerting and recording rules **stored** in most available Prometheus, Loki, Mimir, and Alertmanager compatible data sources.
It does not support reading or writing alerting rules from any other data sources but the ones previously mentioned at this time.
## Prometheus version support
We support the latest two minor versions of both Prometheus and Alertmanager. We cannot guarantee that older versions will work.
As an example, if the current Prometheus version is `2.31.1`, we support >= `2.29.0`.
## Grafana is not an alert receiver
Grafana is not an alert receiver; is it an alert generator. This means that Grafana cannot receive alerts from anything other than its internal alert generator.
Receiving alerts from Prometheus (or anything else) is not supported at the time.
For more information, refer to [this GitHub discussion](https://github.com/grafana/grafana/discussions/45773).

View File

@@ -7,7 +7,7 @@ title: Create and manage rules
weight: 130
---
# Create and manage Grafana alerting rules
# Create and manage Grafana Alerting rules
An alerting rule is a set of evaluation criteria that determines whether an alert will fire. The rule consists of one or more queries and expressions, a condition, the frequency of evaluation, and optionally, the duration over which the condition is met.
@@ -15,9 +15,9 @@ While queries and expressions select the data set to evaluate, a condition sets
You can:
- [Create Grafana Mimir or Loki managed alert rule]({{< relref "create-mimir-loki-managed-rule.md" >}})
- [Create Grafana Mimir or Loki managed recording rule]({{< relref "create-mimir-loki-managed-recording-rule.md" >}})
- [Edit Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group.md" >}})
- [Create Grafana managed alert rule]({{< relref "create-grafana-managed-rule.md" >}})
- [State and health of alerting rules]({{< relref "../fundamentals/state-and-health.md" >}})
- [Manage alerting rules]({{< relref "rule-list.md" >}})
- [Create Grafana Mimir or Loki managed alert rule]({{< relref "create-mimir-loki-managed-rule/" >}})
- [Create Grafana Mimir or Loki managed recording rule]({{< relref "create-mimir-loki-managed-recording-rule/" >}})
- [Edit Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}})
- [Create Grafana managed alert rule]({{< relref "create-grafana-managed-rule/" >}})
- [State and health of alerting rules]({{< relref "../fundamentals/state-and-health/" >}})
- [Manage alerting rules]({{< relref "rule-list/" >}})

View File

@@ -15,7 +15,7 @@ weight: 400
# Create a Grafana managed alerting rule
Grafana allows you to create alerting rules that query one or more data sources, reduce or transform the results and compare them to each other or to fix thresholds. When these are executed, Grafana sends notifications to the contact point. For information on Grafana alerting, see [About Grafana alerting]({{< relref "../about-alerting.md" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/_index.md" >}}) of Grafana alerting.
Grafana allows you to create alerting rules that query one or more data sources, reduce or transform the results and compare them to each other or to fix thresholds. When these are executed, Grafana sends notifications to the contact point. For information on Grafana Alerting, see [About Grafana Alerting]({{< relref "../about-alerting/" >}}) which explains the various components of Grafana Alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana Alerting.
## Add Grafana managed rule
@@ -23,7 +23,7 @@ Grafana allows you to create alerting rules that query one or more data sources,
1. Click **New alert rule**. The new alerting rule page opens where the Grafana managed alerts option is selected by default.
1. In Step 1, add queries and expressions to evaluate, and then select the alert condition.
- For queries, select a data source from the drop-down.
- Add one or more [queries]({{< relref "../../panels/query-a-data-source/add-a-query.md" >}}) or [expressions]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md" >}}).
- Add one or more [queries]({{< relref "../../panels/query-a-data-source/add-a-query/" >}}) or [expressions]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions/" >}}).
- For each expression, select either **Classic condition** to create a single alert rule, or choose from **Math**, **Reduce**, **Resample** options to generate separate alert for each series. For details on these options, see [Single and multi dimensional rule](#single-and-multi-dimensional-rule).
- Click **Run queries** to verify that the query is successful.
- Next, select the query or expression for your alert condition.
@@ -38,11 +38,11 @@ Grafana allows you to create alerting rules that query one or more data sources,
- In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule.
- From the **Folder** drop-down, select the folder where you want to store the rule.
- For **Group**, specify a pre-defined group. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
1. Next, create a [notification]({{< relref "../notifications/_index.md" >}}) for the rule.
1. Next, create a [notification]({{< relref "../notifications/" >}}) for the rule.
### Single and multi dimensional rule
@@ -56,7 +56,7 @@ Use the classic condition expression to create a rule that triggers a single ale
To generate a separate alert for each series, create a multi-dimensional rule. Use `Math`, `Reduce`, or `Resample` expressions to create a multi-dimensional rule. For example:
- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data]({{< relref "../fundamentals/evaluate-grafana-alerts.md#alerting-on-numeric-data-1" >}})).
- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data]({{< relref "../fundamentals/evaluate-grafana-alerts/#alerting-on-numeric-data-1" >}})).
- Add a `Math` expression with the condition for the rule. Not needed in case a query or a reduce expression already returns 0 if rule should not fire, or a positive number if it should fire. Some examples: `$B > 70` if it should fire in case value of B query/expression is more than 70. `$B < $C * 100` in case it should fire if value of B is less than value of C multiplied by 100. If queries being compared have multiple series in their results, series from different queries are matched if they have the same labels or one is a subset of the other.
![Query section multi dimensional](/static/img/docs/alerting/unified/rule-edit-multi-8-0.png 'Query section multi dimensional screenshot')
@@ -65,7 +65,7 @@ To generate a separate alert for each series, create a multi-dimensional rule. U
#### Rule with classic condition
For more information, see [expressions documentation]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md" >}}).
For more information, see [expressions documentation]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions/" >}}).
### No data and error handling

View File

@@ -42,13 +42,13 @@ To create a Grafana Mimir or Loki managed recording rule
- Enter a PromQL or LogQL expression. The rule fires if the evaluation result has at least one series with a value that is greater than 0. An alert is created for each series.
1. In Step 2, add the rule name, namespace, rule group, as well as additional metadata associated with the rule.
- In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule.
- From the **Namespace** drop-down, select an existing rule namespace. Otherwise, click Add new and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "./edit-mimir-loki-namespace-group.md" >}}).
- From the **Namespace** drop-down, select an existing rule namespace. Otherwise, click Add new and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}}).
- From the **Group** drop-down, select an existing group within the selected namespace. Otherwise, click **Add new** and enter a name to create a new one. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
1. Next, create a [notification]({{< relref "../notifications/_index.md" >}}) for the rule.
1. Next, create a [notification]({{< relref "../notifications/" >}}) for the rule.
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **New alert rule**.
@@ -63,7 +63,7 @@ To create a Grafana Mimir or Loki managed recording rule
- Enter a PromQL or LogQL expression. The rule fires if the evaluation result has at least one series with a value that is greater than 0. An alert is created for each series.
{{< figure src="/static/img/docs/alerting/unified/rule-edit-mimir-query-8-0.png" max-width="550px" caption="Alert details" >}}
1. In Step 3, add additional metadata associated with the rule.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.

View File

@@ -16,7 +16,7 @@ weight: 400
# Create a Grafana Mimir or Loki managed alerting rule
Grafana allows you to create alerting rules for an external Grafana Mimir or Loki instance that has ruler API enabled. For information on Grafana alerting, see [About Grafana alerting]({{< relref "../about-alerting.md" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/_index.md" >}}) of Grafana alerting.
Grafana allows you to create alerting rules for an external Grafana Mimir or Loki instance that has ruler API enabled. For information on Grafana Alerting, see [About Grafana Alerting]({{< relref "../about-alerting/" >}}) which explains the various components of Grafana Alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana Alerting.
## Before you begin
@@ -42,10 +42,10 @@ Grafana allows you to create alerting rules for an external Grafana Mimir or Lok
> **Note:** Once a condition is met, the alert goes into the `Pending` state. If the condition remains active for the duration specified, the alert transitions to the `Firing` state, else it reverts to the `Normal` state.
1. In Step 3, add the rule name, namespace, rule group, as well as additional metadata associated with the rule.
- In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule.
- From the **Namespace** drop-down, select an existing rule namespace. Otherwise, click **Add new** and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group.md" >}}).
- From the **Namespace** drop-down, select an existing rule namespace. Otherwise, click **Add new** and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}}).
- From the **Group** drop-down, select an existing group within the selected namespace. Otherwise, click **Add new** and enter a name to create a new one. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
1. Next, create a [notification]({{< relref "../notifications/_index.md" >}}) for the rule.
1. Next, create a [notification]({{< relref "../notifications/" >}}) for the rule.

View File

@@ -62,5 +62,5 @@ Grafana managed alerting rules can only be edited or deleted by users with Edit
To edit or delete a rule:
1. Expand a rule row until you can see the rule controls of **View**, **Edit**, and **Delete**.
1. Click **Edit** to open the create rule page. Make updates following instructions in [Create a Grafana managed alerting rule]({{< relref "create-grafana-managed-rule.md" >}}) or [Create a Grafana Mimir or Loki managed alerting rule]({{< relref "create-mimir-loki-managed-rule.md" >}}).
1. Click **Edit** to open the create rule page. Make updates following instructions in [Create a Grafana managed alerting rule]({{< relref "create-grafana-managed-rule/" >}}) or [Create a Grafana Mimir or Loki managed alerting rule]({{< relref "create-mimir-loki-managed-rule/" >}}).
1. Click **Delete** to delete a rule.

View File

@@ -16,15 +16,15 @@ weight: 430
# Contact points
Use contact points to define how your contacts are notified when an alert fires. A contact point can have one or more contact point types, for example, email, slack, webhook, and so on. When an alert fires, a notification is sent to all contact point types listed for a contact point. Optionally, use [message templates]({{< relref "message-templating/_index.md" >}}) to customize notification messages for the contact point types.
Use contact points to define how your contacts are notified when an alert fires. A contact point can have one or more contact point types, for example, email, slack, webhook, and so on. When an alert fires, a notification is sent to all contact point types listed for a contact point. Optionally, use [message templates]({{< relref "message-templating/" >}}) to customize notification messages for the contact point types.
You can configure Grafana managed contact points as well as contact points for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager.md" >}}).
You can configure Grafana managed contact points as well as contact points for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager/" >}}).
Before you begin, see [About Grafana alerting]({{< relref "../about-alerting.md" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/_index.md" >}}) of Grafana alerting.
Before you begin, see [About Grafana Alerting]({{< relref "../about-alerting/" >}}) which explains the various components of Grafana Alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana Alerting.
- [Create contact point]({{< relref "./create-contact-point.md" >}})
- [Edit contact point]({{< relref "./edit-contact-point.md" >}})
- [Test contact point]({{< relref "./test-contact-point.md" >}})
- [Delete contact point]({{< relref "./delete-contact-point.md" >}})
- [List of notifiers]({{< relref "./notifiers/_index.md" >}})
- [Message templating]({{< relref "./message-templating/_index.md" >}})
- [Create contact point]({{< relref "create-contact-point/" >}})
- [Edit contact point]({{< relref "edit-contact-point/" >}})
- [Test contact point]({{< relref "test-contact-point/" >}})
- [Delete contact point]({{< relref "delete-contact-point/" >}})
- [List of notifiers]({{< relref "notifiers/" >}})
- [Message templating]({{< relref "message-templating/" >}})

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/create-contact-point/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/delete-contact-point/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
@@ -23,4 +24,4 @@ To delete a contact point
1. Find the contact point to delete, then click **Delete** (trash icon).
1. In the confirmation dialog, click **Yes, delete**.
> **Note:** You cannot delete contact points that are in use by a notification policy. You will have to either delete the [notification policy]({{< relref "../notifications/_index.md" >}}) or update it to use another contact point.
> **Note:** You cannot delete contact points that are in use by a notification policy. You will have to either delete the [notification policy]({{< relref "../notifications/" >}}) or update it to use another contact point.

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/edit-alertmanager-config/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
@@ -23,4 +24,4 @@ To edit global configuration options for an external Alertmanager, like SMTP ser
1. Add global configuration settings.
1. Click **Save global config** to save your changes.
> **Note** This option is available only for external Alertmanagers. You can configure some global options for Grafana contact types, like email settings, via [Grafana configuration]({{< relref "../../administration/configuration.md" >}})
> **Note** This option is available only for external Alertmanagers. You can configure some global options for Grafana contact types, like email settings, via [Grafana configuration]({{< relref "../../setup-grafana/configure-grafana/" >}})

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/edit-contact-point/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
description: Message templating
@@ -15,9 +16,9 @@ weight: 400
# Message templating
Notifications sent via [contact points]({{< relref "../_index.md" >}}) are built using messaging templates. Grafana's default templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML (which can affect escaping). The default template, defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go), is a useful reference for custom templates.
Notifications sent via [contact points]({{< relref "../" >}}) are built using messaging templates. Grafana's default templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML (which can affect escaping). The default template, defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go), is a useful reference for custom templates.
Since most of the contact point fields can be templated, you can create reusable custom templates and use them in multiple contact points. The [template data]({{< relref "template-data.md" >}}) topic lists variables that are available for templating. The default template is defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go) which can serve as a useful reference or starting point for custom templates.
Since most of the contact point fields can be templated, you can create reusable custom templates and use them in multiple contact points. The [template data]({{< relref "template-data/" >}}) topic lists variables that are available for templating. The default template is defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go) which can serve as a useful reference or starting point for custom templates.
### Using templates

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/create-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/delete-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/edit-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/example-template-functions/
- /docs/grafana/latest/alerting/contact-points/message-templating/template-functions/
- /docs/grafana/latest/alerting/message-templating/template-functions/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/template-functions/

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/example-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/template-data/
- /docs/grafana/latest/alerting/message-templating/template-data/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/template-data/
keywords:

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/template-functions/
- /docs/grafana/latest/alerting/message-templating/template-functions/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/template-functions/
keywords:

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/notifiers/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/notifiers/webhook-notifier/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/test-contact-point/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:

View File

@@ -8,13 +8,13 @@ keywords:
- grafana
- alerting
- guide
title: What's new in Grafana alerting
title: What's new in Grafana Alerting
weight: 108
---
# What's new in Grafana alerting
# What's new in Grafana Alerting
Grafana alerting has several enhancements over legacy dashboard alerting.
Grafana Alerting has several enhancements over legacy dashboard alerting.
## Multi-dimensional alerting
@@ -28,7 +28,7 @@ Since unified alerts are no longer directly tied to panel queries, they do not i
## Create Loki and Grafana Mimir alerting rules
In Grafana alerting, you can manage Loki and Grafana Mimir alerting rules using the same UI and API as your Grafana managed alerts.
In Grafana Alerting, you can manage Loki and Grafana Mimir alerting rules using the same UI and API as your Grafana managed alerts.
## View and search for alerts from Prometheus compatible data sources
@@ -36,7 +36,7 @@ Alerts for Prometheus compatible data sources are now listed under the Grafana a
## Special alerts for alert state NoData and Error
Grafana alerting introduced a new concept of the alert states. When evaluation of an alerting rule produces state NoData or Error, Grafana alerting will generate special alerts that will have the following labels:
Grafana Alerting introduced a new concept of the alert states. When evaluation of an alerting rule produces state NoData or Error, Grafana Alerting will generate special alerts that will have the following labels:
- `alertname` with value DatasourceNoData or DatasourceError depending on the state.
- `rulename` name of the alert rule the special alert belongs to.

View File

@@ -9,9 +9,9 @@ weight: 110
# Alerting fundamentals
This section includes the following fundamental concepts of Grafana alerting:
This section includes the following fundamental concepts of Grafana Alerting:
- [Annotations and labels for alerting rules]({{< relref "annotation-label/_index.md" >}})
- [Alertmanager]({{< relref "alertmanager.md" >}})
- [State and health of alerting rules]({{< relref "state-and-health.md" >}})
- [Evaluating Grafana managed alerts]({{< relref "evaluate-grafana-alerts.md" >}})
- [Annotations and labels for alerting rules]({{< relref "annotation-label/" >}})
- [Alertmanager]({{< relref "alertmanager/" >}})
- [State and health of alerting rules]({{< relref "state-and-health/" >}})
- [Evaluating Grafana managed alerts]({{< relref "evaluate-grafana-alerts/" >}})

View File

@@ -1,4 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/alert-rules/
description: About Grafana alert rules
keywords:
- grafana
@@ -16,7 +18,7 @@ While queries and expressions select the data set to evaluate, a condition sets
An interval specifies how frequently an alerting rule is evaluated. Duration, when configured, indicates how long a condition must be met. The alert rules can also define alerting behavior in the absence of data.
- [Alert rule types]({{< relref "./alert-rule-types.md" >}})
- [Alert instances]({{< relref "./alert-instances.md" >}})
- [Organising alert rules]({{< relref "./organising-alerts.md" >}})
- [Annotation and labels]({{< relref "../annotation-label/_index.md" >}})
- [Alert rule types]({{< relref "alert-rule-types/" >}})
- [Alert instances]({{< relref "alert-instances/" >}})
- [Organising alert rules]({{< relref "organising-alerts/" >}})
- [Annotation and labels]({{< relref "../annotation-label/" >}})

View File

@@ -1,4 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/alert-rules/alert-instances/
description: Learn about Grafana alert instances
keywords:
- grafana

View File

@@ -1,4 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/alert-rules/alert-rule-types/
description: Learn about the different alert rule types
keywords:
- grafana
@@ -16,7 +18,7 @@ Grafana supports several alert rule types, the following sections will explain t
Grafana-managed rules are the most flexible alert rule type. They allow you to create alerts that can act on data from any of your existing data sources.
In additional to supporting any datasource you can also add additional [expressions]({{< relref "../../../panels/query-a-data-source/use-expressions-to-manipulate-data/_index.md" >}}) to transform your data and express alert conditions.
In additional to supporting any datasource you can also add additional [expressions]({{< relref "../../../panels/query-a-data-source/use-expressions-to-manipulate-data/" >}}) to transform your data and express alert conditions.
## Mimir, Loki and Cortex rules

View File

@@ -1,4 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/alert-rules/organising-alerts/
description: Learn how to organize alert rules
keywords:
- grafana

View File

@@ -15,7 +15,7 @@ Grafana includes built-in support for Prometheus Alertmanager. By default, notif
> **Note:** Before v8.2, the configuration of the embedded Alertmanager was shared across organizations. If you are on an older Grafana version, we recommend that you use Grafana alerts only if you have one organization. Otherwise, your contact points are visible to all organizations.
Grafana alerting added support for external Alertmanager configuration. When you add an [Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}), the Alertmanager drop-down shows a list of available external Alertmanager data sources. Select a data source to create and manage alerting for standalone Grafana Mimir or Loki data sources.
Grafana Alerting added support for external Alertmanager configuration. When you add an [Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}), the Alertmanager drop-down shows a list of available external Alertmanager data sources. Select a data source to create and manage alerting for standalone Grafana Mimir or Loki data sources.
{{< figure max-width="40%" src="/static/img/docs/alerting/unified/contact-points-select-am-8-0.gif" max-width="250px" caption="Select Alertmanager" >}}

View File

@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/alerting-rules/alert-annotation-label/
- /docs/grafana/latest/alerting/fundamentals/annotation-label/
- /docs/grafana/latest/alerting/unified-alerting/alerting-rules/alert-annotation-label/
description: Annotations and labels for alerting
keywords:
@@ -15,7 +16,7 @@ weight: 401
# Annotations and labels for alerting rules
Annotations and labels are key value pairs associated with alerts originating from the alerting rule, datasource response, and as a result of alerting rule evaluation. They can be used in alert notifications directly or in [templates]({{< relref "../../contact-points/message-templating/_index.md" >}}) and [template functions]({{< relref "../../contact-points/message-templating/template-functions/" >}}) to create notification contact dynamically.
Annotations and labels are key value pairs associated with alerts originating from the alerting rule, datasource response, and as a result of alerting rule evaluation. They can be used in alert notifications directly or in [templates]({{< relref "../../contact-points/message-templating/" >}}) and [template functions]({{< relref "../../contact-points/message-templating/template-functions/" >}}) to create notification contact dynamically.
## Annotations
@@ -27,6 +28,6 @@ Labels are key-value pairs that contain information about, and are used to uniqu
Before you begin using annotations and labels, familiarize yourself with:
- [Labels in Grafana alerting]({{< relref "how-to-use-labels.md" >}})
- [How label matching works]({{< relref "how-to-use-labels.md" >}})
- [Template variables for alerting rule labels and annotations]({{< relref "variables-label-annotation.md" >}})
- [Labels in Grafana Alerting]({{< relref "how-to-use-labels/" >}})
- [How label matching works]({{< relref "how-to-use-labels/" >}})
- [Template variables for alerting rule labels and annotations]({{< relref "variables-label-annotation/" >}})

View File

@@ -1,22 +1,24 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/annotation-label/how-to-use-labels/
description: Learn about labels and label matchers in alerting
keywords:
- grafana
- alerting
- guide
- fundamentals
title: Labels in Grafana alerting
title: Labels in Grafana Alerting
weight: 117
---
# Labels in Grafana alerting
# Labels in Grafana Alerting
This topic explains why labels are a fundamental component of alerting.
- The complete set of labels for an alert is what uniquely identifies an alert within Grafana alerts.
- The Alertmanager uses labels to match alerts for [silences]({{< relref "../../silences/_index.md" >}}) and [alert groups]({{< relref "../../alert-groups/_index.md" >}}) in [notification policies]({{< relref "../../notifications/_index.md" >}}).
- The Alertmanager uses labels to match alerts for [silences]({{< relref "../../silences/" >}}) and [alert groups]({{< relref "../../alert-groups/" >}}) in [notification policies]({{< relref "../../notifications/" >}}).
- The alerting UI shows labels for every alert instance generated during evaluation of that rule.
- Contact points can access labels to dynamically generate notifications that contain information specific to the alert that is resulting in a notification.
- Labels can be added to an [alerting rule]({{< relref "../../alerting-rules/_index.md" >}}). These manually configured labels are able to use template functions and reference other labels. Labels added to an alerting rule take precedence in the event of a collision between labels.
- Labels can be added to an [alerting rule]({{< relref "../../alerting-rules/" >}}). These manually configured labels are able to use template functions and reference other labels. Labels added to an alerting rule take precedence in the event of a collision between labels.
{{< figure src="/static/img/docs/alerting/unified/rule-edit-details-8-0.png" max-width="550px" caption="Alert details" >}}

View File

@@ -1,4 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/annotation-label/labels-and-label-matchers/
description: Learn about labels and label matchers in alerting
keywords:
- grafana
@@ -11,7 +13,7 @@ weight: 117
# How label matching works
Use labels and label matchers to link alert rules to [notification policies]({{< relref "../../notifications/_index.md" >}}) and [silences]({{< relref "../../silences/_index.md" >}}). This allows for a very flexible way to manage your alert instances, specify which policy should handle them, and which alerts to silence.
Use labels and label matchers to link alert rules to [notification policies]({{< relref "../../notifications/" >}}) and [silences]({{< relref "../../silences/" >}}). This allows for a very flexible way to manage your alert instances, specify which policy should handle them, and which alerts to silence.
A label matchers consists of 3 distinct parts, the **label**, the **value** and the **operator**.

View File

@@ -1,4 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/fundamentals/annotation-label/variables-label-annotation/
description: Learn about labels and label matchers in alerting
keywords:
- grafana
@@ -13,8 +15,8 @@ weight: 117
The following template variables are available when expanding annotations and labels.
| Name | Description |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $labels | The labels from the query or condition. For example, `{{ $labels.instance }}` and `{{ $labels.job }}`. This is unavailable when the rule uses a [classic condition]({{< relref "../../alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule" >}}). |
| $values | The values of all reduce and math expressions that were evaluated for this alert rule. For example, `{{ $values.A }}`, `{{ $values.A.Labels }}` and `{{ $values.A.Value }}` where `A` is the `refID` of the expression. If the rule uses classic conditions, then a combination of the `refID` and position of the condition is used. For example, `{{ $values.A0.Value }}` or `{{ $values.A1.Value }}` |
| $value | The value string of the alert instance. For example, `[ var='A' labels={instance=foo} value=10 ]`. |
| Name | Description |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| $labels | The labels from the query or condition. For example, `{{ $labels.instance }}` and `{{ $labels.job }}`. This is unavailable when the rule uses a [classic condition]({{< relref "../../alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule" >}}). |
| $values | The values of all reduce and math expressions that were evaluated for this alert rule. For example, `{{ $values.A }}`, `{{ $values.A.Labels }}` and `{{ $values.A.Value }}` where `A` is the `refID` of the expression. If the rule uses classic conditions, then a combination of the `refID` and position of the condition is used. For example, `{{ $values.A0.Value }}` or `{{ $values.A1.Value }}`. If a value can return no data then it is recommended to use either `{{ $values.A }}` where the missing value will show `<no value>` or an if statement to check if `A` exists when using `{{ $values.A.Labels }}` and `{{ $values.A.Value }}`. For example, `{{ if $values.A }}{{ $values.A.Value }}{{ end }}`. |
| $value | The value string of the alert instance. For example, `[ var='A' labels={instance=foo} value=10 ]`. |

View File

@@ -24,11 +24,11 @@ Grafana managed alerts query the following backend data sources that have alerti
- built-in data sources or those developed and maintained by Grafana: `Graphite`, `Prometheus`, `Loki`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Monitor`
- community developed backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../../developers/plugins/metadata.md" >}}))
- community developed backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../../developers/plugins/metadata/" >}}))
### Metrics from the alerting engine
The alerting engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../../administration/view-server/internal-metrics.md" >}}). See also, [View alert rules and their current state]({{< relref "../alerting-rules/rule-list.md" >}}).
The alerting engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../../setup-grafana/set-up-grafana-monitoring/" >}}). See also, [View alert rules and their current state]({{< relref "../alerting-rules/rule-list/" >}}).
| Metric Name | Type | Description |
| ------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------- |

View File

@@ -13,24 +13,51 @@ title: State and health of alerting rules
# State and health of alerting rules
The state and health of alerting rules help you understand several key status indicators about your alerts. There are three key components: alert state, alerting rule state, and alerting rule health. Although related, each component conveys subtly different information.
The state and health of alerting rules help you understand several key status indicators about your alerts.
## Alerting rule state
There are three key components: [alert rule state](#alert-rule-state), [alert instance state](#alert-instance-state), and [alert rule health](#alert-rule-health). Although related, each component conveys subtly different information.
- **Normal**: None of the time series returned by the evaluation engine is in a Pending or Firing state.
- **Pending**: At least one time series returned by the evaluation engine is Pending.
- **Firing**: At least one time series returned by the evaluation engine is Firing.
## Alert rule state
## Alert state
An alert rule can be in either of the following states:
- **Normal**: Condition for the alerting rule is **false** for every time series returned by the evaluation engine.
- **Alerting**: Condition of the alerting rule is **true** for at least one time series returned by the evaluation engine. The duration for which the condition must be true before an alert fires, if set, is met or has exceeded.
- **Pending**: Condition of the alerting rule is **true** for at least one time series returned by the evaluation engine. The duration for which the condition must be true before an alert fires, if set, **has not** been met.
- **NoData**: the alerting rule has not returned a time series, all values for the time series are null, or all values for the time series are zero.
- **Error**: Error when attempting to evaluate an alerting rule.
| State | Description |
| ----------- | ---------------------------------------------------------------------------------------------- |
| **Normal** | None of the time series returned by the evaluation engine is in a `Pending` or `Firing` state. |
| **Pending** | At least one time series returned by the evaluation engine is `Pending`. |
| **Firing** | At least one time series returned by the evaluation engine is `Firing`. |
## Alerting rule health
> **Note:** Alerts will transition first to `pending` and then `firing`, thus it will take at least two evaluation cycles before an alert is fired.
- **Ok**: No error when evaluating an alerting rule.
- **Error**: Error when evaluating an alerting rule.
- **NoData**: The absence of data in at least one time series returned during a rule evaluation.
## Alert instance state
An alert instance can be in either of the following states:
| State | Description |
| ------------ | --------------------------------------------------------------------------------------------- |
| **Normal** | The state of an alert that is neither firing nor pending, everything is working correctly. |
| **Pending** | The state of an alert that has been active for less than the configured threshold duration. |
| **Alerting** | The state of an alert that has been active for longer than the configured threshold duration. |
| **NoData** | No data has been received for the configured time window. |
| **Error** | The error that occurred when attempting to evaluate an alerting rule. |
## Alert rule health
An alert rule can have one the following health statuses:
| State | Description |
| ---------- | ---------------------------------------------------------------------------------- |
| **Ok** | No error when evaluating an alerting rule. |
| **Error** | An error occurred when evaluating an alerting rule. |
| **NoData** | The absence of data in at least one time series returned during a rule evaluation. |
## Special alerts for `NoData` and `Error`
When evaluation of an alerting rule produces state `NoData` or `Error`, Grafana Alerting will generate alert instances that have the following additional labels:
| Label | Description |
| ------------------ | ---------------------------------------------------------------------- |
| **alertname** | Either `DatasourceNoData` or `DatasourceError` depending on the state. |
| **datasource_uid** | The UID of the data source that caused the state. |
You can handle these alerts the same way as regular alerts by adding a silence, route to a contact point, and so on.

View File

@@ -15,9 +15,9 @@ weight: 450
# About alerting high availability
The Grafana alerting system has two main components: a `Scheduler` and an internal `Alertmanager`. The `Scheduler` evaluates your [alert rules]({{< relref "../fundamentals/evaluate-grafana-alerts.md" >}}), while the internal Alertmanager manages **routing** and **grouping**.
The Grafana Alerting system has two main components: a `Scheduler` and an internal `Alertmanager`. The `Scheduler` evaluates your [alert rules]({{< relref "../fundamentals/evaluate-grafana-alerts/" >}}), while the internal Alertmanager manages **routing** and **grouping**.
When running Grafana alerting in high availability, the operational mode of the scheduler remains unaffected, and each Grafana instance evaluates all alerts. The operational change happens in the Alertmanager when it deduplicates alert notifications across Grafana instances.
When running Grafana Alerting in high availability, the operational mode of the scheduler remains unaffected, and each Grafana instance evaluates all alerts. The operational change happens in the Alertmanager when it deduplicates alert notifications across Grafana instances.
{{< figure src="/static/img/docs/alerting/unified/high-availability-ua.png" class="docs-image--no-shadow" max-width= "750px" caption="High availability" >}}
@@ -30,4 +30,4 @@ The two types of messages gossiped between Grafana instances are:
The notification logs and silences are persisted in the database periodically and during a graceful Grafana shut down.
For configuration instructions, refer to [enable alerting high availability]({{< relref "enable-alerting-ha.md" >}}).
For configuration instructions, refer to [enable alerting high availability]({{< relref "enable-alerting-ha/" >}}).

View File

@@ -0,0 +1,94 @@
---
aliases:
description:
keywords:
- grafana
- alerting
- images
- notifications
title: Images in notifications
---
# Images in notifications
Images in notifications helps recipients of alert notifications better understand why an alert has fired or resolved by including an image of the panel for the Grafana managed alert rule.
> **Note**: Images in notifications are not available for Grafana Mimir and Loki managed alert rules, or when Grafana is set up to send alert notifications to an external Alertmanager.
If Grafana is set up to send images in notifications, it takes a screenshot of the panel for the Grafana managed alert rule when either of the following happen:
1. The alert rule transitions from pending to firing
2. The alert rule transitions from firing to OK
Images are stored in the [data]({{< relref "../setup-grafana/configure-grafana/#paths" >}}) path and so Grafana must have write-access to this path. If Grafana cannot write to this path then taken screenshots cannot be saved to disk and an error will be logged for each failed screenshot attempt. In addition to storing images on disk, Grafana can also store the image in an external image store such as Amazon S3, Azure Blob Storage, Google Cloud Storage and even Grafana where screenshots are stored in `public/img/attachments`. Screenshots older than `temp_data_lifetime` are deleted from disk but not the external image store. If Grafana is the external image store then screenshots are deleted from `data` but not from `public/img/attachments`.
> **Note**: It is recommended to use an external image store is used for images in notifications as not all contact points supported uploading images from disk. It is also possible that the image on disk is deleted before an alert notification is sent if `temp_data_lifetime` is less than the `group_wait` and `group_interval` options used in Alertmanager.
## Requirements
To use images in notifications, Grafana must be set up to use [image rendering]({{< relref "../setup-grafana/image-rendering/" >}}). It is also recommended that Grafana is set up to upload images to an [external image store]({{< relref "../setup-grafana/configure-grafana/#external_image_storage" >}}) such as Amazon S3, Azure Blob Storage, Google Cloud Storage or even Grafana.
## Configuration
If Grafana has been set up to use [image rendering]({{< relref "../setup-grafana/image-rendering/" >}}) images in notifications can be turned on via the `capture` option in `[unified_alerting.screenshots]`:
# Enable screenshots in notifications. This option requires a remote HTTP image rendering service. Please
# see [rendering] for further configuration options.
capture = true
It is recommended that `max_concurrent_screenshots` is set to a value that is less than or equal to `concurrent_render_request_limit`. The default value for both `max_concurrent_screenshots` and `concurrent_render_request_limit` is `5`:
# The maximum number of screenshots that can be taken at the same time. This option is different from
# concurrent_render_request_limit as max_concurrent_screenshots sets the number of concurrent screenshots
# that can be taken at the same time for all firing alerts where as concurrent_render_request_limit sets
# the total number of concurrent screenshots across all Grafana services.
max_concurrent_screenshots = 5
If Grafana has been set up to use an external image store, `upload_external_image_storage` should be set to `true`:
# Uploads screenshots to the local Grafana server or remote storage such as Azure, S3 and GCS. Please
# see [external_image_storage] for further configuration options. If this option is false, screenshots
# will be persisted to disk for up to temp_data_lifetime.
upload_external_image_storage = false
Restart Grafana for the changes to take affect.
## Supported notifiers
Images in notifications are supported in the following notifiers and additional support will be added in the future:
| Name | Upload images from disk | Include images from URL |
| ----------------------- | ----------------------- | ----------------------- |
| DingDing | No | No |
| Discord | Yes | Yes |
| Email | Yes | Yes |
| Google Hangouts Chat | No | Yes |
| Kafka | No | No |
| Line | No | No |
| Microsoft Teams | No | Yes |
| Opsgenie | No | Yes |
| Pagerduty | No | Yes |
| Prometheus Alertmanager | No | No |
| Pushover | No | No |
| Sensu Go | No | No |
| Slack | No | Yes |
| Telegram | No | No |
| Threema | No | No |
| VictorOps | No | No |
| Webhook | No | Yes |
| WeCom | No | No |
Include images from URL refers to using the external image store.
## Metrics
Grafana provides the following metrics to observe the performance and failure rate of images in notifications.
For example, if a screenshot could not be taken within the expected time (10 seconds) then the counter `grafana_screenshot_failures_total` is updated.
- `grafana_screenshot_cache_hits_total`
- `grafana_screenshot_cache_misses_total`
- `grafana_screenshot_duration_seconds`
- `grafana_screenshot_failures_total`
- `grafana_screenshot_successes_total`
- `grafana_screenshot_upload_failures_total`
- `grafana_screenshot_upload_successes_total`

View File

@@ -1,27 +1,33 @@
---
aliases:
- /docs/grafana/latest/alerting/migrating-alerts/
description: Migrate Grafana alerts
title: Migrate to Grafana alerting
weight: 113
description: Upgrade Grafana alerts
title: Upgrade to Grafana Alerting
weight: 101
---
# Migrate to Grafana alerting
# Upgrade to Grafana Alerting
Grafana alerting is the default for new Cloud, Enterprise, and OSS installations. The new installations will only show the Grafana alerting icon in the left navigation panel.
Grafana Alerting is enabled by default for new installations or existing installations whether or not legacy alerting is configured.
Existing installations that upgrade to v9.0 will have Grafana alerting enabled by default.
> **Note**: We recommend that Grafana Enterprise customers with more than a dozen Grafana dashboard alert rules do not upgrade and remain on legacy alerting for now by [opting out]({{< relref "opt-out/" >}}). If you do want to upgrade to Grafana Alerting, contact customer support.
| Grafana instance upgraded to v 90 | |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cloud | Existing Cloud installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting plugin icon and the new Grafana alerting icon. During upgrade, existing alerts from the Cloud alerting plugin are migrated to Grafana alerting. Once migration is complete, you can access aman manage the older alerts from the new alerting Grafana alerting icon in the navigation panel. The (older) Cloud alerting plugin is uninstalled from your cloud instance. Contact customer support if you **do not wish** to migrate to Grafana alerting for your Cloud stack. If you choose to use legacy alerting, use the You will see the new Grafana alerting icon as well as the old Cloud alerting plugin in the left navigation panel. |
| Enterprise | Existing Enterprise instances using legacy alerting will have both the old (marked as legacy) and the new alerting icons in the navigation panel. During upgrade, existing legacy alerts are migrated to Grafana alerting. If you wish, you can [opt-out]({{< relref "./opt-out.md" >}}) of Grafana alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
| OSS | Existing OSS installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting icon (marked as legacy) and the new Grafana alerting icon. During upgrade, existing legacy alerts are migrated to Grafana alerting. If you wish, you can [opt-out]({{< relref "./opt-out.md" >}}) of Grafana alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
Existing installations that do not use legacy alerting will have Grafana Alerting enabled by default unless alerting is disabled in the configuration.
During migration from legacy alerting to unified alerting, the legacy alerts are updated to the new alerts type, as a result, the user does not lose alerts or alerting data. However, if a user rolls back to legacy alerting after having migrated to unified alerting, they will only get the legacy alerts they had right before migration.
Likewise, existing installations that use legacy alerting will be automatically upgraded to Grafana Alerting unless you have [opted out]({{< relref "opt-out/" >}}) of Grafana Alerting before migration takes place. During the upgrade, legacy alerts are migrated to the new alerts type and no alerts or alerting data are lost.
## Roll back to legacy alerting
Once the upgrade has taken place, you still have the option to [roll back]({{< relref "roll-back/" >}}) to legacy alerting. However, we do not recommend choosing this option. If you do choose to roll back, Grafana will restore your alerts to the alerts you had at the point in time when the upgrade took place. All new alerts and changes made exclusively in Grafana Alerting will be deleted.
Although we encourage you to use Grafana alerting, roll back to legacy alerting is supported in Grafana 9. Rolling back can result in data loss (you will loose all alerts that you created using Grafana alerting). This is applicable to the fresh installation as well as upgraded setups.
> **Note**: Cloud customers, who do not want to upgrade to Grafana Alerting, should contact customer support.
If you have opted out or rolled back, you can always choose to [opt in]({{< relref "opt-in/" >}}) to Grafana Alerting at a later point in time.
The following table provides details on the upgrade for Cloud, Enterprise, and OSS installations and the new Grafana Alerting UI.
| Grafana instance upgraded to 9.0 | |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Cloud | Existing Cloud installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting plugin icon and the new Grafana Alerting icon. During upgrade, existing alerts from the Cloud alerting plugin are migrated to Grafana Alerting. Once migration is complete, you can access and manage the older alerts from the new alerting Grafana Alerting icon in the navigation panel. The (older) Cloud alerting plugin is uninstalled from your cloud instance. Contact customer support if you **do not wish** to migrate to Grafana Alerting for your Cloud stack. If you choose to use legacy alerting, use the You will see the new Grafana Alerting icon as well as the old Cloud alerting plugin in the left navigation panel. |
| Enterprise | Existing Enterprise instances using legacy alerting will have both the old (marked as legacy) and the new alerting icons in the navigation panel. During upgrade, existing legacy alerts are migrated to Grafana Alerting. If you wish, you can [opt-out]({{< relref "opt-out/" >}}) of Grafana Alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
| OSS | Existing OSS installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting icon (marked as legacy) and the new Grafana Alerting icon. During upgrade, existing legacy alerts are migrated to Grafana Alerting. If you wish, you can [opt-out]({{< relref "opt-out/" >}}) of Grafana Alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
> **Note:** Legacy alerting will be deprecated in a future release (v10).

View File

@@ -0,0 +1,23 @@
---
aliases:
- /docs/grafana/latest/alerting/migrating-alerts/disable-alerting/
- /docs/grafana/latest/alerting/disable-alerting/
- /docs/grafana/latest/alerting/unified-alerting/disable-alerting/
description: Disable alerting in Grafana
title: Disable alerting in Grafana
weight: 105
---
# Disable alerting in Grafana
To disable alerting in Grafana entirely (including both legacy and Grafana Alerting), enter the following in your configuration:
```
[alerting]
enabled = false
[unified_alerting]
enabled = false
```
If at any time you want to turn alerting back on, you can opt in.

View File

@@ -1,17 +1,19 @@
---
aliases:
- /docs/grafana/latest/alerting/migrating-alerts/migrating-legacy-alerts/
- /docs/grafana/latest/alerting/migrating-legacy-alerts/
- /docs/grafana/latest/alerting/unified-alerting/opt-in/
description: Migrate legacy dashboard alerts
title: Migrating legacy dashboard alerts
weight: 114
title: Differences and limitations
weight: 106
---
# Migrating legacy dashboard alerts
# Differences and limitations
When Grafana alerting is enabled or Grafana is upgraded to the latest version, existing legacy dashboard alerts migrate in a format compatible with the Grafana alerting. In the Alerting page of your Grafana instance, you can view the migrated alerts alongside any new alerts. This topic explains how legacy dashboard alerts are migrated and some limitations.
When Grafana Alerting is enabled or upgraded to Grafana 9.0 or later, existing legacy dashboard alerts migrate in a format compatible with the Grafana Alerting. In the Alerting page of your Grafana instance, you can view the migrated alerts alongside any new alerts.
This topic explains how legacy dashboard alerts are migrated and some limitations of the migration.
> **Note:** This topic is only relevant for OSS and Enterprise customers. Contact customer support to enable or disable Grafana alerting for your Cloud stack.
> **Note:** This topic is only relevant for OSS and Enterprise customers. Contact customer support to enable or disable Grafana Alerting for your Cloud stack.
Read and write access to legacy dashboard alerts and Grafana alerts are governed by the permissions of the folders storing them. During migration, legacy dashboard alert permissions are matched to the new rules permissions as follows:
@@ -19,9 +21,11 @@ Read and write access to legacy dashboard alerts and Grafana alerts are governed
- If there are no dashboard permissions and the dashboard is under a folder, then the rule is linked to this folder and inherits its permissions.
- If there are no dashboard permissions and the dashboard is under the General folder, then the rule is linked to the `General Alerting` folder, and the rule inherits the default permissions.
> **Note:** Since there is no `Keep Last State` option for [`No Data`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) in Grafana alerting, this option becomes `NoData` during the legacy rules migration. Option "Keep Last State" for [`Error handling`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) is migrated to a new option `Error`. To match the behavior of the `Keep Last State`, in both cases, during the migration Grafana automatically creates a [silence]({{< relref "../silences/_index.md" >}}) for each alert rule with a duration of 1 year.
> **Note:** Since there is no `Keep Last State` option for [`No Data`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) in Grafana Alerting, this option becomes `NoData` during the legacy rules migration. Option "Keep Last State" for [`Error handling`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) is migrated to a new option `Error`. To match the behavior of the `Keep Last State`, in both cases, during the migration Grafana automatically creates a [silence]({{< relref "../silences/" >}}) for each alert rule with a duration of 1 year.
Notification channels are migrated to an Alertmanager configuration with the appropriate routes and receivers. Default notification channels are added as contact points to the default route. Notification channels not associated with any Dashboard alert go to the `autogen-unlinked-channel-recv` route.
Since `Hipchat` and `Sensu` notification channels are no longer supported, legacy alerts associated with these channels are not automatically migrated to Grafana alerting. Assign the legacy alerts to a supported notification channel so that you continue to receive notifications for those alerts.
## Limitations
Since `Hipchat` and `Sensu` notification channels are no longer supported, legacy alerts associated with these channels are not automatically migrated to Grafana Alerting. Assign the legacy alerts to a supported notification channel so that you continue to receive notifications for those alerts.
Silences (expiring after one year) are created for all paused dashboard alerts.

View File

@@ -0,0 +1,25 @@
---
aliases:
- /docs/grafana/latest/alerting/migrating-alerts/opt-in/
- /docs/grafana/latest/alerting/opt-in/
- /docs/grafana/latest/alerting/unified-alerting/opt-in/
description: Opt in to Grafana Alerting
title: Opt in to Grafana Alerting
weight: 104
---
# Opt in to Grafana Alerting
If you have previously disabled alerting in Grafana, or opted out of Grafana Alerting and have decided that you would now like to use Grafana Alerting, you can choose to opt in at any time.
If you have been using legacy alerting up until now your existing alerts will be migrated to the new alerts type and no alerts or alerting data are lost. Even if you choose to opt in to Grafana Alerting, you can roll back to legacy alerting at any time.
To opt in to Grafana Alerting, enter the following in your configuration:
```
[alerting]
enabled = false
[unified_alerting]
enabled = true
```

View File

@@ -1,42 +1,49 @@
---
aliases:
- /docs/grafana/latest/alerting/migrating-alerts/opt-out/
- /docs/grafana/latest/alerting/opt-in/
- /docs/grafana/latest/alerting/unified-alerting/opt-in/
description: Disable Grafana alerts
title: Opt-out of Grafana alerting
weight: 113
description: Opt out of Grafana Alerting
title: Opt out of Grafana Alerting
weight: 102
---
# Opt-out to Grafana alerting in OSS
# Opt out of Grafana Alerting
This topic discusses how to disable Grafana alerting and migrate to legacy dashboard alerting. It also provides guidance on how to enable Grafana alerting once you are ready to migrate to Grafana alerting.
If you have an existing installation, you can opt out of alerting in its entirety or opt out of Grafana Alerting in favor of using legacy alerting.
> **Note:** This topic is only relevant for OSS and Enterprise customers. Contact customer support to enable or disable Grafana alerting for your Grafana Cloud stack.
Existing installations that do not use legacy alerting will have Grafana Alerting enabled by default unless alerting is disabled in the configuration. To keep alerting disabled:
## Before you begin
1. Go to your custom configuration file ($WORKING_DIR/conf/custom.ini).
1. Enter the following in your configuration:
We recommend that you backup Grafana's database. If you are using PostgreSQL as the backend database, then the minimum required version is 9.5.
```
[alerting]
enabled = false
## Opt-out of Grafana alerts
[unified_alerting]
enabled = false
```
To opt-out of Grafana alerts and roll back to legacy dashboard alerting:
3. Restart Grafana for the configuration changes to take effect.
1. In your custom configuration file ($WORKING_DIR/conf/custom.ini), go to the [Grafana alerting]({{< relref "../../administration/configuration.md#unified_alerting" >}}) section.
1. Set the `enabled` property to `false`.
1. For [legacy dashboard alerting]({{< relref "../../administration/configuration.md#alerting" >}}), set the `enabled` flag to `true`.
1. Restart Grafana for the configuration changes to take effect.
If at any time you want to turn alerting back on, you can do so.
> **Note:** Rolling back from Grafana to legacy alerting can result in data loss. This is applicable to the fresh installation as well as upgraded setups.
Existing installations that use legacy alerting will automatically be upgraded to Grafana Alerting unless you have opted-out of Grafana Alerting before migration takes place. During the upgrade, legacy alerts are migrated to the new alerts type and no alerts or alerting data are lost. To keep using legacy alerting and disable Grafana Alerting:
## Opt-in to Grafana alerting
1. Go to your custom configuration file ($WORKING_DIR/conf/custom.ini).
2. Enter the following in your configuration:
When you are ready to make the switch, the following procedure will help you migrate to Grafana alerting.
```
[alerting]
enabled = false
To opt-in to Grafana alerts:
[unified_alerting]
enabled = true
```
1. In your custom configuration file ($WORKING_DIR/conf/custom.ini), go to the [unified alerts]({{< relref "../../administration/configuration.md#unified_alerting" >}}) section.
2. Set the `enabled` property to `true`.
3. Next, for [legacy dashboard alerting]({{< relref "../../administration/configuration.md#alerting" >}}), set the `enabled` flag to `false`.
4. Restart Grafana for the configuration changes to take effect.
Installations that have been migrated to Grafana Alerting can [roll back]({{< relref "roll-back/" >}}) to legacy alerting at any time.
> **Note:** The `ngalert` toggle previously used to enable or disable Grafana alerting is no longer available.
> **Note:** This topic is only relevant for OSS and Enterprise customers. Contact customer support to enable or disable Grafana Alerting for your Grafana Cloud stack.
The `ngalert` toggle previously used to enable or disable Grafana Alerting is no longer available.

View File

@@ -0,0 +1,29 @@
---
aliases:
- /docs/grafana/latest/alerting/migrating-alerts/roll-back/
- /docs/grafana/latest/alerting/opt-in/
- /docs/grafana/latest/alerting/unified-alerting/roll-back/
description: Roll back to legacy alerting
title: Roll back to legacy alerting
weight: 103
---
# Roll back to legacy alerting
Once the upgrade has taken place, you still have the option to roll back to legacy alerting. If you choose to roll back, Grafana will restore your alerts to the alerts you had at the point in time when the upgrade took place.
All new alerts and changes made exclusively in Grafana Alerting will be deleted.
To roll back to legacy alerting, enter the following in your configuration:
```
force_migration = true
[alerting]
enabled = true
[unified_alerting]
enabled = false
```
> **Note**: We do not recommend this option. If you choose to roll back, Grafana will restore your alerts to the alerts you had at the point in time when the upgrade took place. All new alerts and changes made exclusively in Grafana Alerting will be deleted.

View File

@@ -17,13 +17,13 @@ weight: 440
Notification policies determine how alerts are routed to contact points. Policies have a tree structure, where each policy can have one or more child policies. Each policy, except for the root policy, can also match specific alert labels. Each alert is evaluated by the root policy and subsequently by each child policy. If you enable the `Continue matching subsequent sibling nodes` option is enabled for a specific policy, then evaluation continues even after one or more matches. A parent policys configuration settings and contact point information govern the behavior of an alert that does not match any of the child policies. A root policy governs any alert that does not match a specific policy.
You can configure Grafana managed notification policies as well as notification policies for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager.md" >}}).
You can configure Grafana managed notification policies as well as notification policies for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager/" >}}).
## Grouping
{{< figure max-width="40%" src="/static/img/docs/alerting/unified/notification-policies-grouping.png" max-width="650px" caption="Notification policies grouping" >}}
Grouping is a new and key concept of Grafana alerting that categorizes alert notifications of similar nature into a single funnel. This allows you to properly route alert notifications during larger outages when many parts of a system fail at once causing a high number of alerts to fire simultaneously.
Grouping is a new and key concept of Grafana Alerting that categorizes alert notifications of similar nature into a single funnel. This allows you to properly route alert notifications during larger outages when many parts of a system fail at once causing a high number of alerts to fire simultaneously.
For example, suppose you have 100 services connected to a database in different environments. These services are differentiated by the label `env=environmentname`. An alert rule is in place to monitor whether your services can reach the database named `alertname=DatabaseUnreachable`.
@@ -41,7 +41,7 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. Click **Notification policies**.
1. From the **Alertmanager** dropdown, select an external Alertmanager. By default, the Grafana Alertmanager is selected.
1. In the Root policy section, click **Edit** (pen icon).
1. In **Default contact point**, update the [contact point]({{< relref "../contact-points/_index.md" >}}) to whom notifications should be sent for rules when alert rules do not match any specific policy.
1. In **Default contact point**, update the [contact point]({{< relref "../contact-points/" >}}) to whom notifications should be sent for rules when alert rules do not match any specific policy.
1. In **Group by**, choose labels to group alerts by. If multiple alerts are matched for this policy, then they are grouped by these labels. A notification is sent per group. If the field is empty (default), then all notifications are sent in a single group. Use a special label `...` to group alerts by all labels (which effectively disables grouping).
1. In **Timing options**, select from the following options:
- **Group wait** Time to wait to buffer alerts of the same group before sending an initial notification. Default is 30 seconds.
@@ -55,8 +55,8 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. Click **Notification policies**.
1. From the **Alertmanager** dropdown, select an Alertmanager. By default, the Grafana Alertmanager is selected.
1. To add a top level specific policy, go to the **Specific routing** section and click **New specific policy**.
1. In **Matching labels** section, add one or more rules for matching alert labels. For more information, see ["Labels and label matchers"]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers.md" >}}).
1. In **Contact point**, add the [contact point]({{< relref "../contact-points/_index.md" >}}) to send notification to if alert matches only this specific policy and not any of the nested policies.
1. In **Matching labels** section, add one or more rules for matching alert labels. For more information, see ["Labels and label matchers"]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers/" >}}).
1. In **Contact point**, add the [contact point]({{< relref "../contact-points/" >}}) to send notification to if alert matches only this specific policy and not any of the nested policies.
1. Optionally, enable **Continue matching subsequent sibling nodes** to continue matching nested policies even after the alert matched the parent policy. When this option is enabled, you can get more than one notification. Use it to send notification to a catch-all contact point as well as to one of more specific contact points handled by nested policies.
1. Optionally, enable **Override grouping** to specify the same grouping as the root policy. If this option is not enabled, the root policy grouping is used.
1. Optionally, enable **Override general timings** to override the timing options configured in the group notification policy.

View File

@@ -20,7 +20,7 @@ A mute timing is a recurring interval of time when no new notifications for a po
Similar to silences, mute timings do not prevent alert rules from being evaluated, nor do they stop alert instances from being shown in the user interface. They only prevent notifications from being created.
You can configure Grafana managed mute timings as well as mute timings for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager documentation]({{< relref "../fundamentals/alertmanager.md" >}}).
You can configure Grafana managed mute timings as well as mute timings for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager documentation]({{< relref "../fundamentals/alertmanager/" >}}).
## Mute timings vs silences

View File

@@ -2,12 +2,12 @@
title = "Performance considerations"
description = "Understanding alerting performance"
keywords = ["grafana", "alerting", "performance"]
weight = 100
weight = 555
+++
# Alerting performance considerations
Grafana alerting supports multi-dimensional alerting, where one alert rule can generate many alerts. For example, you can configure an alert rule to fire an alert every time the CPU of individual VMs max out. This topic discusses performance considerations resulting from multi-dimensional alerting.
Grafana Alerting supports multi-dimensional alerting, where one alert rule can generate many alerts. For example, you can configure an alert rule to fire an alert every time the CPU of individual VMs max out. This topic discusses performance considerations resulting from multi-dimensional alerting.
Evaluating alerting rules consumes RAM and CPU to compute the output of an alerting query, and network resources to send alert notifications and write the results to the Grafana SQL database. The configuration of individual alert rules affects the resource consumption and, therefore, the maximum number of rules a given configuration can support.
@@ -19,6 +19,6 @@ The following section provides a list of alerting performance considerations.
Each evaluation of an alert rule generates a set of alert instances; one for each member of the result set. The state of all the instances is written to the `alert_instance` table in Grafana's SQL database.
Grafana alerting exposes a metric, `grafana_alerting_rule_evaluations_total` that counts the number of alert rule evaluations. To get a feel for the influence of rule evaluations on your Grafana instance, you can observe the rate of evaluations and compare it with resource consumption. In a Prometheus-compatible database, you can use the query `rate(grafana_alerting_rule_evaluations_total[5m])` to compute the rate over 5 minute windows of time. It's important to remember that this isn't the full picture of rule evaluation. For example, the load will be unevenly distributed if you have some rules that evaluate every 10 seconds, and others every 30 minutes.
Grafana Alerting exposes a metric, `grafana_alerting_rule_evaluations_total` that counts the number of alert rule evaluations. To get a feel for the influence of rule evaluations on your Grafana instance, you can observe the rate of evaluations and compare it with resource consumption. In a Prometheus-compatible database, you can use the query `rate(grafana_alerting_rule_evaluations_total[5m])` to compute the rate over 5 minute windows of time. It's important to remember that this isn't the full picture of rule evaluation. For example, the load will be unevenly distributed if you have some rules that evaluate every 10 seconds, and others every 30 minutes.
These factors all affect the load on the Grafana instance, but you should also be aware of the performance impact that evaluating these rules has on your data sources. Alerting queries are often the vast majority of queries handled by monitoring databases, so the same load factors that affect the Grafana instance affect them as well.

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/silences/
- /docs/grafana/latest/alerting/unified-alerting/silences/
description: Silences
keywords:
@@ -15,14 +16,14 @@ weight: 450
Use silences to stop notifications from one or more alerting rules. Silences do not prevent alert rules from being evaluated. Nor do they not stop alerting instances from being shown in the user interface. Silences only stop notifications from getting created. A silence lasts for only a specified window of time.
Silences do not prevent alert rules from being evaluated. They also do not stop alert instances being shown in the user interface. Silences only prevent notifications from being created.
Silences do not prevent alert rules from being evaluated. They also do not stop alert instances from being shown in the user interface. Silences only prevent notifications from being created.
You can configure Grafana managed silences as well as silences for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager.md" >}}).
You can configure Grafana managed silences as well as silences for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager/" >}}).
See also:
- [About label matching for alert suppression]({{< relref "./label-matching-alert-suppression.md" >}})
- [Create a silence]({{< relref "./create-silence.md" >}})
- [Create a URL to link to a silence form]({{< relref "./linking-to-silence-form.md" >}})
- [Edit silences]({{< relref "./edit-silence.md" >}})
- [Remove silences]({{< relref "./remove-silence.md" >}})
- [How label matching works]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers/" >}})
- [Create a silence]({{< relref "create-silence/" >}})
- [Create a URL to link to a silence form]({{< relref "linking-to-silence-form/" >}})
- [Edit silences]({{< relref "edit-silence/" >}})
- [Remove silences]({{< relref "remove-silence/" >}})

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/silences/create-silence/
- /docs/grafana/latest/alerting/unified-alerting/silences/
description: Add silence alert notification
keywords:
@@ -18,12 +19,12 @@ Silences stop notifications from getting created and last for only a specified w
To add a silence:
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
2. In the Alerting page, click **Silences** to open the page listing existing contact points.
2. On the Alerting page, click **Silences** to open the page listing existing contact points.
3. From Alertmanager drop-down, select an external Alertmanager to create and manage silences for the external data source. Otherwise, keep the default option of Grafana.
4. Click **New Silence** to open the Create silence page.
5. In **Silence start and end**, select the start and end date to indicate when the silence should go into effect and expire.
6. Optionally, in **Duration**, specify how long the silence is enforced. This automatically updates the end time in the **Silence start and end** field.
7. In the **Name** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to. For more information, see [Label matching for alert suppression]({{< relref "./label-matching-alert-suppression.md" >}}).
7. In the **Name** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to. For more information, see [how label matching works]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers/" >}}).
8. In **Comment**, add details about the silence.
9. In **Creator**, enter the name of the silence owner or keep the default owner.
10. Click **Create**.

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/silences/edit-silence/
- /docs/grafana/latest/alerting/unified-alerting/silences/
description: Edit alerting silences
keywords:

View File

@@ -1,26 +0,0 @@
---
aliases:
- /docs/grafana/latest/alerting/unified-alerting/silences/
description: Silences alert notifications
keywords:
- grafana
- alerting
- silence
- mute
title: Label matching and alert suppression
weight: 452
---
# About label matching for alert suppression
Grafana suppresses notifications only for alerts with labels that match all the "Matching Labels" specified in the silence.
- The **Label** field is the name of the label to match. It must exactly match the label name.
- The **Operator** field is the operator to match against the label value. The available operators are:
- `=`: Select labels that are exactly equal to the provided string.
- `!=`: Select labels that are not equal to the provided string.
- `=~`: Select labels that regex-match the provided string.
- `!~`: Select labels that do not regex-match the provided string.
- The **Value** field matches against the corresponding value for the specified **Label** name. How it matches depends on the **Operator** value.

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/silences/linking-to-silence-form/
- /docs/grafana/latest/alerting/unified-alerting/silences/
description: Linking to a silence form
keywords:
@@ -17,4 +18,4 @@ When linking to a silence form, provide the default matching labels and comment
For example, to link to silence form with matching labels `severity=critical` & `cluster!~europe-.*` and comment `Silence critical EU alerts`, create a URL `https://mygrafana/alerting/silence/new?matchers=severity%3Dcritical%2Ccluster!~europe-*&comment=Silence%20critical%20EU%20alert`.
To link to a new silence page for an [external Alertmanager]({{< relref "../../datasources/alertmanager.md" >}}), add a `alertmanager` query parameter with the Alertmanager data source name.
To link to a new silence page for an [external Alertmanager]({{< relref "../../datasources/alertmanager/" >}}), add a `alertmanager` query parameter with the Alertmanager data source name.

View File

@@ -1,5 +1,6 @@
---
aliases:
- /docs/grafana/latest/alerting/silences/remove-silence/
- /docs/grafana/latest/alerting/unified-alerting/silences/
description: Remove alerting silences
keywords:

View File

@@ -1,27 +0,0 @@
---
aliases:
- /docs/grafana/latest/auth/
description: Authentication
title: Authentication
weight: 30
---
# User Authentication Overview
Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user permissions and org memberships.
Here is a table showing all supported authentication providers and the features available for them. [Team sync]({{< relref "../enterprise/team-sync.md" >}}) and [active sync]({{< relref "../enterprise/enhanced_ldap.md#active-ldap-synchronization" >}}) are only available in Grafana Enterprise.
See also, [Grafana Authentication]({{< relref "grafana.md" >}}).
| Provider | Support | Role mapping | Team sync<br> _(Enterprise only)_ | Active sync<br> _(Enterprise only)_ |
| ------------------------------------------------------------------------ | :-----: | :----------: | :-------------------------------: | :---------------------------------: |
| [Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | - |
| [Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | - |
| [Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | - |
| [GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | - |
| [GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | - |
| [Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | - |
| [LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+ |
| [Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | - |
| [SAML]({{< relref "../enterprise/configure-saml/" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - |

View File

@@ -1,20 +0,0 @@
---
aliases:
- /docs/grafana/latest/auth/enhanced_ldap/
description: 'Grafana Enhanced LDAP Integration Guide '
keywords:
- grafana
- configuration
- documentation
- ldap
- active directory
- enterprise
title: Enhanced LDAP Integration
weight: 400
---
# Enhanced LDAP integration
The enhanced LDAP integration adds additional functionality on top of the existing [LDAP integration]({{< relref "ldap.md" >}}).
> Enhanced LDAP integration is only available in Grafana Enterprise. For more information, refer to [Enhanced LDAP integration]({{< relref "../enterprise/enhanced_ldap.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}).

Some files were not shown because too many files have changed in this diff Show More