Compare commits

..

596 Commits

Author SHA1 Message Date
grafana-delivery-bot[bot]
ad2b36eab1 [v11.0.x] Docs: Updates to the Query management in Explore page (#90842)
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-07-23 10:00:00 -05:00
grafana-delivery-bot[bot]
8266543f94 [v11.0.x] Dashboards: Change parseUrlParam to take timezone into account (#89837)
Dashboards: Change datemath parse logic so parsed dates always take timezone into account (#88182)

* Dashboards: Change datemath parse logic so parsed dates always take timezone into account

(cherry picked from commit 2e0175c3eb)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-07-23 14:16:34 +02:00
Andreas Christou
ee76613eae [v11.0.x] Prometheus: Reintroduce Azure audience override feature flag (#90558)
Prometheus: Reintroduce Azure audience override feature flag (#90339)

* Re-add feature flag with deprecation note

* Hide the field in frontend if ff disabled

* Block scope overriding if ff is disabled in backend

- Update promlib to forward logger to extendOptions
- Add warning
- Update tests

* Default toggle to true for now

* Update description

* Update prom tests

* Fix lint

(cherry picked from commit 2616366a0a)

# Conflicts:
#	packages/grafana-data/src/types/featureToggles.gen.ts
#	pkg/services/featuremgmt/registry.go
#	pkg/services/featuremgmt/toggles_gen.csv
#	pkg/services/featuremgmt/toggles_gen.go
#	pkg/services/featuremgmt/toggles_gen.json
#	pkg/tsdb/prometheus/prometheus.go
2024-07-23 11:31:22 +01:00
grafana-delivery-bot[bot]
d6e53930bc [v11.0.x] Docs: Remove duplicate row (chore) (#90766)
Co-authored-by: Nikolaos Pothitos <pothitos@di.uoa.gr>
2024-07-22 13:00:00 -04:00
grafana-delivery-bot[bot]
6135d46155 [v11.0.x] CI: post changelog to forum in release-comms (#90749)
CI: post changelog to forum in release-comms (#90742)

* post changelog to forum in post-release workflow

(cherry picked from commit 9a3672c2bb)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-07-22 18:24:05 +03:00
grafana-delivery-bot[bot]
5ad899207b [v11.0.x] CI: For every release PR created, also push a changelog PR to main (#90703)
CI: For every release PR created, also push a changelog PR to main (#90698)

For every release PR created, also push a changelog PR to main

(cherry picked from commit 9232db2416)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-07-20 01:15:35 +03:00
Serge Zaitsev
f302f9113d [v11.0.x] Chore: update changelog workflow (#90692)
Chore: update changelog workflow (#90608)

* try integrating

* pass tags

* change section order

* use better terminology

* one more attempt

* keep delimiters

* attempt to patch changelog

* quotes, bash quotes...

* use proper content file

* parens around date

* time for a pr

* first checkout, then create user

* add latest input

* git push

* use square brackets

* formatting

* update release-pr

* fix typo

* try sparse checkout

* fetch depth zero

* clean up after changelog generator

(cherry picked from commit f8b092aba6)
2024-07-19 21:42:46 +02:00
grafana-delivery-bot[bot]
1cc55c5249 [v11.0.x] Docs: Replaces Agent with Alloy (#90690)
Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-07-19 14:56:30 -04:00
grafana-delivery-bot[bot]
b027615fc2 [v11.0.x] Docs: added heading identifiers (#90664)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-07-19 09:50:00 -04:00
Isabel Matwawana
5b0dd3869d [v11.0.x] Docs: Refactor time series page - part 1 (#90623)
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-07-18 14:24:39 -04:00
Kevin Minehart
aabf494bc8 [v11.0.x] CI: replace publish image step with a much simpler one that supports LATEST (#90621)
CI: replace publish image step with a much simpler one that supports LATEST (#90498)

* replace publish image step with a much simpler one that supports LATEST

(cherry picked from commit 6a2a6b0fbc)
2024-07-18 12:18:47 -06:00
grafana-delivery-bot[bot]
ab418afc0b [v11.0.x] docs: added video to gauge panel doc (#90602)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-07-18 08:45:28 -04:00
grafana-delivery-bot[bot]
2f6d1acabd [v11.0.x] Docs: replace broken link (#90598)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-07-18 08:13:27 -04:00
Isabel Matwawana
bbab4ac138 [v11.0.x] docs: updated table panel visualization (#90545)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-07-17 11:57:20 -04:00
grafana-delivery-bot[bot]
dcc92c5656 [v11.0.x] Docs: make heading fix in content.ts file (#90510)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
fix in content.ts file (#90473)
2024-07-17 11:55:21 -04:00
grafana-delivery-bot[bot]
8e00d60c06 [v11.0.x] alerting:docs>google chat (#90515)
alerting:docs>google chat (#90257)

* alerting:docs>google chat

* pretty

* weight

* changed weight

* typo

(cherry picked from commit 2186676f55)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-07-17 12:00:21 +02:00
grafana-delivery-bot[bot]
11b6a8e632 [v11.0.x] highlighting the part of the Grafana enterprise section so easir for … (#90502)
highlighting the part of the Grafana enterprise section so easir for … (#90177)

highlighting the part of the Grafana enterprise section so easir for users to find it

(cherry picked from commit 677d2a8b70)

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2024-07-16 20:27:59 +02:00
grafana-delivery-bot[bot]
860eba5e5f [v11.0.x] Docs: Update group to nested tables transformation header to match naming in UI (#90476)
Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
2024-07-16 09:56:15 -04:00
Isabel Matwawana
db8d47d16b [v11.0.x] Docs: Update dashboard URL variables docs (#90444)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2024-07-15 11:45:06 -04:00
grafana-delivery-bot[bot]
a0214b5248 [v11.0.x] docs: updated logs panel visualization (#90398)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-07-12 17:07:59 -04:00
jev forsberg
34330dee06 Merge branch 'v11.0.x' of github.com:grafana/grafana into backport-90146-to-v11.0.x 2024-07-12 15:00:33 -06:00
Jev Forsberg
31a71b37f2 Automation: Verify DEB and RPM packages (#90146)
* baldm0mma/verify_aptyum/ add verify_linux_packages_step

* baldm0mma/verify_aptyum/ add name and image

* baldm0mma/verify_aptyum/ add commands

* baldm0mma/verify_aptyum/ add test pipeline

* baldm0mma/verify_aptyum/ update deps for verify_linux_packages_step

* baldm0mma/verify_aptyum/ update ubuntu image

* baldm0mma/verify_aptyum/ add rockylinux9 image

* baldm0mma/verify_aptyum/ update to verify_linux_DEB_packages_step naming

* baldm0mma/verify_aptyum/ add verify_linux_RPM_packages_step

* baldm0mma/verify_aptyum/ update commands for RPM check

* baldm0mma/verify_aptyum/ update test pipeline

* baldm0mma/verify_aptyum/ update annos

* baldm0mma/verify_aptyum/ update annos

* baldm0mma/verify_aptyum/ update args

* baldm0mma/verify_aptyum/ add arg to verify_linux_RPM_packages_step

* baldm0mma/verify_aptyum/ update oss_steps

* baldm0mma/verify_aptyum/ update deps args

* baldm0mma/verify_aptyum/ update sec hash

* baldm0mma/verify_aptyum/ make format-drone

* baldm0mma/verify_aptyum/ update sec hash

* baldm0mma/verify_aptyum/ update drone

* baldm0mma/verify_aptyum/ update function styles

* baldm0mma/verify_aptyum/ revert changes

* baldm0mma/verify_aptyum/ make drone

* baldm0mma/verify_aptyum/ redirect install logs

* baldm0mma/verify_aptyum/ restructure args

* baldm0mma/verify_aptyum/ update verify_linux_DEB_packages_step

* baldm0mma/verify_aptyum/ make format drone

* baldm0mma/verify_aptyum/ update verify_linux_RPM_packages_step

* baldm0mma/verify_aptyum/ add retry_command

* baldm0mma/verify_aptyum/ make drone

* baldm0mma/verify_aptyum/ update attempts to 10 minutes

* baldm0mma/verify_aptyum/ handle is_preview

* baldm0mma/verify_aptyum/ add doc strings to satisfy starlark linter

* baldm0mma/verify_aptyum/ revert is_preview

* baldm0mma/verify_aptyum/ update to rpm repo download

* baldm0mma/verify_aptyum/ add back logging for rpm

* baldm0mma/verify_aptyum/ revert to working

* baldm0mma/verify_aptyum/ update to use RPM repo

* baldm0mma/verify_aptyum/ remove redirect for logging

* baldm0mma/verify_aptyum/ rem gpg check

* baldm0mma/verify_aptyum/ fromat drone

* baldm0mma/verify_aptyum/ rem comment

* baldm0mma/verify_aptyum/ add single comment on timing

(cherry picked from commit d781ec2daa)
2024-07-12 14:59:53 -06:00
Yuri Tseretyan
44bfe324fe Alerting: Update grafana/alerting to c340765c985a12603bbdfcd10576ddfdbf9dc284 (#90388)
update grafana/alerting to c340765c985a12603bbdfcd10576ddfdbf9dc284
2024-07-12 16:59:18 -04:00
grafana-delivery-bot[bot]
fb56a177e2 [v11.0.x] docs: updated time series panel visualization (#90393)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-07-12 16:45:22 -04:00
grafana-delivery-bot[bot]
bfe0568cb7 [v11.0.x] CI: fix release pr condition (#90304)
CI: fix release pr condition (#90299)

* Release comms should only run when the source PR is

* Fix release-comms workflow condition

(cherry picked from commit a28db90dd5)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-07-10 15:49:42 -05:00
Isabel Matwawana
586df9acb2 [v11.0.x] Docs: Fix link to send report API (#90298)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Davidson Francis <davidsondfgl@gmail.com>
Fix link to send report API (#90242)
2024-07-10 16:18:51 -04:00
grafana-delivery-bot[bot]
f138f7d9e5 [v11.0.x] Docs: Updated the Query inspector page (#90296)
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-07-10 15:09:03 -05:00
grafana-delivery-bot[bot]
744d02f80a [v11.0.x] CI: remove missing dependency from workflow action (#90292)
CI: remove missing dependency from workflow action (#90285)

remove missing dep from workflow action

(cherry picked from commit f411d85749)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-07-10 13:45:00 -05:00
grafana-delivery-bot[bot]
07ea95ff30 [v11.0.x] Azure: Fix default subscription setting (#90262)
* Azure: Fix default subscription setting (#90185)

* Ensure default subscription is set

* Include some info for when the default subscription is required

* Rename settings mock

- Add mockDatasourceSettings function

* Add MonitorConfig test

* Revert "Rename settings mock"

- Avoid issues when backporting

* Remove description

* Remove required field

* Remove unused import

(cherry picked from commit bba26f8e13)

* Add react

---------

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-07-10 14:25:56 +03:00
grafana-delivery-bot[bot]
a2bc385988 [v11.0.x] CI: Sync branch and tag after release (#90205)
CI: Sync branch and tag after release (#89967)

* Added `workflow_call` event to allow other workflows to invoke the "Create or update GitHub release"
* Added `dry_run` to `github-release.yml`
* Added `latest` to `release-pr.yml` which will cause the release PR to add a `release/latest` label.
* Removed unnecessary github app creation from github-release workflow and just used permissions.

(cherry picked from commit 63e715f6a9)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-07-08 14:53:47 -05:00
antonio
0270344a85 alerting/integrations:opsgenie (#90133) (#90165)
* alerting/integrations:opsgenie (#90133)

* alerting/integrations:opsgenie

* Update _index.md

* new line

* all pretty no pity

* numbering

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-opsgenie.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-opsgenie.md

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

* Update configure-opsgenie.md

---------

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

* Update _index.md
2024-07-08 08:27:50 +02:00
antonio
9beb4137f4 alerting/integrations:telegram-update backport PR (#90111)
* alerting/integrations:telegram-update (#90105)

* alerting/integrations:telegram-update

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-telegram.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-telegram.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 8bc8b4b31f)

* Update _index.md
2024-07-06 07:40:26 +02:00
grafana-delivery-bot[bot]
a4dd474846 [v11.0.x] alerting/docs:discord (#90085)
* alerting/docs:discord (#90068)

* alerting/docs:discord

* 'pretty'

(cherry picked from commit d563db63e7)

* Update configure-discord.md

---------

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-07-04 22:36:21 +02:00
grafana-delivery-bot[bot]
67c2621389 [v11.0.x] Docs: Fix typo in text (#90089)
Co-authored-by: ANURAG RANJAN <61619621+1md3nd@users.noreply.github.com>
Fix typo in text (#89325)
2024-07-04 12:12:58 -04:00
grafana-delivery-bot[bot]
ed2b9cb979 [v11.0.x] Update make docs procedure (#90072)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-04 16:28:01 +01:00
grafana-delivery-bot[bot]
f761d429fb Release: Bump version to 11.0.2 (#89690)
bump version 11.0.2

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-04 14:57:48 +02:00
antonio
2777d405a6 alerting:oncall-v11.0.x (#89986) 2024-07-03 14:56:03 +02:00
antonio
eb0122d54a alerting: oncall - Backport 89780 to v11.0.x (#89979)
* alerting:docs>oncall (#89780)

* alerting:docs>oncall

* removed refs

* links

* dot

* all pretty no pity

(cherry picked from commit 9740ce3f58)

* Update configure-oncall.md

* Update configure-oncall.md
2024-07-03 11:35:47 +02:00
grafana-delivery-bot[bot]
344e57da2e [v11.0.x] Docs: Clarify query and tags search in dashboard list (#89969)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-07-02 16:39:48 -04:00
grafana-delivery-bot[bot]
46a0a0490f [v11.0.x] alerting:mute-timings>api (#89942)
alerting:mute-timings>api (#89902)

* alerting:mute-timings>api

* added type go-type

* all pretty

(cherry picked from commit 92ad6c71d1)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-07-02 13:22:29 +02:00
grafana-delivery-bot[bot]
f8b448d14a [v11.0.x] Alerting: Skip loading alert rules for dashboards when disabled (#89904)
Alerting: Skip loading alert rules for dashboards when disabled (#89361)

(cherry picked from commit 781e394118)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-07-01 13:37:35 +03:00
grafana-delivery-bot[bot]
6338cbc33d [v11.0.x] CI: fix release comms workflow (#89788)
CI: fix release comms workflow (#89744)

* add runs-on key

* remove unneeded env key

* use more specific quotes in commands

* fix block syntax

* fix workflow dispatch event check

(cherry picked from commit 16b050f676)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-06-26 17:40:00 +03:00
Fabrizio
1282103984 [v11.0.x] Changelog: Updated changelog for 11.0.1 (#89677)
Changelog: Updated changelog for 11.0.1 (#89673)

Co-authored-by: grafanabot <bot@grafana.com>
(cherry picked from commit a7dd94b788)

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-06-26 10:43:09 +02:00
antonio
7621f18a86 alerting: teams contact point + updates (#89695) (#89703)
* alerting: teams contact point + updates (#89695)

* alerting: teams contact point + updates

* typo

* all pretty no pity

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-email.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-email.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-slack.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-slack.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/configure-slack.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/pager-duty.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier.md

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

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier.md

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

* formatting

* formatting

---------

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

* all pretty no pity

* Update configure-slack.md
2024-06-26 08:50:33 +02:00
grafana-delivery-bot[bot]
a95edacfb8 [v11.0.x] CI: add release comms workflow (#89737)
CI: add release comms workflow (#89718)

* add release comms workflow

* add version input

* Add release-comms workflow to CODEOWNERS

(cherry picked from commit 3ede2dba24)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-06-25 17:14:04 -05:00
Kevin Minehart
e5219818a9 don't use slim image 2024-06-25 08:10:43 -05:00
Kevin Minehart
302831c125 [11.0.x] backport CI / release changes (#89636)
* go mod tidy; go work sync

* CI: Add release-pr workflow (#89005)

* Add release-pr workflow

* update CODEOWNERS

* CI: Trigger release pr workflow when a release is completed (#89062)

* CI: Add bump-version action to the release PR workflow (#89491)

* Automation: Verify release artifacts on grafana.com (#89197)

* baldm0mma/verify_release/ create verify_release_for_download function

* baldm0mma/verify_release/ add name, image, env

* baldm0mma/verify_release/ add initial commands

* baldm0mma/verify_release/ add deps?

* baldm0mma/verify_release/ update location

* baldm0mma/verify_release/ add anno to lib-star

* bald0mma/verify_release/ update func name to verify_grafanacom_step

* baldm0mma/verify_release/ add verify shell script

* baldm0mma/verify_release/ add script content, first attempt

* baldm0mma/verify_release/ add node image to verify_grafanacom_step

* baldm0mma/verify_release/ add gcom secret note

* baldm0mma/verify_release/ add sudo to apt-get

* baldm0mma/verify_release/ add anno

* baldm0mma/verify_release/ add anno to secrets

* baldm0mma/verify_release/ update commands to reflect node env image

* baldm0mma/verify_release/ update annos

* baldm0mma/verify_release/ update tag variable

* baldm0mma/verify release/ add whitespace

* baldm0mma/verify_releases/ update with no bash loops

* baldm0mma/verify_release/ update exit logic

* baldm0mma/verify_release/ remove annos

* baldm0mma/verify_releasse/ resign and build yml

* baldm0mma/verify_release/ remove annos

* baldm0mma/verify_release/ update signature

* baldm0mma/verify_release/ download curl

* baldm0mma/verify_release/ remove temp key folder removal

* baldm0mma/verify_release/ account for artifact download time

* baldm0mma/verify_release/ add anno

* baldm0mma/verify_release/ update location

* baldm0mma/verify_release/ update script

* baldm0mma/verify_release/ make drone

* baldm0mma/verify_release/ update script for oss or ent

* baldm0mma/verify_release/ add promotion option

* baldm0mma/verify_release/ make drone

* Update scripts/drone/events/release.star

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* Update scripts/drone/steps/lib.star

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* Update scripts/drone/steps/lib.star

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* baldm0mma/verify_release/ update drone

* Update scripts/drone/events/release.star

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* baldm0mma/verify_release/ update drone

* Update scripts/drone/steps/lib.star

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* baldm0mma/update drone

* baldm0mma/verify_release/ update path

* baldm0mma/verify_release/ make drone

* baldm0mma/update drone

* Apply suggestions from code review

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* baldm0mma/verify_release/ update for loop to account for failure

* baldm0mma/verify_release/ make drone

* baldm0mma/verify_release/ make format-drone

* baldm0mma/verify_release/ rem unused var

---------

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

* use go 1.21.10

* use 1.21.10 in pkg/build

* upgrade to go 1.22.4

* upgrade swagger

* swagger-gen

* gen openapi3.json

* allow grpc.dial

* fix .bingo/README.md formatting

---------

Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
2024-06-24 15:06:58 -05:00
grafana-delivery-bot[bot]
32511727d0 [v11.0.x] docs: update dashboard-variable docs (#89612)
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-06-24 09:41:31 -04:00
grafana-delivery-bot[bot]
4694d86c1f [v11.0.x] Fix typo in API key (#89592)
Co-authored-by: pmo <philmoses@gmail.com>
Fix typo in API key (#89568)
2024-06-24 10:15:46 +01:00
grafana-delivery-bot[bot]
194189bc74 [v11.0.x] Docs: Fixed broken links on Prometheus data source page (#89513)
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
Fixed broken links on Prometheus data source page (#89485)
2024-06-20 13:41:47 -05:00
grafana-delivery-bot[bot]
4c6d554121 [v11.0.x] Notifications: Do not log email address in error message (#89501)
Notifications: Do not log email address in error message (#89314)

Do not log email address in error message

(cherry picked from commit c2c30c25ed)

Co-authored-by: William Wernert <william.wernert@grafana.com>
2024-06-20 20:13:26 +03:00
grafana-delivery-bot[bot]
d73cc3c919 [v11.0.x] Echo: Suppress errors from frontend-metrics API call failing (#89493)
Echo: Don't notify if PerformanceBackend errors when flushing (#89379)

(cherry picked from commit b43411631b)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2024-06-20 19:23:27 +03:00
grafana-delivery-bot[bot]
09c4094a06 [v11.0.x] Docs: Fix broken link (#89478)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Fix broken link (#89441)
2024-06-20 09:57:36 -04:00
grafana-delivery-bot[bot]
9eb0c11c82 [v11.0.x] AdHocFilters: Use queries in ad hoc filters api calls (#87627)
AdHocFilters: Use queries in ad hoc filters api calls (#87624)

(cherry picked from commit 39aafde8cb)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-06-19 17:28:42 +02:00
grafana-delivery-bot[bot]
50bf2ddf50 [v11.0.x] Docs: correct tracesToLogsV2 example span time shifts (#89425)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: jvaelen <jeroen.vaelen@gmail.com>
2024-06-19 16:07:58 +01:00
grafana-delivery-bot[bot]
3793abded7 [v11.0.x] Document Unix ms format for time type parsing (#89416)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-06-19 17:37:57 +03:00
grafana-delivery-bot[bot]
128c2bd023 [v11.0.x] Fix: Portuguese Brazilian wasn't loading translations (#89374) 2024-06-18 20:24:56 +03:00
antonio
80a3b12db8 backport alerting: notes on label matchers (#89269) (#89327)
* alerting: notes on label matchers (#89269)

* alerting: notes on label matchers

* routing clarification

* Update docs/sources/alerting/alerting-rules/templating-labels-annotations.md

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

* Update docs/sources/alerting/fundamentals/notifications/templates.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 0cc67bb93d)

* Update notification-policies.md

* all pretty no pity
2024-06-18 09:57:43 +02:00
grafana-delivery-bot[bot]
a06f4a9df6 [v11.0.x] Analytics: Fix ApplicationInsights integration (#89300)
Analytics: Fix ApplicationInsights integration (#89299)

change ApplicationInsights backend to use SystemJS to load

(cherry picked from commit 7bb883e375)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-06-17 18:40:41 +03:00
grafana-delivery-bot[bot]
dd294e5004 [v11.0.x] Fix typo in dashboard-variables destinations and also use Grafana Cloud docs if they exist (#89246)
Fix typo in dashboard-variables destinations and also use Grafana Cloud docs if they exist (#89244)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 7b02cfddd8)

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-06-17 08:11:45 +01:00
Jack Baldry
77a5adfc24 [v11.0.x] Use ref URIs with the reference style links (#89240)
Use ref URIs with the reference style links (#89204)

* Use ref URIs with the reference style links

If I remember correctly, the UI needs reference style links so it can substitute its own link destinations.
ref URIs work both inline and as the destination for reference style links.



* Remove unused ref URI



* Remove unused Data frames link



---------


(cherry picked from commit f5468542ba)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2024-06-14 17:26:58 +01:00
grafana-delivery-bot[bot]
1e9553c867 [v11.0.x] BrowseDashboards: Prepend subpath to New Browse Dashboard actions (#89130)
BrowseDashboards: Prepend subpath to New Browse Dashboard actions (#89109)

(cherry picked from commit c58d09fd81)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2024-06-13 18:15:17 +03:00
grafana-delivery-bot[bot]
395d44b0e6 [v11.0.x] DashboardScene: Fixes issue removing override rule (#89134) 2024-06-13 09:42:34 +02:00
Larissa Wandzura
f1416044ca v11.0.x Docs: Updates to the Grafana enterprise data source intro page (#89081)
removed dupe, deprecated plugin
2024-06-12 13:41:53 -05:00
Ivan Ortega Alba
f5fe50d43f [v11.0.x] Scenes: Update to latest 4.23.1 -> 4.24.4 (#88510)
Scenes: Update to latest 4.23.1 -> 4.24.4 (#88485)

- `@grafana/scenes`
  - VizPanelRenderer: Emit SetPanelAttention event [#716](https://github.com/grafana/scenes/pull/716) ([@tskarhed](https://github.com/tskarhed))

- Tobias Skarhed ([@tskarhed](https://github.com/tskarhed))

---

- `@grafana/scenes`
  - Macros: Resolve browser timezone for `$__timezone` [#759](https://github.com/grafana/scenes/pull/759) ([@ivanortegaalba](https://github.com/ivanortegaalba))
  - Variables: Prioritize showing adhoc variable key and operator [#750](https://github.com/grafana/scenes/pull/750) ([@oscarkilhed](https://github.com/oscarkilhed))

- Ivan Ortega Alba ([@ivanortegaalba](https://github.com/ivanortegaalba))
- Oscar Kilhed ([@oscarkilhed](https://github.com/oscarkilhed))

---

- `@grafana/scenes`
  - MultiValueVariable: Fixes issue when value is all value but all value is not enabled [#757](https://github.com/grafana/scenes/pull/757) ([@torkelo](https://github.com/torkelo) [@ivanortegaalba](https://github.com/ivanortegaalba))

- Ivan Ortega Alba ([@ivanortegaalba](https://github.com/ivanortegaalba))
- Torkel Ödegaard ([@torkelo](https://github.com/torkelo))

---

- Plugin.json: update schema reference URL in scenes-app [#754](https://github.com/grafana/scenes/pull/754) ([@leventebalogh](https://github.com/leventebalogh))
- `@grafana/scenes`
  - Allow drag and dropping rows in valid states [#756](https://github.com/grafana/scenes/pull/756) ([@mdvictor](https://github.com/mdvictor))
  - fix: undefined check on RefreshPicker.autoOption [#751](https://github.com/grafana/scenes/pull/751) ([@darrenjaneczek](https://github.com/darrenjaneczek))

- Darren Janeczek ([@darrenjaneczek](https://github.com/darrenjaneczek))
- Levente Balogh ([@leventebalogh](https://github.com/leventebalogh))
- Victor Marin ([@mdvictor](https://github.com/mdvictor))

---

- `@grafana/scenes`
  - SceneFlexLayout: Min width/height option was ignored [#749](https://github.com/grafana/scenes/pull/749) ([@edvard-falkskar](https://github.com/edvard-falkskar))

- Edvard Falkskär ([@edvard-falkskar](https://github.com/edvard-falkskar))

---

(cherry picked from commit c5ae0bbba2)
2024-06-12 11:31:32 +02:00
Eric Leijonmarck
47f5d84c7f [v11.0.x] Auth: Removal of conflicting users check upon creation (#89092)
Auth: Removal of conflicting users check upon creation (#89045)

fix: removal of check for conflicting users
(cherry picked from commit c85d10d6c3)
2024-06-12 10:44:17 +02:00
antonio
06a99d6be3 docs: alerting: manual backport (#88756) (#88848)
* docs: alerting: clarify which panels support alerts (#88756)

* alerting: clarify which panels support alerts

* changed note placement

* small change to link

* added links

* Update docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md

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

* Update docs/sources/alerting/alerting-rules/create-mimir-loki-managed-rule.md

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

* Update docs/sources/panels-visualizations/visualizations/_index.md

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

* Update docs/sources/panels-visualizations/visualizations/time-series/index.md

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

* Update docs/sources/panels-visualizations/visualizations/time-series/index.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 000b5dd6ea)

* removed markers

* removed markers
2024-06-12 08:58:45 +02:00
grafana-delivery-bot[bot]
a7f97d1718 [v11.0.x] feat: Updated whats-new-in-v11-0.md with release video (#89070)
feat: Updated whats-new-in-v11-0.md with release video (#87953)

Update whats-new-in-v11-0.md

Grafana 11 release video added.

(cherry picked from commit 465efbf802)

Co-authored-by: Jay Clifford <45856600+Jayclifford345@users.noreply.github.com>
2024-06-11 16:05:17 -04:00
Yuri Tseretyan
4fbe9604ef [v11.0.x] Alerting: Fix rule storage to filter by group names using case-sensitive comparison (#89063)
Alerting: Fix rule storage to filter by group names using case-sensitive comparison (#88992)

* add test for the bug
* remove unused struct
* update db store to post process filters by group using go-lang's case-sensitive string comparison

--------

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
# Conflicts:
#	pkg/services/ngalert/store/alert_rule.go
#	pkg/services/ngalert/store/alert_rule_test.go
2024-06-11 15:59:45 -04:00
grafana-delivery-bot[bot]
0182f932e0 [v11.0.x] Added Grafana Play Links to Panel visualization docs (#89068)
Added Grafana Play Links to Panel visualization docs (#88995)

* Update index.md on Node panels to Grafana Play link

* Update index.md add Traces docs link to Grafana Play

* Update index.md News documentation link to Grafana Play

* Update index.md Alert list documentation link to Grafana Play

* Update index.md Alert list fixed missing link

* Update index.md Fixed title

* Update index.md Trying code fix

* Ran prettier command

* Matched link text to dashboard titles

* Replaced URL with ref URI key

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 404617b33d)

Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-06-11 15:17:24 -04:00
grafana-delivery-bot[bot]
c31fd320f0 [v11.0.x] Update index.md for Node, adding video to docs (#89000)
Update index.md for Node, adding video to docs (#88941)

(cherry picked from commit c98b7a712f)

Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-06-11 13:57:53 -04:00
grafana-delivery-bot[bot]
100ea77047 [v11.0.x] RBAC: List only the folders that the user has access to (#89015)
RBAC: List only the folders that the user has access to (#88599)

only check folder permissions when listing folders

(cherry picked from commit 095ca66d9f)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-06-11 11:20:30 +03:00
grafana-delivery-bot[bot]
03caca4576 [v11.0.x] DashboardScene: Fixes lack of re-render when updating field override properties (#88985)
DashboardScene: Fixes lack of re-render when updating field override properties (#88796)

* DashboardScene: Fixes lack of re-render when updating field override properties

* Added unit test

(cherry picked from commit db25886f9c)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-06-11 08:19:27 +02:00
grafana-delivery-bot[bot]
c4a4843de6 [v11.0.x] Transformations: Keep original field.labels.name when joining frames (#88982)
Transformations: Keep original `field.labels.name` when joining frames (#88873)

(cherry picked from commit 89a0bec208)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-06-10 10:41:09 -05:00
grafana-delivery-bot[bot]
a3915b148f [v11.0.x] User: add second migration for lowercasing login/email of users (#88917)
User: add second migration for lowercasing login/email of users (#88915)

(cherry picked from commit 39bd13f877)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2024-06-10 10:42:47 +02:00
grafana-delivery-bot[bot]
706577c0b0 [v11.0.x] Chore: Fix test to retry fetching provisioned dashboard until is in place (#88937)
Chore: Fix test to retry fetching provisioned dashboard until is in place (#85408)

Retry fetching provisioned dashboard until is in place

(cherry picked from commit 88be09420c)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2024-06-07 20:10:46 +03:00
Karl Persson
718994af44 [v11.0.x] User: Fix GetByID (#88894)
User: Fix GetByID (#86282)

* Auth: Remove unused lookup param

* Remove case sensitive lookup for GetByID

(cherry picked from commit 8520892923)
2024-06-07 13:55:45 +02:00
grafana-delivery-bot[bot]
ca5e8271fa [v11.0.x] added youtube video link (#88903)
added youtube video link (#88901)

* added youtube video link

* Update index.md

(cherry picked from commit 5095ea84b2)

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2024-06-07 13:02:31 +02:00
grafana-delivery-bot[bot]
dc0bddadae [v11.0.x] Docs: Updating documentation for angular_support_enabled (#88852)
Docs: Updating documentation for `angular_support_enabled` (#88840)

fixing docs

(cherry picked from commit 9704186017)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2024-06-07 11:13:57 +02:00
Andreas Christou
fc8adc1cc2 [v11.0.x] AzureMonitor: Fix bug detecting app insights queries (#88787)
AzureMonitor: Fix bug detecting app insights queries (#88572)

Make regexp case insensitive

(cherry picked from commit f787418e4b)

# Conflicts:
#	pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource_test.go
2024-06-06 15:03:42 -04:00
grafana-delivery-bot[bot]
aa97cbdb03 [v11.0.x] DashboardScene: Fixes inspect with transforms issue (#88862)
DashboardScene: Fixes inspect with transforms issue (#88843)

* DashboardScene: Fixes inspect with transforms issue

* Update

(cherry picked from commit bdfa96a6d3)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-06-06 19:33:05 +03:00
grafana-delivery-bot[bot]
cf15409360 [v11.0.x] Chore: Removing editor.html from angular patterns (#88846)
Chore: Removing editor.html from angular patterns (#88845)

Removing editor.html from angular patterns

(cherry picked from commit 1909ad6fa8)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2024-06-06 16:31:44 +03:00
grafana-delivery-bot[bot]
d71b61a77a [v11.0.x] Azure: Update resource group (#88766)
Azure: Update resource group (#88690)

Update azure e2e tests

(cherry picked from commit 17f03882d4)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-06-05 16:53:13 +03:00
Ieva
dde92e457c [v11.0.x] Access Control: Clean up permissions for deprovisioned data sources (#88700)
merge
2024-06-05 10:49:41 +03:00
grafana-delivery-bot[bot]
02699ea1af [v11.0.x] DashboardScene: Fixes issue with some query editors to not adapt to width changes (#88738)
DashboardScene: Fixes issue with some query editors to not adapt to width changes (#88718)

DashboardScene: Fixes issue with panel editor causing moncao query editors to not adapt to width changes
(cherry picked from commit e735573852)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-06-05 09:34:29 +03:00
grafana-delivery-bot[bot]
3d34909a0e [v11.0.x] Plugins: Don't forward cookies for app plugins (#88706)
Plugins: Don't forward cookies for app plugins (#88663)

(cherry picked from commit 0af2931672)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2024-06-04 18:12:48 +03:00
grafana-delivery-bot[bot]
ac532c6ebb [v11.0.x] Update proxy/index.md (#88703)
Update proxy/index.md (#88261)

* Update index.md

Specify proxy support is for SOCKS5 in Title. So it is clear this is not for TCP or HTTP proxy

* update title to match header

(cherry picked from commit 36c66e3e94)

Co-authored-by: Kyle Hounslow <7102778+kylehounslow@users.noreply.github.com>
2024-06-04 09:13:04 -05:00
grafana-delivery-bot[bot]
0f436c5bdf [v11.0.x] SSE: Fix threshold unmarshal to avoid panic (#88651)
SSE: Fix threshold unmarshal to avoid panic (#88521)

(cherry picked from commit 043e19afb5)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-06-04 08:55:21 -04:00
grafana-delivery-bot[bot]
0ff6442e45 [v11.0.x] Loki: Fix editor history in wrong order (#88669)
Loki: Fix editor history in wrong order (#88666)

(cherry picked from commit 2fb63cd2e6)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-06-04 12:57:14 +03:00
Señor Performo - Leandro Melendez
b1b3bd0089 Docs: Add Installation YouTube Videos to documentation pages. (#88465) (#88649)
* Added Installation video index.md

* Update index.md adding video for Debian and Ubuntu installs

* Update index.md adding install video in macOS

* Update index.md adding video to install RHEL or Fedora

* Update index.md adding install video for SUSE

* Update index.md adding video for Windows installer

* Update _index.md Updated from suggestions

* Update index.md from suggestions

* Update index.md from suggestions

* Update index.md from suggestions

* Update index.md from suggestions

* Update index.md from suggestions

* Update docs/sources/setup-grafana/installation/_index.md

Applied Chris' suggestion

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

* Update docs/sources/setup-grafana/installation/debian/index.md

Applied Chris' suggestion

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

* Update docs/sources/setup-grafana/installation/mac/index.md

Applied Chris' suggestion

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

* Update docs/sources/setup-grafana/installation/redhat-rhel-fedora/index.md

Applied Chris' suggestion

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

* Update docs/sources/setup-grafana/installation/suse-opensuse/index.md

Applied Chris' suggestion

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

* Update docs/sources/setup-grafana/installation/windows/index.md

Applied Chris' suggestion

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

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 63ca00dd10)
2024-06-03 13:55:10 -05:00
Jack Baldry
ea4b964a3b [v11.0.x] [docs/sources/datasources] Replace docs/reference shortcode with ref URIs (#88053) 2024-06-03 13:27:04 +01:00
grafana-delivery-bot[bot]
d64ecce7db [v11.0.x] [docs/sources/datasources/prometheus/configure-prometheus-data-source] Replace outdated text content in the Grafana UI with updated content (#88598)
Co-authored-by: nerda-codes <87707325+nerda-codes@users.noreply.github.com>
2024-06-03 10:46:33 +01:00
grafana-delivery-bot[bot]
09ff329cfb [v11.0.x] Docs: add pinning of terraform for migration (#88583)
Docs: add pinning of terraform for migration (#88528)

* Docs: update with terraform version

* added the terraform version pinning

* formatting

* Update docs/sources/administration/api-keys/index.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* formatting

---------

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

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2024-06-02 13:34:50 +02:00
grafana-delivery-bot[bot]
cb94651fa1 [v11.0.x] Docs: Update Okta docs (#88502)
Docs: Update Okta docs (#88352)

* Update Okta docs

* Fixes

* Improvements

(cherry picked from commit 8a98e29fba)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2024-05-30 15:14:00 +02:00
grafana-delivery-bot[bot]
e4051d5fd6 [v11.0.x] LibraryPanels/RBAC: Ignore old folder permission check when deleting/patching lib panel (#88493)
LibraryPanels/RBAC: Ignore old folder permission check when deleting/patching lib panel (#88422)

* LibraryPanels/RBAC: Ignore old folder permission check when deleting lib panel

* Same for patching

(cherry picked from commit 8f45003192)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-05-30 14:40:17 +03:00
grafana-delivery-bot[bot]
284aa73772 [v11.0.x] DashboardAI: Reformat prompts to have a single system prompt (#88477) 2024-05-30 03:58:26 -06:00
grafana-delivery-bot[bot]
e409949710 [v11.0.x] Dashboards: Correctly display Admin access to dashboards in the UI (#88473)
Dashboards: Correctly display Admin access to dashboards in the UI (#88439)

* include folder wildcard scope in dash permission inheritance

* Update pkg/services/accesscontrol/ossaccesscontrol/permissions_services.go

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

---------

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
(cherry picked from commit 1c2ae2c72d)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-05-30 10:26:38 +03:00
grafana-delivery-bot[bot]
ce05184108 [v11.0.x] LogsTable: Fix default sort by time (#88434)
LogsTable: Fix default sort by time (#88398)

(cherry picked from commit f81e8e04aa)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-05-29 18:03:07 +03:00
Ivan Ortega Alba
f23dfb23cf [v11.0.x] Discard the entire panel if is newly added (#88403)
Dashboards: Discard the entire panel if it is newly added (#87562)

(cherry picked from commit 66950c96f6)
2024-05-29 11:11:21 +02:00
grafana-delivery-bot[bot]
a248d62a69 [v11.0.x] Update make docs procedure (#88407)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-29 09:16:51 +01:00
grafana-delivery-bot[bot]
852a51ef82 [v11.0.x] Docs: Update Grafana Teams documentation (#88401)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-05-29 07:53:40 +01:00
grafana-delivery-bot[bot]
6c4cbf413a [v11.0.x] Dashboards: Detect unsaved folder change (#88333)
Dashboards: Detect unsaved folder change (#88293)

(cherry picked from commit c0881cc970)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-05-27 13:06:05 +01:00
Gilles De Mey
9cdfa6bf8a [v11.0.x] Alerting: Fix rules deleting when reordering whilst filtered (#88285)
Alerting: Fix rules deleting when reordering whilst filtered (#88221)

(cherry picked from commit ebdad80dfa)

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-05-24 15:24:33 +03:00
grafana-delivery-bot[bot]
0d5818a717 [v11.0.x] Alerting docs: adds note on provisioning to main page (#88265)
Alerting docs: adds note on provisioning to main page (#88264)

(cherry picked from commit 01d5744433)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-05-24 10:47:48 +03:00
Isabel Matwawana
b991b842de [v11.0.x] Docs: Rename variables pages (#88252)
Docs: Rename variables pages (#87844)

* Renamed Manage variables page to Add variables

* Renamed Inspect variables page to Manage and inspect variables

* Updated H1 on Add variables

* Moved Manage variables content to from Add varibles page to Manage and inspect variables page and updated text to fit

* Updated link style to ref URIs in Manage and inspect variables

(cherry picked from commit 197ce3042d)
2024-05-23 13:54:29 -04:00
grafana-delivery-bot[bot]
d14a11c647 [v11.0.x] Alerting docs: Fix Alertmanager canonical setting (#88246)
Alerting docs: Fix `Alertmanager` canonical setting (#88236)

(cherry picked from commit 643018f94a)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2024-05-23 18:06:06 +02:00
Jack Baldry
1fee584bf6 [v11.0.x] [docs/sources/fundamentals] Replace docs/reference shortcode with ref URIs (#88055) 2024-05-23 16:01:10 +01:00
grafana-delivery-bot[bot]
5d8ba98ad2 [v11.0.x] Docs: Fixed heading level (#88190)
Docs: Fixed heading level (#88188)

Fixed heading level

(cherry picked from commit 2fd51bb672)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-22 15:50:17 -04:00
Jack Baldry
9511471b0c [v11.0.x] Ensure all Panels and visualizations pages have /docs/grafana links too (#88167) 2024-05-22 15:40:13 +01:00
Jack Baldry
14de3399f3 [v11.0.x] [docs/sources/dashboards] Replace docs/reference shortcode with ref URIs (#88060) 2024-05-22 15:39:10 +01:00
grafana-delivery-bot[bot]
a89e333569 [v11.0.x] docs: update alert list visualization (#88175)
docs: update alert list visualization (#87815)

* docs: update alert list visualization

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* fix: linting errors

* docs: add youtube video

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 285567573e)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-05-22 09:57:41 -04:00
grafana-delivery-bot[bot]
58fe44ef9f [v11.0.x] docs: update dashboard list visualization (#88148)
docs: update dashboard list visualization (#87494)

* docs: update dashboard list visualization

* docs: add youtube video

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Ran prettier

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit fa319f36fb)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-05-21 14:14:15 -04:00
grafana-delivery-bot[bot]
0f10658901 [v11.0.x] Alerting/Annotations: Return nothing from historian store if filtering by tags (#88140)
Alerting/Annotations: Return nothing from historian store if filtering by tags and matchAny is false (#85488)

* Return nothing from historian store if filtering by tag

(cherry picked from commit cad8190a91)

Co-authored-by: William Wernert <william.wernert@grafana.com>
2024-05-21 19:33:31 +03:00
Jack Baldry
b6acbcbcd7 [v11.0.x] [docs/sources/panels-visualizations] Replace docs/reference shortcode with ref URIs (#88056) 2024-05-21 16:16:30 +01:00
Jack Baldry
92bfa39ca8 [v11.0.x] [docs/sources/alerting] Replace docs/reference shortcode with ref URIs (#88054) 2024-05-21 13:41:53 +01:00
grafana-delivery-bot[bot]
e0fde11aba [v11.0.x] Docs/usman plugin mgmt (#88116)
Co-authored-by: David Harris <david.harris@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
Co-authored-by: Joe Perez <joseph.perez@grafana.com>
Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2024-05-21 10:01:44 +01:00
grafana-delivery-bot[bot]
2a650ff121 [v11.0.x] DashboardScene: Re-enabled skipped scenes e2e tests due to bugs (#88100)
DashboardScene: Re-enabled skipped scenes e2e tests due to bugs (#87723)

* enabled skipped tests

* adjust to wait for loading indicator

* adjust typos

* adjust e2e workflow for test PR run

* restore workflow

* adjust workflow for test run

* restore workflow to sheduled runs

(cherry picked from commit e324a346f6)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-05-20 20:56:01 +03:00
Jack Baldry
e8dd634e25 [v11.0.x] [docs/sources/developers] Replace docs/reference shortcode with ref URIs (#88063) 2024-05-20 16:29:35 +01:00
grafana-delivery-bot[bot]
152cce216a [v11.0.x] Alerting: Fix scheduler to sort rules before evaluation (#88021)
* Alerting: Fix scheduler to sort rules before evaluation (#88006)

sort rules scheduled for evaluation to make sure that the order is stable between evaluations.
This is especially important in HA mode.

(cherry picked from commit 05d6813a09)

* use old generators

---------

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-05-20 17:51:31 +03:00
grafana-delivery-bot[bot]
f622370b7a [v11.0.x] Alerting: Fix typo in JSON response for rule export. (#88090)
Alerting: Fix typo in JSON response for rule export. (#88028)

(cherry picked from commit 8c2a382788)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-05-20 16:58:18 +03:00
grafana-delivery-bot[bot]
e49e614893 [v11.0.x] CloudMonitoring: Fix query type selection issue (#88024)
CloudMonitoring: Fix query type selection issue (#87990)

* Use deepEqual to ensure migratedQuery is only returned when query is unchanged

* Add selectors for query editors

* Add more tests for query editor component

* Clarifying comments

* Fix how state is set

* Simplify query editor loading and migration

(cherry picked from commit 58d382e5dd)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-05-17 21:26:10 +03:00
grafana-delivery-bot[bot]
2c2835b1f4 [v11.0.x] Snapshots: Render Dashboard controls in Scenes View (#87993)
Snapshots: Render Dashboard controls in Scenes View (#87972)

(cherry picked from commit 5ce2d4e1a7)

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2024-05-16 14:35:34 -03:00
grafana-delivery-bot[bot]
2ae78d1a88 [v11.0.x] Azure: Fix for username assertion (#87999)
Azure: Fix for username assertion (#87853)

Fix for username assertion

- Allow setting username assertion in INI
- Correctly set the azsettings value
- Update tests

(cherry picked from commit edae5fc791)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-05-16 20:06:51 +03:00
grafana-delivery-bot[bot]
3ba9960de1 [v11.0.x] grafana fundamentals fix (#87992)
grafana fundamentals fix (#87975)

* grafana fundamentals fix

* pretty face

(cherry picked from commit c7d2a7a19c)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-05-16 17:00:32 +02:00
grafana-delivery-bot[bot]
3182c0ec30 [v11.0.x] Docs: public dashboards fixes (#87983)
Docs: public dashboards fixes (#87870)

* Made minor style fixes

* Converted docs ref links to ref URIs and updated note style to admonitions

* Fixed link text and version syntax

(cherry picked from commit 80e2af5d25)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-16 09:36:07 -04:00
grafana-delivery-bot[bot]
f7660d1bbd [v11.0.x] Update make docs procedure (#87970)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-16 12:10:15 +01:00
antonio
a347535aaa manual backport (#87955) (#87963)
* alerting: contact points - links (#87955)

* alerting: contact points - links

* fundamentals: alerting instructions update

* updated steps

* prettier

(cherry picked from commit 086def3f57)

* pretty
2024-05-16 12:36:44 +02:00
grafana-delivery-bot[bot]
87a66a10b5 [v11.0.x] Docs: Add annotated image and updated feature overview list (#87940)
Docs: Add annotated image and updated feature overview list (#87833)

Added annotated image and updated feature overview list

(cherry picked from commit 47b42c9d42)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-15 16:43:27 -04:00
grafana-delivery-bot[bot]
74b0f223f3 [v11.0.x] Alerting: use logger with same context within rule scheduling loop (#87936)
Alerting: use logger with same context within rule scheduling loop (#87934)

(cherry picked from commit f410c7fca1)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-05-15 16:33:32 -04:00
grafana-delivery-bot[bot]
f38c31135e [v11.0.x] Update helm docs - removed enterprise tag from product labels (#87928)
Update helm docs - removed enterprise tag from product labels (#87922)

Update index.md

(cherry picked from commit 9f543fa8d6)

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2024-05-15 10:25:49 -05:00
grafana-delivery-bot[bot]
c737501cea [v11.0.x] DashboardScene: Fixes checkbox orienation in save forms (#86490)
DashboardScene: Fixes checkbox orienation in save forms (#86408)

(cherry picked from commit 1d513f66b8)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-05-15 16:14:46 +02:00
grafana-delivery-bot[bot]
2133f0dce5 [v11.0.x] alerting: Improve documentation regarding linking and visualizing alert rules in dashboards (#87918)
alerting: Improve documentation regarding linking and visualizing alert rules in dashboards (#87892)

* commit 4

* commit 5

(cherry picked from commit e2f062d16d)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-05-15 16:05:39 +02:00
antonio
a24fb654ec Manual Backport #87811 to v11.0.x (#87887)
* alerting: adding links to get-started tutorial (#87811)

* alerting: adding links to get-started tutorial

* Update index.md

* Update create-grafana-managed-rule.md

* Update _index.md

* Update _index.md

* Update docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md

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

* Update docs/sources/alerting/fundamentals/_index.md

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

* pretty

---------

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

* pretty

* fixed heading/title issue
2024-05-15 15:52:12 +02:00
grafana-delivery-bot[bot]
592339b5f5 [v11.0.x] PublicDashboards: Public dashboard refreshed when access token changes (#87916)
PublicDashboards: Public dashboard refreshed when access token changes (#87913)

(cherry picked from commit a6d64c6ed5)

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2024-05-15 16:37:24 +03:00
Piotr Jamróz
a0032fcb29 [v11.0.x] Explore: lookup datasource by name when present in legacy URLs (#85222) (#87806)
Explore: lookup datasource by name when present in legacy URLs (#85222)

* [explore] lookup datasource by name when present in legacy compact URLs

* update unit test

* prettier fix

---------

Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
(cherry picked from commit 867d36fe59)

Co-authored-by: Christian Briones <cwbriones@gmail.com>
2024-05-15 15:10:01 +02:00
Scott Lepper
39720ee0dd [sql expressions] fix: use ast to read tables (#87867) - backport (#87875)
* add flatten
* add escape
2024-05-15 07:52:04 -04:00
Torkel Ödegaard
26488cd3eb [v11.0.x] DashboardScene: Skip panel repeats when values are the same (#87896)
DashboardScene: Skip panel repeats when values are the same (#87788)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit 699c5bfe79)
2024-05-15 13:19:34 +02:00
grafana-delivery-bot[bot]
99391d2cb0 [v11.0.x] Docs: Adds video embed for the Understanding Dashboards youtube video (#87865)
Docs: Adds video embed for the Understanding Dashboards youtube video (#87449)

* Adds video embed for the Understanding Dashboards youtube video

* Moved video to Use dashboards page

---------

Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 1e2c58fc80)

Co-authored-by: Tom Glenn <289945+tomglenn@users.noreply.github.com>
2024-05-14 15:13:44 -04:00
grafana-delivery-bot[bot]
e730ea618b [v11.0.x] DashboardScene: Default hoverHeaderOffset to 0 (#87838)
DashboardScene: Default `hoverHeaderOffset` to 0 (#87561)

* remove hoverHeaderOffsetBehavior and force offset to 0

* force headerHoverOffset in addPanel flow

(cherry picked from commit 5f147644d4)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-05-14 21:28:30 +03:00
grafana-delivery-bot[bot]
e5237e5ac2 [v11.0.x] Alerting: Do not store series values from past evaluations in state manager for no reason (#87845)
Alerting: Do not store series values from past evaluations in state manager for no reason (#87525)

Do not store previous execution results on states

(cherry picked from commit a6a9ab4008)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2024-05-14 12:56:14 -05:00
grafana-delivery-bot[bot]
ae9743b722 [v11.0.x] postgres/mysql: improve macro docs (#87824)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-05-14 16:04:52 +01:00
grafana-delivery-bot[bot]
f4e42483c7 [v11.0.x] Update JWT auth page (#87830)
Co-authored-by: Ryan Crutchfield <30603182+rjcrutch@users.noreply.github.com>
2024-05-14 16:01:50 +01:00
grafana-delivery-bot[bot]
891f514089 [v11.0.x] [DOC] Adds missing link to Pyroscope core data source (#87620)
Co-authored-by: Christian Simon <simon@swine.de>
2024-05-14 15:06:50 +01:00
grafana-delivery-bot[bot]
d4e3ac9cc5 [v11.0.x] docs: add dashboard list play link (#87817)
docs: add dashboard list play link (#87807)

(cherry picked from commit 5678012f0f)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-14 10:03:01 -04:00
Torkel Ödegaard
8083c41983 [v11.0.x] DashboardScene: Fixing major row repeat issues (#87800)
DashboardScene: Fixing major row repeat issues (#87539)

* DashboardScene: Fixing major row repeat issues

* Fixing edit scope

* Use dashboard variableDependendency to notify row repeat behaviors

* update scenes lib

* Do not repeat if values are the same

* Update public/app/features/dashboard-scene/scene/DashboardScene.tsx

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Updated scenes

* Update

* Update

* Do not render row actions for repeated rows

* Fixed e2e

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit 9cd7c87b48)
2024-05-14 13:40:45 +02:00
Horst Gutmann
009e6c1cb8 Revert "ci(docs): Disable tag requirement for pushing release docs" (#85225) 2024-05-14 11:19:15 +01:00
grafana-delivery-bot[bot]
252b2110e6 Release: Bump version to 11.0.1 (#87792)
"Release: Updated versions in package to 11.0.1"

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-05-14 11:14:49 +02:00
grafana-delivery-bot[bot]
83b9528bce [v11.0.x] Changelog: Updated changelog for 11.0.0 (#87791)
Changelog: Updated changelog for 11.0.0 (#87790)

Co-authored-by: grafanabot <bot@grafana.com>
(cherry picked from commit da800a026f)

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-05-14 10:49:21 +02:00
grafana-delivery-bot[bot]
b12ad73c52 [v11.0.x] docs: Update link to Loki Get Started (#87776)
docs: Update link to Loki Get Started (#87772)

(cherry picked from commit 56054e2e87)

Co-authored-by: J Stickler <julie.stickler@grafana.com>
2024-05-13 16:07:47 -05:00
grafana-delivery-bot[bot]
016a26c6ad [v11.0.x] Scenes: Fix snapshot rendering (#87770)
Scenes: Fix snapshot rendering (#87769)

(cherry picked from commit 56766abcc8)

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2024-05-13 22:32:59 +03:00
grafana-delivery-bot[bot]
0129c26d50 [v11.0.x] Docs: update headings and add release info (#87757)
Docs: update headings and add release info (#87058)

* Updated headings and to align with release life cycle stages and adding release info

* Update generated files

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

---------

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

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-13 15:23:58 -04:00
grafana-delivery-bot[bot]
e027fb376c [v11.0.x] docs: update news visualization (#87760)
docs: update news visualization (#87443)

* docs: update news visualization

* docs: add use case

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Removed future tense

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 6fbb35736e)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-05-13 15:21:12 -04:00
grafana-delivery-bot[bot]
9ff9e5090d [v11.0.x] docs: add geomap play link (#87756)
docs: add geomap play link (#87469)

(cherry picked from commit 5705952d85)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-13 12:43:04 -04:00
grafana-delivery-bot[bot]
0edc67764d [v11.0.x] docs: add flame graph play link (#87755)
docs: add flame graph play link (#87498)

(cherry picked from commit 351d36caea)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-13 12:39:55 -04:00
grafana-delivery-bot[bot]
e8cc0c257d [v11.0.x] docs: add text panel play link (#87753)
docs: add text panel play link (#87497)

(cherry picked from commit fc425983b3)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-13 12:38:11 -04:00
grafana-delivery-bot[bot]
4bbdf7c082 [v11.0.x] Docs: add panel options shared content (#87274)
Docs: add panel options shared content (#87258)

* Added panel options shared file

* Added panel options shared file to visualizations pages

* Fixed version interpolation syntax and added Cloud links

* Fixed heading level of title

(cherry picked from commit f8d9f8541b)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-13 12:24:04 -04:00
grafana-delivery-bot[bot]
6d7c73d13d [v11.0.x] docs: add histogram play link (#87738)
docs: add histogram play link (#87466)

(cherry picked from commit 3eba57dc98)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-13 11:43:55 -04:00
grafana-delivery-bot[bot]
3a74eb623a [v11.0.x] docs: add heatmap play link (#87734)
docs: add heatmap play link (#87464)

(cherry picked from commit d61c661a90)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-13 11:21:22 -04:00
grafana-delivery-bot[bot]
161f74366b [v11.0.x] docs: add canvas button example play link (#87730)
docs: add canvas button example play link (#87462)

(cherry picked from commit 788c50527f)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-05-13 11:17:14 -04:00
grafana-delivery-bot[bot]
b566045210 [v11.0.x] Docs: What’s new & Upgrade guide & Breaking changes v11.0 (#87720)
Docs: What’s new & Upgrade guide & Breaking changes v11.0 (#86369)

* Updated g11-preview pags for g11 release

* Added items to breaking changes guide

* Added and updated What's new content from latest Cloud file

* Updated link text

* Removed Azure Monitor item

(cherry picked from commit c2e8384090)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-13 10:31:26 -04:00
grafana-delivery-bot[bot]
036e21a03d [v11.0.x] alerting: PD - typo fix (#87698)
alerting: PD - typo fix (#87674)

typo fix

(cherry picked from commit 1191992226)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-05-13 12:37:23 +03:00
antonio
8e6438de0f Backport #87538 to v11.0.x (#87673)
alerting: integrations > small update (#87538)

* added links to list

* changed heading

(cherry picked from commit 3a2c9f4898)
2024-05-13 11:34:06 +02:00
grafana-delivery-bot[bot]
277ef258d4 [v11.0.x] AuthN: Fix signout redirect url (#87681)
* AuthN: Fix signout redirect url (#87631)

* Add missing return

* Use sign out redirect url from auth config if configured

* remove option from auth.jwt that is not used

(cherry picked from commit 0f3080ecb8)

---------

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-05-13 09:34:53 +02:00
grafana-delivery-bot[bot]
c23435875d [v11.0.x] alerting: docs - pagerduty (#87672)
alerting: docs - pagerduty (#87604)

* alerting: docs - pagerduty

* pretty

(cherry picked from commit 7e8b71d882)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-05-11 11:28:10 +02:00
grafana-delivery-bot[bot]
47f85d898b [v11.0.x] CloudMonitoring: Improve legacy query migrations (#87648)
CloudMonitoring: Improve legacy query migrations (#86069)

* Match backend and correctly migrate metricType

Update tests

* Ensure project is migrated or set if not defined

* Improve migrations logic

(cherry picked from commit 95667f6a53)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-05-10 17:45:21 +01:00
grafana-delivery-bot[bot]
e52d86e9bc [v11.0.x] Azure data sources: Set selected config type before save (#87632)
Azure data sources: Set selected config type before save (#87481)

* set selected config type before save

* use effect once and move in mssql

* add to prom

* Update ConfigurationEditor.tsx

* Update ConfigurationEditor.tsx

* Delete public/app/plugins/datasource/mssql/configuration/ConfigurationEditor.tsx

* omadsfdsa

* remove unneeded assign

(cherry picked from commit 5e19aa7bd1)

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
2024-05-10 17:09:02 +03:00
grafana-delivery-bot[bot]
587a1ef1de [v11.0.x] Chore: Add login protection when user is trying different uppercase letters (#87612)
Chore: Add login protection when user is trying different uppercase letters (#87588)

* add login protection when the user is trying different uppercase letters

(cherry picked from commit cd98aaf89b)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2024-05-10 15:06:35 +03:00
Ivan Ortega Alba
e260d13a65 [v11.0.x] Dashboard scene: Discard panel changes disabled/enabled depending of changes (#87570)
* DashboardScene: Discard panel changes disabled/enabled depending of changes (#87137)

---------

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit c3936bbae2)

* Add line number

---------

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-05-10 14:41:30 +03:00
grafana-delivery-bot[bot]
67aa2aa826 [v11.0.x] Loki: Fix log context when no label types are present (#87600)
Loki: Fix log context when no label types are present (#87587)

(cherry picked from commit 1c8a77a43d)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-05-10 13:11:56 +03:00
grafana-delivery-bot[bot]
f6668aae97 [v11.0.x] Chore: Implement GetOAuthProviders in FakeSocialService (#87591)
Chore: Implement GetOAuthProviders in FakeSocialService (#87590)

Implement GetOAuthProviders in FakeSocialService

(cherry picked from commit 896882b004)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2024-05-10 12:05:51 +03:00
grafana-delivery-bot[bot]
50400c8915 [v11.0.x] Canvas: Improve connection vertex logic (#87581)
Canvas: Improve connection vertex logic (#87580)

Canvas: Prevent machine error causing logic swap
(cherry picked from commit dfdf119f7f)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-05-09 15:48:45 -07:00
grafana-delivery-bot[bot]
11e83015bf [v11.0.x] Canvas: Fix datalinks using field variable (#87275)
Canvas: Fix datalinks using field variable (#87265)

(cherry picked from commit 6c7485129b)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-05-09 11:41:28 -07:00
grafana-delivery-bot[bot]
0a2f239744 [v11.0.x] Alerting: Add two sets of provisioning actions for rules and notifications (#87572)
Alerting: Add two sets of provisioning actions for rules and notifications  (#87149)

(cherry picked from commit 356a29592b)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-05-09 14:24:59 -04:00
grafana-delivery-bot[bot]
0bf33a4bf6 [v11.0.x] Canvas: Fix bug for connection first vertex (#87569)
Canvas: Fix bug for connection first vertex (#87534)

(cherry picked from commit 06a27911a4)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-05-09 10:52:00 -07:00
grafana-delivery-bot[bot]
bda261b744 [v11.0.x] Templating: Fix issue where updated custom var options weren't persisted (#87556)
Templating: Fix issue where updated custom var options weren't persisted (#86804)

* Templating: Fix issue where updated custom var options weren't persisted

(cherry picked from commit d5c781b9c5)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-05-09 16:29:07 +03:00
antonio
376c99b70f alerting: webhook doc update (#87492) (#87549)
alerting/webhook doc update (#87492)

* alerting/webhook doc update

* text formath

* fixed admonition

* typo

* headings

* formatted headings and prettified it all

* one more heading

(cherry picked from commit d83cbe4d85)
2024-05-09 14:01:05 +02:00
Scott Lepper
9bc98bcb9d Sql Expressions: use display name for sql tables (#87530) (#87531)
(cherry picked from commit 4b38253b20)
2024-05-08 17:15:16 -04:00
Stephanie Hingtgen
42da106097 [v11.0.x] Chore: Upgrade go to 1.21.10 (#87472)
* Chore: upgrade go to 1.20.10

* sign drone

---------

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2024-05-08 10:05:12 -05:00
grafana-delivery-bot[bot]
050ff6d4bb [v11.0.x] DashboardScene: Fixes editing transformations after toggling table view (#87485)
DashboardScene: Fixes editing transformations after toggling table view (#87397)

(cherry picked from commit 0c2f58bdae)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-05-08 09:41:07 +02:00
grafana-delivery-bot[bot]
2f6080211a [v11.0.x] DashboardDataSource: Fixes issue where sometimes untransformed data could be returned (#87484)
DashboardDataSource: Fixes issue where sometimes untransformed data could be returned  (#87433)

* DashboardDataSource: always return a result key

* Update

* Update

(cherry picked from commit e7c39f18be)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-05-08 08:58:04 +02:00
grafana-delivery-bot[bot]
60611c56eb [v11.0.x] Provisioning: Look up provisioned folders by UID when possible (#87468)
Provisioning: Look up provisioned folders by UID when possible (#87465)

look up provisioned folders by uid when possible

(cherry picked from commit 1884b03511)

Co-authored-by: Dan Cech <dcech@grafana.com>
2024-05-07 22:57:39 +03:00
grafana-delivery-bot[bot]
9f15deb1cb [v11.0.x] alerting: config notif page improvement (#87415)
alerting: config notif page improvement (#87140)

* alerting: config notif page improvement

* Update docs/sources/alerting/configure-notifications/template-notifications/_index.md

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

* Update _index.md

---------

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

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-05-07 10:32:15 +02:00
grafana-delivery-bot[bot]
d71892990e [v11.0.x] Alerting: Also fix HCL field name for MuteTimeIntervals (#87143)
Alerting: Also fix HCL field name for MuteTimeIntervals (#87079)

* Correct HCL field name for MuteTimeIntervals

* Update test

(cherry picked from commit 93519f70ca)

Co-authored-by: William Wernert <william.wernert@grafana.com>
2024-05-06 10:22:24 -04:00
grafana-delivery-bot[bot]
9ad215f6df [v11.0.x] Docs: added note to RBAC doc from support escalation (#87374)
Docs:  added note to RBAC doc from support escalation (#85311)

* added admonition and API info

* Update docs/sources/administration/roles-and-permissions/access-control/_index.md

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 57038e8dfa)

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-05-06 09:57:02 +02:00
grafana-delivery-bot[bot]
b517c94084 [v11.0.x] Canvas: Add support to rotate a group of elements (#87362)
Canvas: Add support to rotate a group of elements (#87358)

(cherry picked from commit 1ef1cc7e3f)

Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
2024-05-04 02:16:17 +03:00
grafana-delivery-bot[bot]
ce5735d578 [v11.0.x] XY Chart: Prevent crash when deleting a series (#87357)
XY Chart: Prevent crash when deleting a series  (#87356)

(cherry picked from commit 7bcda34b55)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-05-04 01:38:50 +03:00
grafana-delivery-bot[bot]
ec1698a9da [v11.0.x] Canvas: Fix phantom connections persisting after element deletion (#87355)
Canvas: Fix phantom connections persisting after element deletion (#87285)

(cherry picked from commit 68fa2110d6)

Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
2024-05-04 00:37:39 +03:00
Isabella Siu
21d7f1f505 [v11.0.x] Cloudwatch: Update grafana-aws-sdk to fix sts endpoints (#87345)
Cloudwatch: Update grafana-aws-sdk to fix sts endpoints
2024-05-03 16:48:58 -04:00
grafana-delivery-bot[bot]
8e777d54e9 [v11.0.x] Docs: add data link cell type information (#87354)
Docs: add data link cell type information (#87350)

Add data link cell type information

(cherry picked from commit 386baf83cd)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-03 16:33:40 -04:00
grafana-delivery-bot[bot]
4748dc67a2 [v11.0.x] datatrails: reloaded trail bugs related to no selected metric (#87346)
datatrails: reloaded trail bugs related to no selected metric (#87344)

* fix: reloaded scene first step topScene

The top scene was not being initialized
when reloading trails, causing it to use
the top scene of whatever was selected
previously.

* fix: select new metric node not reloading right

On reloading trails, any metric node that
was 'green' with a undefined metric due to
clicking on the "select new metric" button,
was reloading with the metric of the step
directly before it (in index order).

(cherry picked from commit e9b932c8f6)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-05-03 21:47:03 +03:00
grafana-delivery-bot[bot]
5bbe953b0f [v11.0.x] datatrails: only fetch metrics metadata when using the language provider, avoid redundant fetch of metric names (#87340)
datatrails: only fetch metrics metadata when using the language provider, avoid redundant fetch of metric names (#87067)

* fix: only fetch metrics metadata, not metric names

(cherry picked from commit f93c330b66)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-05-03 19:41:09 +03:00
grafana-delivery-bot[bot]
9a1d8c27a2 [v11.0.x] datatrails: quick bugfix: handle undefined step (#87338)
datatrails: quick bugfix: handle undefined step (#87337)

fix: handle undefined step
(cherry picked from commit 6524febbd4)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-05-03 19:40:15 +03:00
Sergej-Vlasov
480ef44edf DashboardScene: Restrict dashboard in read only state (#87316) (#87335)
---------

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
(cherry picked from commit 6433053479)
2024-05-03 19:12:30 +03:00
Darren Janeczek
31b6fcbe5b [v11.0.x] scenes: update to v4.14.0: opt-in to (#87334)
scenes: update to v4.14.0: opt-in to `useQueriesAsFilterForOptions` (#87244)

* fix: opt-in to `useQueriesAsFilterForOptions`

With updating the scenes library, dashboards must now explicitly
opt in to `useQueriesAsFilterForOptions`.

(cherry picked from commit 5b424ed6bb)
2024-05-03 19:09:39 +03:00
grafana-delivery-bot[bot]
9af0cd5844 [v11.0.x] datatrails: recently loaded trails modify parent variables when making new steps (#87333)
datatrails: recently loaded trails modify parent variables when making new steps (#87284)

* fix: loaded trails modified parent var on new step

This ensures that recently loaded trails won't have variable changes
which create new steps modify the previous step.

(cherry picked from commit 046eedaa4c)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-05-03 18:55:18 +03:00
grafana-delivery-bot[bot]
24784583be [v11.0.x] DashboardScene: Fixes minor issue transitioning between dashboards (#86475)
DashboardScene: Fixes minor issue transitioning between dashboards (#86262)

* DashboardScene: Fixes minor issue transitioning between dashboards

* Update

(cherry picked from commit a8b81e1481)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-05-03 17:27:14 +02:00
grafana-delivery-bot[bot]
a4eb6c2ab6 [v11.0.x] DashboardScene: Measure and report scene load time (#86836)
DashboardScene: Measure and report scene load time (#86267)

* measure scene load time

* Fix tests that fail due to performance not being the proper global performance object in jest

* add isScene parameter to tracking test

(cherry picked from commit e7f40493e4)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-05-03 16:54:53 +02:00
Scott Lepper
59eea3920d sql expressions - Backport 87277 to v11.0.x (#87315)
sql expressions: improve parser (#87277)

(cherry picked from commit 1a2bbd61fd)
2024-05-03 09:52:13 -04:00
grafana-delivery-bot[bot]
9db35835e5 [v11.0.x] Datatrails: Fix overflow of labels (#87313)
Datatrails: Fix overflow of labels (#87301)

Fix overflow of labels

(cherry picked from commit 9fbca6c035)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-05-03 16:44:12 +03:00
Scott Lepper
1d2e581a39 sql expressions - Backport 87263 to v11.0.x (#87312)
fix: sql expressions parser with join (#87263)

(cherry picked from commit cbe3e3a5e0)
2024-05-03 09:29:48 -04:00
grafana-delivery-bot[bot]
1c801e283f [v11.0.x] fix: sql expressions - sql parser table name case (#87305)
fix: sql expressions - sql parser table name case (#87196)

* fix: sql parser table name case

(cherry picked from commit 4fd2cb6014)

Co-authored-by: Scott Lepper <scott.lepper@gmail.com>
2024-05-03 15:58:23 +03:00
grafana-delivery-bot[bot]
5b5032c7b8 [v11.0.x] Alerting: Fix max alerts (#87300)
Alerting: Fix max alerts (#87271)

(cherry picked from commit 12fa9e56e6)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-05-03 14:40:39 +03:00
grafana-delivery-bot[bot]
cc53e4fc38 [v11.0.x] InfluxDB: Support cardinality queries with backend mode (#87297)
InfluxDB: Support cardinality queries with backend mode (#87264)

support cardinality queries

(cherry picked from commit 3317691615)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-05-03 13:30:08 +02:00
grafana-delivery-bot[bot]
2eeab8c02a [v11.0.x] Scenes/Dashboard: Fix issue where changes to panel in row weren't detected in panel edit (#87293)
Dashboard: Fix issue where changes to panel in row weren't detected in panel edit (#87195)

Closes #87171

(cherry picked from commit b3f173f153)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-05-03 13:10:58 +03:00
grafana-delivery-bot[bot]
31e116f3d8 [v11.0.x] docs: update flame graph visualization (#87269)
docs: update flame graph visualization (#86615)

* docs: update flame graph visualization

* fix: linting issues

* docs: add example data

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Removed Wikipedia link

* Fixed punctuation

* Updated max image width

* Update docs/sources/panels-visualizations/visualizations/flame-graph/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* fix: linting issues

* docs: add links to pyroscope docs about flame graph and profile types

* Ran prettier

* docs: add flame graph video

* Updated wording

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 7db41222c6)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-05-02 14:10:57 -04:00
grafana-delivery-bot[bot]
445f4135d8 [v11.0.x] Select: Fixes issue preserving search term (input) when selecting a value (#87249) 2024-05-02 18:44:34 +02:00
grafana-delivery-bot[bot]
d56c3a0539 [v11.0.x] Scenes: Adjust styles to allow shrinking of variable selectors (#87251)
Scenes: Adjust styles to allow shrinking of variable selectors (#87085)

(cherry picked from commit bc9010a95b)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-05-02 17:42:58 +01:00
grafana-delivery-bot[bot]
e103995b9f [v11.0.x] Docs: Fix link to values.yaml file (#87256)
Docs: Fix link to values.yaml file (#87014)

Fix link to values.yaml file

Linking to the "edit" URL fails if the reader doesn't have write access
to the repo: they'll be prompted to fork the repo or to sign in to
GitHub. Instead link to the "blob" URL which is accessible to all
readers.

(cherry picked from commit 64d5440c5a)

Co-authored-by: Nicholas P. Cole <nicholas@nicholaspcole.com>
2024-05-02 10:47:00 -05:00
grafana-delivery-bot[bot]
860f264be6 [v11.0.x] DashboardScenes: Pin go version to go.mod file in scenes e2e workflow (#87246)
DashboardScenes: Pin go version to go.mod file in scenes e2e workflow (#87238)

* adjust workflow to use correct go version

* finalise wokflow adjustments

(cherry picked from commit 838e36bd99)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-05-02 18:35:01 +03:00
grafana-delivery-bot[bot]
c40273983e [v11.0.x] Alerting: Prevent search from locking the browser (#87230)
Alerting: Prevent search from locking the browser (#87132)

(cherry picked from commit 1d06f33a8e)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-05-02 16:42:56 +02:00
grafana-delivery-bot[bot]
561662ae86 [v11.0.x] Dashboard Scene: Chore - Add missing unit test to PanelDataQueryTab (#87239)
Dashboard Scene: Chore - Add missing unit test to PanelDataQueryTab (#87139)

* Create basic structure PanelDataQueriesTab unit test

* Add more test cases to the PanelDataQueriesTab test

* Update public/app/features/dashboard-scene/panel-edit/VizPanelManager.tsx

(cherry picked from commit eae1cafebd)

Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
2024-05-02 17:11:00 +03:00
grafana-delivery-bot[bot]
39c9096a87 [v11.0.x] Dashboard: POC to run existing e2e with dashboardScene feature toggle (#87237)
Dashboard: POC to run existing e2e with `dashboardScene` feature toggle (#84598)

* Standarize e2e for addDashbaord e2e flow

* WIP: Duplicate e2e dashboard flows and smoke test for scene e2e tests

* Fix autoformatting mistake for bash file

* Enable dashboardScene using local storage and only for the scene folder

* Add missing folders

* Set the feature toggle in the before of all tests

* Revert "Standarize e2e for addDashbaord e2e flow"

This reverts commit 6b9ea9d5a4.

* Add missing e2e selectors to NavToolbarActions, and modify addDashboard scene flow

* e2e: panels_smokescreen.spec.ts migrated

* e2e smokeTestSceneario migrated

* Start migrating dashbaord-suite e2e

* WIP create variable types

* adjust tests for scenes

* restore dashboard json file

* update scenes version

* restore pkg/build/wire/internal/wire/testdata modifications

* finalising test adjusments

* restore pkg/build/wire/internal/wire/testdata files

* add latest scenes version and update tests

* add drone setup for dashboard scenes tests

* update to latest scenes version

* adjust drone errors

* adjust indentation in drone yml file

* drone adjustments

* add github workflow to run scenes e2e

* restore drone file

* adjust github workflow

* wip: github workflow adjustments

* test remove gpu

* bump

* undo formating changes

* wip: github workflow debugging

* adjusting flaky tests

* update to latest scenes

* clean up workflow file

* adjust flaky test

* clean up pr

* finalise worflow logic and add to codeowners

* clean up launching old arch dashboards e2e separately

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
Co-authored-by: Jeff Levin <jeff@levinology.com>
(cherry picked from commit 9ea1042329)

Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
2024-05-02 16:56:31 +03:00
grafana-delivery-bot[bot]
32a4cc45bf [v11.0.x] DashboardScene: adjust lib panel as a dashboard datasource refresh logic (#87232)
DashboardScene: adjust lib panel as a dashboard datasource refresh logic (#87120)

* activate library viz panel and adjust id extractor

* revert parts that are fixed in #87125

* clean up after activation handler

(cherry picked from commit afbd02c4ec)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-05-02 16:52:47 +03:00
grafana-delivery-bot[bot]
34f8aa21a1 [v11.0.x] Dashboard Scene - Variable Fix: cancel out margin-bottom of placeholder in loading state (#87113)
Dashboard Scene - Variable Fix: cancel out margin-bottom of placeholder in loading state (#87107)

fix: cancel out margin-bottom of placeholder in loading state
(cherry picked from commit 6dbc44920c)

Co-authored-by: Tim Mulqueen <Multimo@users.noreply.github.com>
2024-05-02 14:51:42 +02:00
grafana-delivery-bot[bot]
25390d2fab [v11.0.x] DashboardQueryEditor: Adjust options filtering in scenes (#87228)
DashboardQueryEditor: Adjust options filtering in scenes (#87174)

adjust options filtering for dashboard datasource in scenes

(cherry picked from commit 37ca484aad)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-05-02 15:28:30 +03:00
grafana-delivery-bot[bot]
b630e6d6ab [v11.0.x] DashboardScene: Remove min height on viz picker scroll container (#87227)
DashboardScene: Remove min height on viz picker scroll container (#87172)

removed min height prop

(cherry picked from commit 4d37e11ce9)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-05-02 15:26:52 +03:00
Eric Leijonmarck
b219aa7688 [v11.0.x] Auth: Force lowercase login/email for users (#86985)
Auth: Force lowercase login/email for users (#86359)

* [WIP]: Force lowercase login/email for user CRUD

* warn and remove use of userCaseInsensitiveLogin check

* remove log warning

* reimplementation of the caseinsensitive

* need to decide if we want the conflict check or not

* remvoved the tests for conflict user by getEmail, getLogin

* added tests for user lowercase migration

* wip: emails next

* tests for email lowercasing

* review comments

* optimized login and email lookup before migrating

(cherry picked from commit e394e16073)
2024-05-02 13:05:25 +01:00
grafana-delivery-bot[bot]
f0302dd2d7 [v11.0.x] Update doc-validator workflow to support ref URIs (#87177)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-05-02 12:26:08 +01:00
grafana-delivery-bot[bot]
d47310e457 [v11.0.x] RBAC: Do not set permissions on data sources with wildcard UID in OSS (#87222)
RBAC: Do not set permissions on data sources with wildcard UID in OSS (#87220)

do not set permissions on DS with wildcard UID

(cherry picked from commit 28dd1ddd8e)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-05-02 13:36:10 +03:00
grafana-delivery-bot[bot]
936cfb2e32 [v11.0.x] Docs: add standard options shared content (#87207)
Docs: add standard options shared content (#87199)

* Added standard options shared file

* Added missing option to shared file and added shared file link to visualizations pages

* Fixed links

(cherry picked from commit 90b594e998)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-01 18:39:40 -04:00
grafana-delivery-bot[bot]
daf9d8f884 [v11.0.x] Docs: add field overrides shared content (#87205)
Docs: add field overrides shared content (#87197)

* Added field overrides shared file

* Added link to overrides file in visualizations pages

* ihm/010524-field-override-shared-content/ run lint

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
(cherry picked from commit d5cfcc8187)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-01 18:15:13 -04:00
grafana-delivery-bot[bot]
1435180f50 [v11.0.x] Docs: Add data links shared content (#87200)
Docs: Add data links shared content (#86893)

* Added data link options shared file and added file to relevant visualizations

* Updated some text and links in canvas

* Added shared file to xy chart

* Fixed list of visualizations using shared file

* Removed unneeded level offset

* Removed future tense

* Update data links description

* Updated wording

* Removed redundant sentence

(cherry picked from commit 1ef0e240e9)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-05-01 16:56:40 -04:00
grafana-delivery-bot[bot]
08b6bc7a1d [v11.0.x] XYChart2: Fix migration of pointSize fieldConfig (#87193)
XYChart: Fix default point size (#87192)

(cherry picked from commit ee4422d1e2)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-05-01 21:36:35 +03:00
grafana-delivery-bot[bot]
289ea7c22e [v11.0.x] XY Chart: Show mapped size/color fields in tooltip (#87183) 2024-05-01 18:11:54 +03:00
grafana-delivery-bot[bot]
7c1cc61fb8 [v11.0.x] DashboardScene: Fixes issue referring to library panel in dashboard data source (#87173)
DashboardScene: Fixes issue referring to library panel in dashboard data source  (#87125)

* DashboardScene: Fixes issue using a library panel as source for dashboard data source

* Added test

(cherry picked from commit 4034a26972)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-05-01 15:25:41 +02:00
grafana-delivery-bot[bot]
a8cd6d9025 [v11.0.x] DashboardScene: Fixes issue with panel edit options pane and data (#87165)
DashboardScene: Fixes issue with panel edit options pane and data (#87161)

(cherry picked from commit 7a5c17d613)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-05-01 14:31:22 +02:00
Misi
265c27b97a [v11.0.x] Chore: Remove extra sql select from the Insert function of userimpl.store (#87163)
Chore: Remove extra sql select from the Insert function of userimpl.store (#87060)

Remove getAnyUserType

(cherry picked from commit 1cb3f332a1)
2024-05-01 10:12:00 +02:00
grafana-delivery-bot[bot]
7de2728684 [v11.0.x] Docs: Add thresholds shared content (#87154)
Docs: Add thresholds shared content (#87009)

* Added thresholds shared files

* Added shared files to visualizations and updated shared files

* Removed future tense

* Fixed prettier

(cherry picked from commit 406fe8c85a)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-30 16:37:13 -04:00
grafana-delivery-bot[bot]
7499b508e1 [v11.0.x] Docs: add legends shared content (#87152)
Docs: add legends shared content (#86814)

* Updated shared file name and added missing options

* Added legend options 1 shared file to relevant visualizations

* Updated shared file name and corrected options

* Added legend options 2 shared file to relevant visualizations

* Updated legend content for heatmap and pie chart

* Added where shared legend files are used in each file

* Moved intro text out of viz pages into legend options shared files

* Added reasoning to front matter of shared files

* Added reasoning to front matter of shared files

* Fixed version interpolation and added cloud links

* Updated links in shared files

(cherry picked from commit dad3069594)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-30 16:06:21 -04:00
grafana-delivery-bot[bot]
f1a2fe731b [v11.0.x] XYChart2: Fix tooltip mode (#87151) 2024-04-30 21:37:14 +03:00
grafana-delivery-bot[bot]
363e21a63d [v11.0.x] Data source: Maintain the default data source permissions when switching from unlicensed to licensed Grafana (#87142)
* Data source: Maintain the default data source permissions when switching from unlicensed to licensed Grafana (#87119)

set managed data source permissions upon resource creation for unlicensed Grafana, remove them on deletion

(cherry picked from commit 5e060d2d99)

* remove code for older version

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-04-30 17:34:51 +01:00
grafana-delivery-bot[bot]
d95cbb7e38 [v11.0.x] Alerting: Use expected field name for receiver in HCL export (#87075)
Alerting: Use expected field name for receiver in HCL export (#87065)

* Use expected field name for receiver in hcl

Terraform provider expects `contact_point` instead of `receiver` in
notification settings on a rule.

(cherry picked from commit 70ff229bed)

Co-authored-by: William Wernert <william.wernert@grafana.com>
2024-04-30 11:00:17 -04:00
Gilles De Mey
02586f82d4 [v11.0.x] Alerting: Allow deleting contact points referenced only by auto-generated policies (#87115)
Alerting: Allow deleting contact points referenced only by auto-generated policies (#86800)

(cherry picked from commit b679a32fad)
2024-04-30 10:43:31 +01:00
grafana-delivery-bot[bot]
a24940bfd7 [v11.0.x] Heatmap: Fix histogram highlighted series (#87092)
Heatmap: Fix histogram highlighted series (#86955)

(cherry picked from commit e3719471d5)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-04-29 22:21:15 +01:00
Scott Lepper
04d6463abb Backport 87073 to v11.0.x (#87078)
* Chore: Update go-duck dependency to v0.0.18 (#87073)

* Chore: Update go-duck dependency to v0.0.18

(cherry picked from commit 7505af2886)

* backport

* go mod tidy

* remove wrong import
2024-04-29 15:37:20 -04:00
grafana-delivery-bot[bot]
713cea3d2f [v11.0.x] Alerting: Improve error when receiver or time interval used by rule is deleted (#87070)
Alerting: Improve error when receiver or time interval used by rule is deleted (#86865)

* Alerting: Improve error when receiver used by rule is deleted

* Remove RuleUID from public error and data

* Improve fallback error in am config post

* Refactor to expand to time intervals

* Fix message on unchecked errors to be same as before

(cherry picked from commit 3397e8bf09)

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2024-04-29 13:36:09 -04:00
grafana-delivery-bot[bot]
917f53dc1f [v11.0.x] Auth: Sign sigV4 request after adding headers (#87072)
Auth: Sign sigV4 request after adding headers (#87063)

(cherry picked from commit 7b392d40a0)

Co-authored-by: Isabella Siu <Isabella.siu@grafana.com>
2024-04-29 13:28:52 -04:00
grafana-delivery-bot[bot]
e8adea6eeb [v11.0.x] Docs: Update Explore Metrics doc based on feedback (#87074)
Docs: Update Explore Metrics doc based on feedback (#87062)

* changed from private preview to public preview

* commented out pivot to logs and traces

(cherry picked from commit 3845033308)

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-04-29 18:13:16 +01:00
grafana-delivery-bot[bot]
877ce6e3cf [v11.0.x] Canvas: Fix connection hyperbolic bug (#87066)
Canvas: Fix connection hyperbolic bug (#87002)

* Canvas: Connection original persistence check

* Canvas: Fix connection hyperbolic bug

(cherry picked from commit 49fbe970fb)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-04-29 10:08:27 -07:00
grafana-delivery-bot[bot]
73f86f1a7d [v11.0.x] Canvas: Connection original persistence check (#87061)
Canvas: Connection original persistence check (#86476)

* Canvas: Connection original persistence check

* modify current connection state directly instead of copying and needing to call "onChange"

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 7590f4afe1)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-04-29 08:57:17 -07:00
Mihai Doarna
9a91f303be [backport to v11.0] SSO: add SSO settings to secrets migrator (#86913) (#86939)
SSO: add SSO settings to secrets migrator (#86913)

* add sso settings to secrets migrator

* unify SSO settings in all log lines

(cherry picked from commit 4bf9405ce4)
2024-04-29 18:42:47 +03:00
grafana-delivery-bot[bot]
e5e6981c9d [v11.0.x] DashboardScene: Fixes issues with relative time range in panel edit (#87026)
DashboardScene: Fixes issues with relative time range in panel edit (#86862)

* DashboardScene: Fixes deleting dirty dashboard

* Update

* Progress

* Update

* Update

* Update

* Update

* Update

* Update

* update

* Update

(cherry picked from commit a4bb4c8400)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-29 15:33:23 +02:00
Ashley Harrison
e0a06c6090 [v11.0.x] DateTimePicker: Alternate timezones now behave correctly (#87041)
DateTimePicker: Alternate timezones now behave correctly (#86750)

* Add failing tests for timezone handling

* Fix `DateTimePicker.tsx` timezone handling

- Resolves `onBlur` issue
- Resolve Calendar and TimeOfDay issues
- Update test to cover different timezone

* Handle `console.warn` in test

* Handle `console.warn` in test #2

* Better handling of invalid date

When parsing date string with `dateTime`, adding a second `formatInput` aids in both parsing the actual string and avoid `console.warn` when `moment` reverts to be using `Date`.

* add more test cases

* Ash/proposed changes (#86854)

* simplify

* only need this change

* formatting

* const > let

* add test to ensure calendar is always showing the matching day

* separate state

* undo story changes

* update util function comments

* fix for selecting date in the calendar

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
(cherry picked from commit 7fab894e9b)

Co-authored-by: Thomas Wikman <thomas@w1kman.se>
2024-04-29 11:42:18 +01:00
grafana-delivery-bot[bot]
8187058e9d [v11.0.x] Docs: Create the Azure AD application section has outdated information. (#87034)
Docs: Create the Azure AD application section has outdated information. (#71498)

Update index.md

(cherry picked from commit ccd2bff8b0)

Co-authored-by: Dai Nguyen <88277570+ej25a@users.noreply.github.com>
2024-04-29 10:33:33 +01:00
grafana-delivery-bot[bot]
c5f186fa22 [v11.0.x] DashboardDataSourceBehaviour: Handle loading library panel (#87023)
DashboardDataSourceBehaviour: Handle loading library panel (#86980)

* DashboardDataSourceBehaviour: Handle loading library panel

* Remove timeout

* FIx test

(cherry picked from commit 67968df70e)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-04-29 11:12:20 +02:00
grafana-delivery-bot[bot]
5749f36f52 [v11.0.x] Dashboard scenes: Fix min interval not saving (#87022)
Dashboard scenes: Fix min interval not saving (#86962)

* Fix min interval not saving

* Add tests

* Fix test

(cherry picked from commit fdc1023586)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-04-29 10:50:34 +02:00
grafana-delivery-bot[bot]
cb49b93146 [v11.0.x] DashboardScene: Fixes issue with dashboard links and variables (#87025)
DashboardScene: Fixes issue with dashboard links and variables (#86910)

* DashboardScene: Fixes issue with dashboard links and variables

* Update

(cherry picked from commit 01f8301504)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-29 09:45:50 +01:00
grafana-delivery-bot[bot]
0e8622ec0a [v11.0.x] Home dashboard test (#87024)
Home dashboard test (#86961)

home dashboard test

(cherry picked from commit 8705e03d57)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-29 09:13:15 +01:00
grafana-delivery-bot[bot]
452be5b172 [v11.0.x] Docs: Add value mappings shared content (#87010)
Docs: Add value mappings shared content (#86996)

* Added value mappings shared file

* Fixed name of file

* Fixed list of visualizations using shared file

* Added shared file to visualizations

* Updated shared file and added to canvas

* Updated shared file intro text

* Removed future tense

(cherry picked from commit d5fde99c6d)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-26 14:36:08 -04:00
grafana-delivery-bot[bot]
ff73704834 [v11.0.x] Scenes/PanelVizTypePicker: Use default tab if listMode is unsupported (#87006)
Scenes/PanelVizTypePicker: Use default tab if listMode is unsupported (#86885)

Closes #84565

(cherry picked from commit 1dbb3bfdea)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-26 19:00:26 +01:00
grafana-delivery-bot[bot]
345a40815b [v11.0.x] Dasbhoard scenes: Don't return null when uids are not matching for new dashboards (#87001)
Dasbhoard scenes: Don't return null when uids are not matching for new dashboards (#86998)

Don't return null when uids not matching for new dashboards

(cherry picked from commit c3cde17b33)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-04-26 18:48:53 +01:00
grafana-delivery-bot[bot]
6a79482d18 [v11.0.x] datatrails: fix bookmark/recent trail detection, prevent duplications, save trail on browser close/reload (#87004)
datatrails: fix bookmark/recent trail detection, prevent duplications, save trail on browser close/reload (#85677)

* fix: persistence trail detection, save on unload

- fixes detection on bookmarks and recents when current step isn't final
- now save current trail on browser close or reload (unload)
- refresh page or return to URL that corresponds to a recent trail will
   resume that trail instead of creating a duplicate recent trail
- do not create a recent trail out of an empty starting trail

* fix: bookmarks status after making new step

- clone bookmark trail state to prevent it from being changed by user
- re-evaluate bookmark status after creating new step

(cherry picked from commit 9af4607e78)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-26 18:26:28 +01:00
grafana-delivery-bot[bot]
f06fd82965 [v11.0.x] DataTrails: Exploring alternatives to history issues (#87003)
DataTrails: Exploring alternatives to history issues (#86843)

* DataTrails: Exploring alternatives to history issues

* incorporated unit tests from #86817 and #86741

---------

Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>
(cherry picked from commit c965c27994)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-26 13:04:45 -04:00
grafana-delivery-bot[bot]
aba28bef77 [v11.0.x] Explore: add links to metrics and correlations editor to Explore (#86925) 2024-04-26 09:57:54 +02:00
Darren Janeczek
68c8c1f007 [v11.0.x] Tooltips: Ensure new viz tooltips are visible within modals (alternative solution) (#86954)
Tooltips: Ensure new viz tooltips are visible within modals (alternative solution) (#86716)

fix: ensure new viz tooltips are visible within modals

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit ff761bb7d6)
2024-04-25 21:55:44 +01:00
grafana-delivery-bot[bot]
e151121cc2 [v11.0.x] Migrations: Graph (old) percent stacked (#86945)
Migrations: Graph (old) percent stacked (#84335)

(cherry picked from commit d1b67847a2)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-04-25 19:10:20 +01:00
grafana-delivery-bot[bot]
80f3aded4e [v11.0.x] Canvas: Add flowchart example to gdev (#86935)
Canvas: Add flowchart example to gdev (#85417)

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 3703196e24)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-04-25 08:38:07 -07:00
grafana-delivery-bot[bot]
eb0f14503f [v11.0.x] Canvas: Ensure tangency for first segment (#86934)
Canvas: Ensure tangency for first segment (#86543)

(cherry picked from commit 173ba73a8a)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-04-25 08:32:58 -07:00
grafana-delivery-bot[bot]
b95072dad2 [v11.0.x] Canvas: Fix division by zero (#86932)
Canvas: Fix division by zero (#85443)

* Canvas: Fix division by zero

* Fix last add vertex control

* Apply fix to existing vertices

* Apply deltas to temporary paths

* Persist original source and target coorindates

* Add follow up TODO

* Update connection svg to handle originals

* Get rid of minimum constraints for deltas

* Apply persist coordinate system to vertex handlers

* Consolidate and rename selected value

* Update connection arcs to use new coordinates

* fix editor crashing with scenes

---------

Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
(cherry picked from commit ed8eacbc7e)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-04-25 08:14:36 -07:00
grafana-delivery-bot[bot]
ac7082d039 [v11.0.x] Canvas: Render selected connection last (#86931)
Canvas: Render selected connection last (#85492)

(cherry picked from commit d91dbbbef5)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2024-04-25 07:51:11 -07:00
grafana-delivery-bot[bot]
188c4a39e9 [v11.0.x] Dashboard: Migration Fixes Mixed data source losing existing queries (#86926)
Dashboard: Migration Fixes Mixed data source losing existing queries (#86883)

(cherry picked from commit e711d10925)

Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
2024-04-25 14:46:06 +01:00
grafana-delivery-bot[bot]
f5b16c223b [v11.0.x] Alerting: Fix instances link when served from subpath (#86906)
Alerting: Fix instances link when served from subpath (#86432)

Fix instances link when served from subpath

(cherry picked from commit 9614126cb7)

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2024-04-25 11:38:12 +02:00
grafana-delivery-bot[bot]
48e920896d [v11.0.x] Table Panel: Fix images not showing on hover with multiple data links (#86795)
Table Panel: Fix images not showing on hover with multiple data links (#86732)

* Fix issue

* Prettier

* codeincarnate/image-table-fix/ lint

* Make linter happy by using div with role of button + improve a11y

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 37d086d49c)

Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
2024-04-24 21:06:50 -07:00
Isabel Matwawana
33edb76902 [v11.0.x] Docs: add tooltips shared content (#86891)
Docs: add tooltips shared content (#86553)

* Replaced shared tooltips file with text in xy chart

* Added tooltip info for heatmap

* Updated tooltip shared files, renamed one file, updated configure tooltips

* updated tooltip shared file paths

* Added tooltips shared files in relevant visualizations

* Added where shared file is used in tooltip-options-1

* Added where shared file is used in tooltip-options-2

* Added intro text and justifications to shared files

* Removed tooltips intro text from visualizations with shared files

* Added names of files to comments in shared files

(cherry picked from commit 0e81fdffbe)
2024-04-24 16:15:45 -04:00
grafana-delivery-bot[bot]
4266af508c [v11.0.x] fix: datatrail link to "open in explore" prefix with config.appSubUrl (#86694)
fix: datatrail link to "open in explore" prefix with `config.appSubUrl` (#86375)

* fix: datatrail link to explore needs appSubUrl
* fix: use `appUrl` when creating URL for sharing

(cherry picked from commit 2ed7eecf2d)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-24 13:41:58 -04:00
grafana-delivery-bot[bot]
ad5ce0ee06 [v11.0.x] datatrails: interpolate adhoc variables and datasource variables when opening "explore metrics" from dashboard panels (#86882)
datatrails: interpolate adhoc variables and datasource variables when opening "explore metrics" from dashboard panels (#86252)

* fix: interpolate "explore metrics" from panels

---------

Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>

* fix: remove support for legacy dashboard

- simplify code
- take advantage of scenes dashboard async and datasource api object

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
(cherry picked from commit 53ead9904d)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-24 17:22:48 +01:00
grafana-delivery-bot[bot]
d74bc37a24 [v11.0.x] Add onClick behaviour to links to new tooltips (#86881)
Add onClick behaviour to links to new tooltips (#84974)

* Add onClick behaviour to new tooltips

* Prefer using DataLink component

(cherry picked from commit 9e54c450d7)

Co-authored-by: Javier Ruiz <javiruiz01@users.noreply.github.com>
2024-04-24 09:59:44 -06:00
grafana-delivery-bot[bot]
17b8022ba9 [v11.0.x] SQLStore: Disable redundant create and drop unique index migrations on dashboard table (#86867)
SQLStore: Disable redundant create and drop unique index migrations on dashboard table (#86857)

SQLStore: Disable create and drop unique index migrations
(cherry picked from commit a5a3ee9fa3)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2024-04-24 16:37:39 +01:00
grafana-delivery-bot[bot]
2644311fd0 [v11.0.x] Fix home breadcrumbs (#86849)
Fix home breadcrumbs (#86786)

* fix home breadcrumbs

* fix homepage gap

* fix tests

(cherry picked from commit 38917c4e79)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-24 14:11:41 +02:00
grafana-delivery-bot[bot]
6dedea2c1f [v11.0.x] LogContext: Fix structured metadata labels being added as stream selectors (#86826)
LogContext: Fix structured metadata labels being added as stream selectors (#86825)

* LogContext: Fix structured metadata labels being added as stream selectors

* use row index

(cherry picked from commit a8424f4831)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-04-24 13:09:45 +01:00
Laura Fernández
b67879e2ee [v11.0.x] Navigation: Add a return to previous button when navigating to different sections (#86797) 2024-04-24 13:15:53 +02:00
grafana-delivery-bot[bot]
494a3c14d1 [v11.0.x] Dashboard: Migration [Panel Edit] Missing Query Editor when datasource is not found (#86828)
Dashboard: Migration [Panel Edit] Missing Query Editor when datasource is not found (#86789)

* Return default datasource if datasource is not found

* Set query runner datasource state to default, else refreshing will not work

(cherry picked from commit de589b98c7)

Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
2024-04-24 12:09:16 +03:00
Torkel Ödegaard
a0549ca23c [v11.0.x] DashboardScene: Fixes issue with editing panels that uses instanceState (#86824)
DashboardScene: Fixes issue with editing panels that uses instanceState (#86687)

* DashboardScene: Fixes issue with editing panels that uses instanceState

* Minor tweak

* Update

* Update

(cherry picked from commit b28e6bc5d8)
2024-04-24 10:31:19 +02:00
grafana-delivery-bot[bot]
83bd51e918 [v11.0.x] Typo fix in User API doc example (#86822)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: nextMJ <77353838+nextMJ@users.noreply.github.com>
fix in User API doc example (#81890)
2024-04-24 06:24:49 +01:00
grafana-delivery-bot[bot]
661610c394 [v11.0.x] Canvas: Match connection anchor points to elements (#86815)
Canvas: Match connection anchor points to elements (#85421)

Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com>
(cherry picked from commit 5dea949433)

Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
2024-04-23 23:44:43 +02:00
grafana-delivery-bot[bot]
5c500e1622 [v11.0.x] Chore: Fix CVE-2024-22363 (#86798)
Chore: Fix CVE-2024-22363 (#86738)

(cherry picked from commit 709d78b8b5)

Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
2024-04-23 18:41:34 +02:00
grafana-delivery-bot[bot]
30b593e843 [v11.0.x] Docs: add Provisioning section to Install on Kubernetes docs (#86799)
Docs: add `Provisioning` section to `Install on Kubernetes` docs (#83875)

* Docs: add `Provisioning` section to `Install on Kubernetes` docs

* prefix k8s object names with `grafana-`

* Fix `suplying` typo

(cherry picked from commit 14789db1b7)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2024-04-23 18:39:56 +02:00
grafana-delivery-bot[bot]
764bf767ca [v11.0.x] TimeOfDayPicker: Fix text colours in light mode (#86776)
TimeOfDayPicker: Fix text colours in light mode (#86771)

fix text colours in light mode

(cherry picked from commit a1321d17ca)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-23 08:07:01 -06:00
grafana-delivery-bot[bot]
7d5da03093 [v11.0.x] Update make docs procedure (#86767)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-23 13:23:28 +01:00
grafana-delivery-bot[bot]
28acea402b [v11.0.x] DashboardScene: Fixes deleting dirty dashboard (#86757)
DashboardScene: Fixes deleting dirty dashboard (#86479)

* DashboardScene: Fixes deleting dirty dashboard

* refactor + unit test

(cherry picked from commit 835b968b08)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-23 12:51:22 +02:00
grafana-delivery-bot[bot]
493a17ed37 [v11.0.x] Dashboards: Check if dashboard.meta is undefined, if undefined handle redirect in dashboard scene. (#86685)
Dashboards: Check if dashboard.meta is undefined, if undefined handle redirect in dashboard scene. (#86674)

dashboard meta is not available if the dashboard response is a redirect

(cherry picked from commit 12771e49fc)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-04-23 10:13:29 +02:00
grafana-delivery-bot[bot]
831c717689 [v11.0.x] Dashboard scenes: fix textbox value only set to first character of default value (#86742)
Dashboard scenes: fix textbox value only set to first character of default value (#86595)

Dashboard scene: fix textbox value only set to first character in default value

(cherry picked from commit dccad4e081)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-04-23 07:10:41 +02:00
grafana-delivery-bot[bot]
8979111ec0 [v11.0.x] XYChart2: Remove common series name from tooltip items (#86740)
XYChart2: Remove common series name from tooltip items (#86739)

(cherry picked from commit 7754d0d4dc)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-04-23 05:44:36 +02:00
grafana-delivery-bot[bot]
62715133ea [v11.0.x] Docs: add snapshot deletion info (#86736)
Docs: add snapshot deletion info (#86725)

* Added delete snapshots section

* Replicated content, updated heading, and lowered heading level

(cherry picked from commit 2b3457e6ed)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-22 18:33:51 -04:00
grafana-delivery-bot[bot]
23623807bd [v11.0.x] Docs: Add config guidance for embedding (#86730)
Docs: Add config guidance for embedding (#86726)

Added note re iframes

(cherry picked from commit 05a4b3e80d)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-22 17:14:41 -04:00
grafana-delivery-bot[bot]
a332ecf43c [v11.0.x] Embed Managing users and permissions video to the documentation (#86715)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Lisa <60980933+LisaHJung@users.noreply.github.com>
2024-04-22 17:53:07 +01:00
grafana-delivery-bot[bot]
9ad39e7fd7 [v11.0.x] docs: update candlestick visualization (#86701)
docs: update candlestick visualization (#86053)

* docs: update candlestick visualization

* fix: linting issues

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* docs: add candlestick video

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 50b285ac69)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-04-22 10:57:24 -04:00
grafana-delivery-bot[bot]
3b71eab378 [v11.0.x] Alerting: Take receivers into account when custom grouping Alertmanager groups (#86699)
Alerting: Take receivers into account when custom grouping Alertmanager groups (#86127)

* Take receiver into account when custom grouping Alertmanager alert groups

* Fix and add tests

(cherry picked from commit acd3e83c1c)

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2024-04-22 16:39:32 +02:00
grafana-delivery-bot[bot]
55556e911b [v11.0.x] LDAP: Fix listing all non-matching groups (#86689)
LDAP: Fix listing all non-matching groups (#86682)

Fix getRowId in LdapUserGroups to list all non-matching groups

(cherry picked from commit 6ab9dcde8d)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2024-04-22 15:54:06 +02:00
grafana-delivery-bot[bot]
2166ca0a4a [v11.0.x] datatrails: track user interactions (#86399)
datatrails: track user interactions (#85909)

* chore: add interaction tracking

(cherry picked from commit ea90f0119c)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-22 09:34:08 -04:00
grafana-delivery-bot[bot]
3d3a4b528a [v11.0.x] Alerting: Fix max_alerts field handling (#86673)
Alerting: Fix max_alerts field handling (#86651)

Fix max_alerts field parsing

(cherry picked from commit 1b930c341d)

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2024-04-22 13:38:20 +02:00
grafana-delivery-bot[bot]
cf7c563735 [v11.0.x] Change folder breadcrumb on folder change in general settings (#86583)
Change folder breadcrumb on folder change in general settings (#86342)

* Change folder breadcrumb on folder change in general settings

* tests and refactor

* refactor to fix broken tests

* fix test

(cherry picked from commit 60e6dd56bf)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-22 09:25:34 +02:00
grafana-delivery-bot[bot]
39ce4774f7 [v11.0.x] MSSQL: Add SQL_VARIANT converter and update test (#86469)
MSSQL: Add `SQL_VARIANT` converter and update test (#85823)

Add SQL_VARIANT converter and update test

(cherry picked from commit 420067a7e1)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-04-19 21:00:59 +01:00
grafana-delivery-bot[bot]
8903bf3b01 [v11.0.x] [DOC] Update the traces to profile content based upon SDK updates (#86632)
[DOC] Update the traces to profile content based upon SDK updates (#86628)

Update the traces to profile content based upon SDK updates

(cherry picked from commit d6e84dbf0a)

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2024-04-19 14:34:09 -05:00
grafana-delivery-bot[bot]
9f5a1d1c77 [v11.0.x] Docs: Update example docs for rename by regex (#86630)
Docs: Update example docs for `rename by regex` (#86627)

* baldm0mma/update_regex/ update example docs

* baldm0mma/ push ts

* baldm0mma/update_regex with new exmaples

* baldm0mma/update_regex/ update images

* baldm0mma/regex_update/ update text

(cherry picked from commit ad679c62c6)

Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
2024-04-19 15:24:55 -04:00
grafana-delivery-bot[bot]
5ae5fd32db [v11.0.x] VizTooltip: Fix heatmap mode All (#86468)
VizTooltip: Fix heatmap mode All (#86463)

(cherry picked from commit 38fe9fcfd1)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-04-19 06:56:46 -07:00
grafana-delivery-bot[bot]
9c604036e7 [v11.0.x] IntervalVariableEditor: Do not add current value as interval prop (#86591)
IntervalVariableEditor: Do not add current value as interval prop (#86446)

(cherry picked from commit 65afe90124)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2024-04-19 13:36:07 +02:00
grafana-delivery-bot[bot]
dce8a05fef [v11.0.x] CommandPalette: Fix keyboard shortcut alignment (#86590)
CommandPalette: Fix keyboard shortcut alignment (#86540)

* use full typography properties

* use Text component

(cherry picked from commit 63427ccd98)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-19 13:12:25 +02:00
grafana-delivery-bot[bot]
adb59eaeb5 [v11.0.x] EmptyState: Set a max width on the empty state component (#86589)
EmptyState: Set a max width on the empty state component (#86569)

set a max width on the empty state component

(cherry picked from commit 21588ce7e2)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-19 13:10:43 +02:00
grafana-delivery-bot[bot]
54f0fae4eb [v11.0.x] InfluxDB: Fix interpolating field keys in influxql (#86560)
InfluxDB: Fix interpolating field keys in influxql (#86401)

* interpolate field keys

* use scopedVars

(cherry picked from commit 842c8dd206)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-19 11:51:26 +02:00
grafana-delivery-bot[bot]
56cd797d65 [v11.0.x] Alerting: Fix simplified routing group by override (#86563)
Alerting: Fix simplified routing group by override (#86552)

* Alerting: Fix simplified routing custom group by override

Custom group by overrides for simplified routing were missing required fields
GroupBy and GroupByAll normally set during upstream Route validation.

This fix ensures those missing fields are applied to the generated routes.

* Inline GroupBy and GroupByAll initialization instead of normalize after

(cherry picked from commit 71445002b7)

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2024-04-19 03:25:13 +02:00
grafana-delivery-bot[bot]
bad4fc05c5 [v11.0.x] NodeGraph: Fix invisible arrow tips in Editor (#86548)
NodeGraph: Fix invisible arrow tips in Editor (#86517)

NodeGraphPanel: Namespace marker IDs to fix invisible arrow tips in editor

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
(cherry picked from commit f3fcfad2c8)

Co-authored-by: timo <timonator@perpetuum-immobile.de>
2024-04-18 21:12:51 +02:00
grafana-delivery-bot[bot]
9ba76038a0 [v11.0.x] RolePicker: Adjust dynamic position (#86542)
RolePicker: Adjust dynamic position (#86424)

* Adjust dynamic position

(cherry picked from commit 1d1ebee36b)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2024-04-18 18:18:10 +02:00
grafana-delivery-bot[bot]
d05587b2fd [v11.0.x] Dashboard: DashboardPageProxy - Use chaining operators to prevent runtime error (#86536)
Dashboard: DashboardPageProxy - Use chaining operators to prevent runtime error (#86507)

* Use chaining operators to prevent runtime error

* Fix tests

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
(cherry picked from commit 7a147f2ce8)

Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
2024-04-18 17:32:41 +02:00
grafana-delivery-bot[bot]
2c4277f5f8 [v11.0.x] Docs: Add GeoMaps YouTube Video (#86533)
Docs: Add GeoMaps YouTube Video (#86472)

* Update index.md on GeoMaps adding YouTube Video

Added the GeoMap YouTube video to the documentation

* Update docs/sources/panels-visualizations/visualizations/geomap/index.md

Totally agree, I tend to use those words and not realize :P

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 0d11f9b2f4)

Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-04-18 11:01:53 -04:00
grafana-delivery-bot[bot]
ac20c614a3 [v11.0.x] Cli: Check missing plugin parameter of plugin update command (#86522)
Cli: Check missing plugin parameter of plugin update command (#86410)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
(cherry picked from commit 817f787947)

Co-authored-by: Vanilla <osu_Vanilla@126.com>
2024-04-18 16:02:14 +02:00
grafana-delivery-bot[bot]
6e2727c7ba [v11.0.x] docs: update heatmap visualization and add play links (#86514)
docs: update heatmap visualization and add play links (#85926)

* docs: update heatmap visualization

* docs: add state timeline and status history play shortcodes

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* docs: add heatmap video

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 8373fc3544)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-04-18 08:29:03 -04:00
grafana-delivery-bot[bot]
a12e727213 [v11.0.x] Add Create annotations in panel video to the documentation (#86511)
Add Create annotations in panel video to the documentation (#86383)

* Add Create annotations in panel video to the documentation

* Update docs/sources/dashboards/build-dashboards/annotate-visualizations/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit bdd288d058)

Co-authored-by: Lisa <60980933+LisaHJung@users.noreply.github.com>
2024-04-18 08:25:21 -04:00
grafana-delivery-bot[bot]
011c3fa3ef [v11.0.x] EmptyState: Add completed variant (#86503)
EmptyState: Add `completed` variant (#86497)

* add 'completed' variant

* add central text alignment

(cherry picked from commit 07044309f1)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-18 12:39:42 +02:00
grafana-delivery-bot[bot]
a3991687f2 [v11.0.x] Select: Increase size of virtualized list options (#86502) 2024-04-18 12:33:52 +02:00
grafana-delivery-bot[bot]
8127ea54b6 [v11.0.x] InfluxDB: Fix interpolation for floating point number values (#86495)
InfluxDB: Fix interpolation for floating point number values (#86396)

return number as it is

(cherry picked from commit 635d85db7a)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-18 12:20:57 +02:00
grafana-delivery-bot[bot]
f1c20f8692 [v11.0.x] DashboardScene: Fixes issue saving new dashboard from panel edit (#86480)
DashboardScene: Fixes issue saving new dashboard from panel edit (#86477)

(cherry picked from commit 1327bdf575)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-18 12:44:51 +03:00
grafana-delivery-bot[bot]
6881eabedf [v11.0.x] DashboardScene: Move add library panel view from grid item to drawer (#86409)
DashboardScene: Move add library panel view from grid item to drawer (#86257)

* DashboardScene: Add library panel in drawer

* DashboardScene: Move add libray panel view to a drawer instead of a grid item

* Update

* Update tests

(cherry picked from commit 5837def850)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-18 09:45:46 +03:00
grafana-delivery-bot[bot]
df2fee63a5 [v11.0.x] Add FolderUID for library elements (#86280)
Add FolderUID for library elements (#83819)

(cherry picked from commit 5c4a2de59b)

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
2024-04-17 20:04:37 +02:00
grafana-delivery-bot[bot]
c968ff62a1 [v11.0.x] Transforms: Fix 'Filter data by values' removing rows in unrelated frames (#86445)
Transforms: Fix 'Filter data by values' removing rows in unrelated frames (#86087)

(cherry picked from commit 9682022b1d)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-04-17 16:24:11 +02:00
grafana-delivery-bot[bot]
b5d8a753f9 [v11.0.x] EmptyState: Add call-to-action variant (#86439)
* EmptyState: Add `call-to-action` variant (#85017)

* add default variant

* enhance story

* rename to "initial" + update docs

* default to showing a CTA

* use switch

* translations

* update and use LinkButton

* update default message

* rename "initial" to "nothing-here"

* update variant name to `call-to-action`

* i18n

* add CTA svg

* extract into its own component

(cherry picked from commit f99d5a1c1a)

* remove console.log

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-17 15:42:11 +02:00
grafana-delivery-bot[bot]
9b33f9643c [v11.0.x] DashboardScene: Fixes react panels with old angular options (#86411) 2024-04-17 08:23:50 +02:00
grafana-delivery-bot[bot]
879bb31621 [v11.0.x] Docs: change availability to public preview for v11 (#86392)
Docs: change availability to public preview for v11 (#86390)

Changed availability to public preview

(cherry picked from commit d55ce5b2e8)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-16 15:20:02 -04:00
grafana-delivery-bot[bot]
46353e6a50 [v11.0.x] Alerting: Fix simplified routes '...' groupBy creating invalid routes (#86376)
Alerting: Fix simplified routes '...' groupBy creating invalid routes (#86006)

* Alerting: Fix simplified routes '...' groupBy creating invalid routes

There were a few ways to go about this fix:
1. Modifying our copy of upstream validation to allow this
2. Modify our notification settings validation to prevent this
3. Normalize group by on save
4. Normalized group by on generate

Option 4. was chosen as the others have a mix of the following cons:
- Generated routes risk being incompatible with upstream/remote AM
- Awkward FE UX when using '...'
- Rule definition changing after save and potential pitfalls with TF

With option 4. generated routes stay compatible with external/remote AMs, FE
doesn't need to change as we allow mixed '...' and custom label groupBys, and
settings we save to db are the same ones requested.

In addition, it has the slight benefit of allowing us to hide the internal
implementation details of `alertname, grafana_folder` from the user in the
future, since we don't need to send them with every FE or TF request.

* Safer use of DefaultNotificationSettingsGroupBy

* Fix missed API tests

(cherry picked from commit 533bed6d94)

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2024-04-16 14:41:13 -04:00
grafana-delivery-bot[bot]
973c913491 [v11.0.x] Docs: add panels & visualizations landing page (#86384)
Docs: add panels & visualizations landing page (#86073)

* Added landing page front structure

* Added description and overview content and card titles

* Added placeholder tile and work notes

* Finalized text and updated link type

* Updated panel overview tile link

(cherry picked from commit 7c441011f2)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-16 14:36:14 -04:00
grafana-delivery-bot[bot]
f4539f7e9d [v11.0.x] Cloudmigration: create migration (#86373)
Cloudmigration: create migration (#85386)

* Cloudmigration: create migration

* fix drone build

* lint fix

* fix unit test

---------

Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com>
(cherry picked from commit 383ebb2bc4)

Co-authored-by: Leonard Gram <leo@xlson.com>
2024-04-16 17:05:09 +01:00
grafana-delivery-bot[bot]
98401be295 [v11.0.x] Scope: Add basic integration tests (#86367)
Scopes: Add basic integration tests (#85351)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
(cherry picked from commit dd6c8732b3)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-04-16 17:01:46 +01:00
grafana-delivery-bot[bot]
6b6b7601a2 [v11.0.x] K8s: standalone authenticator that allows a type of downstream forwarding (#86362)
K8s: standalone authenticator that allows a type of downstream forwarding (#85130)

(cherry picked from commit 0f1151964c)

Co-authored-by: Charandas <charandas@users.noreply.github.com>
2024-04-16 16:57:06 +01:00
grafana-delivery-bot[bot]
c1ff508b6e [v11.0.x] Canvas: Fix styles applying glitch on element type changing (#86365)
Canvas: Fix styles applying glitch on element type changing (#85184)

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 20eac8d264)

Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com>
2024-04-16 16:47:52 +01:00
grafana-delivery-bot[bot]
9bc4d4c5be [v11.0.x] AWS DataSource: Fix namespaces in sagemaker metrics (#86363)
AWS DataSource: Fix namespaces in sagemaker metrics (#85357)

(cherry picked from commit 58b583f0c5)

Co-authored-by: Tristan <tburgessdev@gmail.com>
2024-04-16 16:47:31 +01:00
grafana-delivery-bot[bot]
8de772e55d [v11.0.x] CloudMigrations: Add instance metadata to auth token (#86371)
CloudMigrations: Add instance metadata to auth token (#85381)

* update how tokens are passed around

* rename structs

(cherry picked from commit 5a5f76ae0a)

Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
2024-04-16 16:45:57 +01:00
grafana-delivery-bot[bot]
fd4c86539b [v11.0.x] Auth: add Dex example to generic OAuth2 documentation (#86364)
Auth: add Dex example to generic OAuth2 documentation (#84744)

This patch adds an example configuration for setting up generic OAuth2
authentication using [Dex IdP](https://dexidp.io/).

(cherry picked from commit e9969e3542)

Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com>
2024-04-16 16:44:55 +01:00
grafana-delivery-bot[bot]
4ba82538b8 [v11.0.x] Graphite: second function as another function argument parsing error fix (#86361)
Graphite: second function as another function argument parsing error fix (#85224)

* update language around query editor parsing issues

* add special handling for second function arguments in divideSeriesLists

* additional check for first argument as series(string) and not a function

(cherry picked from commit 3c28a3d494)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2024-04-16 16:44:20 +01:00
grafana-delivery-bot[bot]
814732e6d1 [v11.0.x] Scopes: Create binding per relationship (#86368)
Scopes: Create binding per relationship (#85332)

scopes: create binding per relationship

Signed-off-by: bergquist <carl.bergquist@gmail.com>
(cherry picked from commit a71dfe806a)

Co-authored-by: Carl Bergquist <carl.bergquist@gmail.com>
2024-04-16 16:43:01 +01:00
grafana-delivery-bot[bot]
954f869e61 [v11.0.x] Canvas: Fix SVG items background glitch (#86366) 2024-04-16 11:34:17 -04:00
grafana-delivery-bot[bot]
6f6667d89c [v11.0.x] JWT: Find login and email claims with JMESPATH (#86357)
JWT: Find login and email claims with JMESPATH (#85305)

* add function to static function to static service

* find email and login claims with jmespath

* rename configuration files

* Replace JWTClaims struct for map

* check for subclaims error

(cherry picked from commit e4250a72db)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2024-04-16 16:25:18 +01:00
grafana-delivery-bot[bot]
ca94886e18 [v11.0.x] Explore: Nested Content Outline (#86355)
Explore: Nested Content Outline (#80688)

* indentation levels

* Highlight parent section when child is selected

* Fix context, add rotation to toggle button

* Merge single child logic; fix styling

* Fix collapsed logic, make elipsis work, reorganize for better readability;

* Add connector

* Tooltip placement

* Update tests so they test components the same way users would interact with them

* Clean up indendation levels

* Support collapsing logic for multiple section; highlight all items in a section of an active child - parent is active only when section is collapsed and child inside of it is active

* Simplify making ellipsis work

* Show tooltip if the text overflows in expanded mode

* The whole button container should have same background when section is expanded in mini view

* Fix a bug where root items were not being sorted by document position

* Update query order when query rows are changed through dragging and dropping

* Fix the issue where chaning the title of a query row would remove the query

(cherry picked from commit 649c456eab)

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2024-04-16 16:25:05 +01:00
grafana-delivery-bot[bot]
64c17b0ee6 [v11.0.x] User: email verification completion (#86354)
User: email verification completion (#85259)

* TempUser: Include InvitedById in TempUserDTO

* Extract email verfication completion flow to service

(cherry picked from commit 73e426b081)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-04-16 16:24:53 +01:00
grafana-delivery-bot[bot]
23a24bc9af [v11.0.x] CloudMigration: Add service to list all migrations (#86350)
CloudMigration:  Add service to list all migrations (#85308)

(cherry picked from commit 5b147d0847)

Co-authored-by: lean.dev <34773040+leandro-deveikis@users.noreply.github.com>
2024-04-16 16:24:38 +01:00
grafana-delivery-bot[bot]
2ee985abc2 [v11.0.x] Panel: Description display event is reported multiple times (#86356)
Panel: Description display event is reported multiple times (#85283)

(cherry picked from commit 233f119037)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2024-04-16 16:10:41 +01:00
grafana-delivery-bot[bot]
c4e057eddf [v11.0.x] Loki: Fix test flake (#86353)
Loki: Fix test flake (#85356)

attempt to fix flake

(cherry picked from commit 0c78d80ef1)

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2024-04-16 16:09:43 +01:00
grafana-delivery-bot[bot]
d81380cc21 [v11.0.x] Revert "Update ephemeral instances workflow to get version from package.json" (#86352)
Revert "Update ephemeral instances workflow to get version from package.json" (#85347)

Revert "Update ephemeral instances workflow to get version from package.json …"

This reverts commit dda1531952.

(cherry picked from commit 29c76b98d4)

Co-authored-by: Leonor Oliveira <9090754+leonorfmartins@users.noreply.github.com>
2024-04-16 16:09:19 +01:00
Ashley Harrison
2794579c28 [v11.0.x] Update dependency @swc/helpers to v0.5.8 (#86358)
Update dependency @swc/helpers to v0.5.8 (#85327)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit b155bc11a1)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 16:08:43 +01:00
grafana-delivery-bot[bot]
33413b762f [v11.0.x] Docs: Add capture_timeout option (#86351)
Docs: Add capture_timeout option (#85340)

(cherry picked from commit ce57ce4125)

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2024-04-16 16:08:26 +01:00
grafana-delivery-bot[bot]
1a099d444e [v11.0.x] Templating: Link label to input (#86349)
Templating: Link label to input (#85329)

Pass id to VariableInput

(cherry picked from commit a44aa342a7)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2024-04-16 16:01:49 +01:00
grafana-delivery-bot[bot]
d37a55db45 [v11.0.x] Update dependency yaml to v2.4.1 (#86348)
Update dependency yaml to v2.4.1 (#85335)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 40c88596d8)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 16:01:26 +01:00
grafana-delivery-bot[bot]
5249af80ca [v11.0.x] I18n: Download translations from Crowdin (#86347)
I18n: Download translations from Crowdin (#85257)

New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 97c3c51e52)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-16 16:00:58 +01:00
grafana-delivery-bot[bot]
492d6dd3fd [v11.0.x] Update dependency webpack-assets-manifest to v5.2.1 (#86338)
Update dependency webpack-assets-manifest to v5.2.1 (#85331)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit f5cd840dd0)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 16:00:36 +01:00
grafana-delivery-bot[bot]
198b8febde [v11.0.x] K8s/Frontend: Add generic resource server and use it for playlists (#86337)
K8s/Frontend: Add generic resource server and use it for playlists (#83339)

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
(cherry picked from commit 45d1766524)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-04-16 15:38:22 +01:00
grafana-delivery-bot[bot]
486fb23af5 [v11.0.x] fix internal url in tutorials (#86339)
fix internal url in tutorials (#85273)

* fix internal url in tutorials

* prettyfied

* fix: update broken links

---------

Co-authored-by: mdcruz <marie.descruz@gmail.com>
(cherry picked from commit 85a646b4dc)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2024-04-16 15:38:00 +01:00
grafana-delivery-bot[bot]
595bf811ca [v11.0.x] Update dependency eslint-plugin-jsdoc to v48.2.2 (#86336)
Update dependency eslint-plugin-jsdoc to v48.2.2

(cherry picked from commit d227621217)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:37:39 +01:00
grafana-delivery-bot[bot]
f4ffa3a1a2 [v11.0.x] Update dependency @grafana/aws-sdk to v0.3.3 (#86335)
Update dependency @grafana/aws-sdk to v0.3.3 (#85326)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 4854f10ee2)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:37:19 +01:00
grafana-delivery-bot[bot]
e9046e8cb1 [v11.0.x] Update dependency stylelint-config-sass-guidelines to v11.1.0 (#86334)
Update dependency stylelint-config-sass-guidelines to v11.1.0 (#85291)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit ad1b60e651)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:36:58 +01:00
grafana-delivery-bot[bot]
b84bd7eb90 [v11.0.x] Tempo: Show <1ms when durationMs not in response (#86333)
Tempo: Show <1ms when durationMs not in response (#85267)

* Show <1ms when durationMs not in response

* Update tests

(cherry picked from commit 8c770a283e)

Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
2024-04-16 15:36:29 +01:00
Ashley Harrison
1bc4ceb77c [v11.0.x] Update dependency webpack to v5.91.0 (#86344)
Update dependency webpack to v5.91.0 (#85302)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 50a57bb88c)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:36:11 +01:00
Ashley Harrison
a2addd8ae2 [v11.0.x] Chore: Bump Nx to 18.1.x (#86343)
* Chore: Bump Nx to 18.1.x (#85185)

* chore: bump nx to latest version

* build(plugin-configs): reduce wonky webpack output when logged via nx

* revert(plugin-configs): remove infrastructureLogging property

(cherry picked from commit c6a489cfd8)

* update yarn lock file

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-04-16 15:36:00 +01:00
grafana-delivery-bot[bot]
5a348fa711 [v11.0.x] AngularMigration: Allow dashboard by dashboard migration (#86330)
AngularMigration: Allow dashboard by dashboard migration (#84100)

(cherry picked from commit e5d1cd8ea5)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-04-16 15:08:19 +01:00
grafana-delivery-bot[bot]
d781a08014 [v11.0.x] ci: Stop running ephemeral instances workflow when not needed (#86329)
ci: Stop running ephemeral instances workflow when not needed (#85306)

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
(cherry picked from commit 08d603e660)

Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2024-04-16 15:07:24 +01:00
grafana-delivery-bot[bot]
af98f4d58d [v11.0.x] Update dependency msw to v2.2.13 (#86328)
Update dependency msw to v2.2.13

(cherry picked from commit 39e91e2984)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:06:43 +01:00
grafana-delivery-bot[bot]
2b52fbb8b0 [v11.0.x] Update dependency @types/react to v18.2.73 (#86327)
Update dependency @types/react to v18.2.73

(cherry picked from commit 2f18148da2)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:05:13 +01:00
grafana-delivery-bot[bot]
67c976366e [v11.0.x] Scopes: Add Filtering for ScopeDashoardBinding and Update Prometheus for ScopeFilterOperator Changes (#86326)
Scopes: Add Filtering for ScopeDashoardBinding and Update Prometheus for ScopeFilterOperator Changes (#85284)

(cherry picked from commit 136f8e6f0c)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2024-04-16 14:46:21 +01:00
grafana-delivery-bot[bot]
41d7cba970 [v11.0.x] Update dependency stylelint to v16.3.1 (#86325)
Update dependency stylelint to v16.3.1 (#85286)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 7e1cd4397a)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:46:07 +01:00
grafana-delivery-bot[bot]
de18ae9ecf [v11.0.x] Update dependency react-zoom-pan-pinch to v3.4.3 (#86324)
Update dependency react-zoom-pan-pinch to v3.4.3 (#85263)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit a6fcbd1eb2)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:44:58 +01:00
grafana-delivery-bot[bot]
f6606c558e [v11.0.x] Storage: GuaranteedUpdate fix & other improvements (#86323)
Storage: GuaranteedUpdate fix & other improvements (#85206)

make GuaranteedUpdate work when ignoring not found errors, increase poll frequency, fix Delete

(cherry picked from commit ef26fe95dc)

Co-authored-by: Dan Cech <dcech@grafana.com>
2024-04-16 14:42:56 +01:00
grafana-delivery-bot[bot]
a3ec3c6d96 [v11.0.x] Update dependency sass to v1.72.0 (#86322)
Update dependency sass to v1.72.0 (#85272)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 986b078d79)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:42:34 +01:00
grafana-delivery-bot[bot]
684aca803f [v11.0.x] AuthN: Add IsAuthenticatedBy to identity interface and replace checks (#86321)
AuthN: Add IsAuthenticatedBy to identity interface and replace checks (#85262)

Add IsAuthenticatedBy to identity interface and replace checks

(cherry picked from commit 152cb47692)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-04-16 14:41:15 +01:00
grafana-delivery-bot[bot]
6f87c9393e [v11.0.x] Update dependency react-hook-form to v7.51.2 (#86315)
Update dependency react-hook-form to v7.51.2 (#85249)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 3049acd7d7)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:08:43 +01:00
grafana-delivery-bot[bot]
49df41f0ce [v11.0.x] Update dependency jest-date-mock to v1.0.9 (#86314)
Update dependency jest-date-mock to v1.0.9

(cherry picked from commit e4a265f60c)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:08:20 +01:00
grafana-delivery-bot[bot]
aef19a4a8f [v11.0.x] QueryLibrary: Use default variable values in render (#86312)
QueryLibrary: Use default variable values in render (#84678)

(cherry picked from commit d71266b8af)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2024-04-16 14:07:48 +01:00
grafana-delivery-bot[bot]
cd938e20ff [v11.0.x] Fix new dashboard save name validation (#86316)
Fix new dashboard save name validation (#86290)

(cherry picked from commit b9285e320a)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-16 15:03:45 +02:00
grafana-delivery-bot[bot]
139933b0ca [v11.0.x] EmptyState: use not-found empty state variant everywhere in core (#86311)
* EmptyState: use `not-found` empty state variant everywhere in core (#85007)

* use EmptyState component everywhere in core

* remove GrotNotFound core component

* update unit tests

* search -> not-found

* fix 3 more

(cherry picked from commit 7ad2ec9665)

* EmptyState: Provide custom messages for existing empty states (#86021)

provide custom messages for existing empty states

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-16 14:02:21 +01:00
grafana-delivery-bot[bot]
b2f5eb1d87 [v11.0.x] LLMApp: Skip 404 requests to know if the plugin exists (#85269)
LLMApp: Skip 404 requests to know if the plugin exists (#85226)

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
(cherry picked from commit 61e67423ff)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-16 14:51:26 +02:00
grafana-delivery-bot[bot]
389b734da1 [v11.0.x] Docs: Update broken links to grafana play (#86310)
Docs: Update broken links to grafana play (#86233)

* Docs: Update broken links to grafana play

* Update docs/sources/datasources/graphite/template-variables/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Update docs/sources/datasources/influxdb/template-variables/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 7c7cdf7c3d)

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2024-04-16 14:49:42 +02:00
grafana-delivery-bot[bot]
8377ef1573 [v11.0.x] correct a url (#86302)
correct a url (#85245)

(cherry picked from commit cec25113f6)

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
2024-04-16 13:48:00 +01:00
grafana-delivery-bot[bot]
d0c61df20f [v11.0.x] Update dependency diff to v5.2.0 (#86301)
Update dependency diff to v5.2.0 (#85244)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 7640922d76)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 13:32:33 +01:00
grafana-delivery-bot[bot]
b9ca9e26e5 [v11.0.x] Storybook: Fix link to Saga (#86298)
Storybook: Fix link to Saga (#85179)

(cherry picked from commit 951d5b4e9f)

Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
2024-04-16 13:32:20 +01:00
grafana-delivery-bot[bot]
3d5e7fd7e5 [v11.0.x] Dashboard scenes: Export isExpressionReference to be accessible from scenes (#86299)
Dashboard scenes: Export isExpressionReference to be accessible from scenes (#85228)

Export isExpressionRef to be accessible from scenes

(cherry picked from commit b7156ef2c2)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-04-16 13:31:57 +01:00
grafana-delivery-bot[bot]
6d40282a82 [v11.0.x] Pa11y: Decrease error thresholds for PRs (#86297)
Pa11y: Decrease error thresholds for PRs (#85178)

* Pa11y-pr: lower error thresholds

* Increase threshold for alerting

(cherry picked from commit 6248bdda48)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2024-04-16 13:31:38 +01:00
Ashley Harrison
cf87defa8e [v11.0.x] Update dependency @grafana/faro-web-sdk to v1.5.0 (#86306)
Update dependency @grafana/faro-web-sdk to v1.5.0 (#85235)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 176709683a)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 13:31:15 +01:00
grafana-delivery-bot[bot]
d9c89cb1b8 [v11.0.x] Update dependency date-fns to v3.6.0 (#86300)
Update dependency date-fns to v3.6.0 (#85243)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit c7b4427151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 13:16:47 +01:00
grafana-delivery-bot[bot]
c1eef3b789 [v11.0.x] Update dependency @grafana/plugin-e2e to ^0.25.0 (#86295)
Update dependency @grafana/plugin-e2e to ^0.25.0 (#85236)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 4cf0c8dfb2)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 13:16:19 +01:00
grafana-delivery-bot[bot]
3be2562991 [v11.0.x] Update dependency @grafana/faro-web-sdk to v1.5.0 (#86294)
Update dependency @grafana/faro-web-sdk to v1.5.0 (#85234)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 9787f19dc3)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 12:59:36 +01:00
grafana-delivery-bot[bot]
addbf53952 [v11.0.x] Update dependency msw to v2.2.12 (#86293)
Update dependency msw to v2.2.12

(cherry picked from commit e28fc1a4a5)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 12:58:22 +01:00
grafana-delivery-bot[bot]
5185fe376d [v11.0.x] Update dependency xss to v1.0.15 (#86292)
Update dependency xss to v1.0.15 (#85215)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 869a7c8e15)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 12:57:36 +01:00
grafana-delivery-bot[bot]
6afa5d5654 [v11.0.x] Update dependency nanoid to v5.0.6 (#86291)
Update dependency nanoid to v5.0.6 (#85205)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 7df1f84c63)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 12:57:14 +01:00
grafana-delivery-bot[bot]
45b18cb91b [v11.0.x] Alerting: Make hovercard accessible (#86272)
Alerting: Make hovercard accessible (#85195)

(cherry picked from commit 90a1e8a82f)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-04-16 12:30:29 +01:00
grafana-delivery-bot[bot]
18db3762f8 [v11.0.x] CloudWatch : Add missing AWS/ES metrics (#86271)
CloudWatch : Add missing AWS/ES metrics (#85210)

Adding missing ES metrics

(cherry picked from commit ace1cd6301)

Co-authored-by: Pablo <2617411+thepalbi@users.noreply.github.com>
2024-04-16 12:30:09 +01:00
Ashley Harrison
ddea51b403 [v11.0.x] Update dependency @types/react to v18.2.72 (#86283)
Update dependency @types/react to v18.2.72

(cherry picked from commit e184520c61)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 12:29:49 +01:00
grafana-delivery-bot[bot]
9c64750d49 [v11.0.x] Update dependency msw to v2.2.11 (#86270)
Update dependency msw to v2.2.11

(cherry picked from commit 6ed5e36fe5)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 11:40:16 +01:00
grafana-delivery-bot[bot]
af4c8b8804 [v11.0.x] Update dependency eslint-scope to v8.0.1 (#86269)
Update dependency eslint-scope to v8.0.1

(cherry picked from commit 98eec74483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 11:39:14 +01:00
grafana-delivery-bot[bot]
9d1a004180 [v11.0.x] Chore: InfluxQL stream parser improvements (#86268)
Chore: InfluxQL stream parser improvements (#85041)

* don't iterate over first column as it is a time column already

* don't iterate over first column as it was handled earlier

* add more flexibility to run the commands

* Update pkg/tsdb/influxdb/influxql/converter/converter.go

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
(cherry picked from commit fec7765111)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-16 11:38:54 +01:00
grafana-delivery-bot[bot]
c25aea926d [v11.0.x] Update dependency @kusto/monaco-kusto to v10.0.18 (#86276)
Update dependency @kusto/monaco-kusto to v10.0.18

(cherry picked from commit 1513b0cab1)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 11:37:43 +01:00
Ashley Harrison
60c39b46c0 [v11.0.x] Update dependency @floating-ui/react to v0.26.10 (#86275)
Update dependency @floating-ui/react to v0.26.10 (#85181)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 1df15a3a4c)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 11:37:10 +01:00
grafana-delivery-bot[bot]
70c56b0d33 [v11.0.x] Update dependency @glideapps/glide-data-grid to v6.0.3 (#86274)
Update dependency @glideapps/glide-data-grid to v6.0.3 (#85189)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit af3e453068)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 11:36:58 +01:00
grafana-delivery-bot[bot]
681554c376 [v11.0.x] Alerting: Reduce set of fields that could trigger alert state change (#86266)
Alerting: Reduce set of fields that could trigger alert state change (#83496)

We want to avoid too much change of alert state based on change on
alert's fields. For that we ignore some fields from the diff.

(cherry picked from commit 6f38ac6615)

Co-authored-by: Benoit Tigeot <benoittgt@users.noreply.github.com>
2024-04-16 10:35:59 +01:00
grafana-delivery-bot[bot]
8d8365671b [v11.0.x] Auth: Improve org role sync debugging (#86203)
Auth: Improve org role sync debugging (#85146)

add login to the context of the logger

(cherry picked from commit da40158fed)

Co-authored-by: Jo <joao.guerreiro@grafana.com>
2024-04-16 10:32:11 +01:00
Ashley Harrison
40e6e28f2a [v11.0.x] Update dependency @kusto/monaco-kusto to v10 (#81382) (#86265)
Update dependency @kusto/monaco-kusto to v10 (#81382)

* Update dependency @kusto/monaco-kusto to v10

* match types + update mocks

* Add missing esModule

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
(cherry picked from commit 5146896264)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 10:31:53 +01:00
grafana-delivery-bot[bot]
51edeba087 [v11.0.x] Scopes: Name relationship objects *binding (#86202)
Scopes: Name relationship objects *binding (#84955)

Signed-off-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
(cherry picked from commit b214b07695)

Co-authored-by: Carl Bergquist <carl.bergquist@gmail.com>
2024-04-16 09:48:00 +01:00
grafana-delivery-bot[bot]
0ab7f88506 [v11.0.x] Dashboard: Migration - Add public dashboard tag in the nav bar (#86263)
Dashboard: Migration -  Add public dashboard tag in the nav bar (#86204)

Migrate public dashboard badge to scenes dashboard

(cherry picked from commit 40f1b2c92c)

Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
2024-04-16 10:22:35 +02:00
grafana-delivery-bot[bot]
ee1850dca3 [v11.0.x] DashboardScene: Fixes saving dashboard with angular panels (#86255)
DashboardScene: Fixes saving dashboard with angular panels  (#86098)

* DashboardScene: Fixes saving angularOptions

* Update

* Update

(cherry picked from commit e15beab362)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-16 03:32:40 +02:00
grafana-delivery-bot[bot]
900080155c [v11.0.x] DashboardScene: Fix empty row repeat issue (#86254)
DashboardScene: Fix empty row repeat issue (#86095)

(cherry picked from commit 869814ea3e)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-16 03:27:12 +02:00
grafana-delivery-bot[bot]
a54eeee13c [v11.0.x] docs: add annotations play link (#86248)
docs: add annotations play link (#86206)

* docs: add annotations play link

* PR feedback

(cherry picked from commit c9350a25c4)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 17:41:06 -04:00
grafana-delivery-bot[bot]
0f1c922686 [v11.0.x] docs: add thresholds play link (#86241)
docs: add thresholds play link (#86212)

* docs: add thresholds play link

* PR review

(cherry picked from commit f50e29e004)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 17:23:56 -04:00
grafana-delivery-bot[bot]
edb1ebec10 [v11.0.x] docs: added logs panel play link; added dedup options, reformatted fig (#86238)
docs: added logs panel play link; added dedup options, reformatted fig (#86209)

* docs: added logs panel play link; added dedup options, reformatted fig

* Update docs/sources/panels-visualizations/visualizations/logs/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Update docs/sources/panels-visualizations/visualizations/logs/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 19ae9377b9)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 17:12:46 -04:00
grafana-delivery-bot[bot]
9a06d843a4 [v11.0.x] Docs: added bar gauge play link (#86227)
Docs: added bar gauge play link (#86205)

* docs: added bar gauge play link

* Update docs/sources/panels-visualizations/visualizations/bar-gauge/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 04e127b368)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 15:58:23 -04:00
grafana-delivery-bot[bot]
f40bb12125 [v11.0.x] docs: query data/relative time range override play link (#86231)
docs: query data/relative time range override play link (#86213)

(cherry picked from commit c450d61d32)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 15:56:16 -04:00
grafana-delivery-bot[bot]
54a6fb9bf5 [v11.0.x] Docs: add template var Play link; cleanup existing (#86221)
Docs: add template var Play link; cleanup existing (#86074)

* Docs: add template var Play link; cleanup existing

* Update docs/sources/dashboards/variables/_index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Update docs/sources/dashboards/variables/_index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 5a57c31607)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 15:52:22 -04:00
grafana-delivery-bot[bot]
59fe58fedf [v11.0.x] Docs: add panel overview (#86183)
Docs: add panel overview (#86075)

* Added panel overview page and updated panel editor page

* Finalized panel overview intro text and added links

* Added add panel section to overview and removed section from editor

* Fixed version interpolation syntax and updated Cloud link

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* Fixed version interpolation syntax

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

---------

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

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-15 15:31:15 -04:00
grafana-delivery-bot[bot]
ac207411e0 [v11.0.x] Update dependency @msagl/parser to v1.1.18 (#86201)
Update dependency @msagl/parser to v1.1.18 (#85138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 96c626d3d3)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 16:56:26 +01:00
grafana-delivery-bot[bot]
f1d2c5f2cb [v11.0.x] Changelog: Updated changelog for 10.2.6 (#86200)
Changelog: Updated changelog for 10.2.6 (#85171)

* Changelog: Updated changelog for 10.2.6

* run prettier

---------

Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
(cherry picked from commit ee4ac983b2)

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-04-15 16:54:04 +01:00
grafana-delivery-bot[bot]
9a0b8548f8 [v11.0.x] Get started with alerting fixes for publish (#86199)
Get started with alerting fixes for publish (#85158)

* Rename alerting-get-started.md to index.md

* edits

* edits

* prettier

* Update docs/sources/tutorials/alerting-get-started/index.md

Co-authored-by: tonypowa <45235678+tonypowa@users.noreply.github.com>

---------

Co-authored-by: tonypowa <tonypowa@gmail.com>
Co-authored-by: tonypowa <45235678+tonypowa@users.noreply.github.com>
(cherry picked from commit 54270dff36)

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
2024-04-15 16:53:39 +01:00
grafana-delivery-bot[bot]
41a71511f9 [v11.0.x] Changelog: Updated changelog for 10.1.9 (#86198)
Changelog: Updated changelog for 10.1.9 (#85167)

Co-authored-by: grafanabot <bot@grafana.com>
(cherry picked from commit da1ef0e1fa)

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-04-15 16:53:12 +01:00
grafana-delivery-bot[bot]
8d366eb67c [v11.0.x] Prometheus: Create jsonschema spec (#86197)
Prometheus: Create jsonschema spec (#85077)

(cherry picked from commit e5cf863973)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-04-15 16:52:53 +01:00
grafana-delivery-bot[bot]
e00a5ec73e [v11.0.x] Changelog: Updated changelog for 10.0.13 (#86196)
Changelog: Updated changelog for 10.0.13 (#85163)

Co-authored-by: grafanabot <bot@grafana.com>
(cherry picked from commit b47dc7e8ac)

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-04-15 16:49:55 +01:00
grafana-delivery-bot[bot]
c7c5c58b5f [v11.0.x] Nodegraph: Fix issue with rendering single node (#86195)
Nodegraph: Fix issue with rendering single node (#84930)

Fix for single node graph case

(cherry picked from commit aba65747c9)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2024-04-15 16:49:37 +01:00
grafana-delivery-bot[bot]
ebdea3e5c2 [v11.0.x] Changelog: Updated changelog for 9.5.18 (#86194)
Changelog: Updated changelog for 9.5.18 (#85159)

Co-authored-by: grafanabot <bot@grafana.com>
(cherry picked from commit dd93d9958d)

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-04-15 16:31:47 +01:00
grafana-delivery-bot[bot]
482e660e01 [v11.0.x] SaveDashboardForm: Remove deprecated Form usage (#86193)
SaveDashboardForm: Remove deprecated Form usage (#84172)

* SaveDashboardForm: Remove deprecated Form usage

* Update

(cherry picked from commit d105323f15)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2024-04-15 16:31:20 +01:00
grafana-delivery-bot[bot]
5239d491a8 [v11.0.x] Saga-icons: Switch to ESM (#86191)
Saga-icons: Switch to ESM (#84875)

(cherry picked from commit 0f6858709b)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2024-04-15 16:30:56 +01:00
grafana-delivery-bot[bot]
0be78631d7 [v11.0.x] Tooltip / Toggletip content link styling: Remove global a element selector inside tooltips (#86190)
Tooltip / Toggletip content link styling: Remove global a element selector inside tooltips (#84353)

* fix: remove global a tag styles inside tooltips

* corret inside / outside button references in toggletip test

* Remove code and pre styling rules from tooltipUtils

(cherry picked from commit b4ed72f1b6)

Co-authored-by: Chris Bedwell <christopher.bedwell@grafana.com>
2024-04-15 16:30:29 +01:00
grafana-delivery-bot[bot]
98417a579f [v11.0.x] Loki: Support custom X-Query-Tags header (#86189)
Loki: Support custom `X-Query-Tags` header (#85123)

* Loki: Support custom `X-Query-Tags` header

* add comment

(cherry picked from commit 9a8ae3c932)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-04-15 16:30:09 +01:00
grafana-delivery-bot[bot]
232798e0d0 [v11.0.x] IDFowrarding: ignore logging context canceled errors (#86187)
IDFowrarding: ignore logging context canceled errors (#85141)

(cherry picked from commit 2f5e3023c2)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-04-15 16:29:45 +01:00
grafana-delivery-bot[bot]
3547c55b52 [v11.0.x] Provisioning: Fix regression when dashboardProvisioner is accessed before being initialised (#86186)
Provisioning: Fix regression when dashboardProvisioner is accessed before being initialised (#85011)

* Provisioning: Fix regression when dashboardProvisioner is accessed before being initialized

* Set dashboard provisioner in the provider

(cherry picked from commit 5ebf2d08f6)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2024-04-15 16:29:23 +01:00
grafana-delivery-bot[bot]
facb6f63eb [v11.0.x] DataTrails: Fixes home page background issue to make Cards work better (#86185)
DataTrails: Fixes home page background issue to make Cards work better (#85055)

* DataTrails: Fixes home page background issue to make Cards work better

* Update DataTrailsHome.tsx

(cherry picked from commit d039a0a485)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-15 16:29:00 +01:00
grafana-delivery-bot[bot]
5c45d2f4cd [v11.0.x] Update ephemeral instances workflow to get version from package.json (#86180)
Update ephemeral instances workflow to get version from package.json (#85088)

* use the same value for GRAFANA_VERSION and HOSTED_GRAFANA_IMAGE_TAG

* update codeowners for these files

(cherry picked from commit dda1531952)

Co-authored-by: Dafydd <72009875+dafydd-t@users.noreply.github.com>
2024-04-15 16:28:29 +01:00
grafana-delivery-bot[bot]
708ba6f3ac [v11.0.x] MySQL: snapshot tests (#86184)
MySQL: snapshot tests (#84846)

mysql: add snapshot tests
(cherry picked from commit 3b7ee3a56b)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-04-15 16:28:08 +01:00
grafana-delivery-bot[bot]
bce6d445e9 [v11.0.x] postgres: improved tests (#86181)
postgres: improved tests (#84677)

* postgres: tests: better test aligning time-series results

* postgres: add snapshot test for a backward-compat code

(cherry picked from commit c835022861)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-04-15 16:27:44 +01:00
grafana-delivery-bot[bot]
6204c035df [v11.0.x] LibraryPanelRBAC: Fix issue with importing dashboards containing library panels (#86149)
LibraryPanelRBAC: Fix issue with importing dashboards containing library panels (#83980)

(cherry picked from commit 6a53864f7a)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-15 17:18:23 +02:00
grafana-delivery-bot[bot]
87a5f1f30d [v11.0.x] Docs: add dashboards landing page (#86188)
Docs: add dashboards landing page (#86001)

* Added template from existing landing page

* Added dashboards content

* Fixed front matter

* Referenced existing icon to test

* Added test icon

* Edited text

* Fixed link formatting

* Finalized description and overview text

* Updated description'

* Updated tile text

* Updated docs/ref section

(cherry picked from commit 219c2c761e)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-15 11:11:42 -04:00
grafana-delivery-bot[bot]
3aba1ade9f [v11.0.x] Datasources: Add fixed width to name field in config editor (#86179)
Datasources: Add fixed width to name field in config editor (#84970)

add fixed width to name field

(cherry picked from commit 28ecd83987)

Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
2024-04-15 16:10:37 +01:00
grafana-delivery-bot[bot]
3628fdd6d7 [v11.0.x] Update dependency rudder-sdk-js to v2.48.6 (#86174)
Update dependency rudder-sdk-js to v2.48.6

(cherry picked from commit 4b11877337)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 16:10:15 +01:00
grafana-delivery-bot[bot]
9744f081fc [v11.0.x] Expressions+Testdata: Create json schema for query types (#86164)
Expressions: Create json schema for query types (#84032)

(cherry picked from commit 4cda34ff7d)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-04-15 16:09:50 +01:00
grafana-delivery-bot[bot]
0a95bcb6bd [v11.0.x] Chore: Add github action to check go module updates (#86161)
Chore: Add github action to check go module updates (#84936)

(cherry picked from commit d4e6b325bf)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-04-15 16:09:31 +01:00
grafana-delivery-bot[bot]
8a1cda8787 [v11.0.x] Docs: add tags section to dashboard settings docs (#86178)
Docs: add tags section to dashboard settings docs (#85875)

Edited

(cherry picked from commit 918f122433)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-15 11:02:03 -04:00
grafana-delivery-bot[bot]
6efe1b5cab [v11.0.x] Docs: add best practices Play link (#86173)
Docs: add best practices Play link (#86076)

(cherry picked from commit eb46d85829)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 10:58:53 -04:00
grafana-delivery-bot[bot]
8c0c45d54a [v11.0.x] Alerting: Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy (#86163)
Alerting: Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy (#85481)

Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy

(cherry picked from commit 5b1498f98f)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2024-04-15 09:49:09 -05:00
grafana-delivery-bot[bot]
16695fe0df [v11.0.x] Table Panel: Fix image disappearing when datalinks applied (#86160)
Table Panel: Fix image disappearing when datalinks applied (#84625)

* Fix link image disappearing

* Prettier

* i18n

* Fix offset to compensate for padding

* Prettier

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 154868e624)

Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
2024-04-15 15:42:46 +01:00
grafana-delivery-bot[bot]
ffe58a03b1 [v11.0.x] Scopes: Add type filter (#86159)
Scopes: Add type filter (#84866)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
(cherry picked from commit dfe61db7a5)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-04-15 15:42:27 +01:00
grafana-delivery-bot[bot]
2a2d3df119 [v11.0.x] Chore: Update glob-stream (#86156)
Chore: Update glob-stream (#85107)

(cherry picked from commit a61cac9d51)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2024-04-15 15:28:02 +01:00
grafana-delivery-bot[bot]
539800501b [v11.0.x] Chore: Add golangci-lint depgaurd rules for sub-modules (#86155)
Chore: Add depgaurd rules for sub-modules (#84084)

(cherry picked from commit 9684a9e39a)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-04-15 15:27:43 +01:00
grafana-delivery-bot[bot]
19255a23ae [v11.0.x] K8s: replace a noop certKey content func with actual if available (#86154)
K8s: replace a noop certKey content func with actual if available (#84524)

(cherry picked from commit dd7d4e2656)

Co-authored-by: Charandas <charandas@users.noreply.github.com>
2024-04-15 15:27:28 +01:00
grafana-delivery-bot[bot]
2cf73012ab [v11.0.x] SSO: fix reloading settings when a provider contains empty settings (#86142)
SSO: fix reloading settings when a provider contains empty settings (#85102)

* fix reloading settings when a provider contains empty settings

* do not increment reloadFailures if settings are empty

(cherry picked from commit fad6dc4db1)

Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
2024-04-15 15:27:04 +01:00
grafana-delivery-bot[bot]
d08ca1f4eb [v11.0.x] Chore: Run backend lint in PRs if .golangci.toml changes (#86141)
Chore: Run backend lint in PRs if .golangci.toml changes (#85106)

Chore: Run lint backend if .golangci.toml changes
(cherry picked from commit 71c5070240)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-04-15 15:07:14 +01:00
grafana-delivery-bot[bot]
e268568add [v11.0.x] Chore: Define promlib depguard rules (#86140)
Chore: Define promlib depguard rules (#85082)

* define promlib depguard rules

* add comment

* test: break linting on purpose

* fix linting

* simple change to trigger backend linting/build in CI pipeline

(cherry picked from commit 92f5a0305c)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-15 15:06:58 +01:00
Ashley Harrison
3a4993ffde [v11.0.x] docs: updates to stat panel documentation (#86151)
docs: updates to stat panel documentation (#84814)

* docs: updates to stat panel documentation

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Made formatting and wording edit

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 34195ba854)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-04-15 10:06:18 -04:00
grafana-delivery-bot[bot]
2eea316155 [v11.0.x] docs: update text panel documentation (#86138)
docs: update text panel documentation (#84884)

* docs: update text panel

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 44ae127a6e)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-04-15 14:54:11 +01:00
grafana-delivery-bot[bot]
0fe31d86fc [v11.0.x] Cloud migrations: create endpoint to create an access token (#86137)
Cloud migrations: create endpoint to create an access token (#84690)

* fix merge conflicts

* make token expiration configurable

(cherry picked from commit a2e21eac8c)

Co-authored-by: Bruno <brunotj2015@hotmail.com>
2024-04-15 14:53:53 +01:00
grafana-delivery-bot[bot]
16f1b9d4f0 [v11.0.x] docs: update status history panel (#86139)
docs: update status history panel (#84939)

* docs: updates to status history panel documentation

* docs: updates to status history panel documentation

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* fix: linting issues

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 15dca45514)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-04-15 09:52:47 -04:00
grafana-delivery-bot[bot]
d98e296efb [v11.0.x] K8s: skip invalid items in GetList when not invoked as part of SendInitialEvents (#86135)
K8s: skip invalid items in GetList when not invoked as part of SendInitialEvents (#85050)

(cherry picked from commit e237b89fe7)

Co-authored-by: Charandas <charandas@users.noreply.github.com>
2024-04-15 14:41:24 +01:00
grafana-delivery-bot[bot]
b5adee8f92 [v11.0.x] Plugins: Factory for instantiating core plugin (#86134)
Plugins: Factory for instantiating core plugin (#85047)

(cherry picked from commit 8f12fb94f9)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2024-04-15 14:41:05 +01:00
Ashley Harrison
20d6961030 [v11.0.x] Chore: Bump golangci-lint v1.57.1 (#86131)
Chore: Bump golangci-lint v1.57.1 (#84998)

* bump golangci-lint v1.57.1

* update setting

* remove goconst

* fix linting issues

* prettier

* fix G601

* go mod tidy
go work sync

(cherry picked from commit 6137c4e0a6)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-15 14:40:35 +01:00
grafana-delivery-bot[bot]
aaf233faac [v11.0.x] Server: Fix 'server' subcommand double-registration (#86126)
Server: Fix 'server' subcommand double-registration (#86083)

fix 'server' subcommand double-registration

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
(cherry picked from commit 44adfea049)

Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2024-04-15 09:35:33 -04:00
grafana-delivery-bot[bot]
9caf8f6fff [v11.0.x] k8s/query+ds: catch query errors, fix datasourceProvider and expose prometheus (#86119)
k8s/query+ds: catch query errors, fix datasourceProvider and expose prometheus (#85071)

(cherry picked from commit e6fa367d02)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-04-15 13:59:42 +01:00
grafana-delivery-bot[bot]
524c590462 [v11.0.x] OAuth: Make sub claim required for generic oauth behind feature toggle (#86118)
OAuth: Make sub claim required for generic oauth behind feature toggle (#85065)

* Add feature toggle for sub claims requirement

* OAuth: require valid auth id

* Fix feature toggle description

(cherry picked from commit 2f3a01f79f)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-04-15 13:59:05 +01:00
grafana-delivery-bot[bot]
b49a40d319 [v11.0.x] Grafana: define the api for the grafana cloudmigration api (not the csm api) (#86115)
Grafana: define the api for the grafana cloudmigration api (not the csm api) (#84430)

* Add cloud migration endpoints

* Built auth into creating a migration.

* Added more detail to the migration result model

* goimports

* Update pkg/services/cloudmigration/api/api.go

Co-authored-by: lean.dev <34773040+leandro-deveikis@users.noreply.github.com>

* Update pkg/services/cloudmigration/api/api.go

Co-authored-by: lean.dev <34773040+leandro-deveikis@users.noreply.github.com>

---------

Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: lean.dev <34773040+leandro-deveikis@users.noreply.github.com>
(cherry picked from commit e2f155f9f7)

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
2024-04-15 13:58:39 +01:00
grafana-delivery-bot[bot]
02788457c6 [v11.0.x] alerting: get started tutorial (#86114)
alerting: get started tutorial (#84669)

* first commit

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* second commit

* updated headings

* Update alerting-get-started.md

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* third commit

* Update alerting-get-started.md

* Update alerting-get-started.md

* Update alerting-get-started.md

* edited contact point - summary

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* Update docs/sources/tutorials/alerting-get-started/alerting-get-started.md

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

* elaboration, formatting

* minor changes

* pretty

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
(cherry picked from commit 4be5eaa14f)

Co-authored-by: tonypowa <45235678+tonypowa@users.noreply.github.com>
2024-04-15 13:58:11 +01:00
grafana-delivery-bot[bot]
a9042a3eff [v11.0.x] Fix InteractiveTable: React, less hooks rendered than previous render (#86113)
Fix InteractiveTable: React, less hooks rendered than previous render (#85043)

fix: react-hooks error if data length switches from above or below pageSize
(cherry picked from commit d7f739c8e5)

Co-authored-by: Adam Bannach <113929542+abannachGrafana@users.noreply.github.com>
2024-04-15 13:57:49 +01:00
grafana-delivery-bot[bot]
c1cdf1d334 [v11.0.x] Add jest-watch-typeahead and use for better filtering of jest tests (#86112)
* Add jest-watch-typeahead dev dependency

https://www.npmjs.com/package/jest-watch-typeahead

* Add jest watch plugins for better experience filtering tests

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-04-15 13:57:26 +01:00
grafana-delivery-bot[bot]
7525dc1d7a [v11.0.x] I18n: Download translations from Crowdin (#86116)
I18n: Download translations from Crowdin (#85006)

(cherry picked from commit 82b82675f7)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-15 13:57:07 +01:00
grafana-delivery-bot[bot]
6a14aeae60 [v11.0.x] Chore: Vendor wire into pkg/build (#86110)
Chore: Vendor wire into pkg/build (#84637)

* vendor latest wire into pkg/build

* use vendored wire in builds

* fix wire import path

* remove wire from bingo

* also support google/wire import

* make prettier happy

* change package in tess

* add debug walk for drone

* add wire_gen in tests

* remove debug walk

* restore imports

(cherry picked from commit 4d4c06b480)

Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
2024-04-15 13:56:44 +01:00
grafana-delivery-bot[bot]
6d0e1bee70 [v11.0.x] samlsettings: api integration (#86109)
samlsettings: api integration (#84300)

* add strategy and tests

* use settings provider service and remove multiple providers strategy

* Move SAML strategy to ssosettings service

* Update codeowners file

* reload from settings provider

* add saml as configurable provider

* Add new SAML strategy

* rename old saml settings interface

* update saml string references

* use OSS license

* validate saml provider depends on license for List

* add tests for list rendering including saml

* change the licensing validation to service init

* replace service struct for provider

(cherry picked from commit fc205db466)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2024-04-15 13:55:59 +01:00
grafana-delivery-bot[bot]
d1a40dea5b [v11.0.x] Fix Canvas crashing in scenes dashboard (#86125)
Fix Canvas crashing in scenes dashboard (#86117)

(cherry picked from commit 6fb13842a5)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-15 14:31:44 +02:00
grafana-delivery-bot[bot]
de27d86e7b [v11.0.x] Docs: add data source type play link; cleanup (#86105)
Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-15 10:53:55 +01:00
grafana-delivery-bot[bot]
bca7aea61c [v11.0.x] DashboardScene: Fixes issue moving between dashboards (#86096)
DashboardScene: Fixes issue moving between dashboards (#86093)

(cherry picked from commit 814ffdbc2b)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-15 10:09:54 +02:00
grafana-delivery-bot[bot]
56ea839a82 [v11.0.x] Alerting: Fix evaluation metrics to not count retries (#86059)
Alerting: Fix evaluation metrics to not count retries (#85873)

* Change evaluation metrics to only count once per eval, and add new metrics.

* Cosmetic: Move eval total Inc() to orginal place.

(cherry picked from commit ad7f804255)

Co-authored-by: Steve Simpson <steve.simpson@grafana.com>
2024-04-12 19:49:57 +02:00
Andreas Christou
2c5f9c83f0 [v11.0.x] plugins: update to latest go plugin sdk version (v0.222.0) (#85963)
plugins: update to latest go plugin sdk version (v0.222.0) (#85943)

plugins: update to latest go plugink sdk (v0.222.0)
(cherry picked from commit 050105e70a)

# Conflicts:
#	go.mod
#	go.sum
#	pkg/apiserver/go.mod
#	pkg/apiserver/go.sum
#	pkg/promlib/go.mod
#	pkg/promlib/go.sum

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-04-12 14:52:45 +02:00
grafana-delivery-bot[bot]
8eef690da0 [v11.0.x] TimeSeries: Fix series rendering with data links and extra fields (#86044)
TimeSeries: Fix series rendering with data links and extra fields (#86007)

(cherry picked from commit 2bedbcf344)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-04-12 07:50:27 -05:00
grafana-delivery-bot[bot]
173f10c439 [v11.0.x] EmptyState: make "message" a required prop (#86046)
EmptyState: make "message" a required prop (#86029)

* make "message" a required prop on EmptyState

* run i18n:extract

(cherry picked from commit b3401c802c)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-12 14:30:03 +02:00
grafana-delivery-bot[bot]
f203264f42 [v11.0.x] Scenes: Persist changes made in edit mode to save model (#86026)
Scenes: Persist changes made in edit mode to save model (#84320)

(cherry picked from commit 9efbf142a8)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-12 11:50:24 +02:00
grafana-delivery-bot[bot]
d2c6cc85b4 [v11.0.x] Docs: add mysql data source Play link (#86020)
Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-12 10:36:07 +01:00
grafana-delivery-bot[bot]
6e5efe2f6d [v11.0.x] Docs: add graphite data source Play link (#86018)
Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-12 10:35:31 +01:00
grafana-delivery-bot[bot]
752a81d230 [v11.0.x] Docs: fix duplicate headings (#85973)
Docs: fix duplicate headings (#85903)

Added suffix to one Placement heading

(cherry picked from commit 2798acd667)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-11 14:18:46 -04:00
grafana-delivery-bot[bot]
3c3127fec5 [v11.0.x] Docs: add bar/pie visualization Play link (#85990)
Docs: add bar/pie visualization Play link (#85898)

* Update index.md

* pie chart equivalent commit

* Updated titles to match dashboard title

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 623d4d580e)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-11 14:09:40 -04:00
grafana-delivery-bot[bot]
0d61b14c02 [v11.0.x] Docs: add gague visualization Play link (#85986)
Docs: add gague visualization Play link (#85897)

* Docs: add gague visualization Play link

* Fixed typo

* Updated title to match dashboard title

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 17a8de68e6)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-11 14:08:50 -04:00
Isabel Matwawana
9c5d02a932 [v11.0.x] Docs: add stat visualization Play link (#85979)
Docs: add stat visualization Play link (#85895)

(cherry picked from commit cdfd092d11)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-11 14:02:31 -04:00
grafana-delivery-bot[bot]
8c9499c1b8 [v11.0.x] Docs: add Table visualization Play link (#85977)
Docs: add Table visualization Play link (#85896)

Docs: add stat visualization Play link
(cherry picked from commit 83438bd231)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-11 13:45:31 -04:00
grafana-delivery-bot[bot]
f9f34aeb51 [v11.0.x] Docs: add time series visualization Play link (#85994)
Docs: add time series visualization Play link (#85885)

* docs/play shortcode: time series visualization

* Ran prettier

* Updated title to match title of dashboard in Grafana Play

---------

Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 765f20c555)

Co-authored-by: David Allen <david.allen@grafana.com>
2024-04-11 13:38:08 -04:00
grafana-delivery-bot[bot]
d4d69cfd4e [v11.0.x] Google Cloud Monitor: Fix interface conversion for incorrect type in cloudMonitoringProm.run (#85928)
Google Cloud Monitor: Fix interface conversion for incorrect type in `cloudMonitoringProm.run` (#85811)

(cherry picked from commit 0ec8ccbf66)

Co-authored-by: Adam Yeats <16296989+adamyeats@users.noreply.github.com>
2024-04-11 17:52:28 +02:00
grafana-delivery-bot[bot]
b581a71ee7 [v11.0.x] datatrails: fix: clear undefined query params on history step change (#85955)
datatrails: fix: clear undefined query params on history step change (#85607)

* fix: clear undefined query params on history step change

* Minor tweak

* fix: resolve CodeQL check: Client-side cross-site scripting

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
(cherry picked from commit 34875344ed)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-11 14:28:14 +00:00
Darren Janeczek
a39501f9d5 chore: update datatrails feature flag and enable (#85508) (#85822)
* chore: update datatrails feature flag and enable

* fix: rename `datatrails` feature flag to `exploreMetrics`

(cherry picked from commit 66c0fd4dcc)
2024-04-11 14:38:14 +01:00
grafana-delivery-bot[bot]
d46663584f [v11.0.x] Revert "Docs: Clarify open source documentation (#77077)" (#85946)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-04-11 13:56:38 +01:00
grafana-delivery-bot[bot]
31cc5a9634 [v11.0.x] Dashboard: Allow auto refresh option when saving a dashboard (#85922) 2024-04-11 11:50:25 +02:00
grafana-delivery-bot[bot]
0ef11f0c23 [v11.0.x] datatrails: ensure breakdown yaxis sync is maintained when layout changes (#85906)
datatrails: ensure breakdown yaxis sync is maintained when layout changes (#85380)

fix: ensure breakdown yaxis sync is maintained when layout changes
(cherry picked from commit 2e1e45bbb1)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-10 23:28:44 +02:00
grafana-delivery-bot[bot]
a81a41a87d [v11.0.x] DashboardScene: prevent panel hovel header crop with scenes (#85899)
DashboardScene: prevent panel hovel header crop with scenes (#85869)

* add behaviour that adjusts hoverHeaderOffset

* clean up behaviour logic

* optimise and extract behaviour to separate file

* fix hoverHeaderOffsetBehavior unsubscribe

* update to latest scenes version

* Fix PanelOptionsTest

* fix: test value for adhoc filter url param

* Fix transformation tab tests

* bump scenes version

* Revert "Fix transformation tab tests"

This reverts commit 3ec9f5b226.

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
(cherry picked from commit 79631bdd15)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
2024-04-10 21:13:17 +03:00
grafana-delivery-bot[bot]
b88806719d [v11.0.x] Chore: Fix position for RolePickerMenu being out of bounds (#85892)
Chore: Fix position for RolePickerMenu being out of bounds (#85604)

* Fix position for RolePickerMenu being out of bounds

* adjust the offset of the role picker menu

(cherry picked from commit 85e66d8edb)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2024-04-10 18:08:58 +02:00
grafana-delivery-bot[bot]
e5d4ddf59b [v11.0.x] DashboardScene: Enrich requests correctly in edit mode (#85890)
DashboardScene: Enrich requests correctly in edit mode (#85883)

(cherry picked from commit 615fa73f23)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-04-10 18:04:12 +02:00
grafana-delivery-bot[bot]
0b14c95dd8 [v11.0.x] InfluxDB: Fix panic when reading concurrency count during influxql health check (#85877)
InfluxDB: Fix panic when reading concurrency count during influxql health check (#85771)

fix panic when reading concurrency count during influxql health check

(cherry picked from commit 96f49bfaee)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-10 17:46:42 +02:00
grafana-delivery-bot[bot]
f8f908ead8 [v11.0.x] Docs: add unit scaling clarification (#85872)
Docs: add unit scaling clarification (#85830)

* Added unit scaling information

* Edited

(cherry picked from commit d666b92317)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-10 09:18:04 -04:00
Ashley Harrison
af2583c889 ConfirmModal: Pressing enter in confirmation input now triggers prima… (#85841)
* ConfirmModal: Pressing enter in confirmation input now triggers primary action (#85812)

wrap confirm modal in a form

* add missing imports
2024-04-10 10:31:30 +01:00
grafana-delivery-bot[bot]
2599f9985f [v11.0.x] Dashboard scenes: Fix export tab not including variables when exporting externally (#85824)
Dashboard scenes: Fix export tab not including variables when exporting externally (#85807)

Fix export tab not including variables when exporting externally

(cherry picked from commit 96abe65fe4)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-04-10 08:25:36 +02:00
grafana-delivery-bot[bot]
8f0cae0111 [v11.0.x] Docs: Fix wrong word for tempo example config (#85818)
Co-authored-by: wissy <10373091+wissyhost@users.noreply.github.com>
Fix wrong word for tempo example config (#85046)
2024-04-09 22:41:24 +01:00
grafana-delivery-bot[bot]
4f6422f721 [v11.0.x] Check source panel for updates in Dashboard DS panel (#85819)
Check source panel for updates in Dashboard DS panel (#85655)

* Check source panel for updates in Dashboard DS panel

* Test

* made it better

* cleanup

* cleanup and tests

* fix failing tests

* find the correct dashboard query

* revert mixed check in dashboard behaviour

* Dashboard data source: Return error when used in mixed data source (#85765)

* MixedDS: Inform about dashboard ds not being supported

* lint fix

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit b6249d6a50)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-09 21:18:56 +03:00
grafana-delivery-bot[bot]
6665121a4a [v11.0.x] DashboardScene: Detect changes when editing a panel (#85813)
DashboardScene: Detect changes when editing a panel (#85708)

(cherry picked from commit 27bc0c19ab)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2024-04-09 19:06:57 +03:00
grafana-delivery-bot[bot]
2309351fab [v11.0.x] Docs: add updated youtube link (#85803)
Docs: add updated youtube link (#85801)

Updated youtube link

(cherry picked from commit 1b1450e593)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-09 09:35:04 -04:00
grafana-delivery-bot[bot]
6e2e733810 [v11.0.x] Chore: Update RPM docs to include beta release references (#85793)
Chore: Update RPM docs to include beta release references (#85753)

* Update RPM docs to include beta release references

* andreas/update-installation-docs/ run lint

* Don't number lists

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
(cherry picked from commit 3420e942ac)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-04-09 12:31:53 +01:00
grafana-delivery-bot[bot]
97d02174ac [v11.0.x] Dashboards: Add isViewing to mustKeepProps (#85786)
Dashboards: Add isViewing to mustKeepProps (#85748)

(cherry picked from commit 02096c4e22)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-09 13:50:40 +03:00
grafana-delivery-bot[bot]
d56f75eb5c [v11.0.x] Time Zones: Fix relative time when using UTC timezone (#85779)
Time Zones: Fix relative time when using UTC timezone (#85637)

add UTC case to e2e test + let UTC pass through to moment.tz

(cherry picked from commit 4b5b738646)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-09 12:12:32 +03:00
grafana-delivery-bot[bot]
ee8bb9e3d4 [v11.0.x] Grafana E2E: Add deprecation notice and update docs (#85778)
Grafana E2E: Add deprecation notice and update docs (#85619)

* add deprecation notice

* update docs

* Update packages/grafana-e2e/README.md

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
(cherry picked from commit 0f1b65a7ad)

Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
2024-04-09 11:02:03 +02:00
grafana-delivery-bot[bot]
3ca8a7ccc2 [v11.0.x] DataTrails: Do not create a new VizPanel every activation (#85774) 2024-04-09 10:58:15 +02:00
grafana-delivery-bot[bot]
fcabedd406 [v11.0.x] Move all "add" actions into a dropdown (#85777)
Dashboard: Move "add" actions into a dropdown (#85776)

* Move all add actions into a dropdown

* Hide alerts rules when editing

* Hide fav icon when editing

(cherry picked from commit df72cfd38e)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2024-04-09 08:38:42 +00:00
grafana-delivery-bot[bot]
9d01858763 [v11.0.x] PostgreSQL: Fix the verify-ca mode (#85775)
PostgreSQL: Fix the verify-ca mode (#85530)

postgres: fix the verify-ca problem
(cherry picked from commit 8a15ed42ae)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-04-09 09:28:56 +02:00
grafana-delivery-bot[bot]
7ac14ff217 [v11.0.x] Update teamHttpHeaders casing (#85769)
Update teamHttpHeaders casing (#85767)

teamHTTPHeaders does not work.
teamHttpHeaders is the correct syntax for the feature toggle.

(cherry picked from commit 9d7e758e04)

Co-authored-by: Dai Nguyen <88277570+ej25a@users.noreply.github.com>
2024-04-08 22:27:56 +01:00
grafana-delivery-bot[bot]
d57a37fa33 [v11.0.x] Docs: g11 preview whats new fixes (#85763)
Docs: g11 preview whats new fixes (#85759)

* Made style fixes to intro

* Updated upgrade guide menu title

* Commented Explore metrics docs link back in

(cherry picked from commit 8014665ab5)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-08 15:14:07 -04:00
grafana-delivery-bot[bot]
8fd80d6fbd [v11.0.x] PR to document Explore Metrics (previously datatrails) (#85761)
PR to document Explore Metrics (previously datatrails) (#85212)

* text dump

* initial edits

* more edits

* added more info, made edits

* first draft

* removed some commented out content

* final edits

* made requested changes

* feature name change

* missed a metrics explore - fixed

* ran prettier

---------

Co-authored-by: lwandz13 <larissa.wandzura@grafana.com>
(cherry picked from commit 3721682a02)

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
2024-04-08 13:29:36 -05:00
grafana-delivery-bot[bot]
55af0f0006 [v11.0.x] DashboardScene: Fixes issue with mobile responsive layout due to repeated grid item class (#85741)
DashboardScene: Fixes issue with mobile responsive layout due to repeated grid item class (#85731)

(cherry picked from commit edf36d9ec0)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-08 17:18:13 +02:00
grafana-delivery-bot[bot]
f4f9c24c0d [v11.0.x] PublicDashboards: Footer fix for scenes (#85740)
PublicDashboards: Footer fix for scenes (#85684)

(cherry picked from commit d0312af571)

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2024-04-08 18:15:12 +03:00
grafana-delivery-bot[bot]
35c8bc7988 [v11.0.x] Docs: add youtube links to g11 preview what's new (#85742)
Docs: add youtube links to g11 preview what's new (#85738)

* Added youtube links

* Commented scenes video out

(cherry picked from commit fe3b6d3c5e)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-08 11:14:59 -04:00
Isabel Matwawana
52b16308f7 [v11.0.x] Docs: Re-order features and update intro in Grafana 11.0-preview What's new (#85739)
Docs: Re-order features and update intro in Grafana 11.0-preview What's new (#85702)

* Re-order features and update intro in Grafana 11.0-preview What's new

* Removed title casing

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 3865b8c980)

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2024-04-08 10:51:00 -04:00
grafana-delivery-bot[bot]
745ae03895 Release: Bump version to 11.0.0 (#85729)
"Release: Updated versions in package to 11.0.0"

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-04-08 14:33:03 +02:00
grafana-delivery-bot[bot]
6d23466d5f [v11.0.x] Dashboards: Fix issue with changing panel JSON from edit view (#85728)
Dashboards: Fix issue with changing panel JSON from edit view (#85717)

(cherry picked from commit 1b376546e2)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-08 15:06:57 +03:00
Ivan Ortega Alba
48d499da74 [v11.0.x] Detect folder changes when saving a dashboard (#85727)
Detect folder changes when saving a dashboard (#85378)

(cherry picked from commit d983629650)
2024-04-08 15:00:50 +03:00
grafana-delivery-bot[bot]
8f839fc894 [v11.0.x] Chore: update go version used in bump-version so it works with the new format (#85724)
Chore: update go version used in `bump-version` so it works with the new format (#85111)

update go version used in bump-version

(cherry picked from commit 4974a89316)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-04-08 14:51:12 +03:00
grafana-delivery-bot[bot]
2201a95973 [v11.0.x] Changelog: Updated changelog for 11.0.0-preview (#85719)
* Changelog: Updated changelog for 11.0.0-preview (#85718)

* Changelog: Updated changelog for 11.0.0-preview

* changelog: fix style issues

---------

Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
(cherry picked from commit 7078347d0f)

* Update

---------

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-04-08 12:31:47 +01:00
Ivan Ortega Alba
827d251220 [v11.0.x] Add auto to refresh picker (#85722)
Add `auto` to refresh picker (#85584)

(cherry picked from commit 9d44c8e8cf)

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
2024-04-08 14:30:45 +03:00
Misi
e2e9434cb4 [v11.0.x] Auth: Convert SetDefaultOrgHook to PostLoginHook (#85664)
Auth: Convert SetDefaultOrgHook to PostLoginHook (#85649)

* Convert SetDefaultOrgHook to PostLoginHook

(cherry picked from commit 8796d2d307)
2024-04-08 11:38:32 +03:00
Dominik Prokop
7bcd176e88 [v11.0.x] Bump scenes to v4.5.4 (#85706)
Bump scenes to v4.5.4 (#85681)

bump scenes to v4.5.4

(cherry picked from commit 432936cdcf)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-04-08 10:30:15 +03:00
grafana-delivery-bot[bot]
f83784b17d [v11.0.x] Docs: What’s new & Upgrade guide & Breaking changes v11.0-preview (#85700)
* Docs: What’s new & Upgrade guide & Breaking changes v11.0-preview (#84603)

* Updated index pages and added 11.0 breaking changes, upgrade guide, and what's new pages

* Removed references to 10.4

* Added draft breaking changes

* docs: grafana11-upgrade: postgres (#84671)

* docs: grafana11-upgrade: postgres

* fix typos

Co-authored-by: Sriram <153843+yesoreyeram@users.noreply.github.com>

* improved text

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* improved text

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* improved text

---------

Co-authored-by: Sriram <153843+yesoreyeram@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Added internal note

* Added what's new items

* Added more breaking changes'

* Copy edits

* Revert "docs: grafana11-upgrade: postgres" (#85580)

Revert "docs: grafana11-upgrade: postgres (#84671)"

This reverts commit d766d734c2.

* Removed internal link and moved PR link

* Added new entries

* Made fixes

* Updated name

* Copy edits

* Fixed links and minor copy edits

* Removed link to Cloud What's new

* Added OSS what's new link

* Fixed spelling of GitHub

* Added Explore Logs and updated Explore Metrics

---------

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Sriram <153843+yesoreyeram@users.noreply.github.com>
(cherry picked from commit fb1afa0c34)

* Minor wording fixes

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-07 23:18:59 -04:00
grafana-delivery-bot[bot]
955d096b26 [v11.0.x] Annotations: Fix annotation title (#85691)
Annotations: Fix annotation title (#85614)

(cherry picked from commit 5f0ca1429b)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-04-05 18:40:24 -05:00
grafana-delivery-bot[bot]
5d14e5e1c7 [v11.0.x] docs: add missing viz types to index (#85675)
docs: add missing viz types to index (#85400)

* docs: add missing viz types to index

* prettier

* Update _index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* fix merge mistake

* fix cloud links

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit cd05568459)

Co-authored-by: David Harris <david.harris@grafana.com>
2024-04-05 18:08:02 +01:00
grafana-delivery-bot[bot]
cc7a4cc96a [v11.0.x] Scenes: Add PDF tab in share modal (#85665)
Scenes: Add PDF tab in share modal  (#85541)

(cherry picked from commit 8e8bfae761)

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2024-04-05 17:47:44 +03:00
grafana-delivery-bot[bot]
bb5e1e0c5b [v11.0.x] Loki: Remove API restrictions on resource calls (#85201)
Loki: Remove API restrictions on resource calls (#85191)

Loki: Remove API restrictions
(cherry picked from commit c80b31a0d4)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-04-05 16:00:20 +02:00
grafana-delivery-bot[bot]
49e74d3237 [v11.0.x] Update CODEOWNERS file for Explore docs (#85657)
Update CODEOWNERS file for Explore docs (#85656)

Update CODEOWNERS

(cherry picked from commit d8407c78db)

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
2024-04-05 16:47:12 +03:00
grafana-delivery-bot[bot]
576a7e4f61 [v11.0.x] DashboardScene: Fixes panel edit issue with clearing title not resulting in hover header mode (#85633)
DashboardScene: Fixes panel edit issue with clearing title not resulting in hover header mode  (#85621)

* PanelEditor: Update hoverHeader state when changing panel title

* refactor test and remove duplicate

(cherry picked from commit 49a3a95dd1)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-04-05 13:06:20 +02:00
grafana-delivery-bot[bot]
657a6c2288 [v11.0.x] Applinks: Adds grafana-lokiexplore-app to Explore -> Logs section (#85216)
Applinks: Adds `grafana-lokiexplore-app` to `Explore -> Logs` section (#85200)

(cherry picked from commit e284812796)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-04-05 13:00:50 +02:00
Giuseppe Guerra
987d674bf4 [v11.0.x] Angular deprecation: Prefer local "angularDetected" value to the remote one (#85632)
Angular deprecation: Prefer local "angularDetected" value to the remote one (#85571)

* Angular deprecation: Prefer local value to remote

* Update tests

(cherry picked from commit c033a15aaa)
2024-04-05 11:47:19 +02:00
grafana-delivery-bot[bot]
8e74b767b8 [v11.0.x] Scenes: Add modal ref to custom tabs (#85623)
Scenes: Add modal ref to custom tabs (#85602)

(cherry picked from commit 3ef23a5e3e)

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2024-04-05 09:56:34 +02:00
grafana-delivery-bot[bot]
9fb7420ed2 [v11.0.x] Docs: add xychart to panel config docs (#85616)
Docs: add xychart to panel config docs (#85615)

* Added xy chart to panel config docs

* Fixed typo

(cherry picked from commit 6fb1da42bf)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-04 17:15:06 -04:00
grafana-delivery-bot[bot]
0e4d9fd162 [v11.0.x] Docs: Add xy chart docs (#85612)
Docs: Add xy chart docs (#81980)

* Added xy chart page and added link to main visualizations page

* Added options

* Updated Axis options section and added doc ref links

* Added new shared files for tooltip and legend options and added them to xy chart

* Added Other visualization options section, docs refs, and updated Cloud links

* Fixed links

* Added option descriptions, hero image, content notes, and removed placeholder heading

* Apply suggestions from code review

* Added collapsible sections for series mapping modes

* Added Cloud links and fixed link text

* Added notes

* Updated series mapping descriptions

* Updated Auto series mapping options

* Updated manual section and restructured page

* Copy edits

* copy edits

* Added description

* Clarifying supported data info

* Copy edits from review

* Fixed typo

* Copy edits

* Fixed links

(cherry picked from commit 0d7834c7f7)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-04 16:33:43 -04:00
grafana-delivery-bot[bot]
b30c78961b [v11.0.x] Docs: Fix canvas G11 updates (#85609)
Docs: Fix canvas G11 updates (#85024)

* Removed features not yet completed

* additional doc updates

* Fixed codespell error

* Fixed video embed link

* Fixed punctuation

* updated to do note

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 8957fd2b3b)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-04-04 14:04:58 -04:00
grafana-delivery-bot[bot]
5c138c8196 [v11.0.x] Dashboards: Removes descending z-index assignment for grid items (#85596)
Dashboards: Removes descending z-index assignment for grid items (#85563)

(cherry picked from commit b5c33c540c)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-04 17:10:05 +03:00
grafana-delivery-bot[bot]
b7f1fa0ff5 [v11.0.x] Scenes: Fix issue where annotations with same name wouldn't render properly (#85576)
Scenes: Fix issue where annotations with same name wouldn't render properly (#85489)

Closes #85457

(cherry picked from commit 9537de26a5)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-04 15:01:57 +01:00
grafana-delivery-bot[bot]
46088003a4 [v11.0.x] Chore: Fix trailing spaces in prometheus min step (#85579)
Chore: Fix trailing spaces in prometheus min step (#85507)

Fix trailing spaces in prometheus min step

(cherry picked from commit 4e60f44d98)

Co-authored-by: Eunice Kim <kimeuni@amazon.com>
2024-04-04 14:31:50 +03:00
Marcus Efraimsson
2be8e4334b [v11.0.x] Chore: Upgrade grafana-plugin-sdk-go to v0.220.0 (#85575)
Chore: Upgrade grafana-plugin-sdk-go (#85562)

(cherry picked from commit bdc492b96c)
2024-04-04 10:03:20 +00:00
Marcus Efraimsson
324c37ff22 [v11.0.x] Update plugin SDK to v0.219.0 (#85573)
Update plugin SDK to v0.219.0 (#85438)

(cherry picked from commit d2ca95d304)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2024-04-04 12:41:36 +03:00
grafana-delivery-bot[bot]
da4ae285b4 [v11.0.x] Fix sending maxDataPoints as string (#85572)
Fix sending `maxDataPoints` as string (#85561)

* make sure maxDataPoints is a number

* add migration for maxDataPoints

* remove migration

(cherry picked from commit 9c0f9f6ba4)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-04 12:27:47 +03:00
grafana-delivery-bot[bot]
f756620df0 [v11.0.x] Datatrails: hide empty breakdown panels, improve loading status (#85505)
Datatrails: hide empty breakdown panels, improve loading status (#85028)

feat: hide empty breakdown panels, improve loading status
(cherry picked from commit 7c03cc83c6)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-03 13:27:41 -04:00
grafana-delivery-bot[bot]
a72fbc6eae [v11.0.x] Docs: add YouTube video link and description (#85538)
Docs: add YouTube video link and description (#85484)

* Update index.md Adding YouTube video link and description

Added a short description about the video and added the video to the page.

* Update docs/sources/panels-visualizations/visualizations/logs/index.md

Some edits went in. All nice :)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Removed repetition

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit f6a94837c5)

Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-04-03 11:22:57 -04:00
grafana-delivery-bot[bot]
78955c8fd4 [v11.0.x] datatrails: do not show the "le" label (#85504)
datatrails: do not show the "le" label (#85114)

fix: do not show the "le" label
(cherry picked from commit 5d477d711a)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-03 11:17:20 -04:00
grafana-delivery-bot[bot]
94778c69a3 [v11.0.x] datatrails: throttle the resetting of yaxis (#85503)
datatrails: throttle the resetting of yaxis (#85117)

fix: throttle the resetting of yaxis
(cherry picked from commit 2e06677240)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-03 11:16:27 -04:00
grafana-delivery-bot[bot]
343a0d5fe2 [v11.0.x] datatrails: hide "add to filter" button when there is no label value to add to filter (#85502)
datatrails: hide "add to filter" button when there is no label value to add to filter (#85270)

fix: hide add to filters button when it won't work
(cherry picked from commit 2ecc1bb646)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-03 11:15:03 -04:00
grafana-delivery-bot[bot]
159719ba2a [v11.0.x] Scenes: Fix issue where unsaved changes prompt is shown when quickly adding panel to new dashboard (#85539)
Scenes: Fix issue where unsaved changes prompt is shown when quickly adding panel to new dashboard (#85518)

Closes #84577

(cherry picked from commit 85127464a3)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-03 17:56:34 +03:00
Ivan Ortega Alba
e04bb072b4 [v11.0.x] DashboardScene: Detect changes when live is enabled from settings (#85528)
DashboardScene: Detect changes when live is enabled from settings (#85409)

* Adapt the code to the new live timer API

* Update scenes

(cherry picked from commit 89638238e5)
2024-04-03 17:30:14 +03:00
Ivan Ortega Alba
9c0edab224 [v11.0.x] Implement autofit panels in Dashboards (#85524)
DashboardScene: Implement autofit panels (#85221)

(cherry picked from commit eb3d088645)
2024-04-03 16:39:45 +03:00
grafana-delivery-bot[bot]
fce5a26144 [v11.0.x] RBAC: Fix access checks for interactions with RBAC roles in hosted Grafana (#85520)
RBAC: Fix access checks for interactions with RBAC roles in hosted Grafana (#85485)

* don't check global permissions for cloud instances

* linting

(cherry picked from commit beb15d938b)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-04-03 14:16:50 +01:00
grafana-delivery-bot[bot]
6175887aa0 [v11.0.x] DashboardScene: Fix explore to dashboard flow (#85516)
DashboardScene: Fix explore to dashboard flow (#85140)

* DashboardScene: Fix explore to dashboard flow

* Tests

* Make sure dashboard is in edit mode when adding from explore

* Allow discarding changes when coming from explore

* Tests

(cherry picked from commit b4dc79401b)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-04-03 13:09:06 +02:00
grafana-delivery-bot[bot]
ae73f31cf1 [v11.0.x] Revert "Postgres: Switch the datasource plugin from lib/pq to pgx (#8… (#85517)
Revert "Postgres: Switch the datasource plugin from lib/pq to pgx (#8… (#85509)

Revert "Postgres: Switch the datasource plugin from lib/pq to pgx (#83768)"

This reverts commit ecd6de826a.

(cherry picked from commit 8159e1db3a)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2024-04-03 12:54:57 +02:00
grafana-delivery-bot[bot]
0c10923304 [v11.0.x] BrowseDashboards: Add subpath to URLs on Browse Dashboards page (#85354)
BrowseDashboards: Add subpath to URLs on Browse Dashboards page (#84992)

* BrowseDashboards: Add subpath to URLs on Browse Dashboards page

* comment

* use existing config

* comment

---------

Co-authored-by: joshhunt <josh@trtr.co>
(cherry picked from commit b039995a4e)

Co-authored-by: butkovv <52626407+butkovv@users.noreply.github.com>
2024-04-03 09:46:34 +00:00
grafana-delivery-bot[bot]
355fec625b [v11.0.x] datatrails: handle "single" layout when switching to "all" labels (#85375)
datatrails: handle "single" layout when switching to "all" labels (#85373)

* fix: handle "single" layout when switching to "all" labels

(cherry picked from commit 18f3c7188b)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-03 02:03:00 +03:00
grafana-delivery-bot[bot]
2bd237e3ab [v11.0.x] datatrails: avoid double scrollbar with new viz tooltips (#85397)
datatrails: avoid double scrollbar with new viz tooltips (#85197)

fix: avoid double scrollbar
(cherry picked from commit f850b00a92)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-04-02 18:52:03 -04:00
Oscar Kilhed
dbd68074d0 [v11.0.x] Bump scenes to 4.1.2 (#85479)
Bump scenes to 4.1.2 (#85470)

* Bump scenes to 4.1.2

* Fix tests after fixing the sorting in rows

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
(cherry picked from commit 9ba9cbf300)
2024-04-02 17:45:18 +02:00
grafana-delivery-bot[bot]
d4c72e9841 [v11.0.x] InfluxDB: Fix measurement interpolation on visual query builder (#85456)
InfluxDB: Fix measurement interpolation on visual query builder (#85423)

* fix measurement interpolation

* fix unit test

* fix unit test 2

(cherry picked from commit 64236a3923)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-04-02 12:47:36 +02:00
grafana-delivery-bot[bot]
ed1485fa95 [v11.0.x] RBAC: Fix slow user permission search query on MySQL (#85410)
RBAC: Fix slow user permission search query on MySQL (#85058)

* Bench testing search user perm

* Add BenchmarkSearchUsersPermissions_1K_1K

* Clarify benchmark searches by action prefix

* Make MySQL more efficient

* Move all filter options

* Expand after assignments union

* update comments

(cherry picked from commit 5e48804364)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2024-04-02 09:52:02 +02:00
grafana-delivery-bot[bot]
86747fd8b5 [v11.0.x] Scenes: Fix crash when searching panel options (#85367)
Scenes: Fix crash when searching panel options (#85180)

Closes #81883

(cherry picked from commit 08ef6e1a42)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-04-02 10:06:50 +03:00
grafana-delivery-bot[bot]
cf7ed74415 [v11.0.x] DashboardScene: Fix issues with dashboard empty state (#85422)
DashboardScene: Fix issues with dashboard empty state (#85406)

Fix

Tests

Make sure edit mode is on when adding panel/library panel

Co-authored-by: kay delaney <kay@grafana.com>
(cherry picked from commit fa9e139123)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-04-01 21:11:18 +02:00
grafana-delivery-bot[bot]
0c254bd5e5 [v11.0.x] Plugins: Set correct PDC config values for proxy requests (#85414)
Plugins: Set correct PDC config values for proxy requests (#85412)

pass appropriate values

(cherry picked from commit 22fe7b067c)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2024-03-29 21:51:56 +02:00
Will Browne
7bec323d23 [v11.0.x] Plugins: Send PDC file paths and contents for backwards compatibility (#85411)
Plugins: Send PDC file paths and contents for backwards compatibility (#85287)

* send paths and contents

* go work sync

(cherry picked from commit 1a0ac381eb)
2024-03-29 12:14:39 -07:00
grafana-delivery-bot[bot]
c646a96fbe [v11.0.x] OptionsPicker: Allow storing raw input even when matches exist (#85395)
OptionsPicker: Allow storing raw input even when matches exist (#84790)

(cherry picked from commit db6b51cb88)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-03-28 19:42:40 -05:00
grafana-delivery-bot[bot]
11384a5902 [v11.0.x] datatrails: fix stability issues between conflict between browser history, URL sync, and trail history (#85369)
datatrails: fix stability issues between conflict between browser history, URL sync, and trail history (#85134)

* fix: conflict between browser history and trail history

- ensure the back button or url changes don't generate trail steps
- ensure label breakdown TextLinks which appear on the summary tab work in embedded mode

(cherry picked from commit 137061d1d5)

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-03-28 13:35:10 -04:00
grafana-delivery-bot[bot]
e227c24877 [v11.0.x] DashboardScene: Fix access to dashboard settings views (#85371)
DashboardScene: Fix access to dashboard settings views (#85289)

* DashboardScene: Fix access to dashboard settings views

* Review

(cherry picked from commit 63a941472e)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-03-28 17:01:45 +01:00
grafana-delivery-bot[bot]
2deed2b1e6 [v11.0.x] docs: update histogram visualization (#85364)
docs: update histogram visualization (#85125)

* docs: update histogram visualization docs

* docs: updates to histogram visualization

* Apply suggestions from code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Fixed typo I introduced

* docs: add youtube video

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 4a3140a0aa)

Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
2024-03-28 11:43:01 -04:00
grafana-delivery-bot[bot]
9e56aef1c9 [v11.0.x] DashboardScene: Fix constant variable not being hidden after creation (#85358)
DashboardScene: Fix constant variable not being hidden after creation (#85196)

(cherry picked from commit ae9a4b6467)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-03-28 16:19:33 +01:00
grafana-delivery-bot[bot]
e1dcc847d0 [v11.0.x] RBAC: handle partially resolved scopes (#85333)
RBAC: handle partially resolved scopes (#85323)

* RBAC: handle partially resolved scopes

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
(cherry picked from commit 5dd98a0fd5)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-03-28 16:09:16 +01:00
grafana-delivery-bot[bot]
576eb94e5b [v11.0.x] Azure/GCM: Update filterQuery methods to carry out migrations (#85365)
Azure/GCM: Update `filterQuery` methods to carry out migrations (#85355)

Update filterQuery methods to carry out migrations

(cherry picked from commit 697a18737d)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-03-28 17:05:00 +02:00
grafana-delivery-bot[bot]
9cf8c4e890 [v11.0.x] Scenes: Fix row crash when removing a panel from it (#85360)
Scenes: Fix row crash when removing a panel from it (#85339)

* Fix row crash when removing a panel from it

* fix tests

* fix tests

(cherry picked from commit 30c9307539)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2024-03-28 17:03:12 +02:00
grafana-delivery-bot[bot]
9a284d4560 [v11.0.x] ModalsContext: Unify modals context and manager (#85342)
ModalsContext: Unify modals context and manager (#84916)

* ModalsContext: Unify modals context and manager

* Clear on location change

* fixes

* Update

* use generics to avoid anys

---------

Co-authored-by: joshhunt <josh@trtr.co>
(cherry picked from commit e90b87589f)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-03-28 14:51:38 +01:00
grafana-delivery-bot[bot]
d1b7585ad5 [v11.0.x] [DOC] Clarify compatible log stores for traces to logs (#85352)
[DOC] Clarify compatible log stores for traces to logs (#85314)

* Clarify compatible log stores for traces to logs

* Fixes from prettier

(cherry picked from commit fe802f6d88)

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2024-03-28 07:53:01 -05:00
grafana-delivery-bot[bot]
bcf113fb41 [v11.0.x] Docs: fix availability note (#85346)
Docs: fix availability note (#85315)

Fixed availability note

(cherry picked from commit 5f38455f31)

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-28 08:49:55 -04:00
grafana-delivery-bot[bot]
62c98ce65c [v11.0.x] Tempo: Check for liveEnabled before trying to stream (#85324)
Tempo: Check for liveEnabled before trying to stream (#85173)

* Check for liveEnabled before attempting to stream

* Add tests

* Range const

* Update test text

(cherry picked from commit df39fc54a6)

Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
2024-03-28 09:47:00 +00:00
grafana-delivery-bot[bot]
6aa11956ef [v11.0.x] DashboardScene: Support time region migrations (#85322)
DashboardScene: Support time region migrations (#84147)

* DashboardScene: Support time region migrations

* Update

* Update

* Update

* fix

* Fix lock

* fix tests

* Fix migrations test

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit d290aaff46)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-03-28 08:00:14 +01:00
grafana-delivery-bot[bot]
ac880c6016 [v11.0.x] StateTimeline: Fix data links causing unrendering of string fields (#85307)
StateTimeline: Fix data links causing unrendering of string fields (#85260)

(cherry picked from commit 1ffeb7c365)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-03-27 20:35:47 +02:00
grafana-delivery-bot[bot]
47a5ae388e [v11.0.x] Prometheus: Use correct logic for frontend package feature flag (#85298)
Prometheus: Use correct logic for frontend package feature flag (#85294)

use correct logic for frontend package feature flag

(cherry picked from commit d4a68d6662)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2024-03-27 19:14:49 +02:00
grafana-delivery-bot[bot]
eead3e1354 [v11.0.x] Dashboards: Fix issue where long ad-hoc values broke UI (#85290)
Dashboards: Fix issue where long ad-hoc values broke UI (#85073)

Closes #69285

(cherry picked from commit 618cf8e5a1)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2024-03-27 17:28:27 +02:00
grafana-delivery-bot[bot]
43991fca51 [v11.0.x] Added YouTube video to index.md on Time Series (#85277)
Added YouTube video to index.md on Time Series (#85188)

* Added YouTube video to index.md on Time Series

Added a brief description and the YouTube link for the Time Series video.

* Update index.md

Did quick fix

* Update index.md

Found double space, removed, hope PR goes through

* Update docs/sources/panels-visualizations/visualizations/time-series/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit d4953f4a1f)

Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
2024-03-27 10:44:21 -04:00
grafana-delivery-bot[bot]
76565ce12f [v11.0.x] NodeGraph: Fix possible metadata mismatch between nodes in graph (#85261)
NodeGraph: Fix possible metadata mismatch between nodes in graph (#85254)

(cherry picked from commit 20e70838e3)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2024-03-27 14:41:38 +01:00
grafana-delivery-bot[bot]
cf4870cd06 [v11.0.x] Alerting: Fix removing nested policy (#85247) 2024-03-27 14:15:22 +02:00
grafana-delivery-bot[bot]
33c8f8c72d [v11.0.x] AuthProxy: Fix missing session for ldap auth proxy users (#85136)
AuthProxy: Fix missing session for ldap auth proxy users (#85090)

fix missing session for ldap auth proxy users

(cherry picked from commit 7649d93d17)

Co-authored-by: Jo <joao.guerreiro@grafana.com>
2024-03-27 10:57:44 +01:00
grafana-delivery-bot[bot]
9afbd19874 [v11.0.x] Table Panel: Fix issue causing incorrect background coloring (#85214)
Table Panel: Fix issue causing incorrect background coloring (#85121)

Fix color bug

(cherry picked from commit c9f9e94a6c)

Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
2024-03-27 03:28:15 +07:00
grafana-delivery-bot[bot]
300008e300 [v11.0.x] Clarify AWS Auth instructions for Grafana Cloud users (#85209)
Clarify AWS Auth instructions for Grafana Cloud users (#84312)

* Clarify "Grafana Assume Role" feature instructions for Grafana Cloud users

Following the recommendations provided in Support escalation https://github.com/grafana/support-escalations/issues/8277

* Update docs/sources/datasources/aws-cloudwatch/aws-authentication/index.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* Update docs/sources/datasources/aws-cloudwatch/aws-authentication/index.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

---------

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit ac9523bcad)

Co-authored-by: melGL <81323402+melgl@users.noreply.github.com>
2024-03-26 21:00:12 +02:00
grafana-delivery-bot[bot]
bd10c543a8 [v11.0.x] Alerting: Fix receiver inheritance when provisioning a notification policy (#85193)
Alerting: Fix receiver inheritance when provisioning a notification policy (#82007)

Terraform Issue: grafana/terraform-provider-grafana#1007
Nested routes should be allowed to inherit the contact point from the root (or direct parent) route but this fails in the provisioning API (it works in the UI)

(cherry picked from commit 2188516a21)

Co-authored-by: Julien Duchesne <julien.duchesne@grafana.com>
2024-03-26 18:54:38 +02:00
grafana-delivery-bot[bot]
9985a1e687 [v11.0.x] Auth Drawer: Use redux store to load settings (#85172)
Auth Drawer: Use redux store to load settings (#85110)

* use actions instead of importing the backend service

* Replace the test render for redux-rtl

(cherry picked from commit 4e5bff0ada)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2024-03-26 16:40:42 +01:00
grafana-delivery-bot[bot]
196b935f2e [v11.0.x] EmailVerification: Generate emails after rename (#85182)
EmailVerification: Generate emails after rename (#85175)

(cherry picked from commit c39b9b2cbe)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-03-26 17:09:58 +02:00
grafana-delivery-bot[bot]
bc11423432 [v11.0.x] SSO: add the missing fields to the okta provider (#85161)
SSO: add the missing fields to the okta provider (#85152)

* add the missing allowSignUp field to okta provider

* add autoLogin to okta

(cherry picked from commit 6ddced7ba8)

Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
2024-03-26 15:02:34 +02:00
Horst Gutmann
e7f0e17582 ci(docs): Disable tag requirement for pushing release docs (#84825) 2024-03-26 08:22:36 -04:00
grafana-delivery-bot[bot]
9dff069ec3 [v11.0.x] SQLEngine: Use debug method instead of custom implementation (#85155)
SQLEngine: Use `debug` method instead of custom implementation (#85118)

Use debug method instead of custom implementation

(cherry picked from commit 19159a89a2)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2024-03-26 14:20:04 +02:00
grafana-delivery-bot[bot]
73b94a19b4 [v11.0.x] EmptyState: Rename "search" variant to "not-found" (#85157)
EmptyState: Rename "search" variant to "not-found" (#85062)

* rename "search" variant to "not-found"

* run i18n:extract

(cherry picked from commit 36ee1571b6)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-03-26 12:56:32 +01:00
grafana-delivery-bot[bot]
27f492a572 [v11.0.x] Access control: Improve annotation delete performance (#85151)
Access control: Improve annotation delete performance (#85068)

* Access control: Improve annotation delete performance

* simplify query string

* Refactor

* remove unnecessary join

(cherry picked from commit 02606be3ed)

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2024-03-26 13:09:33 +02:00
Karl Persson
48fd6f066f SigningKeys: Add added_at when creating new signing key (#85060) 2024-03-26 10:02:34 +00:00
Charandas
234241db5f Makefile: fix test-go to run all (#85048) 2024-03-26 10:02:34 +00:00
Oscar Kilhed
3795fc2a63 Dashboards: Fix an issue where the dashboard would unmount and then mount again causing requests to cancel under some circumstances (#85003)
* Fix issue where dashboard unmounts and mounts again causing requests to be canceled

* Fix tests, add test
2024-03-26 10:02:34 +00:00
Ryan McKinley
62f97deee8 SQLStore: Cleanup migrationLocking (#85054) 2024-03-26 10:02:34 +00:00
Charandas
295f145f23 K8s: file storage - add sync around resource version (RV) management (#84694) 2024-03-26 10:02:34 +00:00
Brendan O'Handley
c40708ffab Prometheus: Use frontend package in Prometheus DS with a feature toggle (#84397)
* add feature toggle usePrometheusFrontendPackage

* add feature toggle logic to Prometheus module

* use config editor with package and remove configOverhaul feature toggle

* update betterer because we will be removing other files as we replace with files from @grafana/prometheus

* fix exemplar ds picker selector

* add more description to ts-ignore

* remove go.work.sum change

* copy go.work.sum from main

* update go.work.sum after talking with ismail

* put back the promlib entry

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-03-26 10:02:34 +00:00
Nathan Marrs
d7a94af7d7 Canvas: Address connection vertex bug (#85026) 2024-03-26 10:02:34 +00:00
Khushi Jain
99661056b1 Chore: Remove gf-form from InfluxDB Annotation Query Editor (#84809)
Chore: Remove gf-form from Annotation Query Editor - Influx DB
2024-03-26 10:02:34 +00:00
Matthew Jacobson
ecce0d7498 Alerting: Stop persisting silences and nflog to disk (#84706)
With this change, we no longer need to persist silence/nflog states to disk in addition to the kvstore
2024-03-26 10:02:34 +00:00
Yuri Tseretyan
2480fed0f5 Alerting: Editor role can access all provisioning API (#85022) 2024-03-26 10:02:34 +00:00
George Robinson
8d4e7e0b3b Alerting: Update grafana/alerting to a4bb859 (#84815) 2024-03-26 10:02:34 +00:00
Lars Stegman
85e4c6674e Transformer: Config from Query: set threshold colours (#83366)
* Fix typo

* Create handler arguments

* Create handler arguments editor

* Create link in editor

* Add labels to arguments editor fields

* Create unit tests

* Hide "Additional settings" header when no additional settings possible

* Remove div

* Fix invalid DOM

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
2024-03-26 10:02:34 +00:00
Adela Almasan
25e48c66d2 DashboardAI: UX improvements (#84934) 2024-03-26 10:02:34 +00:00
Nathan Marrs
8a1182e765 Canvas: Add "infinite" pan / zoom functionality (#84968)
* attempt at solving issue and resetting bounds to match panel content

* cleanup failed experiments

* add toggle for infinite pan - dont love naming but open to suggestions; clean up scene transform function

* add ability to "infinite" zoom (i.e. render more canvas via zooming out)

* slight refactor

* revert refactor as it broke things
2024-03-26 10:02:34 +00:00
grafana-delivery-bot[bot]
30054b3f7b [v11.0.x] Public dashboards: fix public dashboard permissions so that annotations are displayed (#85112)
Public dashboards: fix public dashboard permissions so that annotations are displayed (#85091)

* fix public dashboard anonymous user permissions so they include the new annotation permissions

* test fix

(cherry picked from commit df40e13333)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-03-26 09:03:04 +00:00
grafana-delivery-bot[bot]
7a8bf4f4f9 [v11.0.x] Scenes: Add reporting tab in share modal (#85119)
Scenes: Add reporting tab in share modal (#85086)

(cherry picked from commit bb5c5f38db)

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2024-03-25 18:02:17 -03:00
3988 changed files with 122517 additions and 128450 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@ import { glob } from 'glob';
// Why are we ignoring these?
// They're all deprecated/being removed so doesn't make sense to fix types
const eslintPathsToIgnore = [
'packages/grafana-e2e', // deprecated.
'public/app/angular', // will be removed in Grafana 11
'public/app/plugins/panel/graph', // will be removed alongside angular
'public/app/plugins/panel/table-old', // will be removed alongside angular
@@ -75,87 +76,68 @@ function regexp(pattern: RegExp, issueMessage: string) {
function countEslintErrors() {
return new BettererFileTest(async (filePaths, fileTestResult, resolver) => {
// Just bail early if there's no files to test. Prevents trying to get the base config from failing
if (filePaths.length === 0) {
return;
}
const { baseDirectory } = resolver;
const cli = new ESLint({ cwd: baseDirectory });
// Get the base config to set up parsing etc correctly
// this is by far the slowest part of this code. It takes eslint about 2 seconds just to find the config
const baseConfig = await cli.calculateConfigForFile(filePaths[0]);
const eslintConfigFiles = await glob('**/.eslintrc');
const eslintConfigMainPaths = eslintConfigFiles.map((file) => path.resolve(path.dirname(file)));
const baseRules: Partial<Linter.RulesRecord> = {
'@emotion/syntax-preference': [2, 'object'],
'@typescript-eslint/no-explicit-any': 'error',
'@grafana/no-aria-label-selectors': 'error',
'no-restricted-imports': [
'error',
{
patterns: [
{
group: ['@grafana/ui*', '*/Layout/*'],
importNames: ['Layout', 'HorizontalGroup', 'VerticalGroup'],
message: 'Use Stack component instead.',
},
],
},
],
};
const config: Linter.Config = {
...baseConfig,
rules: baseRules,
// Be careful when specifying overrides for the same rules as in baseRules - it will... override
// the same rule, not merge them with different configurations
overrides: [
{
files: ['**/*.{ts,tsx}'],
excludedFiles: ['*.{test,spec}.{ts,tsx}', '**/__mocks__/**', '**/public/test/**'],
rules: {
'@typescript-eslint/consistent-type-assertions': ['error', { assertionStyle: 'never' }],
},
},
{
files: ['public/app/**/*.{ts,tsx}'],
rules: {
'no-barrel-files/no-barrel-files': 'error',
},
},
{
files: ['public/**/*.tsx', 'packages/grafana-ui/**/*.tsx'],
excludedFiles: [
'public/app/plugins/**',
'*.story.tsx',
'*.{test,spec}.{ts,tsx}',
'**/__mocks__/**',
'public/test/**',
],
rules: {
'@grafana/no-untranslated-strings': 'error',
},
},
],
const nonTestFilesRules: Partial<Linter.RulesRecord> = {
...baseRules,
'@typescript-eslint/consistent-type-assertions': ['error', { assertionStyle: 'never' }],
};
const runner = new ESLint({
baseConfig: config,
useEslintrc: false,
cwd: baseDirectory,
});
// group files by eslint config file
// this will create two file groups for each eslint config file
// one for test files and one for non-test files
const fileGroups: Record<string, string[]> = {};
const lintResults = await runner.lintFiles(Array.from(filePaths));
lintResults
.filter((lintResult) => lintResult.source)
.forEach(({ messages, filePath }) => {
const file = fileTestResult.addFile(filePath, '');
messages.forEach((message, index) => {
file.addIssue(0, 0, message.message, `${index}`);
});
for (const filePath of filePaths) {
let configPath = eslintConfigMainPaths.find((configPath) => filePath.startsWith(configPath)) ?? '';
const isTestFile =
filePath.endsWith('.test.tsx') ||
filePath.endsWith('.test.ts') ||
filePath.includes('__mocks__') ||
filePath.includes('public/test/');
if (isTestFile) {
configPath += '-test';
}
if (!fileGroups[configPath]) {
fileGroups[configPath] = [];
}
fileGroups[configPath].push(filePath);
}
for (const configPath of Object.keys(fileGroups)) {
const rules = configPath.endsWith('-test') ? baseRules : nonTestFilesRules;
// this is by far the slowest part of this code. It takes eslint about 2 seconds just to find the config
const linterOptions = (await cli.calculateConfigForFile(fileGroups[configPath][0])) as Linter.Config;
const runner = new ESLint({
baseConfig: {
...linterOptions,
rules: rules,
},
useEslintrc: false,
cwd: baseDirectory,
});
const lintResults = await runner.lintFiles(fileGroups[configPath]);
lintResults
.filter((lintResult) => lintResult.source)
.forEach((lintResult) => {
const { messages } = lintResult;
const filePath = lintResult.filePath;
const file = fileTestResult.addFile(filePath, '');
messages.forEach((message, index) => {
file.addIssue(0, 0, message.message, `${index}`);
});
});
}
});
}

View File

@@ -35,11 +35,11 @@ $(DRONE): $(BINGO_DIR)/drone.mod
@echo "(re)installing $(GOBIN)/drone-v1.5.0"
@cd $(BINGO_DIR) && GOWORK=off CGO_ENABLED=0 $(GO) build -mod=mod -modfile=drone.mod -o=$(GOBIN)/drone-v1.5.0 "github.com/drone/drone-cli/drone"
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.59.0
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.57.1
$(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/golangci-lint-v1.59.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.59.0 "github.com/golangci/golangci-lint/cmd/golangci-lint"
@echo "(re)installing $(GOBIN)/golangci-lint-v1.57.1"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.57.1 "github.com/golangci/golangci-lint/cmd/golangci-lint"
JB := $(GOBIN)/jb-v0.5.1
$(JB): $(BINGO_DIR)/jb.mod
@@ -53,11 +53,9 @@ $(LEFTHOOK): $(BINGO_DIR)/lefthook.mod
@echo "(re)installing $(GOBIN)/lefthook-v1.4.8"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=lefthook.mod -o=$(GOBIN)/lefthook-v1.4.8 "github.com/evilmartians/lefthook"
# swagger 0.30.5 isn't compatibile with go 1.22 yet so pinning to a specific commit until there's a new release
# https://github.com/go-swagger/go-swagger/issues/3070
SWAGGER := $(GOBIN)/swagger-db51e79a0e37c572d8b59ae0c58bf2bbbbe53285
SWAGGER := $(GOBIN)/swagger-v0.31.0
$(SWAGGER): $(BINGO_DIR)/swagger.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/swagger-db51e79a0e37c572d8b59ae0c58bf2bbbbe53285"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=swagger.mod -o=$(GOBIN)/swagger-db51e79a0e37c572d8b59ae0c58bf2bbbbe53285 "github.com/go-swagger/go-swagger/cmd/swagger"
@echo "(re)installing $(GOBIN)/swagger-v0.31.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=swagger.mod -o=$(GOBIN)/swagger-v0.31.0 "github.com/go-swagger/go-swagger/cmd/swagger"

View File

@@ -46,6 +46,7 @@ github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB
github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.4.17 h1:iT12IBVClFevaf8PuVyi3UmZOVh4OqnaLxDTW2O6j3w=
github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
@@ -878,6 +879,7 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc=
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=

View File

@@ -1,7 +1,7 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.22
go 1.21
toolchain go1.22.4
toolchain go1.21.6
require github.com/golangci/golangci-lint v1.59.0 // cmd/golangci-lint
require github.com/golangci/golangci-lint v1.57.1 // cmd/golangci-lint

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,7 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.18
go 1.21
require github.com/go-swagger/go-swagger v0.30.6-0.20240310114303-db51e79a0e37 // cmd/swagger
toolchain go1.22.4
require github.com/go-swagger/go-swagger v0.31.0 // cmd/swagger

View File

@@ -166,10 +166,8 @@ github.com/go-swagger/go-swagger v0.29.0 h1:z3YoZtLvS1Y8TE/PCat1VypcZxM0IgKLt0Nv
github.com/go-swagger/go-swagger v0.29.0/go.mod h1:Z4GJzI+bHKKkGB2Ji1rawpi3/ldXX8CkzGIa9HAC5EE=
github.com/go-swagger/go-swagger v0.30.2 h1:23odPUyQZdkNFZZSBJ3mqYYcdh+LnuReEbdWN18OMRo=
github.com/go-swagger/go-swagger v0.30.2/go.mod h1:neDPes8r8PCz2JPvHRDj8BTULLh4VJUt7n6MpQqxhHM=
github.com/go-swagger/go-swagger v0.30.6-0.20240310114303-db51e79a0e37 h1:KFcZmKdZmapAog2+eL1buervAYrYolBZk7fMecPPDmo=
github.com/go-swagger/go-swagger v0.30.6-0.20240310114303-db51e79a0e37/go.mod h1:i1/E+d8iPNReSE7y04FaVu5OPKB3il5cn+T1Egogg3I=
github.com/go-swagger/go-swagger v0.30.6-0.20240418033037-c46c303aaa02 h1:J6YiT/eg3gAfKMdVCkWXe6khsO+nxa8W4URZ4AUqzbA=
github.com/go-swagger/go-swagger v0.30.6-0.20240418033037-c46c303aaa02/go.mod h1:i1/E+d8iPNReSE7y04FaVu5OPKB3il5cn+T1Egogg3I=
github.com/go-swagger/go-swagger v0.31.0 h1:H8eOYQnY2u7vNKWDNykv2xJP3pBhRG/R+SOCAmKrLlc=
github.com/go-swagger/go-swagger v0.31.0/go.mod h1:WSigRRWEig8zV6t6Sm8Y+EmUjlzA/HoaZJ5edupq7po=
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=
@@ -453,8 +451,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM=
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -493,8 +491,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -554,8 +552,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -607,8 +605,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY=
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -624,8 +622,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -683,8 +681,8 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.8 h1:P1HhGGuLW4aAclzjtmJdf0mJOjVUZUzOTqkAkWL+l6w=
golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

View File

@@ -14,11 +14,11 @@ CUE="${GOBIN}/cue-v0.5.0"
DRONE="${GOBIN}/drone-v1.5.0"
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.59.0"
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.57.1"
JB="${GOBIN}/jb-v0.5.1"
LEFTHOOK="${GOBIN}/lefthook-v1.4.8"
SWAGGER="${GOBIN}/swagger-v0.30.6-0.20240310114303-db51e79a0e37"
SWAGGER="${GOBIN}/swagger-v0.31.0"

View File

@@ -123,6 +123,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -224,6 +225,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -239,17 +241,19 @@ steps:
image: node:20.9.0-alpine
name: lint-frontend
- commands:
- apk add --update git
- |-
make i18n-extract || (echo "
yarn run i18n:extract || (echo "
Extraction failed. Make sure that you have no dynamic translation phrases, such as 't(\`preferences.theme.\$${themeID}\`, themeName)' and that no translation key is used twice. Search the output for '[warning]' to find the offending file." && false)
- "\n file_diff=$(git diff --dirstat public/locales)\n if
[ -n \"$file_diff\" ]; then\n echo $file_diff\n echo
\"\nTranslation extraction has not been committed. Please run 'make i18n-extract',
\"\nTranslation extraction has not been committed. Please run 'yarn i18n:extract',
commit the changes and push again.\"\n exit 1\n fi\n
\ "
depends_on:
- yarn-install
image: node:20-bookworm
failure: ignore
image: node:20.9.0-alpine
name: verify-i18n
trigger:
event:
@@ -537,6 +541,7 @@ steps:
image: golang:1.22.4-alpine
name: wire-install
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -600,7 +605,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-dashboards-suite
- commands:
- ./bin/build e2e-tests --port 3001 --suite smoke-tests-suite
@@ -608,7 +613,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-smoke-tests-suite
- commands:
- ./bin/build e2e-tests --port 3001 --suite panels-suite
@@ -616,7 +621,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-panels-suite
- commands:
- ./bin/build e2e-tests --port 3001 --suite various-suite
@@ -624,7 +629,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-various-suite
- commands:
- cd /
@@ -642,7 +647,7 @@ steps:
GITHUB_TOKEN:
from_secret: github_token
HOST: grafana-server
image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e-13.10.0:1.0.0
image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e-13.1.0:1.0.0
name: end-to-end-tests-cloud-plugins-suite-azure
when:
paths:
@@ -653,8 +658,7 @@ steps:
repo:
- grafana/grafana
- commands:
- npx wait-on@7.0.1 http://$HOST:$PORT
- yarn playwright install --with-deps chromium
- sleep 10s
- yarn e2e:playwright
depends_on:
- grafana-server
@@ -662,7 +666,7 @@ steps:
HOST: grafana-server
PORT: "3001"
PROV_DIR: /grafana/scripts/grafana-server/tmp/conf/provisioning
image: node:20-bookworm
image: mcr.microsoft.com/playwright:v1.42.1-jammy
name: playwright-plugin-e2e
- commands:
- apt-get update
@@ -874,7 +878,7 @@ services:
- commands:
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
environment: {}
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
name: mimir_backend
- environment: {}
image: redis:6.2.11-alpine
@@ -1110,6 +1114,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -1321,7 +1326,7 @@ services:
- commands:
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
environment: {}
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
name: mimir_backend
- environment: {}
image: redis:6.2.11-alpine
@@ -1467,6 +1472,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -1543,6 +1549,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -1601,6 +1608,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -1616,17 +1624,19 @@ steps:
image: node:20.9.0-alpine
name: lint-frontend
- commands:
- apk add --update git
- |-
make i18n-extract || (echo "
yarn run i18n:extract || (echo "
Extraction failed. Make sure that you have no dynamic translation phrases, such as 't(\`preferences.theme.\$${themeID}\`, themeName)' and that no translation key is used twice. Search the output for '[warning]' to find the offending file." && false)
- "\n file_diff=$(git diff --dirstat public/locales)\n if
[ -n \"$file_diff\" ]; then\n echo $file_diff\n echo
\"\nTranslation extraction has not been committed. Please run 'make i18n-extract',
\"\nTranslation extraction has not been committed. Please run 'yarn i18n:extract',
commit the changes and push again.\"\n exit 1\n fi\n
\ "
depends_on:
- yarn-install
image: node:20-bookworm
failure: ignore
image: node:20.9.0-alpine
name: verify-i18n
trigger:
branch: main
@@ -1862,6 +1872,7 @@ steps:
image: golang:1.22.4-alpine
name: wire-install
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -1924,7 +1935,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-dashboards-suite
- commands:
- ./bin/build e2e-tests --port 3001 --suite smoke-tests-suite
@@ -1932,7 +1943,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-smoke-tests-suite
- commands:
- ./bin/build e2e-tests --port 3001 --suite panels-suite
@@ -1940,7 +1951,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-panels-suite
- commands:
- ./bin/build e2e-tests --port 3001 --suite various-suite
@@ -1948,7 +1959,7 @@ steps:
- grafana-server
environment:
HOST: grafana-server
image: cypress/included:13.10.0
image: cypress/included:13.1.0
name: end-to-end-tests-various-suite
- commands:
- cd /
@@ -1966,7 +1977,7 @@ steps:
GITHUB_TOKEN:
from_secret: github_token
HOST: grafana-server
image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e-13.10.0:1.0.0
image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e-13.1.0:1.0.0
name: end-to-end-tests-cloud-plugins-suite-azure
when:
paths:
@@ -1977,8 +1988,7 @@ steps:
repo:
- grafana/grafana
- commands:
- npx wait-on@7.0.1 http://$HOST:$PORT
- yarn playwright install --with-deps chromium
- sleep 10s
- yarn e2e:playwright
depends_on:
- grafana-server
@@ -1986,7 +1996,7 @@ steps:
HOST: grafana-server
PORT: "3001"
PROV_DIR: /grafana/scripts/grafana-server/tmp/conf/provisioning
image: node:20-bookworm
image: mcr.microsoft.com/playwright:v1.42.1-jammy
name: playwright-plugin-e2e
- commands:
- apt-get update
@@ -2317,7 +2327,7 @@ services:
- commands:
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
environment: {}
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
name: mimir_backend
- environment: {}
image: redis:6.2.11-alpine
@@ -2690,8 +2700,26 @@ steps:
- name: docker
path: /var/run/docker.sock
- commands:
- ./bin/grabpl artifacts docker publish --dockerhub-repo grafana/grafana --version-tag
${DRONE_TAG}
- "\n debug=\n if [[ -n $${DRY_RUN} ]]; then debug=echo; fi\n docker login
-u $${DOCKER_USER} -p $${DOCKER_PASSWORD}\n\n # Push the grafana-image-tags
images\n $debug docker push grafana/grafana-image-tags:$${TAG}-amd64\n $debug
docker push grafana/grafana-image-tags:$${TAG}-arm64\n $debug docker push grafana/grafana-image-tags:$${TAG}-armv7\n
\ $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64\n $debug
docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64\n $debug docker
push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n # Create the grafana
manifests\n $debug docker manifest create grafana/grafana:${TAG} grafana/grafana-image-tags:$${TAG}-amd64
\ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n\n
\ $debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n
\ # Push the grafana manifests\n $debug docker manifest push grafana/grafana:$${TAG}\n
\ $debug docker manifest push grafana/grafana:$${TAG}-ubuntu\n\n # if LATEST
is set, then also create & push latest\n if [[ -n $${LATEST} ]]; then\n $debug
docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64
\ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n
\ $debug docker manifest create grafana/grafana:latest-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n
\ $debug docker manifest push grafana/grafana:latest\n $debug docker
manifest push grafana/grafana:latest-ubuntu\n\n fi\n "
depends_on:
- fetch-images
environment:
@@ -2699,15 +2727,7 @@ steps:
from_secret: docker_password
DOCKER_USER:
from_secret: docker_username
GCP_KEY:
from_secret: gcp_grafanauploads
GITHUB_APP_ID:
from_secret: delivery-bot-app-id
GITHUB_APP_INSTALLATION_ID:
from_secret: delivery-bot-app-installation-id
GITHUB_APP_PRIVATE_KEY:
from_secret: delivery-bot-app-private-key
image: google/cloud-sdk:431.0.0
image: docker:27-cli
name: publish-images-grafana
volumes:
- name: docker
@@ -2755,6 +2775,141 @@ image_pull_secrets:
- gcr
- gar
kind: pipeline
name: manually-publish-docker-public
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.19.1
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.50/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- go build -o ./bin/build -ldflags '-extldflags -static' ./pkg/build/cmd
depends_on: []
environment:
CGO_ENABLED: 0
image: golang:1.22.4-alpine
name: compile-build-cmd
- commands:
- ./bin/build artifacts docker fetch --edition oss
depends_on:
- compile-build-cmd
environment:
DOCKER_PASSWORD:
from_secret: docker_password
DOCKER_USER:
from_secret: docker_username
GCP_KEY:
from_secret: gcp_grafanauploads
image: google/cloud-sdk:431.0.0
name: fetch-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- "\n debug=\n if [[ -n $${DRY_RUN} ]]; then debug=echo; fi\n docker login
-u $${DOCKER_USER} -p $${DOCKER_PASSWORD}\n\n # Push the grafana-image-tags
images\n $debug docker push grafana/grafana-image-tags:$${TAG}-amd64\n $debug
docker push grafana/grafana-image-tags:$${TAG}-arm64\n $debug docker push grafana/grafana-image-tags:$${TAG}-armv7\n
\ $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64\n $debug
docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64\n $debug docker
push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n # Create the grafana
manifests\n $debug docker manifest create grafana/grafana:${TAG} grafana/grafana-image-tags:$${TAG}-amd64
\ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n\n
\ $debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n
\ # Push the grafana manifests\n $debug docker manifest push grafana/grafana:$${TAG}\n
\ $debug docker manifest push grafana/grafana:$${TAG}-ubuntu\n\n # if LATEST
is set, then also create & push latest\n if [[ -n $${LATEST} ]]; then\n $debug
docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64
\ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n
\ $debug docker manifest create grafana/grafana:latest-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n
\ $debug docker manifest push grafana/grafana:latest\n $debug docker
manifest push grafana/grafana:latest-ubuntu\n\n fi\n "
depends_on:
- fetch-images
environment:
DOCKER_PASSWORD:
from_secret: docker_password
DOCKER_USER:
from_secret: docker_username
image: docker:27-cli
name: publish-images-grafana
volumes:
- name: docker
path: /var/run/docker.sock
trigger:
event:
- promote
target:
- publish-docker-public
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
depends_on: []
image_pull_secrets:
- gcr
- gar
kind: pipeline
name: create-release-pr
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- apk add perl
- v_target=`echo $${TAG} | perl -pe 's/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/v\1.\2.x/'`
- default_target=`if [[ -n $$LATEST ]]; then echo 'main'; else echo $$v_target;
fi`
- backport=`if [[ -n $$LATEST ]]; then echo $$v_target; fi`
- curl -L $${GH_CLI_URL} | tar -xz --strip-components=1 -C /usr
- gh workflow run -f dry_run=$${DRY_RUN} -f version=$${TAG} -f target=$${TARGET:-$default_target}
-f backport=$${BACKPORT:-$default_backport} --repo=grafana/grafana release-pr.yml
depends_on: []
environment:
GH_CLI_URL: https://github.com/cli/cli/releases/download/v2.50.0/gh_2.50.0_linux_amd64.tar.gz
GITHUB_TOKEN:
from_secret: github_token
image: byrnedo/alpine-curl:0.1.8
name: create-release-pr
trigger:
event:
- promote
target: release-pr
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
depends_on: []
environment:
EDITION: oss
image_pull_secrets:
- gcr
- gar
kind: pipeline
name: publish-artifacts-public
node:
type: no-parallel
@@ -2805,6 +2960,24 @@ steps:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.3
name: publish-storybook
- commands:
- apk add perl
- v_target=`echo $${TAG} | perl -pe 's/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/v\1.\2.x/'`
- default_target=`if [[ -n $$LATEST ]]; then echo 'main'; else echo $$v_target;
fi`
- backport=`if [[ -n $$LATEST ]]; then echo $$v_target; fi`
- curl -L $${GH_CLI_URL} | tar -xz --strip-components=1 -C /usr
- gh workflow run -f dry_run=$${DRY_RUN} -f version=$${TAG} -f target=$${TARGET:-$default_target}
-f backport=$${BACKPORT:-$default_backport} --repo=grafana/grafana release-pr.yml
depends_on:
- publish-artifacts
- publish-static-assets
environment:
GH_CLI_URL: https://github.com/cli/cli/releases/download/v2.50.0/gh_2.50.0_linux_amd64.tar.gz
GITHUB_TOKEN:
from_secret: github_token
image: byrnedo/alpine-curl:0.1.8
name: create-release-pr
trigger:
event:
- promote
@@ -2841,6 +3014,7 @@ steps:
image: golang:1.22.4-alpine
name: compile-build-cmd
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -2880,6 +3054,164 @@ volumes:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
depends_on: []
image_pull_secrets:
- gcr
- gar
kind: pipeline
name: verify-grafanacom-artifacts
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- apk add curl bash
- "\n for i in {1..5}; do\n if ./scripts/drone/verify-grafanacom.sh;
then\n exit 0\n elif [ $i -eq 5 ]; then\n exit
1\n else\n sleep 60\n fi\n done\n
\ "
depends_on: []
image: node:20.9.0-alpine
name: verify-grafanacom
trigger:
event:
- promote
target: verify-grafanacom-artifacts
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
depends_on: []
image_pull_secrets:
- gcr
- gar
kind: pipeline
name: verify-linux-packages
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- 'echo "Step 1: Updating package lists..."'
- apt-get update >/dev/null 2>&1
- 'echo "Step 2: Installing prerequisites..."'
- DEBIAN_FRONTEND=noninteractive apt-get install -yq apt-transport-https software-properties-common
wget >/dev/null 2>&1
- 'echo "Step 3: Adding Grafana GPG key..."'
- mkdir -p /etc/apt/keyrings/
- wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg
> /dev/null
- 'echo "Step 4: Adding Grafana repository..."'
- echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable
main" | tee -a /etc/apt/sources.list.d/grafana.list
- 'echo "Step 5: Installing Grafana..."'
- for i in $(seq 1 10); do
- ' if apt-get update >/dev/null 2>&1 && DEBIAN_FRONTEND=noninteractive apt-get
install -yq grafana=${TAG} >/dev/null 2>&1; then'
- ' echo "Command succeeded on attempt $i"'
- ' break'
- ' else'
- ' echo "Attempt $i failed"'
- ' if [ $i -eq 10 ]; then'
- ' echo ''All attempts failed'''
- ' exit 1'
- ' fi'
- ' echo "Waiting 60 seconds before next attempt..."'
- ' sleep 60'
- ' fi'
- done
- 'echo "Step 6: Verifying Grafana installation..."'
- 'if dpkg -s grafana | grep -q "Version: ${TAG}"; then'
- ' echo "Successfully verified Grafana version ${TAG}"'
- else
- ' echo "Failed to verify Grafana version ${TAG}"'
- ' exit 1'
- fi
- echo "Verification complete."
depends_on: []
environment: {}
image: ubuntu:22.04
name: verify-linux-DEB-packages
- commands:
- 'echo "Step 1: Updating package lists..."'
- dnf check-update -y >/dev/null 2>&1 || true
- 'echo "Step 2: Installing prerequisites..."'
- dnf install -y dnf-utils >/dev/null 2>&1
- 'echo "Step 3: Adding Grafana GPG key..."'
- rpm --import https://rpm.grafana.com/gpg.key
- 'echo "Step 4: Configuring Grafana repository..."'
- |-
echo '[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=0
enabled=1
gpgcheck=0
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
' > /etc/yum.repos.d/grafana.repo
- 'echo "Step 5: Checking RPM repository..."'
- dnf list available grafana-${TAG}
- if [ $? -eq 0 ]; then
- ' echo "Grafana package found in repository. Installing from repo..."'
- for i in $(seq 1 5); do
- ' if dnf install -y --nogpgcheck grafana-${TAG} >/dev/null 2>&1; then'
- ' echo "Command succeeded on attempt $i"'
- ' break'
- ' else'
- ' echo "Attempt $i failed"'
- ' if [ $i -eq 5 ]; then'
- ' echo ''All attempts failed'''
- ' exit 1'
- ' fi'
- ' echo "Waiting 60 seconds before next attempt..."'
- ' sleep 60'
- ' fi'
- done
- ' echo "Verifying GPG key..."'
- ' rpm --import https://rpm.grafana.com/gpg.key'
- ' rpm -qa gpg-pubkey* | xargs rpm -qi | grep -i grafana'
- else
- ' echo "Grafana package version ${TAG} not found in repository."'
- ' dnf repolist'
- ' dnf list available grafana*'
- ' exit 1'
- fi
- 'echo "Step 6: Verifying Grafana installation..."'
- if rpm -q grafana | grep -q "${TAG}"; then
- ' echo "Successfully verified Grafana version ${TAG}"'
- else
- ' echo "Failed to verify Grafana version ${TAG}"'
- ' exit 1'
- fi
- echo "Verification complete."
depends_on: []
environment: {}
image: rockylinux:9
name: verify-linux-RPM-packages
trigger:
event:
- promote
target: verify-linux-packages
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
depends_on:
@@ -2948,6 +3280,107 @@ steps:
service_account_json:
from_secret: packages_service_account
target_bucket: grafana-packages
- commands:
- 'echo "Step 1: Updating package lists..."'
- apt-get update >/dev/null 2>&1
- 'echo "Step 2: Installing prerequisites..."'
- DEBIAN_FRONTEND=noninteractive apt-get install -yq apt-transport-https software-properties-common
wget >/dev/null 2>&1
- 'echo "Step 3: Adding Grafana GPG key..."'
- mkdir -p /etc/apt/keyrings/
- wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg
> /dev/null
- 'echo "Step 4: Adding Grafana repository..."'
- echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable
main" | tee -a /etc/apt/sources.list.d/grafana.list
- 'echo "Step 5: Installing Grafana..."'
- for i in $(seq 1 10); do
- ' if apt-get update >/dev/null 2>&1 && DEBIAN_FRONTEND=noninteractive apt-get
install -yq grafana=${TAG} >/dev/null 2>&1; then'
- ' echo "Command succeeded on attempt $i"'
- ' break'
- ' else'
- ' echo "Attempt $i failed"'
- ' if [ $i -eq 10 ]; then'
- ' echo ''All attempts failed'''
- ' exit 1'
- ' fi'
- ' echo "Waiting 60 seconds before next attempt..."'
- ' sleep 60'
- ' fi'
- done
- 'echo "Step 6: Verifying Grafana installation..."'
- 'if dpkg -s grafana | grep -q "Version: ${TAG}"; then'
- ' echo "Successfully verified Grafana version ${TAG}"'
- else
- ' echo "Failed to verify Grafana version ${TAG}"'
- ' exit 1'
- fi
- echo "Verification complete."
depends_on:
- publish-linux-packages-deb
environment: {}
image: ubuntu:22.04
name: verify-linux-DEB-packages
- commands:
- 'echo "Step 1: Updating package lists..."'
- dnf check-update -y >/dev/null 2>&1 || true
- 'echo "Step 2: Installing prerequisites..."'
- dnf install -y dnf-utils >/dev/null 2>&1
- 'echo "Step 3: Adding Grafana GPG key..."'
- rpm --import https://rpm.grafana.com/gpg.key
- 'echo "Step 4: Configuring Grafana repository..."'
- |-
echo '[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=0
enabled=1
gpgcheck=0
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
' > /etc/yum.repos.d/grafana.repo
- 'echo "Step 5: Checking RPM repository..."'
- dnf list available grafana-${TAG}
- if [ $? -eq 0 ]; then
- ' echo "Grafana package found in repository. Installing from repo..."'
- for i in $(seq 1 5); do
- ' if dnf install -y --nogpgcheck grafana-${TAG} >/dev/null 2>&1; then'
- ' echo "Command succeeded on attempt $i"'
- ' break'
- ' else'
- ' echo "Attempt $i failed"'
- ' if [ $i -eq 5 ]; then'
- ' echo ''All attempts failed'''
- ' exit 1'
- ' fi'
- ' echo "Waiting 60 seconds before next attempt..."'
- ' sleep 60'
- ' fi'
- done
- ' echo "Verifying GPG key..."'
- ' rpm --import https://rpm.grafana.com/gpg.key'
- ' rpm -qa gpg-pubkey* | xargs rpm -qi | grep -i grafana'
- else
- ' echo "Grafana package version ${TAG} not found in repository."'
- ' dnf repolist'
- ' dnf list available grafana*'
- ' exit 1'
- fi
- 'echo "Step 6: Verifying Grafana installation..."'
- if rpm -q grafana | grep -q "${TAG}"; then
- ' echo "Successfully verified Grafana version ${TAG}"'
- else
- ' echo "Failed to verify Grafana version ${TAG}"'
- ' exit 1'
- fi
- echo "Verification complete."
depends_on:
- publish-linux-packages-rpm
environment: {}
image: rockylinux:9
name: verify-linux-RPM-packages
- commands:
- ./bin/build publish grafana-com --edition oss ${DRONE_TAG}
depends_on:
@@ -2960,6 +3393,16 @@ steps:
from_secret: grafana_api_key
image: grafana/grafana-ci-deploy:1.3.3
name: publish-grafanacom
- commands:
- apk add curl bash
- "\n for i in {1..5}; do\n if ./scripts/drone/verify-grafanacom.sh;
then\n exit 0\n elif [ $i -eq 5 ]; then\n exit
1\n else\n sleep 60\n fi\n done\n
\ "
depends_on:
- publish-grafanacom
image: node:20.9.0-alpine
name: verify-grafanacom
trigger:
event:
- promote
@@ -3114,6 +3557,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -3538,6 +3982,7 @@ steps:
image: alpine:3.19.1
name: identify-runner
- commands:
- apk add --update g++ make python3 && ln -sf /usr/bin/python3 /usr/bin/python
- yarn install --immutable || yarn install --immutable
depends_on: []
image: node:20.9.0-alpine
@@ -3923,7 +4368,6 @@ steps:
- commands:
- 'dagger run --silent /src/grafana-build artifacts -a $${ARTIFACTS} --grafana-ref=$${GRAFANA_REF}
--enterprise-ref=$${ENTERPRISE_REF} --grafana-repo=$${GRAFANA_REPO} --version=$${VERSION} '
- --go-version=1.22.4
environment:
_EXPERIMENTAL_DAGGER_CLOUD_TOKEN:
from_secret: dagger_token
@@ -4113,7 +4557,7 @@ services:
- commands:
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
environment: {}
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
name: mimir_backend
- environment: {}
image: redis:6.2.11-alpine
@@ -4620,10 +5064,10 @@ steps:
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM docker:27-cli
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM alpine/git:2.40.1
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM golang:1.22.4-alpine
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM node:20.9.0-alpine
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM node:20-bookworm
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM google/cloud-sdk:431.0.0
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana-ci-deploy:1.3.3
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM alpine:3.19.1
@@ -4632,7 +5076,7 @@ steps:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM plugins/slack
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM python:3.8
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM postgres:12.3-alpine
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mysql:5.7.39
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mysql:8.0.32
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM redis:6.2.11-alpine
@@ -4642,9 +5086,11 @@ steps:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/drone-downstream
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/docker-puppeteer:1.1.0
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/docs-base:latest
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM cypress/included:13.10.0
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM cypress/included:13.1.0
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM jwilder/dockerize:0.6.1
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM koalaman/shellcheck:stable
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mcr.microsoft.com/playwright:v1.42.1-jammy
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM rockylinux:9
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
@@ -4655,10 +5101,10 @@ steps:
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL docker:27-cli
- trivy --exit-code 1 --severity HIGH,CRITICAL alpine/git:2.40.1
- trivy --exit-code 1 --severity HIGH,CRITICAL golang:1.22.4-alpine
- trivy --exit-code 1 --severity HIGH,CRITICAL node:20.9.0-alpine
- trivy --exit-code 1 --severity HIGH,CRITICAL node:20-bookworm
- trivy --exit-code 1 --severity HIGH,CRITICAL google/cloud-sdk:431.0.0
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana-ci-deploy:1.3.3
- trivy --exit-code 1 --severity HIGH,CRITICAL alpine:3.19.1
@@ -4667,7 +5113,7 @@ steps:
- trivy --exit-code 1 --severity HIGH,CRITICAL plugins/slack
- trivy --exit-code 1 --severity HIGH,CRITICAL python:3.8
- trivy --exit-code 1 --severity HIGH,CRITICAL postgres:12.3-alpine
- trivy --exit-code 1 --severity HIGH,CRITICAL us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
- trivy --exit-code 1 --severity HIGH,CRITICAL us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
- trivy --exit-code 1 --severity HIGH,CRITICAL mysql:5.7.39
- trivy --exit-code 1 --severity HIGH,CRITICAL mysql:8.0.32
- trivy --exit-code 1 --severity HIGH,CRITICAL redis:6.2.11-alpine
@@ -4677,9 +5123,11 @@ steps:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/drone-downstream
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/docker-puppeteer:1.1.0
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/docs-base:latest
- trivy --exit-code 1 --severity HIGH,CRITICAL cypress/included:13.10.0
- trivy --exit-code 1 --severity HIGH,CRITICAL cypress/included:13.1.0
- trivy --exit-code 1 --severity HIGH,CRITICAL jwilder/dockerize:0.6.1
- trivy --exit-code 1 --severity HIGH,CRITICAL koalaman/shellcheck:stable
- trivy --exit-code 1 --severity HIGH,CRITICAL mcr.microsoft.com/playwright:v1.42.1-jammy
- trivy --exit-code 1 --severity HIGH,CRITICAL rockylinux:9
depends_on:
- authenticate-gcr
environment:
@@ -4911,6 +5359,6 @@ kind: secret
name: gcr_credentials
---
kind: signature
hmac: 7d2348a3bc09c44b08dda2d737f91c7de3e5048aa47ba65eada4cdde1eea9fa6
hmac: b183813c93c050294f5de032f9e8cf655d7cb2d4b002ec31a8e8a1dbd106d150
...

View File

@@ -1,14 +1,13 @@
{
"extends": ["@grafana/eslint-config"],
"root": true,
"plugins": ["@emotion", "lodash", "jest", "import", "jsx-a11y", "@grafana", "no-barrel-files"],
"plugins": ["@emotion", "lodash", "jest", "import", "jsx-a11y", "@grafana"],
"settings": {
"import/internal-regex": "^(app/)|(@grafana)",
"import/external-module-folders": ["node_modules", ".yarn"],
"import/external-module-folders": ["node_modules", ".yarn"]
},
"rules": {
"@grafana/no-border-radius-literal": "error",
"@grafana/no-unreduced-motion": "error",
"react/prop-types": "off",
// need to ignore emotion's `css` prop, see https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md#rule-options
"react/no-unknown-property": ["error", { "ignore": ["css"] }],
@@ -20,8 +19,8 @@
{
"groups": [["builtin", "external"], "internal", "parent", "sibling", "index"],
"newlines-between": "always",
"alphabetize": { "order": "asc" },
},
"alphabetize": { "order": "asc" }
}
],
"no-restricted-imports": [
"error",
@@ -30,43 +29,47 @@
{
"name": "react-redux",
"importNames": ["useDispatch", "useSelector"],
"message": "Please import from app/types instead.",
"message": "Please import from app/types instead."
},
{
"name": "react-i18next",
"importNames": ["Trans", "t"],
"message": "Please import from app/core/internationalization instead",
"message": "Please import from app/core/internationalization instead"
},
],
},
{
"name": "@grafana/e2e",
"message": "@grafana/e2e is deprecated. Please import from ./e2e/utils instead"
}
]
}
],
// Use typescript's no-redeclare for compatibility with overrides
"no-redeclare": "off",
"@typescript-eslint/no-redeclare": ["error"],
"@typescript-eslint/no-redeclare": ["error"]
},
"overrides": [
{
"files": ["packages/grafana-ui/src/components/uPlot/**/*.{ts,tsx}"],
"rules": {
"react-hooks/rules-of-hooks": "off",
"react-hooks/exhaustive-deps": "off",
},
"react-hooks/exhaustive-deps": "off"
}
},
{
"files": ["packages/grafana-ui/src/components/ThemeDemos/**/*.{ts,tsx}"],
"rules": {
"@emotion/jsx-import": "off",
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
},
"react/react-in-jsx-scope": "off"
}
},
{
"files": ["public/dashboards/scripted*.js"],
"rules": {
"no-redeclare": "error",
"@typescript-eslint/no-redeclare": "off",
},
"@typescript-eslint/no-redeclare": "off"
}
},
{
"extends": ["plugin:jsx-a11y/recommended"],
@@ -79,17 +82,17 @@
"jsx-a11y/no-autofocus": [
"error",
{
"ignoreNonDOM": true,
},
"ignoreNonDOM": true
}
],
"jsx-a11y/label-has-associated-control": [
"error",
{
"controlComponents": ["NumberInput"],
"depth": 2,
},
],
},
"depth": 2
}
]
}
},
{
"files": [
@@ -122,14 +125,14 @@
"public/app/plugins/datasource/cloudwatch/*.{ts,tsx}",
"public/app/plugins/datasource/cloudwatch/**/*.{ts,tsx}",
"public/app/plugins/datasource/zipkin/*.{ts,tsx}",
"public/app/plugins/datasource/zipkin/**/*.{ts,tsx}",
"public/app/plugins/datasource/zipkin/**/*.{ts,tsx}"
],
"settings": {
"import/resolver": {
"node": {
"extensions": [".ts", ".tsx"],
},
},
"extensions": [".ts", ".tsx"]
}
}
},
"rules": {
"import/no-restricted-paths": [
@@ -140,12 +143,12 @@
"target": "./public/app/plugins",
"from": "./public",
"except": ["./app/plugins"],
"message": "Core plugins are not allowed to depend on Grafana core packages",
},
],
},
],
},
},
],
"message": "Core plugins are not allowed to depend on Grafana core packages"
}
]
}
]
}
}
]
}

210
.github/CODEOWNERS vendored
View File

@@ -58,103 +58,106 @@
# END Technical documentation
# Backend code
/go.mod @grafana/grafana-backend-group
/go.sum @grafana/grafana-backend-group
/go.mod @grafana/backend-platform
/go.sum @grafana/backend-platform
/go.work @grafana/grafana-app-platform-squad
/go.work.sum @grafana/grafana-app-platform-squad
/.bingo/ @grafana/grafana-backend-group
/pkg/README.md @grafana/grafana-backend-group
/pkg/ruleguard.rules.go @grafana/grafana-backend-group
/.bra.toml @grafana/grafana-backend-group
/.golangci.toml @grafana/grafana-backend-group
/build.go @grafana/grafana-backend-services-squad
/scripts/modowners/ @grafana/grafana-backend-services-squad
/.bingo/ @grafana/backend-platform
/pkg/README.md @grafana/backend-platform
/pkg/ruleguard.rules.go @grafana/backend-platform
/.bra.toml @grafana/backend-platform
/.golangci.toml @grafana/backend-platform
/build.go @grafana/backend-platform
/scripts/modowners/ @grafana/backend-platform
/hack/ @grafana/grafana-app-platform-squad
/pkg/api/ @grafana/grafana-backend-group
/pkg/api/ @grafana/backend-platform
/pkg/apis/ @grafana/grafana-app-platform-squad
/pkg/bus/ @grafana/grafana-search-and-storage
/pkg/cmd/ @grafana/grafana-backend-group
/pkg/bus/ @grafana/backend-platform
/pkg/cmd/ @grafana/backend-platform
/pkg/cmd/grafana/apiserver @grafana/grafana-app-platform-squad
/pkg/components/apikeygen/ @grafana/identity-access-team
/pkg/components/satokengen/ @grafana/identity-access-team
/pkg/components/dashdiffs/ @grafana/grafana-app-platform-squad
/pkg/components/imguploader/ @grafana/grafana-backend-group
/pkg/components/loki/ @grafana/grafana-backend-group
/pkg/components/null/ @grafana/grafana-backend-group
/pkg/components/simplejson/ @grafana/grafana-backend-group
/pkg/events/ @grafana/grafana-backend-group
/pkg/extensions/ @grafana/grafana-backend-group
/pkg/ifaces/ @grafana/grafana-backend-group
/pkg/infra/appcontext/ @grafana/grafana-backend-group
/pkg/infra/db/ @grafana/grafana-backend-group
/pkg/infra/localcache/ @grafana/grafana-backend-group
/pkg/infra/log/ @grafana/grafana-backend-group
/pkg/infra/metrics/ @grafana/grafana-backend-group
/pkg/infra/network/ @grafana/grafana-backend-group
/pkg/infra/process/ @grafana/grafana-backend-group
/pkg/infra/remotecache/ @grafana/grafana-backend-group
/pkg/infra/serverlock/ @grafana/grafana-backend-group
/pkg/infra/slugify/ @grafana/grafana-backend-group
/pkg/infra/tracing/ @grafana/grafana-backend-group
/pkg/infra/usagestats/ @grafana/grafana-backend-group
/pkg/middleware/ @grafana/grafana-backend-group
/pkg/mocks/ @grafana/grafana-backend-group
/pkg/models/ @grafana/grafana-backend-group
/pkg/server/ @grafana/grafana-backend-group
/pkg/components/dashdiffs/ @grafana/backend-platform
/pkg/components/imguploader/ @grafana/backend-platform
/pkg/components/loki/ @grafana/backend-platform
/pkg/components/null/ @grafana/backend-platform
/pkg/components/simplejson/ @grafana/backend-platform
/pkg/events/ @grafana/backend-platform
/pkg/extensions/ @grafana/backend-platform
/pkg/ifaces/ @grafana/backend-platform
/pkg/infra/appcontext/ @grafana/backend-platform
/pkg/infra/db/ @grafana/backend-platform
/pkg/infra/localcache/ @grafana/backend-platform
/pkg/infra/log/ @grafana/backend-platform
/pkg/infra/metrics/ @grafana/backend-platform
/pkg/infra/network/ @grafana/backend-platform
/pkg/infra/process/ @grafana/backend-platform
/pkg/infra/remotecache/ @grafana/backend-platform
/pkg/infra/serverlock/ @grafana/backend-platform
/pkg/infra/slugify/ @grafana/backend-platform
/pkg/infra/tracing/ @grafana/backend-platform
/pkg/infra/usagestats/ @grafana/backend-platform
/pkg/middleware/ @grafana/backend-platform
/pkg/mocks/ @grafana/backend-platform
/pkg/models/ @grafana/backend-platform
/pkg/server/ @grafana/backend-platform
/pkg/apiserver @grafana/grafana-app-platform-squad
/pkg/apimachinery @grafana/grafana-app-platform-squad
/pkg/promlib @grafana/observability-metrics
/pkg/services/annotations/ @grafana/grafana-search-and-storage
/pkg/services/annotations/ @grafana/backend-platform
/pkg/services/apikey/ @grafana/identity-access-team
/pkg/services/cleanup/ @grafana/grafana-backend-group
/pkg/services/contexthandler/ @grafana/grafana-backend-group
/pkg/services/cleanup/ @grafana/backend-platform
/pkg/services/contexthandler/ @grafana/backend-platform
/pkg/services/correlations/ @grafana/explore-squad
/pkg/services/dashboardimport/ @grafana/grafana-backend-group
/pkg/services/dashboards/ @grafana/grafana-app-platform-squad
/pkg/services/dashboardversion/ @grafana/grafana-backend-group
/pkg/services/encryption/ @grafana/grafana-operator-experience-squad
/pkg/services/folder/ @grafana/grafana-search-and-storage
/pkg/services/dashboardimport/ @grafana/backend-platform
/pkg/services/dashboards/ @grafana/backend-platform
/pkg/services/dashboardversion/ @grafana/backend-platform
/pkg/services/encryption/ @grafana/backend-platform
/pkg/services/folder/ @grafana/backend-platform
/pkg/services/apiserver @grafana/grafana-app-platform-squad
/pkg/services/hooks/ @grafana/grafana-backend-group
/pkg/services/kmsproviders/ @grafana/grafana-operator-experience-squad
/pkg/services/licensing/ @grafana/grafana-operator-experience-squad
/pkg/services/navtree/ @grafana/grafana-backend-group
/pkg/services/notifications/ @grafana/grafana-backend-group
/pkg/services/org/ @grafana/grafana-backend-group
/pkg/services/hooks/ @grafana/backend-platform
/pkg/services/kmsproviders/ @grafana/backend-platform
/pkg/services/licensing/ @grafana/backend-platform
/pkg/services/navtree/ @grafana/backend-platform
/pkg/services/notifications/ @grafana/backend-platform
/pkg/services/org/ @grafana/backend-platform
/pkg/services/playlist/ @grafana/grafana-app-platform-squad
/pkg/services/preference/ @grafana/grafana-backend-group
/pkg/services/provisioning/ @grafana/grafana-search-and-storage
/pkg/services/query/ @grafana/grafana-app-platform-squad
/pkg/services/queryhistory/ @grafana/grafana-app-platform-squad
/pkg/services/quota/ @grafana/grafana-search-and-storage
/pkg/services/screenshot/ @grafana/grafana-backend-group
/pkg/services/search/ @grafana/grafana-search-and-storage
/pkg/services/searchusers/ @grafana/grafana-search-and-storage
/pkg/services/secrets/ @grafana/grafana-operator-experience-squad
/pkg/services/shorturls/ @grafana/grafana-backend-group
/pkg/services/sqlstore/ @grafana/grafana-search-and-storage
/pkg/services/preference/ @grafana/backend-platform
/pkg/services/provisioning/ @grafana/backend-platform
/pkg/services/query/ @grafana/backend-platform
/pkg/services/queryhistory/ @grafana/backend-platform
/pkg/services/quota/ @grafana/backend-platform
/pkg/services/rendering/ @grafana/backend-platform
/pkg/services/screenshot/ @grafana/backend-platform
/pkg/services/search/ @grafana/backend-platform
/pkg/services/searchusers/ @grafana/backend-platform
/pkg/services/secrets/ @grafana/backend-platform
/pkg/services/shorturls/ @grafana/backend-platform
/pkg/services/sqlstore/ @grafana/backend-platform
/pkg/services/ssosettings/ @grafana/identity-access-team
/pkg/services/star/ @grafana/grafana-search-and-storage
/pkg/services/stats/ @grafana/grafana-backend-group
/pkg/services/tag/ @grafana/grafana-search-and-storage
/pkg/services/star/ @grafana/backend-platform
/pkg/services/stats/ @grafana/backend-platform
/pkg/services/tag/ @grafana/backend-platform
/pkg/services/team/ @grafana/identity-access-team
/pkg/services/temp_user/ @grafana/grafana-backend-group
/pkg/services/updatechecker/ @grafana/grafana-backend-group
/pkg/services/temp_user/ @grafana/backend-platform
/pkg/services/updatechecker/ @grafana/backend-platform
/pkg/services/user/ @grafana/identity-access-team
/pkg/services/validations/ @grafana/grafana-backend-group
/pkg/setting/ @grafana/grafana-backend-services-squad
/pkg/tests/ @grafana/grafana-backend-services-squad
/pkg/services/validations/ @grafana/backend-platform
/pkg/setting/ @grafana/backend-platform
/pkg/tests/ @grafana/backend-platform
/pkg/tests/apis/ @grafana/grafana-app-platform-squad
/pkg/tests/api/correlations/ @grafana/explore-squad
/pkg/tsdb/grafanads/ @grafana/grafana-backend-group
/pkg/tsdb/opentsdb/ @grafana/grafana-backend-group
/pkg/util/ @grafana/grafana-backend-group
/pkg/web/ @grafana/grafana-backend-group
/pkg/tsdb/grafanads/ @grafana/backend-platform
/pkg/tsdb/legacydata/ @grafana/backend-platform
/pkg/tsdb/opentsdb/ @grafana/backend-platform
/pkg/tsdb/sqleng/ @grafana/partner-datasources @grafana/oss-big-tent
/pkg/util/ @grafana/backend-platform
/pkg/web/ @grafana/backend-platform
/pkg/infra/kvstore/ @grafana/grafana-backend-group
/pkg/infra/fs/ @grafana/grafana-backend-group
/pkg/infra/x/ @grafana/grafana-backend-group
/pkg/infra/kvstore/ @grafana/backend-platform
/pkg/infra/fs/ @grafana/backend-platform
/pkg/infra/x/ @grafana/backend-platform
# devenv
@@ -168,11 +171,11 @@
/devenv/bulk-dashboards/ @grafana/dashboards-squad
/devenv/bulk-folders/ @grafana/grafana-frontend-platform
/devenv/create_docker_compose.sh @grafana/grafana-backend-services-squad
/devenv/create_docker_compose.sh @grafana/backend-platform
/devenv/alert_rules.yaml @grafana/alerting-backend-product
/devenv/dashboards.yaml @grafana/dashboards-squad
/devenv/datasources.yaml @grafana/grafana-backend-group
/devenv/datasources_docker.yaml @grafana/grafana-backend-group
/devenv/datasources.yaml @grafana/backend-platform
/devenv/datasources_docker.yaml @grafana/backend-platform
/devenv/dev-dashboards-without-uid/ @grafana/dashboards-squad
/devenv/dev-dashboards/ @grafana/dashboards-squad
/devenv/docker/blocks/alert_webhook_listener/ @grafana/alerting-backend-product
@@ -188,7 +191,7 @@
/devenv/docker/blocks/jaeger/ @grafana/observability-traces-and-profiling
/devenv/docker/blocks/maildev/ @grafana/alerting-frontend
/devenv/docker/blocks/mariadb/ @grafana/oss-big-tent
/devenv/docker/blocks/memcached/ @grafana/grafana-backend-group
/devenv/docker/blocks/memcached/ @grafana/backend-platform
/devenv/docker/blocks/mimir_backend/ @grafana/alerting-backend-product
/devenv/docker/blocks/mssql/ @grafana/partner-datasources
/devenv/docker/blocks/mssql_arm64/ @grafana/partner-datasources
@@ -205,7 +208,7 @@
/devenv/docker/blocks/prometheus_random_data/ @grafana/observability-metrics
/devenv/docker/blocks/pyroscope/ @grafana/observability-traces-and-profiling
/devenv/docker/blocks/redis/ @bergquist
/devenv/docker/blocks/sensugo/ @grafana/grafana-backend-group
/devenv/docker/blocks/sensugo/ @grafana/backend-platform
/devenv/docker/blocks/slow_proxy/ @bergquist
/devenv/docker/blocks/smtp/ @bergquist
/devenv/docker/blocks/tempo/ @grafana/observability-traces-and-profiling
@@ -213,16 +216,16 @@
/devenv/docker/blocks/zipkin/ @grafana/observability-traces-and-profiling
/devenv/docker/blocks/webdav/ @grafana/alerting-backend-product
/devenv/docker/buildcontainer/ @bergquist
/devenv/docker/compose_header.yml @grafana/grafana-backend-services-squad
/devenv/docker/compose_header.yml @grafana/backend-platform
/devenv/docker/debtest/ @bergquist
/devenv/docker/ha-test-unified-alerting/ @grafana/alerting-backend-product
/devenv/docker/ha_test/ @grafana/grafana-backend-services-squad
/devenv/docker/loadtest/ @grafana/grafana-backend-services-squad
/devenv/docker/rpmtest/ @grafana/grafana-backend-services-squad
/devenv/docker/ha_test/ @grafana/backend-platform
/devenv/docker/loadtest/ @grafana/backend-platform
/devenv/docker/rpmtest/ @grafana/backend-platform
/devenv/jsonnet/ @grafana/dataviz-squad
/devenv/local-npm/ @grafana/frontend-ops
/devenv/vscode/ @grafana/frontend-ops
/devenv/setup.sh @grafana/grafana-backend-services-squad
/devenv/setup.sh @grafana/backend-platform
# Emails
/emails/ @grafana/alerting-frontend
@@ -265,8 +268,8 @@
/pkg/tsdb/mssql/ @grafana/partner-datasources
# Database migrations
/pkg/services/sqlstore/migrations/ @grafana/grafana-search-and-storage
*_mig.go @grafana/grafana-search-and-storage
/pkg/services/sqlstore/migrations/ @grafana/backend-platform @grafana/hosted-grafana-team
*_mig.go @grafana/backend-platform @grafana/hosted-grafana-team
# Grafana app platform
/pkg/services/live/ @grafana/grafana-app-platform-squad
@@ -274,7 +277,7 @@
/pkg/services/store/ @grafana/grafana-app-platform-squad
/pkg/infra/filestorage/ @grafana/grafana-app-platform-squad
/pkg/modules/ @grafana/grafana-app-platform-squad
/pkg/services/grpcserver/ @grafana/grafana-search-and-storage
/pkg/services/grpcserver/ @grafana/grafana-app-platform-squad
/pkg/generated @grafana/grafana-app-platform-squad
# Alerting
@@ -282,7 +285,6 @@
/pkg/services/sqlstore/migrations/ualert/ @grafana/alerting-backend-product
/pkg/tests/api/alerting/ @grafana/alerting-backend-product
/public/app/features/alerting/ @grafana/alerting-frontend
/public/app/features/gops/ @grafana/alerting-frontend
# Library Services
/pkg/services/libraryelements/ @grafana/dashboards-squad
@@ -302,7 +304,7 @@
/pkg/services/plugindashboards/ @grafana/plugins-platform-backend
# Backend code docs
/contribute/backend/ @grafana/grafana-backend-group
/contribute/backend/ @grafana/backend-platform
/crowdin.yml @grafana/grafana-frontend-platform
@@ -313,6 +315,7 @@
/e2e/plugin-e2e/plugin-e2e-api-tests/ @grafana/plugins-platform-frontend
/packages/ @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-e2e-selectors/ @grafana/grafana-frontend-platform
/packages/grafana-e2e/ @grafana/grafana-frontend-platform
/packages/grafana-ui/.storybook/ @grafana/plugins-platform-frontend
/packages/grafana-ui/src/components/ @grafana/grafana-frontend-platform
/packages/grafana-ui/src/components/DateTimePickers/ @grafana/grafana-frontend-platform
@@ -373,6 +376,7 @@
/.levignore.js @grafana/plugins-platform-frontend
playwright.config.ts @grafana/plugins-platform-frontend
# public folder
/public/app/core/ @grafana/grafana-frontend-platform
/public/app/core/components/TimePicker/ @grafana/grafana-frontend-platform
@@ -381,7 +385,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/core/components/TimeSeries/ @grafana/dataviz-squad
/public/app/core/components/TimelineChart/ @grafana/dataviz-squad
/public/app/core/components/Form/ @grafana/grafana-frontend-platform
/public/app/core/history/ @grafana/explore-squad
/public/app/features/all.ts @grafana/grafana-frontend-platform
/public/app/features/admin/ @grafana/identity-access-team
@@ -400,6 +403,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/dashboard/ @grafana/dashboards-squad
/public/app/features/dashboard/components/TransformationsEditor/ @grafana/dataviz-squad
/public/app/features/dashboard-scene/ @grafana/dashboards-squad
/public/app/features/scopes/ @grafana/dashboards-squad
/public/app/features/datasources/ @grafana/plugins-platform-frontend @mikkancso
/public/app/features/dimensions/ @grafana/dataviz-squad
/public/app/features/dataframe-import/ @grafana/dataviz-squad
@@ -413,14 +417,12 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/live/ @grafana/grafana-app-platform-squad
/public/app/features/apiserver/ @grafana/grafana-app-platform-squad
/public/app/features/manage-dashboards/ @grafana/dashboards-squad
/public/app/features/manage-dashboards/RecentlyDeletedPage.tsx @grafana/grafana-frontend-platform
/public/app/features/notifications/ @grafana/grafana-frontend-platform
/public/app/features/org/ @grafana/grafana-frontend-platform
/public/app/features/panel/ @grafana/dashboards-squad
/public/app/features/playlist/ @grafana/dashboards-squad
/public/app/features/plugins/ @grafana/plugins-platform-frontend
/public/app/features/profile/ @grafana/grafana-frontend-platform
/public/app/features/query-library/ @grafana/explore-squad
/public/app/features/runtime/ @ryantxu
/public/app/features/query/ @grafana/dashboards-squad
/public/app/features/sandbox/ @grafana/grafana-frontend-platform
@@ -473,7 +475,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/store/ @grafana/grafana-frontend-platform
/public/app/types/ @grafana/grafana-frontend-platform
/public/app/types/alerting.ts @grafana/alerting-frontend
/public/app/types/unified-alerting-dto.ts @grafana/alerting-frontend
/public/dashboards/ @grafana/dashboards-squad
/public/gazetteer/ @ryantxu
/public/img/ @grafana/grafana-frontend-platform
@@ -486,7 +487,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/test/ @grafana/grafana-frontend-platform
/public/test/helpers/alertingRuleEditor.tsx @grafana/alerting-frontend
/public/views/ @grafana/grafana-frontend-platform
/public/views/swagger.html @grafana/grafana-backend-group
/public/views/swagger.html @grafana/backend-platform
/public/app/features/explore/Logs/ @grafana/observability-logs
@@ -496,9 +497,9 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/explore/FlameGraph/ @grafana/observability-traces-and-profiling
/public/app/features/explore/TraceView/ @grafana/observability-traces-and-profiling
/public/api-merged.json @grafana/grafana-backend-group
/public/api-enterprise-spec.json @grafana/grafana-backend-group
/public/openapi3.json @grafana/grafana-backend-group
/public/api-merged.json @grafana/backend-platform
/public/api-enterprise-spec.json @grafana/backend-platform
/public/openapi3.json @grafana/backend-platform
/public/app/angular/ @torkelo
/public/app/app.ts @grafana/frontend-ops
/public/app/dev.ts @grafana/frontend-ops
@@ -534,9 +535,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/scripts/cleanup-husky.sh @grafana/frontend-ops
/scripts/verify-repo-update/ @grafana/grafana-release-guild
/scripts/generate-icon-bundle.js @grafana/plugins-platform-frontend @grafana/grafana-frontend-platform
/scripts/generate-rtk-apis.ts @grafana/grafana-frontend-platform
/scripts/levitate-parse-json-report.js @grafana/plugins-platform-frontend
/scripts/codemods/explicit-barrel-imports.cjs @grafana/frontend-ops
/scripts/**/generate-transformations* @grafana/dataviz-squad
/scripts/webpack/ @grafana/frontend-ops
@@ -582,16 +581,14 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/manage-dashboards/components/PublicDashboardListTable/ @grafana/sharing-squad
/public/app/features/dashboard/containers/PublicDashboardPage.tsx @grafana/sharing-squad
/public/app/features/manage-dashboards/components/SnapshotListTable.tsx @grafana/sharing-squad
/pkg/api/render.go @grafana/sharing-squad
/pkg/services/dashboardsnapshots/ @grafana/sharing-squad
/pkg/services/publicdashboards/ @grafana/sharing-squad
/pkg/services/rendering/ @grafana/sharing-squad
# SSE - Server Side Expressions
/pkg/expr/ @grafana/observability-metrics
# Cloud middleware
/grafana-mixin/ @grafana/grafana-backend-services-squad
/grafana-mixin/ @grafana/hosted-grafana-team
# Grafana authentication and authorization
/pkg/login/ @grafana/identity-access-team
@@ -609,7 +606,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/pkg/services/extsvcauth/ @grafana/identity-access-team
/pkg/services/oauthtoken/ @grafana/identity-access-team
/pkg/services/serviceaccounts/ @grafana/identity-access-team
/public/app/core/components/RolePicker/ @grafana/identity-access-team
# Support bundles
/public/app/features/support-bundles/ @grafana/identity-access-team
@@ -658,6 +654,8 @@ embed.go @grafana/grafana-as-code
/.github/workflows/backport.yml @grafana/grafana-release-guild
/.github/workflows/bump-version.yml @grafana/grafana-release-guild
/.github/workflows/close-milestone.yml @grafana/grafana-release-guild
/.github/workflows/release-pr.yml @grafana/grafana-release-guild
/.github/workflows/release-comms.yml @grafana/grafana-release-guild
/.github/workflows/codeowners-validator.yml @tolzhabayev
/.github/workflows/codeql-analysis.yml @DanCech
/.github/workflows/commands.yml @torkelo
@@ -698,6 +696,8 @@ embed.go @grafana/grafana-as-code
/.github/workflows/core-plugins-build-and-release.yml @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/.github/workflows/i18n-crowdin-upload.yml @grafana/grafana-frontend-platform
/.github/workflows/i18n-crowdin-download.yml @grafana/grafana-frontend-platform
/.github/workflows/feature-toggle-cleanup.yml @tolzhabayev
/.github/workflows/scripts/feature-toggle-cleanup/feature-toggle-cleanup.js @tolzhabayev
/.github/workflows/pr-go-workspace-check.yml @grafana/grafana-app-platform-squad
/.github/workflows/run-scenes-e2e.yml @grafana/dashboards-squad

4
.github/bot.md vendored
View File

@@ -4,8 +4,8 @@ The bot is configured via [commands.json](https://github.com/grafana/grafana/blo
Comment commands:
* Write the word `/duplicate #<number>` anywhere in a comment and the bot will add the correct label and standard message.
* Write the word `/needsMoreInfo` anywhere in a comment and the bot will add the correct label and standard message.
* Write the word `/duplicate #<number>` anywhere in a comment and the bot will add the correct label and standard message.
* Write the word `/needsMoreInfo` anywhere in a comment and the bot will add the correct label and standard message.
Label commands:

View File

@@ -4,20 +4,15 @@
],
"enabledManagers": ["npm"],
"ignoreDeps": [
"@types/history", // this can be removed entirely when we upgrade history since v5 exposes types directly
"history", // we should bump this together with react-router-dom (see https://github.com/grafana/grafana/issues/76744)
"react-router-dom", // we should bump this together with history (see https://github.com/grafana/grafana/issues/76744)
"loader-utils", // v3 requires upstream changes in ngtemplate-loader. ignore, and remove when we remove angular.
"monaco-editor", // due to us exposing this via @grafana/ui/CodeEditor's props bumping can break plugins
"@fingerprintjs/fingerprintjs", // we don't want to bump to v4 due to licensing changes
"@swc/core", // versions ~1.4.5 contain multiple bugs related to baseUrl resolution breaking builds.
"slate", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"slate-react", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"@types/slate-react", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"@types/slate" // we don't want to continue using this on the long run, use Monaco editor instead of Slate
],
"includePaths": ["package.json", "packages/**", "public/app/plugins/**"],
"ignorePaths": ["emails/**", "plugins-bundled/**", "**/mocks/**"],
"ignorePaths": ["emails/**", "plugins-bundled/**", "**/mocks/**", "packages/grafana-e2e/**"],
"labels": ["area/frontend", "dependencies", "no-changelog"],
"postUpdateOptions": ["yarnDedupeHighest"],
"packageRules": [

View File

@@ -0,0 +1,22 @@
name: Changelog generator
description: Generates and publishes a changelog for the given release version
inputs:
target:
description: Target tag, branch or commit hash for the changelog
required: true
previous:
description: Previous tag, branch or commit hash to start changelog from
required: false
github_token:
description: GitHub token with read/write access to all necessary repositories
required: true
output_file:
description: A file to store resulting changelog markdown
required: false
outputs:
changelog:
description: Changelog contents between the two given versions in Markdown format
runs:
using: 'node20'
main: 'index.js'

View File

@@ -0,0 +1,319 @@
import { appendFileSync, writeFileSync } from 'fs';
import { exec as execCallback } from 'node:child_process';
import { promisify } from 'node:util';
//
// Github Action core utils: logging (notice + debug log levels), must escape
// newlines and percent signs
//
const escapeData = (s) => s.replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A');
const LOG = (msg) => console.log(`::notice::${escapeData(msg)}`);
//
// Semver utils: parse, compare, sort etc (using official regexp)
// https://regex101.com/r/Ly7O1x/3/
//
const semverRegExp =
/^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
const semverParse = (tag) => {
const m = tag.match(semverRegExp);
if (!m) {
return;
}
const [_, major, minor, patch, prerelease] = m;
return [+major, +minor, +patch, prerelease, tag];
};
// semverCompare takes two parsed semver tags and comparest them more or less
// according to the semver specs
const semverCompare = (a, b) => {
for (let i = 0; i < 3; i++) {
if (a[i] !== b[i]) {
return a[i] < b[i] ? 1 : -1;
}
}
if (a[3] !== b[3]) {
return a[3] < b[3] ? 1 : -1;
}
return 0;
};
// Using `git tag -l` output find the tag (version) that goes semantically
// right before the given version. This might not work correctly with some
// pre-release versions, which is why it's possible to pass previous version
// into this action explicitly to avoid this step.
const getPreviousVersion = async (version) => {
const exec = promisify(execCallback);
const { stdout } = await exec('git tag -l');
const prev = stdout
.split('\n')
.map(semverParse)
.filter((tag) => tag)
.sort(semverCompare)
.find((tag) => semverCompare(tag, semverParse(version)) > 0);
if (!prev) {
throw `Could not find previous git tag for ${version}`;
}
return prev[4];
};
// A helper for Github GraphQL API endpoint
const graphql = async (ghtoken, query, variables) => {
const { env } = process;
const results = await fetch('https://api.github.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${ghtoken}`,
},
body: JSON.stringify({ query, variables }),
});
const { data } = await results.json();
return data;
};
// Using Github GraphQL API find the timestamp for the given tag/commit hash.
// This is required for PR listing, because Github API only takes date/time as
// a "since" parameter while listing. Currently there is no way to provide two
// "commitish" items and get a list of PRs in between them.
const getCommitishDate = async (name, owner, target) => {
const result = await graphql(
ghtoken,
`
query getCommitDate($owner: String!, $name: String!, $target: String!) {
repository(owner: $owner, name: $name) {
object(expression: $target) {
... on Commit {
committedDate
}
}
}
}
`,
{ name, owner, target }
);
return result.repository.object.committedDate;
};
// Using Github GraphQL API get a list of PRs between the two "commitish" items.
// This resoves the "since" item's timestamp first and iterates over all PRs
// till "target" using naïve pagination.
const getHistory = async (name, owner, target, sinceDate) => {
LOG(`Fetching ${owner}/${name} PRs since ${sinceDate} till ${target}`);
const query = `
query findCommitsWithAssociatedPullRequests(
$name: String!
$owner: String!
$target: String!
$sinceDate: GitTimestamp
$cursor: String
) {
repository(name: $name, owner: $owner) {
object(expression: $target) {
... on Commit {
history(first: 50, since: $sinceDate, after: $cursor) {
totalCount
pageInfo {
hasNextPage
endCursor
}
nodes {
id
associatedPullRequests(first: 1) {
nodes {
title
number
labels(first: 10) {
nodes {
name
}
}
commits(first: 1) {
nodes {
commit {
author {
user {
login
}
}
}
}
}
}
}
}
}
}
}
}
}`;
let cursor;
let nodes = [];
for (;;) {
const result = await graphql(ghtoken, query, {
name,
owner,
target,
sinceDate,
cursor,
});
LOG(`GraphQL: ${JSON.stringify(result)}`);
nodes = [...nodes, ...result.repository.object.history.nodes];
const { hasNextPage, endCursor } = result.repository.object.history.pageInfo;
if (!hasNextPage) {
break;
}
cursor = endCursor;
}
return nodes;
};
// The main function for this action: given two "commitish" items it gets a
// list of PRs between them and filters/groups the PRs by category (bugfix,
// feature, deprecation, breaking change and plugin fixes/enhancements).
//
// PR grouping relies on Github labels only, not on the PR contents.
const getChangeLogItems = async (name, owner, sinceDate, to) => {
// check if a node contains a certain label
const hasLabel = ({ labels }, label) => labels.nodes.some(({ name }) => name === label);
// get all the PRs between the two "commitish" items
const history = await getHistory(name, owner, to, sinceDate);
const items = history.flatMap((node) => {
// discard PRs without a "changelog" label
const changes = node.associatedPullRequests.nodes.filter((PR) => hasLabel(PR, 'add to changelog'));
if (changes.length === 0) {
return [];
}
const item = changes[0];
const { number, url, labels } = item;
const title = item.title.replace(/^\[[^\]]+\]:?\s*/, '');
// for changelog PRs try to find a suitable category.
// Note that we can not detect "deprecation notices" like that
// as there is no suitable label yet.
const isBug = /fix/i.test(title) || hasLabel({ labels }, 'type/bug');
const isBreaking = hasLabel({ labels }, 'breaking change');
const isPlugin =
hasLabel({ labels }, 'area/grafana/ui') ||
hasLabel({ labels }, 'area/grafana/toolkit') ||
hasLabel({ labels }, 'area/grafana/runtime');
const author = item.commits.nodes[0].commit.author.user.login;
return {
repo: name,
number,
title,
author,
isBug,
isPlugin,
isBreaking,
};
});
return items;
};
// ======================================================
// GENERATE CHANGELOG
// ======================================================
LOG(`Changelog action started`);
const ghtoken = process.env.GITHUB_TOKEN || process.env.INPUT_GITHUB_TOKEN;
if (!ghtoken) {
throw 'GITHUB_TOKEN is not set and "github_token" input is empty';
}
const target = process.argv[2] || process.env.INPUT_TARGET;
LOG(`Target tag/branch/commit: ${target}`);
const previous = process.argv[3] || process.env.INPUT_PREVIOUS || (await getPreviousVersion(target));
LOG(`Previous tag/commit: ${previous}`);
const sinceDate = await getCommitishDate('grafana', 'grafana', previous);
LOG(`Previous tag/commit timestamp: ${sinceDate}`);
// Get all changelog items from Grafana OSS
const oss = await getChangeLogItems('grafana', 'grafana', sinceDate, target);
// Get all changelog items from Grafana Enterprise
const entr = await getChangeLogItems('grafana-enterprise', 'grafana', sinceDate, target);
LOG(`Found OSS PRs: ${oss.length}`);
LOG(`Found Enterprise PRs: ${entr.length}`);
// Sort PRs and categorise them into sections
const changelog = [...oss, ...entr]
.sort((a, b) => (a.title < b.title ? -1 : 1))
.reduce(
(changelog, item) => {
if (item.isPlugin) {
changelog.plugins.push(item);
} else if (item.isBug) {
changelog.bugfixes.push(item);
} else if (item.isBreaking) {
changelog.breaking.push(item);
} else {
changelog.features.push(item);
}
return changelog;
},
{
breaking: [],
plugins: [],
bugfixes: [],
features: [],
}
);
// Convert PR numbers to Github links
const pullRequestLink = (n) => `[#${n}](https://github.com/grafana/grafana/pull/${n})`;
// Convert Github user IDs to Github links
const userLink = (u) => `[@${u}](https://github.com/${u})`;
// Now that we have a changelog - we can render some markdown as an output
const markdown = (changelog) => {
// This convers a list of changelog items into a markdown section with a list of titles/links
const section = (title, items) =>
items.length === 0
? ''
: `### ${title}
${items
.map(
(item) =>
`- ${item.title.replace(/^([^:]*:)/gm, '**$1**')} ${
item.repo === 'grafana-enterprise'
? '(Enterprise)'
: `${pullRequestLink(item.number)}, ${userLink(item.author)}`
}`
)
.join('\n')}
`;
// Render all present sections for the given changelog
return `${section('Features and enhancements', changelog.features)}
${section('Bug fixes', changelog.bugfixes)}
${section('Breaking changes', changelog.breaking)}
${section('Plugin development fixes & changes', changelog.plugins)}
`;
};
const md = markdown(changelog);
// Print changelog, mostly for debugging
LOG(`Resulting markdown: ${md}`);
// Save changelog as an output for this action
if (process.env.GITHUB_OUTPUT) {
LOG(`Output to ${process.env.GITHUB_OUTPUT}`);
appendFileSync(process.env.GITHUB_OUTPUT, `changelog<<EOF\n${escapeData(md)}\nEOF`);
} else {
LOG('GITHUB_OUTPUT is not set');
}
// Save changelog as an output file (if requested)
if (process.env.INPUT_OUTPUT_FILE) {
LOG(`Output to ${process.env.INPUT_OUTPUT_FILE}`);
writeFileSync(process.env.INPUT_OUTPUT_FILE, md);
}

View File

@@ -16,7 +16,7 @@ jobs:
- name: Set go version
uses: actions/setup-go@v4
with:
go-version-file: go.mod
go-version: '1.22.4'
- name: Build swagger
run: |
make -C pkg/services/ngalert/api/tooling post.json api.json
@@ -34,4 +34,3 @@ jobs:
labels: 'area/alerting,type/docs,no-changelog'
team-reviewers: 'grafana/alerting-backend-product'
draft: false

View File

@@ -5,74 +5,39 @@ on:
version:
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example: 7.4.3, 7.4.3-preview or 7.4.3-preview1'
required: true
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
push:
default: true
required: false
dry_run:
default: false
required: false
jobs:
main:
runs-on: ubuntu-latest
steps:
# This is a basic workflow to help you get started with Actions
- uses: actions-ecosystem/action-regex-match@v2.0.2
if: ${{ github.event.inputs.version != '' }}
id: regex-match
with:
text: ${{ github.event.inputs.version }}
regex: '^(\d+.\d+).\d+(?:-(?:(preview\d?)|(pre)))?$'
- uses: actions-ecosystem/action-regex-match@v2.0.2
if: ${{ inputs.version_call != '' }}
id: regex-match-version-call
with:
text: ${{ inputs.version_call }}
regex: '^(\d+.\d+).\d+(?:-(?:(preview\d?)|(pre)))?$'
- name: Validate input version
if: ${{ steps.regex-match.outputs.match == '' && github.event.inputs.version != '' }}
run: |
echo "The input version format is not correct, please respect:\
major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. \
example: 7.4.3, 7.4.3-preview or 7.4.3-preview1"
exit 1
- name: Validate input version call
if: ${{ inputs.version_call != '' && steps.regex-match-version-call.outputs.match == '' }}
run: |
echo "The input version format is not correct, please respect:\
major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. \
example: 7.4.3, 7.4.3-preview or 7.4.3-preview1"
exit 1
- uses: actions/checkout@v4
- name: Set intermedia variables
id: intermedia
run: |
echo "short_ref=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
echo "check_passed=false" >> $GITHUB_OUTPUT
echo "branch_name=v${{steps.regex-match.outputs.group1}}" >> $GITHUB_OUTPUT
echo "branch_exist=$(git ls-remote --heads https://github.com/grafana/grafana.git v${{ steps.regex-match.outputs.group1 }}.x | wc -l)" >> $GITHUB_OUTPUT
- name: Checkout Actions
- name: Checkout Grafana
uses: actions/checkout@v4
- name: Update package.json versions
uses: ./pkg/build/actions/bump-version
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
# Go is required for also updating the schema versions as part of the precommit hook:
- uses: actions/setup-go@v4
with:
go-version-file: go.mod
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Actions
run: npm install --production --prefix ./actions
- name: "Generate token"
version: ${{ inputs.version }}
- if: ${{ inputs.push }}
name: Generate token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Run bump version (manually invoked)
uses: ./actions/bump-version
with:
token: ${{ steps.generate_token.outputs.token }}
metricsWriteAPIKey: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}
precommit_make_target: gen-cue
- if: ${{ inputs.push }}
name: Push & Create PR
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local --add --bool push.autoSetupRemote true
git checkout -b "bump-version/${{ github.run_id }}/${{ inputs.version }}"
git add .
git commit -m "bump version ${{ inputs.version }}"
git push
gh pr create --dry-run=${{ inputs.dry_run }} -l "type/ci" -l "no-changelog" -B "${{ github.ref_name }}" --title "Release: Bump version to ${{ inputs.version }}" --body "Updated version to ${{ inputs.version }}"
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}

120
.github/workflows/changelog.yml vendored Normal file
View File

@@ -0,0 +1,120 @@
name: Generate changelog
on:
workflow_call:
inputs:
version:
required: true
description: 'Target release version (semver, git tag, branch or commit)'
target:
required: true
type: string
description: 'The base branch that these changes are being merged into'
dry_run:
required: false
default: false
type: bool
latest:
required: false
default: false
type: bool
workflow_dispatch:
inputs:
version:
required: true
description: 'Target release version (semver, git tag, branch or commit)'
target:
required: true
type: string
description: 'The base branch that these changes are being merged into'
dry_run:
required: false
default: false
type: bool
latest:
required: false
default: false
type: bool
permissions:
pull-requests: write
jobs:
main:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: "Checkout Grafana repo"
uses: "actions/checkout@v4"
with:
sparse-checkout: |
.github/workflows
CHANGELOG.md
fetch-depth: 0
fetch-tags: true
- name: "Configure git user"
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local --add --bool push.autoSetupRemote true
- name: "Create branch"
run: git checkout -b "release/${{ github.run_id }}/${{ inputs.version }}"
- name: "Generate changelog"
id: changelog
uses: ./.github/workflows/actions/changelog
with:
github_token: ${{ steps.generate_token.outputs.token }}
target: v${{ inputs.version }}
output_file: changelog_items.md
- name: "Patch CHANGELOG.md"
run: |
# Prepare CHANGELOG.md content with version delimiters
(
echo
echo "# ${{ inputs.version}} ($(date '+%F'))"
echo
cat changelog_items.md
) > CHANGELOG.part
# Check if a version exists in the changelog
if grep -q "<!-- ${{ inputs.version}} START" CHANGELOG.md ; then
# Replace the content between START and END delimiters
echo "Version ${{ inputs.version }} is found in the CHANGELOG.md, patching contents..."
sed -i -e '/${{ inputs.version }} START/,/${{ inputs.version }} END/{//!d;}' \
-e '/${{ inputs.version }} START/r CHANGELOG.part' CHANGELOG.md
else
# Prepend changelog part to the main changelog file
echo "Version ${{ inputs.version }} not found in the CHANGELOG.md"
(
echo "<!-- ${{ inputs.version }} START -->"
cat CHANGELOG.part
echo "<!-- ${{ inputs.version }} END -->"
cat CHANGELOG.md
) > CHANGELOG.tmp
mv CHANGELOG.tmp CHANGELOG.md
fi
git diff CHANGELOG.md
git add CHANGELOG.md
- name: "Commit changelog changes"
run: git commit --allow-empty -m "Update changelog" CHANGELOG.md
- name: "git push"
if: ${{ inputs.dry_run }} != true
run: git push
- name: "Create changelog PR"
if: "${{ inputs.backport == '' }}"
run: >
gh pr create \
$( [ "x${{ inputs.latest }}" == "xtrue" ] && printf %s '-l "release/latest"') \
--dry-run=${{ inputs.dry_run }} \
-B "${{ inputs.target }}" \
--title "Release: ${{ inputs.version }}" \
--body "Changelog changes for release ${{ inputs.version }}"
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}

View File

@@ -25,7 +25,6 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
strategy:
fail-fast: false
@@ -48,7 +47,7 @@ jobs:
name: Set go version
uses: actions/setup-go@v4
with:
go-version-file: go.mod
go-version: '1.22.4'
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
@@ -68,3 +67,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -1,25 +1,46 @@
name: Create community release post
on:
workflow_call:
inputs:
version:
type: string
required: true
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example: 7.4.3, 7.4.3-preview or 7.4.3-preview1'
dry_run:
type: boolean
required: false
default: false
description: When enabled, this workflow will print a preview instead of creating an actual post.
secrets:
GRAFANA_MISC_STATS_API_KEY:
required: true
GRAFANABOT_FORUM_KEY:
required: true
workflow_dispatch:
inputs:
version:
type: string
required: true
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example: 7.4.3, 7.4.3-preview or 7.4.3-preview1'
dry_run:
type: boolean
required: false
default: false
description: When enabled, this workflow will print a preview instead of creating an actual post.
permissions:
contents: read
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Run community-release (manually invoked)
uses: grafana/grafana-github-actions-go/community-release@main
with:
token: ${{ steps.generate_token.outputs.token }}
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ inputs.version }}
metrics_api_key: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}
community_api_key: ${{ secrets.GRAFANABOT_FORUM_KEY }}
community_api_username: grafanabot
dry_run: ${{ inputs.dry_run }}

View File

@@ -253,7 +253,7 @@ jobs:
- name: Post to Slack
id: slack
if: steps.levitate-run.outputs.exit_code == 1 && steps.does-label-exist.outputs.result == 0 && env.HAS_SECRETS
uses: slackapi/slack-github-action@v1.26.0
uses: slackapi/slack-github-action@v1.24.0
with:
payload: |
{

View File

@@ -37,6 +37,11 @@ jobs:
labels: ubuntu-latest-8-cores
continue-on-error: true
steps:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '>=1.20'
- name: Generate a GitHub app installation token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
@@ -52,28 +57,15 @@ jobs:
ref: main
path: ephemeral
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version-file: ephemeral/go.mod
- name: Get latest grafana version number
run: |
# if package.json contains e.g. 11.0.0-pre, this writes 11.0.0 to version.txt
curl https://raw.githubusercontent.com/grafana/grafana/main/package.json | jq -r .version | grep -o '^[0-9\.]*' > version.txt
- name: Run action
env:
GITHUB_EVENT: ${{ toJson(github.event)}}
run: |
# Create a prerelease version number using the latest version from the package.json in the grafana repo.
export GRAFANA_VERSION="$(cat version.txt)"
echo "${GRAFANA_VERSION}"
GRAFANA_VERSION=10.1.0
cd $GITHUB_WORKSPACE/ephemeral/src
go run . \
-GITHUB_TOKEN="${{ steps.generate_token.outputs.token }}" \
-GITHUB_WORKFLOW_RUN_ID="${{ github.run_id }}" \
-GITHUB_EVENT="$GITHUB_EVENT" \
-GITHUB_TRIGGERING_ACTOR="${{ github.triggering_actor }}" \
-GCOM_HOST="${{ secrets.EI_GCOM_HOST }}" \

View File

@@ -29,6 +29,11 @@ jobs:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '>=1.20'
- name: Generate a GitHub app installation token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
@@ -44,28 +49,15 @@ jobs:
ref: main
path: ephemeral
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version-file: ephemeral/go.mod
- name: Get latest grafana version number
run: |
# if package.json contains e.g. 11.0.0-pre, this writes 11.0.0 to version.txt
curl https://raw.githubusercontent.com/grafana/grafana/main/package.json | jq -r .version | grep -o '^[0-9\.]*' > version.txt
- name: Run action
env:
GITHUB_EVENT: ${{ toJson(github.event)}}
run: |
# Create a prerelease version number using the latest version from the package.json in the grafana repo.
export GRAFANA_VERSION="$(cat version.txt)"
echo "${GRAFANA_VERSION}"
GRAFANA_VERSION=10.1.0
cd $GITHUB_WORKSPACE/ephemeral/src
go run . \
-GITHUB_TOKEN="${{ steps.generate_token.outputs.token }}" \
-GITHUB_WORKFLOW_RUN_ID="${{ github.run_id }}" \
-GITHUB_EVENT="$GITHUB_EVENT" \
-GITHUB_TRIGGERING_ACTOR="${{ github.triggering_actor }}" \
-GCOM_HOST="${{ secrets.EI_GCOM_HOST }}" \

View File

@@ -0,0 +1,28 @@
name: Feature Toggle Cleanup
on:
workflow_dispatch:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 10 * * *'
jobs:
feature-toggle-cleanup:
runs-on: ubuntu-latest
# This check is here to prevent this workflow from running on forks.
if: github.repository == 'grafana/grafana'
steps:
- name: Check out the code
uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: "20.x"
- run: npm install csv-parse
- name: Parse CVS file to see which Feature Toggles should be notified about
id: parse-csv-file
uses: actions/github-script@v7
env:
FEATURE_TOGGLES_CSV_FILE_PATH: "pkg/services/featuremgmt/toggles_gen.csv"
with:
script: |
const { default: cleanupFeatureFlags } = await import('${{ github.workspace }}/.github/workflows/scripts/feature-toggle-cleanup/feature-toggle-cleanup.mjs')
await cleanupFeatureFlags({github, context, core})

View File

@@ -1,27 +1,48 @@
name: Create or update GitHub release
on:
workflow_call:
inputs:
version:
required: true
description: Needs to match, exactly, the name of a milestone (NO v prefix)
type: string
latest:
required: false
default: false
description: Mark this release as latest (`1`) or not (`0`, default)
type: string
dry_run:
required: false
default: false
type: boolean
workflow_dispatch:
inputs:
version:
required: true
description: Needs to match, exactly, the name of a milestone (NO v prefix)
type: string
latest:
required: false
description: Mark this release as latest (`1`) or not (`0`, default)
type: string
dry_run:
required: false
default: false
type: boolean
permissions:
# contents: write allows the action(s) to create github releases
contents: write
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Create GitHub release (manually invoked)
uses: grafana/grafana-github-actions-go/github-release@main
with:
token: ${{ steps.generate_token.outputs.token }}
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ inputs.version }}
metrics_api_key: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}
latest: ${{ inputs.latest }}
dry_run: ${{ inputs.dry_run }}

View File

@@ -86,7 +86,7 @@ jobs:
- name: "Send Slack notification"
if: ${{ (env.CHANNEL != 'null') && ((env.USER_FOUND == 'false') || (env.TEAM != 'null')) }}
uses: slackapi/slack-github-action@v1.26.0
uses: slackapi/slack-github-action@v1.24.0
with:
payload: >
{

View File

@@ -9,7 +9,6 @@ on:
- labeled
- unlabeled
- edited
- auto_merge_enabled
issues:
types:
- milestoned

View File

@@ -14,7 +14,6 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
steps:
- name: "Generate token"
@@ -36,7 +35,7 @@ jobs:
- name: Set go version
uses: actions/setup-go@v4
with:
go-version-file: go.mod
go-version: '1.22.4'
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
@@ -51,3 +50,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -16,7 +16,6 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
steps:
- name: Checkout repository
@@ -34,3 +33,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -14,7 +14,6 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
steps:
- name: Checkout repository
@@ -32,3 +31,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -18,11 +18,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set go version
uses: actions/setup-go@v4
with:
go-version-file: go.mod
go-version: '1.22.4'
- name: Workspace Sync
run: go work sync
@@ -30,10 +32,7 @@ jobs:
- name: Check for go mod & workspace changes
run: |
if ! git diff --exit-code --quiet; then
echo "Changes detected:"
git diff
echo "Please run 'go work sync' and commit the changes."
echo "If there is a change in enterprise dependencies, please update pkg/extensions/main.go."
echo "Changes detected. Please run 'go work sync' and commit the changes."
exit 1
fi
@@ -43,9 +42,6 @@ jobs:
- name: Check for go workspace changes
run: |
if ! git diff --exit-code --quiet; then
echo "Changes detected:"
git diff
echo "Please run 'make build-go' and commit the changes."
echo "If there is a change in enterprise dependencies, please update pkg/extensions/main.go."
echo "Changes detected. Please run 'make build-go' and commit the changes."
exit 1
fi

View File

@@ -36,7 +36,7 @@ jobs:
- name: "Setup Go"
uses: "actions/setup-go@v4"
with:
go-version-file: go.mod
go-version: '1.22.4'
- name: "Verify kinds"
run: go run .github/workflows/scripts/kinds/verify-kinds.go

View File

@@ -39,7 +39,7 @@ jobs:
- name: "Setup Go"
uses: "actions/setup-go@v4"
with:
go-version-file: go.mod
go-version: '1.22.4'
- name: "Verify kinds"
run: go run .github/workflows/scripts/kinds/verify-kinds.go

77
.github/workflows/release-comms.yml vendored Normal file
View File

@@ -0,0 +1,77 @@
# This workflow runs whenever the release PR is merged. It includes post-release communication processes like
# posting to slack, the website, community forums, etc.
# Only things that happen after a release is completed and all of the necessary code changes (like the changelog) are made.
name: Post-release
on:
workflow_dispatch:
inputs:
dry_run:
required: false
default: true
version:
required: true
latest:
type: bool
default: false
pull_request:
types:
- closed
branches:
- 'main'
- 'v*.*.*'
jobs:
setup:
if: ${{ github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/')) }}
name: Setup and establish latest
outputs:
version: ${{ steps.output.outputs.version }}
dry_run: ${{ steps.output.outputs.dry_run }}
latest: ${{ steps.output.outputs.latest }}
runs-on: ubuntu-latest
steps:
- if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
echo setting up GITHUB_ENV for ${{ github.event_name }}
echo "VERSION=${{ inputs.version }}" >> $GITHUB_ENV
echo "DRY_RUN=${{ inputs.dry_run }}" >> $GITHUB_ENV
echo "LATEST=${{ inputs.latest }}" >> $GITHUB_ENV
- if: ${{ github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/') }}
run: |
echo "VERSION=$(echo ${{ github.head_ref }} | sed -e 's/release\///g')" >> $GITHUB_ENV
echo "DRY_RUN=true" >> $GITHUB_ENV
echo "LATEST=${{ contains(github.event.pull_request.labels.*.name, 'release/latest') }}" >> $GITHUB_ENV
- id: output
run: |
echo "dry_run: $DRY_RUN"
echo "latest: $LATEST"
echo "version: $VERSION"
echo "dry_run=$DRY_RUN" >> "$GITHUB_OUTPUT"
echo "latest=$LATEST" >> "$GITHUB_OUTPUT"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
post_changelog_on_forum:
needs: setup
uses: ./.github/workflows/community-release.yml
secrets:
GRAFANA_MISC_STATS_API_KEY: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}
GRAFANABOT_FORUM_KEY: ${{ secrets.GRAFANABOT_FORUM_KEY }}
with:
version: ${{ needs.setup.outputs.version }}
dry_run: ${{ needs.setup.outputs.dry_run == 'true' }}
create_github_release:
# a github release requires a git tag
# The github-release action retrieves the changelog using the /repos/grafana/grafana/contents/CHANGELOG.md API
# endpoint.
needs: setup
uses: ./.github/workflows/github-release.yml
with:
version: ${{ needs.setup.outputs.version }}
dry_run: ${{ needs.setup.outputs.dry_run == 'true' }}
post_on_slack:
needs: setup
runs-on: ubuntu-latest
steps:
- run: |
echo announce on slack that ${{ needs.setup.outputs.version }} has been released
echo dry run: ${{ needs.setup.outputs.dry_run }}

153
.github/workflows/release-pr.yml vendored Normal file
View File

@@ -0,0 +1,153 @@
# This workflow creates a new PR in Grafana which is triggered after a release is completed.
# It should include all code changes that are needed after a release is done. This includes the changelog update and
# version bumps, but could include more in the future.
# Please refrain from including any processes that do not result in code changes in this workflow. Instead, they should
# either be triggered in the release promotion process or in the release comms process (that is triggered by merging
# this PR).
name: Complete a Grafana release
on:
workflow_dispatch:
inputs:
version:
required: true
type: string
description: The version of Grafana that is being released
target:
required: true
type: string
description: The base branch that these changes are being merged into
backport:
required: false
type: string
description: Branch to backport these changes to
dry_run:
required: false
default: false
type: bool
latest:
required: false
default: false
type: bool
permissions:
contents: write
pull-requests: write
jobs:
push-changelog-to-main:
name: Create PR to main to update the changelog
uses: ./.github/workflows/changelog.yml
with:
version: ${{ inputs.version }}
latest: ${{ inputs.latest }}
dry_run: ${{ inputs.dry_run }}
target: main
create-prs:
name: Create Release PR
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
steps:
- name: Generate bot token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Checkout Grafana
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Configure git user
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local --add --bool push.autoSetupRemote true
- name: Create branch
run: git checkout -b "release/${{ github.run_id }}/${{ inputs.version }}"
- name: Generate changelog
id: changelog
uses: ./.github/workflows/actions/changelog
with:
github_token: ${{ steps.generate_token.outputs.token }}
target: v${{ inputs.version }}
output_file: changelog_items.md
- name: Patch CHANGELOG.md
run: |
# Prepare CHANGELOG.md content with version delimiters
(
echo
echo "# ${{ inputs.version}} ($(date '+%F'))"
echo
cat changelog_items.md
) > CHANGELOG.part
# Check if a version exists in the changelog
if grep -q "<!-- ${{ inputs.version}} START" CHANGELOG.md ; then
# Replace the content between START and END delimiters
echo "Version ${{ inputs.version }} is found in the CHANGELOG.md, patching contents..."
sed -i -e '/${{ inputs.version }} START/,/${{ inputs.version }} END/{//!d;}' \
-e '/${{ inputs.version }} START/r CHANGELOG.part' CHANGELOG.md
else
# Prepend changelog part to the main changelog file
echo "Version ${{ inputs.version }} not found in the CHANGELOG.md"
(
echo "<!-- ${{ inputs.version }} START -->"
cat CHANGELOG.part
echo "<!-- ${{ inputs.version }} END -->"
cat CHANGELOG.md
) > CHANGELOG.tmp
mv CHANGELOG.tmp CHANGELOG.md
fi
rm -f CHANGELOG.part changelog_items.md
git diff CHANGELOG.md
- name: Commit CHANGELOG.md changes
run: git commit --allow-empty -m "Update changelog placeholder" CHANGELOG.md
- name: Update package.json versions
uses: ./pkg/build/actions/bump-version
with:
version: ${{ inputs.version }}
- name: Add package.json changes
run: |
git add .
git commit -m "Update version to ${{ inputs.version }}"
- name: Git push
if: ${{ inputs.dry_run }} != true
run: git push
- name: Create PR without backports
if: "${{ inputs.backport == '' }}"
run: >
gh pr create \
$( [ "x${{ inputs.latest }}" == "xtrue" ] && printf %s '-l "release/latest"') \
--dry-run=${{ inputs.dry_run }} \
-B "${{ inputs.target }}" \
--title "Release: ${{ inputs.version }}" \
--body "These code changes must be merged after a release is complete"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create PR with backports
if: "${{ inputs.backport != '' }}"
run: >
gh pr create \
$( [ "x${{ inputs.latest }}" == "xtrue" ] && printf %s '-l "release/latest"') \
-l "backport ${{ inputs.backport }}" \
-l "product-approved" \
--dry-run=${{ inputs.dry_run }} \
-B "${{ inputs.target }}" \
--title "Release: ${{ inputs.version }}" \
--body "These code changes must be merged after a release is complete"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -3,7 +3,6 @@ name: Run dashboard scenes e2e
on:
schedule:
- cron: "0 8 * * 1-5" # every day at 08:00UTC on weekdays
# push # uncomment for test run during PR
env:
ARCH: linux-amd64

View File

@@ -0,0 +1,38 @@
import { parse } from 'csv-parse/sync';
import fs from 'fs';
/***
* Feauture Flag Structure example
* Name: 'disableEnvelopeEncryption',
Stage: 'GA',
Owner: '@grafana/grafana-as-code',
Created: '2022-05-24',
requiresDevMode: 'false',
RequiresLicense: 'false',
RequiresRestart: 'false',
FrontendOnly: 'false'
*
*/
export default function cleanupFeatureFlags() {
const today = new Date();
const sixMonthAgo = today.setMonth(today.getMonth() - 6);
const inputFileContents = fs.readFileSync(process.env.FEATURE_TOGGLES_CSV_FILE_PATH);
const parsedFeatureFlags = parse(inputFileContents, {
columns: true,
skip_empty_lines: true,
cast: true,
cast_date: true,
});
// Here we can have the custom logic of how to handle what type of feature flag - e.g. GA can be treated differently than experimental and so on.
for (const flag of parsedFeatureFlags) {
if (flag.Created < sixMonthAgo) {
console.log(`The flag ${flag.Name} was created more than 6 months ago. It should be checked.`);
console.log(flag);
}
}
}

View File

@@ -18,7 +18,7 @@ jobs:
- name: "Setup Go"
uses: "actions/setup-go@v4"
with:
go-version-file: go.mod
go-version: '1.22.4'
- name: "Verify kinds"
run: go run .github/workflows/scripts/kinds/verify-kinds.go

3
.gitignore vendored
View File

@@ -216,6 +216,3 @@ public/app/plugins/**/dist/
# Go coverage files created with go test -cover -coverprogile=something.out ...
*.out
# Locally enabling the Go race detector until we can globally do so
.go-race-enabled-locally

View File

@@ -1,6 +1,5 @@
[run]
timeout = "10m"
concurrency = 10
[linters-settings.exhaustive]
default-signifies-exhaustive = true
@@ -18,7 +17,6 @@ deny = [
{ pkg = "github.com/pkg/errors", desc = "Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library." },
{ pkg = "github.com/xorcare/pointer", desc = "Use pkg/util.Pointer instead, which is a generic one-liner alternative" },
{ pkg = "github.com/gofrs/uuid", desc = "Use github.com/google/uuid instead, which we already depend on." },
{ pkg = "github.com/bmizerany/assert", desc = "Use github.com/stretchr/testify/assert instead, which we already depend on." },
]
[linters-settings.depguard.rules.coreplugins]
@@ -61,8 +59,6 @@ files = [
"**/pkg/tsdb/azuremonitor/**/*",
"**/pkg/tsdb/cloud-monitoring/*",
"**/pkg/tsdb/cloud-monitoring/**/*",
"**/pkg/tsdb/mysql/*",
"**/pkg/tsdb/mysql/**/*",
"**/pkg/tsdb/parca/*",
"**/pkg/tsdb/parca/**/*",
"**/pkg/tsdb/tempo/*",
@@ -76,11 +72,6 @@ list-mode = "lax"
allow = [
"github.com/grafana/grafana/pkg/apimachinery",
"github.com/grafana/grafana/pkg/apiserver",
"github.com/grafana/grafana/pkg/services/apiserver/utils",
"github.com/grafana/grafana/pkg/services/featuremgmt",
"github.com/grafana/grafana/pkg/infra/kvstore",
"github.com/grafana/grafana/pkg/services/apiserver/options",
"github.com/grafana/grafana/pkg/apis/playlist/v0alpha1",
]
deny = [
{ pkg = "github.com/grafana/grafana/pkg", desc = "apiserver is not allowed to import grafana core" }
@@ -121,9 +112,6 @@ enabled-checks = ["ruleguard"]
[linters-settings.gocritic.settings.ruleguard]
rules = "pkg/ruleguard.rules.go"
[linters-settings.misspell]
ignore-words = ["Unknwon", "Creater"]
[linters-settings.nakedret]
max-func-lines = 60
@@ -166,7 +154,6 @@ enable = [
[issues]
exclude-use-default = false
max-same-issues = 0
# Enable when appropriate
# Poorly chosen identifier
@@ -192,12 +179,9 @@ text = "SA1019: http.CloseNotifier"
linters = ["staticcheck"]
text = "SA1019: strings.Title"
# go.opentelemetry.io/otel/exporters/jaeger" is deprecated: This module is no longer supported. OpenTelemetry dropped support for Jaeger exporter in July 2023.
# Jaeger officially accepts and recommends using OTLP.
# Use [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp] or [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc] instead.
[[issues.exclude-rules]]
linters = ["staticcheck"]
text = "SA1019: \"go.opentelemetry.io/otel/exporters/jaeger\""
text = "SA1019: grpc.Dial"
[[issues.exclude-rules]]
linters = ["staticcheck"]
@@ -239,6 +223,10 @@ text = "501"
linters = ["gosec"]
text = "404"
[[issues.exclude-rules]]
linters = ["misspell"]
text = "Unknwon` is a misspelling of `Unknown"
[[issues.exclude-rules]]
linters = ["errorlint"]
text = "non-wrapping format verb for fmt.Errorf"

View File

@@ -19,6 +19,10 @@ vendor
# TS generate from cue by cuetsy
**/*.gen.ts
# Auto-generated internationalization files
public/locales/_build/
public/locales/**/*.js
# Auto-generated theme files
theme.light.generated.json
theme.dark.generated.json

44
.vscode/launch.json vendored
View File

@@ -19,7 +19,9 @@
"program": "${workspaceFolder}/pkg/cmd/grafana/",
"env": {},
"cwd": "${workspaceFolder}",
"args": ["apiserver", "--secure-port=8443", "--runtime-config=testdata.datasource.grafana.app/v0alpha1=true"]
"args": ["apiserver",
"--secure-port=8443",
"--runtime-config=testdata.datasource.grafana.app/v0alpha1=true"]
},
{
"name": "Run API Server (query-localhost)",
@@ -29,34 +31,12 @@
"program": "${workspaceFolder}/pkg/cmd/grafana/",
"env": {},
"cwd": "${workspaceFolder}",
"args": [
"apiserver",
"--secure-port=8443",
"--runtime-config=query.grafana.app/v0alpha1=true",
"--grafana.authn.signing-keys-url=http://localhost:3000/api/signing-keys/keys",
"--hg-url=http://localhost:3000",
"--hg-key=$HGAPIKEY"
]
},
{
"name": "Run Server (query GRPC Storage Server)",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/pkg/cmd/grafana/",
"env": {"GF_GRAFANA_APISERVER_STORAGE_TYPE": "unified-grpc"},
"cwd": "${workspaceFolder}",
"args": ["server", "--homepath", "${workspaceFolder}", "--packaging", "dev"]
},
{
"name": "Run Storage Server",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/pkg/cmd/grafana/",
"env": {"GF_DEFAULT_TARGET": "storage-server","GF_SERVER_HTTP_PORT": "3001"},
"cwd": "${workspaceFolder}",
"args": ["server", "target", "--homepath", "${workspaceFolder}", "--packaging", "dev"]
"args": ["apiserver",
"--secure-port=8443",
"--runtime-config=query.grafana.app/v0alpha1=true",
"--grafana.authn.signing-keys-url=http://localhost:3000/api/signing-keys/keys",
"--hg-url=http://localhost:3000",
"--hg-key=$HGAPIKEY"]
},
{
"name": "Attach to Chrome",
@@ -66,16 +46,14 @@
"webRoot": "${workspaceFolder}"
},
{
"name": "Debug UI test",
"name": "Debug Jest test",
"type": "node",
"request": "launch",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "jest", "--runInBand", "${file}"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"env": {
"NODE_ENV": "test"
}
"port": 9229
},
{
"name": "Debug Go test",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,121 +0,0 @@
diff --git a/build/GridItem.js b/build/GridItem.js
index 0a700da9f1180ca532e32e04dc7ea50f2e67b96c..a2e4673fa1133aeaa4018cc01312ca386c3395f5 100644
--- a/build/GridItem.js
+++ b/build/GridItem.js
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
+var _reactDOM = require("react-dom");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactDraggable = require("react-draggable");
var _reactResizable = require("react-resizable");
@@ -147,8 +148,10 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
const pTop = parentRect.top / transformScale;
newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;
newPosition.top = cTop - pTop + offsetParent.scrollTop;
- this.setState({
- dragging: newPosition
+ _reactDOM.flushSync(() => {
+ this.setState({
+ dragging: newPosition
+ });
});
// Call callback with this data
@@ -213,8 +216,10 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
top,
left
};
- this.setState({
- dragging: newPosition
+ _reactDOM.flushSync(() => {
+ this.setState({
+ dragging: newPosition
+ });
});
// Call callback with this data
@@ -261,8 +266,10 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
top,
left
};
- this.setState({
- dragging: null
+ _reactDOM.flushSync(() => {
+ this.setState({
+ dragging: null
+ });
});
const {
x,
@@ -485,8 +492,10 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
let updatedSize = size;
if (node) {
updatedSize = (0, _utils.resizeItemInDirection)(handle, position, size, containerWidth);
- this.setState({
- resizing: handlerName === "onResizeStop" ? null : updatedSize
+ _reactDOM.flushSync(() => {
+ this.setState({
+ resizing: handlerName === "onResizeStop" ? null : updatedSize
+ });
});
}
diff --git a/lib/GridItem.jsx b/lib/GridItem.jsx
index dbe41f92388f19d3e476690fa0ee5584ab9d5bb4..1e4713667cd7dadd6618fe06176804a02ee3ccc2 100644
--- a/lib/GridItem.jsx
+++ b/lib/GridItem.jsx
@@ -1,5 +1,6 @@
// @flow
import React from "react";
+import { flushSync } from "react-dom";
import PropTypes from "prop-types";
import { DraggableCore } from "react-draggable";
import { Resizable } from "react-resizable";
@@ -459,7 +460,9 @@ export default class GridItem extends React.Component<Props, State> {
const pTop = parentRect.top / transformScale;
newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;
newPosition.top = cTop - pTop + offsetParent.scrollTop;
- this.setState({ dragging: newPosition });
+ flushSync(() => {
+ this.setState({ dragging: newPosition });
+ });
// Call callback with this data
const { x, y } = calcXY(
@@ -516,7 +519,9 @@ export default class GridItem extends React.Component<Props, State> {
}
const newPosition: PartialPosition = { top, left };
- this.setState({ dragging: newPosition });
+ flushSync(() => {
+ this.setState({ dragging: newPosition });
+ });
// Call callback with this data
const { containerPadding } = this.props;
@@ -549,7 +554,9 @@ export default class GridItem extends React.Component<Props, State> {
const { w, h, i, containerPadding } = this.props;
const { left, top } = this.state.dragging;
const newPosition: PartialPosition = { top, left };
- this.setState({ dragging: null });
+ flushSync(() => {
+ this.setState({ dragging: null });
+ });
const { x, y } = calcXY(
this.getPositionParams(),
@@ -605,8 +612,10 @@ export default class GridItem extends React.Component<Props, State> {
size,
containerWidth
);
- this.setState({
- resizing: handlerName === "onResizeStop" ? null : updatedSize
+ flushSync(() => {
+ this.setState({
+ resizing: handlerName === "onResizeStop" ? null : updatedSize
+ });
});
}

File diff suppressed because one or more lines are too long

View File

@@ -7,6 +7,9 @@ enableTelemetry: false
nodeLinker: node-modules
packageExtensions:
'@storybook/core-common@7.4.5':
dependencies:
'@storybook/react-webpack5': 7.4.5
'croact-css-styled@1.1.9':
dependencies:
croact: 1.0.4
@@ -21,12 +24,25 @@ packageExtensions:
peerDependencies:
react: 17.0.1
react-dom: 17.0.1
react-compat-css-styled@1.0.8:
dependencies:
react-simple-compat: 1.2.2
react-icons@2.2.7:
peerDependencies:
prop-types: '*'
react-resizable@3.0.4:
peerDependencies:
react-dom: 17.0.1
'@msagl/drawing@*':
dependencies:
queue-typescript: "^1.0.1"
"@esfx/collections-sortedmap": "^1.0.0"
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-outdated.cjs
spec: 'https://mskelton.dev/yarn-outdated/v2'
yarnPath: .yarn/releases/yarn-4.2.2.cjs
yarnPath: .yarn/releases/yarn-4.1.0.cjs
# Uncomment the following lines if you want to use Verdaccio local npm registry. Read more at packages/README.md
#npmScopes:
# grafana:

View File

@@ -1,3 +1,40 @@
<!-- 11.0.1 START -->
# 11.0.1 (2024-06-21)
### Bug fixes
- **Echo:** Suppress errors from frontend-metrics API call failing. [#89493](https://github.com/grafana/grafana/issues/89493), [@joshhunt](https://github.com/joshhunt)
- **Fix:** Portuguese Brazilian wasn't loading translations. [#89374](https://github.com/grafana/grafana/issues/89374), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **Analytics:** Fix ApplicationInsights integration. [#89300](https://github.com/grafana/grafana/issues/89300), [@ashharrison90](https://github.com/ashharrison90)
- **DashboardScene:** Fixes issue removing override rule. [#89134](https://github.com/grafana/grafana/issues/89134), [@torkelo](https://github.com/torkelo)
- **BrowseDashboards:** Prepend subpath to New Browse Dashboard actions. [#89130](https://github.com/grafana/grafana/issues/89130), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Fix rule storage to filter by group names using case-sensitive comparison. [#89063](https://github.com/grafana/grafana/issues/89063), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **RBAC:** List only the folders that the user has access to. [#89015](https://github.com/grafana/grafana/issues/89015), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **DashboardScene:** Fixes lack of re-render when updating field override properties. [#88985](https://github.com/grafana/grafana/issues/88985), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes inspect with transforms issue. [#88862](https://github.com/grafana/grafana/issues/88862), [@torkelo](https://github.com/torkelo)
- **AzureMonitor:** Fix bug detecting app insights queries. [#88787](https://github.com/grafana/grafana/issues/88787), [@aangelisc](https://github.com/aangelisc)
- **Access Control:** Clean up permissions for deprovisioned data sources. [#88700](https://github.com/grafana/grafana/issues/88700), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Loki:** Fix editor history in wrong order. [#88669](https://github.com/grafana/grafana/issues/88669), [@svennergr](https://github.com/svennergr)
- **SSE:** Fix threshold unmarshal to avoid panic. [#88651](https://github.com/grafana/grafana/issues/88651), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **LibraryPanels/RBAC:** Ignore old folder permission check when deleting/patching lib panel. [#88493](https://github.com/grafana/grafana/issues/88493), [@kaydelaney](https://github.com/kaydelaney)
- **Dashboards:** Correctly display Admin access to dashboards in the UI. [#88473](https://github.com/grafana/grafana/issues/88473), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **LogsTable:** Fix default sort by time. [#88434](https://github.com/grafana/grafana/issues/88434), [@svennergr](https://github.com/svennergr)
- **Alerting:** Fix rules deleting when reordering whilst filtered. [#88285](https://github.com/grafana/grafana/issues/88285), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix typo in JSON response for rule export. [#88090](https://github.com/grafana/grafana/issues/88090), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **CloudMonitoring:** Fix query type selection issue. [#88024](https://github.com/grafana/grafana/issues/88024), [@aangelisc](https://github.com/aangelisc)
- **Alerting:** Fix scheduler to sort rules before evaluation. [#88021](https://github.com/grafana/grafana/issues/88021), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **DashboardScene:** Skip panel repeats when values are the same. [#87896](https://github.com/grafana/grafana/issues/87896), [@torkelo](https://github.com/torkelo)
- **Alerting:** Do not store series values from past evaluations in state manager for no reason. [#87845](https://github.com/grafana/grafana/issues/87845), [@alexweav](https://github.com/alexweav)
- **DashboardScene:** Fixing major row repeat issues. [#87800](https://github.com/grafana/grafana/issues/87800), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes checkbox orienation in save forms. [#86490](https://github.com/grafana/grafana/issues/86490), [@torkelo](https://github.com/torkelo)
- **Provisioning:** Add override option to role provisioning. (Enterprise)
### Breaking changes
If you had selected your language as "Português Brasileiro" previously, this will be reset. You have to select it again in your Preferences for the fix to be applied and the translations will then be shown. Issue [#89374](https://github.com/grafana/grafana/issues/89374)
<!-- 11.0.1 END -->
<!-- 11.0.0 START -->
# 11.0.0 (2024-05-14)
@@ -350,47 +387,6 @@ The deprecated `email` field to send a report via `/api/reports/email` endpoint
- **Grafana UI:** Add code variant to Text component. [#82318](https://github.com/grafana/grafana/issues/82318), [@tskarhed](https://github.com/tskarhed)
<!-- 11.0.0-preview END -->
<!-- 10.4.3 START -->
# 10.4.3 (2024-05-13)
### Features and enhancements
- **Chore:** Upgrade go to 1.21.10. [#87473](https://github.com/grafana/grafana/issues/87473), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Chore:** Upgrade go to 1.21.10. (Enterprise)
### Bug fixes
- **CloudMonitoring:** Improve legacy query migrations. [#87647](https://github.com/grafana/grafana/issues/87647), [@aangelisc](https://github.com/aangelisc)
- **Azure data sources:** Set selected config type before save. [#87585](https://github.com/grafana/grafana/issues/87585), [@bossinc](https://github.com/bossinc)
- **Provisioning:** Look up provisioned folders by UID when possible. [#87467](https://github.com/grafana/grafana/issues/87467), [@DanCech](https://github.com/DanCech)
- **Cloudwatch:** Update grafana-aws-sdk to fix sts endpoints. [#87348](https://github.com/grafana/grafana/issues/87348), [@iwysiu](https://github.com/iwysiu)
- **Alerting:** Prevent search from locking the browser. [#87231](https://github.com/grafana/grafana/issues/87231), [@gillesdemey](https://github.com/gillesdemey)
- **SQLStore:** Disable redundant create and drop unique index migrations on dashboard table. [#86866](https://github.com/grafana/grafana/issues/86866), [@papagian](https://github.com/papagian)
- **Alerting:** Take receivers into account when custom grouping Alertmanager groups. [#86697](https://github.com/grafana/grafana/issues/86697), [@konrad147](https://github.com/konrad147)
- **LDAP:** Fix listing all non-matching groups. [#86690](https://github.com/grafana/grafana/issues/86690), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Fix simplified routing group by override. [#86620](https://github.com/grafana/grafana/issues/86620), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy. [#86162](https://github.com/grafana/grafana/issues/86162), [@alexweav](https://github.com/alexweav)
- **LibraryPanelRBAC:** Fix issue with importing dashboards containing library panels. [#86150](https://github.com/grafana/grafana/issues/86150), [@kaydelaney](https://github.com/kaydelaney)
- **Google Cloud Monitor:** Fix `res` being accessed after it becomes `nil` in `promql_query.go`. [#85959](https://github.com/grafana/grafana/issues/85959), [@adamyeats](https://github.com/adamyeats)
- **Google Cloud Monitor:** Fix interface conversion for incorrect type in cloudMonitoringProm.run. [#85957](https://github.com/grafana/grafana/issues/85957), [@adamyeats](https://github.com/adamyeats)
- **Dashboard:** Allow `auto` refresh option when saving a dashboard. [#85921](https://github.com/grafana/grafana/issues/85921), [@bfmatei](https://github.com/bfmatei)
- **Reporting:** Fix monthly schedule text and modify monthly schedule inputs behavior. (Enterprise)
- **SAML:** Fix Authn request generation in case of HTTP-POST binding. (Enterprise)
<!-- 10.4.3 END -->
<!-- 10.4.2 START -->
# 10.4.2 (2024-04-10)
### Bug fixes
- **Angular deprecation:** Prefer local "angularDetected" value to the remote one. [#85631](https://github.com/grafana/grafana/issues/85631), [@xnyo](https://github.com/xnyo)
- **AuthProxy:** Fix missing session for ldap auth proxy users. [#85237](https://github.com/grafana/grafana/issues/85237), [@Jguer](https://github.com/Jguer)
- **Alerting:** Fix receiver inheritance when provisioning a notification policy. [#85192](https://github.com/grafana/grafana/issues/85192), [@julienduchesne](https://github.com/julienduchesne)
- **CloudMonitoring:** Only run query if filters are complete. [#85016](https://github.com/grafana/grafana/issues/85016), [@aangelisc](https://github.com/aangelisc)
<!-- 10.4.2 END -->
<!-- 10.4.1 START -->
# 10.4.1 (2024-03-20)
@@ -634,23 +630,6 @@ Any consumers of the specific API should be appropriately adapted. Issue [#74600
- **Grafana/UI:** Add new Splitter component . [#82357](https://github.com/grafana/grafana/issues/82357), [@torkelo](https://github.com/torkelo)
<!-- 10.4.0 END -->
<!-- 10.3.6 START -->
# 10.3.6 (2024-05-13)
### Features and enhancements
- **Chore:** Upgrade go to 1.21.10. [#87474](https://github.com/grafana/grafana/issues/87474), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Chore:** Upgrade go to 1.21.10. (Enterprise)
### Bug fixes
- **Azure data sources:** Set selected config type before save. [#87584](https://github.com/grafana/grafana/issues/87584), [@bossinc](https://github.com/bossinc)
- **LibraryPanelRBAC:** Fix issue with importing dashboards containing library panels. [#86148](https://github.com/grafana/grafana/issues/86148), [@kaydelaney](https://github.com/kaydelaney)
- **AuthProxy:** Fix missing session for ldap auth proxy users. [#85250](https://github.com/grafana/grafana/issues/85250), [@Jguer](https://github.com/Jguer)
- **PDF:** Fix initialization when SMTP is disabled. (Enterprise)
<!-- 10.3.6 END -->
<!-- 10.3.5 START -->
# 10.3.5 (2024-03-20)
@@ -810,20 +789,6 @@ Users who have InfluxDB datasource configured with SQL querying language must up
Removes `NamespaceID` from responses of all GET routes underneath the path `/api/ruler/grafana/api/v1/rules` - 3 affected endpoints. All affected routes are not in the publicly documented or `stable` marked portion of the ngalert API. This only breaks clients who are directly using the unstable portion of the API. Such clients should use `NamespaceUID` rather than `NamespaceID` to identify namespaces. Issue [#79359](https://github.com/grafana/grafana/issues/79359)
<!-- 10.3.0 END -->
<!-- 10.2.7 START -->
# 10.2.7 (2024-05-13)
### Features and enhancements
- **Chore:** Upgrade go to 1.21.10. [#87475](https://github.com/grafana/grafana/issues/87475), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Chore:** Upgrade go to 1.21.10. (Enterprise)
### Bug fixes
- **Azure data sources:** Set selected config type before save. [#87583](https://github.com/grafana/grafana/issues/87583), [@bossinc](https://github.com/bossinc)
<!-- 10.2.7 END -->
<!-- 10.2.6 START -->
# 10.2.6 (2024-03-25)
@@ -1536,16 +1501,6 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **Drawer:** Make content scroll by default. [#75287](https://github.com/grafana/grafana/issues/75287), [@ashharrison90](https://github.com/ashharrison90)
<!-- 10.2.0 END -->
<!-- 10.1.10 START -->
# 10.1.10 (2024-05-13)
### Features and enhancements
- **Chore:** Upgrade go to 1.21.10. [#87476](https://github.com/grafana/grafana/issues/87476), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Chore:** Upgrade go to 1.21.10. (Enterprise)
<!-- 10.1.10 END -->
<!-- 10.1.9 START -->
# 10.1.9 (2024-03-25)
@@ -2633,20 +2588,6 @@ The `database` field has been deprecated in the Elasticsearch datasource provisi
- **InteractiveTable:** Updated design and minor tweak to Correlactions page. [#66443](https://github.com/grafana/grafana/issues/66443), [@torkelo](https://github.com/torkelo)
<!-- 10.0.0-preview END -->
<!-- 9.5.19 START -->
# 9.5.19 (2024-05-13)
### Features and enhancements
- **Chore:** Upgrade go to 1.21.10. [#87478](https://github.com/grafana/grafana/issues/87478), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Chore:** Upgrade go to 1.21.10. (Enterprise)
### Bug fixes
- **Provisioning:** Look up provisioned folders by UID when possible. [#87504](https://github.com/grafana/grafana/issues/87504), [@DanCech](https://github.com/DanCech)
<!-- 9.5.19 END -->
<!-- 9.5.18 START -->
# 9.5.18 (2024-03-25)

View File

@@ -14,18 +14,18 @@ ENV NODE_OPTIONS=--max_old_space_size=8000
WORKDIR /tmp/grafana
COPY package.json project.json nx.json yarn.lock .yarnrc.yml ./
COPY package.json yarn.lock .yarnrc.yml ./
COPY .yarn .yarn
COPY packages packages
COPY plugins-bundled plugins-bundled
COPY public public
COPY LICENSE ./
RUN apk add --no-cache make build-base python3
RUN yarn install --immutable
COPY tsconfig.json .eslintrc .editorconfig .browserslistrc .prettierrc.js ./
COPY public public
COPY scripts scripts
COPY emails emails
@@ -40,12 +40,12 @@ ARG GO_BUILD_TAGS="oss"
ARG WIRE_TAGS="oss"
ARG BINGO="true"
# This is required to allow building on arm64 due to https://github.com/golang/go/issues/22040
RUN apk add --no-cache binutils-gold
# Install build dependencies
RUN if grep -i -q alpine /etc/issue; then \
apk add --no-cache \
# This is required to allow building on arm64 due to https://github.com/golang/go/issues/22040
binutils-gold \
# Install build dependencies
gcc g++ make git; \
apk add --no-cache gcc g++ make git; \
fi
WORKDIR /tmp/grafana
@@ -57,7 +57,6 @@ COPY .bingo .bingo
COPY pkg/util/xorm/go.* pkg/util/xorm/
COPY pkg/apiserver/go.* pkg/apiserver/
COPY pkg/apimachinery/go.* pkg/apimachinery/
COPY pkg/build/wire/go.* pkg/build/wire/
COPY pkg/promlib/go.* pkg/promlib/
RUN go mod download
@@ -77,6 +76,7 @@ COPY pkg pkg
COPY scripts scripts
COPY conf conf
COPY .github .github
COPY LICENSE ./
ENV COMMIT_SHA=${COMMIT_SHA}
ENV BUILD_BRANCH=${BUILD_BRANCH}
@@ -178,7 +178,7 @@ RUN if [ ! $(getent group "$GF_GID") ]; then \
COPY --from=go-src /tmp/grafana/bin/grafana* /tmp/grafana/bin/*/grafana* ./bin/
COPY --from=js-src /tmp/grafana/public ./public
COPY --from=js-src /tmp/grafana/LICENSE ./
COPY --from=go-src /tmp/grafana/LICENSE ./
EXPOSE 3000

View File

@@ -10,6 +10,7 @@ The following directories and their subdirectories are licensed under Apache-2.0
```
packages/grafana-data/
packages/grafana-e2e/
packages/grafana-e2e-selectors/
packages/grafana-runtime/
packages/grafana-ui/

116
Makefile
View File

@@ -7,37 +7,29 @@ WIRE_TAGS = "oss"
-include local/Makefile
include .bingo/Variables.mk
.PHONY: all deps-go deps-js deps build-go build-backend build-server build-cli build-js build build-docker-full build-docker-full-ubuntu lint-go golangci-lint test-go test-js gen-ts test run run-frontend clean devenv devenv-down protobuf drone help gen-go gen-cue fix-cue gen-feature-toggles
GO = go
GO_VERSION = 1.22.4
GO_FILES ?= ./pkg/... ./pkg/apiserver/... ./pkg/apimachinery/... ./pkg/promlib/...
SH_FILES ?= $(shell find ./scripts -name *.sh)
GO_RACE := $(shell [ -n "$(GO_RACE)" -o -e ".go-race-enabled-locally" ] && echo 1 )
GO_RACE_FLAG := $(if $(GO_RACE),-race)
GO_BUILD_FLAGS += $(if $(GO_BUILD_DEV),-dev)
GO_BUILD_FLAGS += $(if $(GO_BUILD_TAGS),-build-tags=$(GO_BUILD_TAGS))
GO_BUILD_FLAGS += $(GO_RACE_FLAG)
targets := $(shell echo '$(sources)' | tr "," " ")
GO_INTEGRATION_TESTS := $(shell find ./pkg -type f -name '*_test.go' -exec grep -l '^func TestIntegration' '{}' '+' | grep -o '\(.*\)/' | sort -u)
.PHONY: all
all: deps build
##@ Dependencies
.PHONY: deps-go
deps-go: ## Install backend dependencies.
$(GO) run $(GO_RACE_FLAG) build.go setup
$(GO) run build.go setup
.PHONY: deps-js
deps-js: node_modules ## Install frontend dependencies.
.PHONY: deps
deps: deps-js ## Install all dependencies.
.PHONY: node_modules
node_modules: package.json yarn.lock ## Install node modules.
@echo "install frontend dependencies"
YARN_ENABLE_PROGRESS_BARS=false yarn install --immutable
@@ -55,7 +47,6 @@ $(MERGED_SPEC_TARGET): swagger-oss-gen swagger-enterprise-gen $(NGALERT_SPEC_TAR
# known conflicts DsPermissionType, AddApiKeyCommand, Json, Duration (identical models referenced by both specs)
$(SWAGGER) mixin -q $(SPEC_TARGET) $(ENTERPRISE_SPEC_TARGET) $(NGALERT_SPEC_TARGET) --ignore-conflicts -o $(MERGED_SPEC_TARGET)
.PHONY: swagger-oss-gen
swagger-oss-gen: $(SWAGGER) ## Generate API Swagger specification
@echo "re-generating swagger for OSS"
rm -f $(SPEC_TARGET)
@@ -67,7 +58,6 @@ swagger-oss-gen: $(SWAGGER) ## Generate API Swagger specification
--exclude-tag=enterprise
# this file only exists if enterprise is enabled
.PHONY: swagger-enterprise-gen
ENTERPRISE_EXT_FILE = pkg/extensions/ext.go
ifeq ("$(wildcard $(ENTERPRISE_EXT_FILE))","") ## if enterprise is not enabled
swagger-enterprise-gen:
@@ -84,14 +74,11 @@ swagger-enterprise-gen: $(SWAGGER) ## Generate API Swagger specification
--include-tag=enterprise
endif
.PHONY: swagger-gen
swagger-gen: gen-go $(MERGED_SPEC_TARGET) swagger-validate
.PHONY: swagger-validate
swagger-validate: $(MERGED_SPEC_TARGET) $(SWAGGER) ## Validate API spec
$(SWAGGER) validate --skip-warnings $(<)
.PHONY: swagger-clean
swagger-clean:
rm -f $(SPEC_TARGET) $(MERGED_SPEC_TARGET) $(OAPI_SPEC_TARGET)
@@ -110,37 +97,15 @@ lefthook-uninstall: $(LEFTHOOK)
##@ OpenAPI 3
OAPI_SPEC_TARGET = public/openapi3.json
.PHONY: openapi3-gen
openapi3-gen: swagger-gen ## Generates OpenApi 3 specs from the Swagger 2 already generated
$(GO) run $(GO_RACE_FLAG) scripts/openapi3/openapi3conv.go $(MERGED_SPEC_TARGET) $(OAPI_SPEC_TARGET)
##@ Internationalisation
.PHONY: i18n-extract-enterprise
ENTERPRISE_FE_EXT_FILE = public/app/extensions/index.ts
ifeq ("$(wildcard $(ENTERPRISE_FE_EXT_FILE))","") ## if enterprise is not enabled
i18n-extract-enterprise:
@echo "Skipping i18n extract for Enterprise: not enabled"
else
i18n-extract-enterprise:
@echo "Extracting i18n strings for Enterprise"
yarn run i18next --config public/locales/i18next-parser-enterprise.config.cjs
node ./public/locales/pseudo.mjs --mode enterprise
endif
.PHONY: i18n-extract
i18n-extract: i18n-extract-enterprise
@echo "Extracting i18n strings for OSS"
yarn run i18next --config public/locales/i18next-parser.config.cjs
node ./public/locales/pseudo.mjs --mode oss
$(GO) run scripts/openapi3/openapi3conv.go $(MERGED_SPEC_TARGET) $(OAPI_SPEC_TARGET)
##@ Building
.PHONY: gen-cue
gen-cue: ## Do all CUE/Thema code generation
@echo "generate code from .cue files"
go generate ./kinds/gen.go
go generate ./public/app/plugins/gen.go
.PHONY: gen-feature-toggles
gen-feature-toggles:
## First go test run fails because it will re-generate the feature toggles.
## Second go test run will compare the generated files and pass.
@@ -152,42 +117,34 @@ gen-feature-toggles:
go test -v ./pkg/services/featuremgmt/...; \
fi
.PHONY: gen-go
gen-go:
@echo "generate go files"
$(GO) run $(GO_RACE_FLAG) ./pkg/build/wire/cmd/wire/main.go gen -tags $(WIRE_TAGS) ./pkg/server
$(GO) run ./pkg/build/wire/cmd/wire/main.go gen -tags $(WIRE_TAGS) ./pkg/server
.PHONY: fix-cue
fix-cue: $(CUE)
@echo "formatting cue files"
$(CUE) fix kinds/**/*.cue
$(CUE) fix public/app/plugins/**/**/*.cue
.PHONY: gen-jsonnet
gen-jsonnet:
go generate ./devenv/jsonnet
.PHONY: build-go
build-go: gen-go ## Build all Go binaries.
@echo "build go files"
$(GO) run build.go $(GO_BUILD_FLAGS) build
.PHONY: build-backend
build-backend: ## Build Grafana backend.
@echo "build backend"
$(GO) run build.go $(GO_BUILD_FLAGS) build-backend
.PHONY: build-server
build-server: ## Build Grafana server.
@echo "build server"
$(GO) run build.go $(GO_BUILD_FLAGS) build-server
.PHONY: build-cli
build-cli: ## Build Grafana CLI application.
@echo "build grafana-cli"
$(GO) run build.go $(GO_BUILD_FLAGS) build-cli
.PHONY: build-js
build-js: ## Build frontend assets.
@echo "build frontend"
yarn run build
@@ -195,7 +152,6 @@ build-js: ## Build frontend assets.
PLUGIN_ID ?=
.PHONY: build-plugin-go
build-plugin-go: ## Build decoupled plugins
@echo "build plugin $(PLUGIN_ID)"
@cd pkg/tsdb; \
@@ -205,19 +161,11 @@ build-plugin-go: ## Build decoupled plugins
fi; \
mage -v buildplugin $(PLUGIN_ID)
.PHONY: build
build: build-go build-js ## Build backend and frontend.
.PHONY: run
run: $(BRA) ## Build and run web server on filesystem changes.
$(BRA) run
.PHONY: run-go
run-go: ## Build and run web server immediately.
$(GO) run -race $(if $(GO_BUILD_TAGS),-build-tags=$(GO_BUILD_TAGS)) \
./pkg/cmd/grafana -- server -packaging=dev cfg:app_mode=development
.PHONY: run-frontend
run-frontend: deps-js ## Fetch js dependencies and watch frontend for rebuild
yarn start
@@ -230,66 +178,61 @@ test-go: test-go-unit test-go-integration
test-go-unit: ## Run unit tests for backend with flags.
@echo "test backend unit tests"
go list -f '{{.Dir}}/...' -m | xargs \
$(GO) test $(GO_RACE_FLAG) -short -covermode=atomic -timeout=30m
$(GO) test -short -covermode=atomic -timeout=30m
.PHONY: test-go-integration
test-go-integration: ## Run integration tests for backend with flags.
@echo "test backend integration tests"
$(GO) test $(GO_RACE_FLAG) -count=1 -run "^TestIntegration" -covermode=atomic -timeout=5m $(GO_INTEGRATION_TESTS)
$(GO) test -count=1 -run "^TestIntegration" -covermode=atomic -timeout=5m $(GO_INTEGRATION_TESTS)
.PHONY: test-go-integration-alertmanager
test-go-integration-alertmanager: ## Run integration tests for the remote alertmanager (config taken from the mimir_backend block).
@echo "test remote alertmanager integration tests"
$(GO) clean -testcache
AM_URL=http://localhost:8080 AM_TENANT_ID=test \
$(GO) test $(GO_RACE_FLAG) -count=1 -run "^TestIntegrationRemoteAlertmanager" -covermode=atomic -timeout=5m ./pkg/services/ngalert/...
$(GO) test -count=1 -run "^TestIntegrationRemoteAlertmanager" -covermode=atomic -timeout=5m ./pkg/services/ngalert/...
.PHONY: test-go-integration-postgres
test-go-integration-postgres: devenv-postgres ## Run integration tests for postgres backend with flags.
@echo "test backend integration postgres tests"
$(GO) clean -testcache
GRAFANA_TEST_DB=postgres \
$(GO) test $(GO_RACE_FLAG) -p=1 -count=1 -run "^TestIntegration" -covermode=atomic -timeout=10m $(GO_INTEGRATION_TESTS)
$(GO) test -p=1 -count=1 -run "^TestIntegration" -covermode=atomic -timeout=10m $(GO_INTEGRATION_TESTS)
.PHONY: test-go-integration-mysql
test-go-integration-mysql: devenv-mysql ## Run integration tests for mysql backend with flags.
@echo "test backend integration mysql tests"
GRAFANA_TEST_DB=mysql \
$(GO) test $(GO_RACE_FLAG) -p=1 -count=1 -run "^TestIntegration" -covermode=atomic -timeout=10m $(GO_INTEGRATION_TESTS)
$(GO) test -p=1 -count=1 -run "^TestIntegration" -covermode=atomic -timeout=10m $(GO_INTEGRATION_TESTS)
.PHONY: test-go-integration-redis
test-go-integration-redis: ## Run integration tests for redis cache.
@echo "test backend integration redis tests"
$(GO) clean -testcache
REDIS_URL=localhost:6379 $(GO) test $(GO_RACE_FLAG) -run IntegrationRedis -covermode=atomic -timeout=2m $(GO_INTEGRATION_TESTS)
REDIS_URL=localhost:6379 $(GO) test -run IntegrationRedis -covermode=atomic -timeout=2m $(GO_INTEGRATION_TESTS)
.PHONY: test-go-integration-memcached
test-go-integration-memcached: ## Run integration tests for memcached cache.
@echo "test backend integration memcached tests"
$(GO) clean -testcache
MEMCACHED_HOSTS=localhost:11211 $(GO) test $(GO_RACE_FLAG) -run IntegrationMemcached -covermode=atomic -timeout=2m $(GO_INTEGRATION_TESTS)
MEMCACHED_HOSTS=localhost:11211 $(GO) test -run IntegrationMemcached -covermode=atomic -timeout=2m $(GO_INTEGRATION_TESTS)
.PHONY: test-js
test-js: ## Run tests for frontend.
@echo "test frontend"
yarn test
.PHONY: test
test: test-go test-js ## Run all tests.
##@ Linting
.PHONY: golangci-lint
golangci-lint: $(GOLANGCI_LINT)
@echo "lint via golangci-lint"
$(GOLANGCI_LINT) run \
--config .golangci.toml \
$(GO_FILES)
.PHONY: lint-go
lint-go: golangci-lint ## Run all code checks for backend. You can use GO_FILES to specify exact files to check
# with disabled SC1071 we are ignored some TCL,Expect `/usr/bin/env expect` scripts
.PHONY: shellcheck
shellcheck: $(SH_FILES) ## Run checks for shell scripts.
@docker run --rm -v "$$PWD:/mnt" koalaman/shellcheck:stable \
$(SH_FILES) -e SC1071 -e SC2162
@@ -299,7 +242,6 @@ shellcheck: $(SH_FILES) ## Run checks for shell scripts.
TAG_SUFFIX=$(if $(WIRE_TAGS)!=oss,-$(WIRE_TAGS))
PLATFORM=linux/amd64
.PHONY: build-docker-full
build-docker-full: ## Build Docker image for development.
@echo "build docker container"
tar -ch . | \
@@ -313,7 +255,6 @@ build-docker-full: ## Build Docker image for development.
--tag grafana/grafana$(TAG_SUFFIX):dev \
$(DOCKER_BUILD_ARGS)
.PHONY: build-docker-full-ubuntu
build-docker-full-ubuntu: ## Build Docker image based on Ubuntu for development.
@echo "build docker container"
tar -ch . | \
@@ -325,7 +266,7 @@ build-docker-full-ubuntu: ## Build Docker image based on Ubuntu for development.
--build-arg COMMIT_SHA=$$(git rev-parse HEAD) \
--build-arg BUILD_BRANCH=$$(git rev-parse --abbrev-ref HEAD) \
--build-arg BASE_IMAGE=ubuntu:22.04 \
--build-arg GO_IMAGE=golang:$(GO_VERSION) \
--build-arg GO_IMAGE=golang:1.22.4 \
--tag grafana/grafana$(TAG_SUFFIX):dev-ubuntu \
$(DOCKER_BUILD_ARGS)
@@ -333,7 +274,6 @@ build-docker-full-ubuntu: ## Build Docker image based on Ubuntu for development.
# create docker-compose file with provided sources and start them
# example: make devenv sources=postgres,auth/openldap
.PHONY: devenv
ifeq ($(sources),)
devenv:
@printf 'You have to define sources for this command \nexample: make devenv sources=postgres,openldap\n'
@@ -347,18 +287,15 @@ devenv: devenv-down ## Start optional services, e.g. postgres, prometheus, and e
docker-compose up -d --build
endif
.PHONY: devenv-down
devenv-down: ## Stop optional services.
@cd devenv; \
test -f docker-compose.yaml && \
docker-compose down || exit 0;
.PHONY: devenv-postgres
devenv-postgres:
@cd devenv; \
sources=postgres_tests
.PHONY: devenv-mysql
devenv-mysql:
@cd devenv; \
sources=mysql_tests
@@ -370,23 +307,18 @@ devenv-mysql:
# go-gettable dependency and so getting it installed can be inconvenient.
#
# If you are working on changes to protobuf interfaces you may either use
# this target or run the individual scripts below directly
.PHONY: protobuf
# this target or run the individual scripts below directly.
protobuf: ## Compile protobuf definitions
bash scripts/protobuf-check.sh
go install google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
buf generate pkg/plugins/backendplugin/pluginextensionv2 --template pkg/plugins/backendplugin/pluginextensionv2/buf.gen.yaml
buf generate pkg/plugins/backendplugin/secretsmanagerplugin --template pkg/plugins/backendplugin/secretsmanagerplugin/buf.gen.yaml
buf generate pkg/services/store/entity --template pkg/services/store/entity/buf.gen.yaml
bash pkg/plugins/backendplugin/pluginextensionv2/generate.sh
bash pkg/plugins/backendplugin/secretsmanagerplugin/generate.sh
bash pkg/services/store/entity/generate.sh
.PHONY: clean
clean: ## Clean up intermediate build artifacts.
@echo "cleaning"
rm -rf node_modules
rm -rf public/build
.PHONY: gen-ts
gen-ts:
@echo "generating TypeScript definitions"
go get github.com/tkrajina/typescriptify-golang-structs/typescriptify@v0.1.7
@@ -396,7 +328,6 @@ gen-ts:
# This repository's configuration is protected (https://readme.drone.io/signature/).
# Use this make target to regenerate the configuration YAML files when
# you modify starlark files.
.PHONY: drone
drone: $(DRONE)
bash scripts/drone/env-var-check.sh
$(DRONE) starlark --format
@@ -404,26 +335,11 @@ drone: $(DRONE)
$(DRONE) --server https://drone.grafana.net sign --save grafana/grafana
# Generate an Emacs tags table (https://www.gnu.org/software/emacs/manual/html_node/emacs/Tags-Tables.html) for Starlark files.
.PHONY: scripts/drone/TAGS
scripts/drone/TAGS: $(shell find scripts/drone -name '*.star')
etags --lang none --regex="/def \(\w+\)[^:]+:/\1/" --regex="/\s*\(\w+\) =/\1/" $^ -o $@
.PHONY: format-drone
format-drone:
buildifier --lint=fix -r scripts/drone
.PHONY: go-race-is-enabled
go-race-is-enabled:
@if [ -n "$(GO_RACE)" ]; then \
echo "The Go race detector is enabled locally, yey!"; \
else \
echo "The Go race detector is NOT enabled locally, boo!"; \
fi;
.PHONY: enable-go-race
enable-go-race:
@touch .go-race-enabled-locally
.PHONY: help
help: ## Display this help.
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

View File

@@ -14,7 +14,7 @@ Team members and their access to repositories is maintained through [GitHub team
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the main branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
- Directly in a PR (Pull Request) - this MAY be done, but SHOULD not be the common case.
- Directly in a RR (Pull Request) - this MAY be done, but SHOULD not be the common case.
- Issue
- Developer mailing list
- Design document, shared via Google Docs, accessible to at least all team members.

View File

@@ -104,14 +104,6 @@ address = "127.0.0.1:10000"
use_tls = false
cert_file =
key_file =
# this will log the request and response for each unary gRPC call
enable_logging = false
# Maximum size of a message that can be received in bytes. If not set, uses the gRPC default (4MiB).
max_recv_msg_size =
# Maximum size of a message that can be sent in bytes. If not set, uses the gRPC default (unlimited).
max_send_msg_size =
#################################### Database ############################
[database]
@@ -145,7 +137,7 @@ log_queries =
# For "mysql", use either "true", "false", or "skip-verify".
ssl_mode = disable
# For "postgres", use either "1" to enable or "0" to disable SNI
# For "postregs", use either "1" to enable or "0" to disable SNI
ssl_sni =
# Database drivers may support different transaction isolation levels.
@@ -490,8 +482,8 @@ verify_email_enabled = false
login_default_org_id =
# Background text for the user field on the login page
login_hint =
password_hint =
login_hint = email or username
password_hint = password
# Default UI theme ("dark" or "light" or "system")
default_theme = dark
@@ -647,7 +639,6 @@ team_ids =
allowed_organizations =
role_attribute_path =
role_attribute_strict = false
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
@@ -675,7 +666,6 @@ allowed_domains =
allowed_groups =
role_attribute_path =
role_attribute_strict = false
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
@@ -783,8 +773,6 @@ allowed_domains =
allowed_groups =
role_attribute_path =
role_attribute_strict = false
org_attribute_path =
org_mapping =
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
@@ -811,8 +799,6 @@ login_attribute_path =
name_attribute_path =
role_attribute_path =
role_attribute_strict = false
org_attribute_path =
org_mapping =
groups_attribute_path =
id_token_attribute_name =
team_ids_attribute_path =
@@ -925,10 +911,6 @@ forward_settings_to_plugins = cloudwatch, grafana-athena-datasource, grafana-red
# Default value is AzureCloud (i.e. public cloud)
cloud = AzureCloud
# A customized list of Azure cloud settings and properties, used by data sources which need this information when run in non-standard azure environments
# When specified, this list will replace the default cloud list of AzureCloud, AzureChinaCloud, AzureUSGovernment and AzureGermanCloud
clouds_config =
# Specifies whether Grafana hosted in Azure service with Managed Identity configured (e.g. Azure Virtual Machines instance)
# If enabled, the managed identity can be used for authentication of Grafana in Azure services
# Disabled by default, needs to be explicitly enabled
@@ -1182,12 +1164,7 @@ admin_config_poll_interval = 60s
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
alertmanager_config_poll_interval = 60s
# Set to true when using redis in cluster mode.
ha_redis_cluster_mode_enabled = false
# The redis server address(es) that should be connected to.
# Can either be a single address, or if using redis in cluster mode,
# the cluster configuration address or a comma-separated list of addresses.
# The redis server address that should be connected to.
ha_redis_address =
# The username that should be used to authenticate with the redis server.
@@ -1210,34 +1187,6 @@ ha_redis_peer_name =
# The maximum number of simultaneous redis connections.
ha_redis_max_conns = 5
# Enable TLS on the client used to communicate with the redis server. This should be set to true
# if using any of the other ha_redis_tls_* fields.
ha_redis_tls_enabled = false
# Path to the PEM-encoded TLS client certificate file used to authenticate with the redis server.
# Required if using Mutual TLS.
ha_redis_tls_cert_path =
# Path to the PEM-encoded TLS private key file. Also requires the client certificate to be configured.
# Required if using Mutual TLS.
ha_redis_tls_key_path =
# Path to the PEM-encoded CA certificates file. If not set, the host's root CA certificates are used.
ha_redis_tls_ca_path =
# Overrides the expected name of the redis server certificate.
ha_redis_tls_server_name =
# Skips validating the redis server certificate.
ha_redis_tls_insecure_skip_verify =
# Overrides the default TLS cipher suite list.
ha_redis_tls_cipher_suites =
# Overrides the default minimum TLS version.
# Allowed values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
ha_redis_tls_min_version =
# Listen address/hostname and port to receive unified alerting messages for other Grafana instances. The port is used for both TCP and UDP. It is assumed other Grafana instances are also running on the same port.
ha_listen_address = "0.0.0.0:9094"
@@ -1295,9 +1244,6 @@ state_periodic_save_interval = 5m
# Rules will evaluate in sync.
disable_jitter = false
# Retention period for Alertmanager notification log entries.
notification_log_retention = 5d
[unified_alerting.screenshots]
# Enable screenshots in notifications. You must have either installed the Grafana image rendering
# plugin, or set up Grafana to use a remote rendering service.
@@ -1475,11 +1421,6 @@ concurrent_query_limit =
# Enable the Query history
enabled = true
#################################### Short Links #############################
[short_links]
# Short links which are never accessed will be deleted as cleanup. Time is in days. Default is 7 days. Max is 365. 0 means they will be deleted approximately every 10 minutes.
expire_time = 7
#################################### Internal Grafana Metrics ############
# Metrics available at HTTP URL /metrics and /metrics/plugins/:pluginId
[metrics]
@@ -1513,7 +1454,6 @@ url = https://grafana.com
[grafana_com]
url = https://grafana.com
api_url = https://grafana.com/api
sso_api_token = ""
#################################### Distributed tracing ############
# Opentracing is deprecated use opentelemetry instead
@@ -1896,6 +1836,4 @@ create_access_policy_timeout = 5s
# How long to wait for a request to create to fetch an access policy to complete
fetch_access_policy_timeout = 5s
# How long to wait for a request to create to delete an access policy to complete
delete_access_policy_timeout = 5s
# The domain name used to access cms
domain = grafana-dev.net
delete_access_policy_timeout = 5s

View File

@@ -191,7 +191,7 @@ apiVersion: 1
# - orgID: 1
# # <string, required> name of the template, must be unique
# name: my_first_template
# # <string, required> content of the template
# # <string, required> content of the the template
# template: Alerting with a custome text template
# # List of templates that should be deleted

View File

@@ -101,8 +101,6 @@
;use_tls = false
;cert_file =
;key_file =
;max_recv_msg_size =
;max_send_msg_size =
#################################### Database ####################################
[database]
@@ -125,7 +123,7 @@
# For "mysql", use either "true", "false", or "skip-verify".
;ssl_mode = disable
# For "postgres", use either "1" to enable or "0" to disable SNI
# For "postregs", use either "1" to enable or "0" to disable SNI
;ssl_sni =
# Database drivers may support different transaction isolation levels.
@@ -608,7 +606,6 @@
;allowed_organizations =
;role_attribute_path =
;role_attribute_strict = false
;org_mapping =
;allow_assign_grafana_admin = false
;skip_org_role_sync = false
@@ -630,7 +627,6 @@
;allowed_groups =
;role_attribute_path =
;role_attribute_strict = false
;org_mapping =
;allow_assign_grafana_admin = false
;skip_org_role_sync = false
;tls_skip_verify_insecure = false
@@ -715,8 +711,6 @@
;allowed_groups =
;role_attribute_path =
;role_attribute_strict = false
; org_attribute_path =
; org_mapping =
;allow_assign_grafana_admin = false
;skip_org_role_sync = false
;use_pkce = true
@@ -746,8 +740,6 @@
;allowed_organizations =
;role_attribute_path =
;role_attribute_strict = false
;org_attribute_path =
;org_mapping =
;groups_attribute_path =
;team_ids_attribute_path =
;tls_skip_verify_insecure = false
@@ -843,22 +835,6 @@
# Default value is AzureCloud (i.e. public cloud)
;cloud = AzureCloud
# A customized list of Azure cloud settings and properties, used by data sources which need this information when run in non-standard azure environments
# When specified, this list will replace the default cloud list of AzureCloud, AzureChinaCloud, AzureUSGovernment and AzureGermanCloud
;clouds_config = `[
; {
; "name":"CustomCloud1",
; "displayName":"Custom Cloud 1",
; "aadAuthority":"https://login.cloud1.contoso.com/",
; "properties":{
; "azureDataExplorerSuffix": ".kusto.windows.cloud1.contoso.com",
; "logAnalytics": "https://api.loganalytics.cloud1.contoso.com",
; "portal": "https://portal.azure.cloud1.contoso.com",
; "prometheusResourceId": "https://prometheus.monitor.azure.cloud1.contoso.com",
; "resourceManager": "https://management.azure.cloud1.contoso.com"
; }
; }]`
# Specifies whether Grafana hosted in Azure service with Managed Identity configured (e.g. Azure Virtual Machines instance)
# If enabled, the managed identity can be used for authentication of Grafana in Azure services
# Disabled by default, needs to be explicitly enabled
@@ -1108,12 +1084,7 @@
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;alertmanager_config_poll_interval = 60s
# Set to true when using redis in cluster mode.
;ha_redis_cluster_mode_enabled = false
# The redis server address(es) that should be connected to.
# Can either be a single address, or if using redis in cluster mode,
# the cluster configuration address or a comma-separated list of addresses.
# The redis server address that should be connected to.
;ha_redis_address =
# The username that should be used to authenticate with the redis server.
@@ -1133,37 +1104,6 @@
# provided, a random one will be generated.
;ha_redis_peer_name =
# The maximum number of simultaneous redis connections.
# ha_redis_max_conns = 5
# Enable TLS on the client used to communicate with the redis server. This should be set to true
# if using any of the other ha_redis_tls_* fields.
# ha_redis_tls_enabled = false
# Path to the PEM-encoded TLS client certificate file used to authenticate with the redis server.
# Required if using Mutual TLS.
# ha_redis_tls_cert_path =
# Path to the PEM-encoded TLS private key file. Also requires the client certificate to be configured.
# Required if using Mutual TLS.
# ha_redis_tls_key_path =
# Path to the PEM-encoded CA certificates file. If not set, the host's root CA certificates are used.
# ha_redis_tls_ca_path =
# Overrides the expected name of the redis server certificate.
# ha_redis_tls_server_name =
# Skips validating the redis server certificate.
# ha_redis_tls_insecure_skip_verify =
# Overrides the default TLS cipher suite list.
# ha_redis_tls_cipher_suites =
# Overrides the default minimum TLS version.
# Allowed values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
# ha_redis_tls_min_version =
# Listen address/hostname and port to receive unified alerting messages for other Grafana instances. The port is used for both TCP and UDP. It is assumed other Grafana instances are also running on the same port. The default value is `0.0.0.0:9094`.
;ha_listen_address = "0.0.0.0:9094"
@@ -1221,9 +1161,6 @@
# Rules will evaluate in sync.
;disable_jitter = false
# Retention period for Alertmanager notification log entries.
;notification_log_retention = 5d
[unified_alerting.reserved_labels]
# Comma-separated list of reserved labels added by the Grafana Alerting engine that should be disabled.
# For example: `disabled_labels=grafana_folder`
@@ -1387,8 +1324,6 @@ max_annotations_to_keep =
[grafana_com]
;url = https://grafana.com
;api_url = https://grafana.com/api
# Grafana instance - Grafana.com integration SSO API token
;sso_api_token = ""
#################################### Distributed tracing ############
# Opentracing is deprecated use opentelemetry instead

View File

@@ -1,11 +1,20 @@
# Triage issues
The main goal of issue triage is to categorize all incoming Grafana issues and make sure each issue has all the essential information needed for anyone to understand and be able to start working on it.
The main goal of issue triage is to categorize all incoming Grafana issues and make sure each issue has all basic information needed for anyone else to understand and be able to start working on it.
> **Note:** This information is for Grafana project Maintainers, Owners, and Admins. If you are a Contributor, then you won't be able to perform most of the tasks in this topic.
> **Note:** This information is for Grafana project Maintainers, Owners, and Admins. If you are a Contributor, then you will not be able to perform most of the tasks in this topic.
The core maintainers of the Grafana project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently, one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
Triage helps ensure issues resolve quickly by:
- Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took.
- Giving a contributor the information they need before they commit to resolving an issue.
- Lowering the issue count by preventing duplicate issues.
- Streamlining the development process by preventing duplicate discussions.
If you don't have the knowledge or time to code, consider helping with triage. The community will thank you for saving them time by spending some of yours.
## Simplified flowchart diagram of the issue triage process
<!-- https://textik.com/#610afa78553def29 -->
@@ -59,44 +68,33 @@ The core maintainers of the Grafana project are responsible for categorizing all
```
## Key functions of issue triage
Triage helps ensure issues resolve quickly by:
- Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took.
- Giving a contributor the information they need before they commit to resolving an issue.
- Lowering the issue count by preventing duplicate issues.
- Streamlining the development process by preventing duplicate discussions.
If you don't have the knowledge or time to code, consider helping with triage. The community will thank you for saving them time by spending some of yours.
### 1. Find uncategorized issues
## 1. Find uncategorized issues
To get started with issue triage and finding issues that haven't been triaged you have two alternatives.
#### Browse unlabeled issues
### Browse unlabeled issues
The easiest and most straightforward way of getting started and finding issues that haven't been triaged is to browse [unlabeled issues](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+no%3Alabel), and then work on them starting from the bottom to the top.
The easiest and straight forward way of getting started and finding issues that haven't been triaged is to browse [unlabeled issues](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+no%3Alabel) and starting from the bottom and working yourself to the top.
#### Subscribe to all notifications
### Subscribe to all notifications
The more advanced, but recommended way is to subscribe to all notifications from this repository which means that all new issues, pull requests, comments and important status changes are sent to your configured email address. Read this [guide](https://help.github.com/en/articles/watching-and-unwatching-repositories#watching-a-single-repository) for help with setting this up.
It's highly recommended that you set up filters to automatically remove emails from the inbox and label them accordingly. When issues are properly categorized you can easily understand when you need to act upon a notification or where to look to find issues that haven't been triaged.
It's highly recommended that you setup filters to automatically remove emails from the inbox and label/categorize them accordingly to make it easy for you to understand when you need to act upon a notification or where to look for finding issues that haven't been triaged etc.
Instructions for setting up filters in Gmail can be found [here](#setting-up-gmail-filters). Another alternative is to use [Trailer](https://github.com/ptsochantaris/trailer) or similar software.
### 2. Ensure the issue contains basic information
## 2. Ensure the issue contains basic information
Before triaging an issue very far, make sure that the issue's author provided the standard information. This helps you make an educated recommendation on how to categorize the issue. The Grafana project uses [GitHub issue templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) to guide contributors to provide standard information that must be included for each type of template or type of issue.
Before triaging an issue very far, make sure that the issue's author provided the standard issue information. This will help you make an educated recommendation on how to categorize the issue. The Grafana project utilizes [GitHub issue templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) to guide contributors to provide standard information that must be included for each type of template or type of issue.
#### Standard issue information that must be included
### Standard issue information that must be included
Grafana uses various [issue templates](https://github.com/grafana/grafana/issues/new/choose) to collect information from the issue reporter. The following list describes the standard information that is included.
Given a certain [issue template](https://github.com/grafana/grafana/issues/new/choose) have been used by the issue author or depending how the issue is perceived by the issue triage responsible, the following should help you understand what standard issue information that must be included.
##### Bug reports
#### Bug reports
Bug reports should explain what happened, what was expected, and how to reproduce it. Also, it should include additional information that may help giving a complete picture of what happened such as screenshots, [query inspector](https://community.grafana.com/t/using-grafanas-query-inspector-to-troubleshoot-issues/2630) output, and any relevant information about the environment. For example:
Should explain what happened, what was expected and how to reproduce it together with any additional information that may help giving a complete picture of what happened such as screenshots, [query inspector](https://community.grafana.com/t/using-grafanas-query-inspector-to-troubleshoot-issues/2630) output and any environment related information that's applicable and/or maybe related to the reported problem:
- Grafana version:
- Data source type & version:
@@ -105,249 +103,250 @@ Bug reports should explain what happened, what was expected, and how to reproduc
- Grafana plugins:
- Others:
##### Enhancement requests
#### Enhancement requests
> **Note:** Prior to August, 2023, community-submitted feature requests were submitted as [Github discussions](https://github.com/grafana/grafana/discussions). These are now submitted using the [feature request issue template](https://github.com/grafana/grafana/issues/new?assignees=&labels=type%2Ffeature-request&projects=&template=1-feature_requests.md).
Prior to August, 2023, community-submitted feature requests were submitted as [Github discussions](https://github.com/grafana/grafana/discussions). These are now submitted using the [feature request issue template](https://github.com/grafana/grafana/issues/new?assignees=&labels=type%2Ffeature-request&projects=&template=1-feature_requests.md).
When submitting an enhancement request we ask that users focus on the problem they'd like to solve and why its a problem rather than focusing on the solution itself. To facilitate these objectives, the feature requests template includes the following:
When submitting an enhancement request we ask that users focus on the problem they'd like to solve and why its a problem rather than focusing on the solution itself. To facilitate this the feature requests template includes the following:
- What would you like to be added?:
- Why is this needed (describe your use case and goals)\*\*?:
##### Accessibility issues
#### Accessibility issues
This is a mix between a bug report and enhancement request but focused on accessibility issues to help make Grafana improve keyboard navigation, screen-reader support, and general accessibility. The report should include relevant [WCAG criteria](https://www.w3.org/WAI/WCAG21/quickref/?versions=2.0), if applicable.
This is a mix between a bug report and enhancement request but focused on accessibility issues to help make Grafana improve keyboard navigation, screen-reader support and being accessible to everyone. The report should include relevant [WCAG criteria](https://www.w3.org/WAI/WCAG21/quickref/?versions=2.0), if applicable.
Grafana Labs is dedicated to improving our graphical user interfaces and overall experience so that our product becomes usable and accessible for people with disabilities as well as anyone else. Learn more about Grafana's commitment to [A11y](https://grafana.com/accessibility/) (accessibility).
##### Support requests
#### Support requests
In general, if the issue description and title is perceived as a question no more information is needed. See how to categorize these requests [here](#support-requests-1).
#### Good practices
### Good practices
To make it easier for everyone to understand and find issues a good rule of thumbs is to:
To make it easier for everyone to understand and find issues they're searching for it's suggested as a general rule of thumbs to:
- Make sure that issue titles are named to explain the subject of the issue, are spelled correctly, and don't include irrelevant or sensitive information.
- Make sure that issue descriptions don't include irrelevant information, information from a template that hasn't been filled out, or sensitive information.
- Do your best effort to change the title and description or request suggested changes by adding a comment.
- Make sure that issue titles are named to explain the subject of the issue, has a correct spelling and doesn't include irrelevant information and/or sensitive information.
- Make sure that issue descriptions doesn't include irrelevant information, information from template that haven't been filled out and/or sensitive information.
- Do your best effort to change title and description or request suggested changes by adding a comment.
#### Do you have all the information needed to categorize an issue?
> **Note:** Above rules is applicable to both new and existing issues of the Grafana project.
Depending on the issue, you might not feel all this information is needed. Use your best judgement. If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the previously mentioned information to clarify the problem. Label issue with `needs more info` and add any related `area/*` or `datasource/*` labels. Alternatively, use `bot/needs more info` label and the Grafana bot will request it for you.
### Do you have all the information needed to categorize an issue?
Depending on the issue, you might not feel all this information is needed. Use your best judgement. If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the above information to clarify the problem. Label issue with `needs more info` and add any related `area/*` or `datasource/*` labels. Alternatively, use `bot/needs more info` label and the Grafana bot will request it for you.
If the author provides the standard information, but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time.
If the author does not respond to the requested information within a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided.
If the author does not respond to the requested information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided.
When you feel you have all the information needed, then you're ready to [categorize the issue](#3-categorize-an-issue).
When you feel you have all the information needed you're ready to [categorizing the issue](#3-categorizing-an-issue).
If you receive a notification with additional information provided, but you aren't on issue triage anymore and you feel you don't have time to handle it, you should delegate it to the current person on issue triage.
If you receive a notification with additional information provided, but you are not anymore on issue triage and you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
### 3. Categorize an issue
## 3. Categorizing an issue
An issue can have multiple labels. Typically, a properly categorized issue should at least have these labels:
An issue can have multiple of the following labels. Typically, a properly categorized issue should at least have:
- One label identifying its type (`type/*`).
- One or multiple labels identifying the functional areas of interest or component (`area/*`) and/or data source (`datasource/*`), if applicable.
| Label | Description |
| ------------------------ | ------------------------------------------------------------------- |
| `type/bug` | A feature isn't working as expected given design, or documentation. |
| `type/feature-request` | Request for a new feature, or enhancement. |
| `type/docs` | Documentation problem, or enhancement. |
| `type/accessibility` | Accessibility problem, or enhancement. |
| `type/question` | Issue is a question or is perceived as such. |
| `type/duplicate` | An existing issue of the same subject has already been reported. |
| `type/works-as-intended` | A reported bug works as intended (that is, by design). |
| `type/build-packaging` | Build or packaging problem, or enhancement. |
| `area/*` | Subject is related to a functional area of interest, or component. |
| `datasource/*` | Subject is related to a core data source plugin. |
| Label | Description |
| ------------------------ | ------------------------------------------------------------------------- |
| `type/bug` | A feature isn't working as expected given design or documentation. |
| `type/feature-request` | Request for a new feature or enhancement. |
| `type/docs` | Documentation problem or enhancement. |
| `type/accessibility` | Accessibility problem or enhancement. |
| `type/question` | Issue is a question or is perceived as such. |
| `type/duplicate` | An existing issue of the same subject/request have already been reported. |
| `type/works-as-intended` | A reported bug works as intended/by design. |
| `type/build-packaging` | Build or packaging problem or enhancement. |
| `area/*` | Subject is related to a functional area of interest or component. |
| `datasource/*` | Subject is related to a core data source plugin. |
#### Duplicate issues
### Duplicate issues
Make sure it's not a duplicate by searching existing issues using related terms from the issue title and description. If you think you know there is an existing issue, but can't find it, please reach out to one of the maintainers and ask for help. If you identify that the issue is a duplicate of an existing issue:
1. Add a comment `/duplicate of #<issue number>`. GitHub will recognize this and add some additional context to the issue activity.
1. The Grafana bot will do the rest, adding the correct label and a closing comment.
1. Add the `type/duplicate` label. Optionally, you may add any related `area/*` or `datasource/*` labels.
2. The Grafana bot will do the rest, adding the correct label and closing comment
3. Add `type/duplicate` label. Optionally add any related `area/*` or `datasource/*` labels.
#### Bug reports
### Bug reports
If it's not perfectly clear that it's an actual bug, quickly try to reproduce it.
**It can be reproduced:**
**It's a bug/it can be reproduced:**
1. Add a comment describing detailed steps for how to reproduce it, if applicable.
1. Label the issue `type/bug` and at least one `area/*` or `datasource/*` label.
1. If you know that maintainers won't be able to put any resources into it for some time then label the issue with `help wanted` and optionally `beginner friendly` together with pointers on which code to update to fix the bug. This should signal to the community that we would appreciate any help we can get to resolve this.
1. Move on to [prioritizing the issue](#4-prioritization-of-issues).
2. Label the issue `type/bug` and at least one `area/*` or `datasource/*` label.
3. If you know that maintainers wont be able to put any resources into it for some time then label the issue with `help wanted` and optionally `beginner friendly` together with pointers on which code to update to fix the bug. This should signal to the community that we would appreciate any help we can get to resolve this.
4. Move on to [prioritizing the issue](#4-prioritization-of-issues).
**It can't be reproduced:**
1. Either [ask for more information](#2-ensure-the-issue-contains-basic-information) needed to investigate it more thoroughly.
1. Either [delegate further investigations](#investigation-of-issues) to someone else.
2. Either [delegate further investigations](#investigation-of-issues) to someone else.
**It works as intended (that is, by design):**
**It works as intended/by design:**
1. Kindly and politely add a comment explaining briefly why we think it works as intended and close the issue.
1. Label the issue `type/works-as-intended`.
2. Label the issue `type/works-as-intended`.
#### Enhancement or feature request?
### Enhancement/feature?
1. Label the issue `type/feature-request` and add at least one `area/*` or `datasource/*` label.
1. Make sure the submitter has justified why this feature requests is important.
2. Make sure the submitter has justified why this feature requests is important.
#### Documentation issue?
### Documentation issue?
First, evaluate if the documentation makes sense to be included in the Grafana project:
- Is this something we want and can maintain as a project?
- Is this referring to usage of some specific integration and in that case is that a popular use case in combination with Grafana?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments) to identify that lots of other users want or need this.
- Is this something we want/can maintain as a project?
- Is this referring to usage of some specific integration/tool and in that case is that a popular use case in combination with Grafana?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments) to identify that lots of other users want/need this.
Second, label the issue `type/docs` and at least one `area/*` or `datasource/*` label.
**Minor typo/error/lack of information:**
There's a minor typo, error, or lack of information that adds a lot of confusion for users and is a big win to fix it:
There's a minor typo/error/lack of information that adds a lot of confusion for users and given the amount of work is a big win to make sure fixing it:
1. Either update the documentation yourself and open a pull request.
1. Either delegate the work to someone else by assigning that person to the issue. Note that the milestone is automatically assigned and usually doesn't need to be manually edited.
2. Either delegate the work to someone else by assigning that person to the issue and add the issue to next major/minor milestone.
**Major error/lack of information:**
1. Label the issue with `help wanted` and `beginner friendly`, if applicable, to signal that we find this important to fix and we would appreciate any help we can get from the community.
1. Move on to [prioritizing the issue](#4-prioritization-of-issues).
2. Move on to [prioritizing the issue](#4-prioritization-of-issues).
#### Accessibility issues
### Accessibility issues
1. Label the issue `type/accessibility` and at least one `area/*` or `datasource/*` label.
#### Support requests
### Support requests
1. Kindly and politely direct the issue author to the [community site](https://community.grafana.com/) and explain that GitHub is mainly used for tracking bugs and feature requests. If possible, it's usually a good idea to add some pointers to the issue author's question.
1. Label the issue with `bot/question`. The Grafana bot will automatically close the issue, and it will add the type/question label for you.
2. Label the issue with `bot/question`. The Grafana bot will automatically close the issue, and it will add the type/question label for you.
### 4. Prioritization of issues
## 4. Prioritization of issues
In general, bugs and enhancement issues should be labeled with a priority.
In general bugs and enhancement issues should be labeled with a priority.
This is the most difficult thing with triaging issues since it requires a lot of knowledge, context and experience before it is possible to skillfully add a specific priority label.
This is the most difficult thing with triaging issues since it requires a lot of knowledge, context and experience before being able to think of and start feel comfortable adding a certain priority label.
The key here is to ask for help and discuss issues to understand how more experienced project members think and reason. By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
The key here is asking for help and discuss issues to understand how more experienced project members think and reason. By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
In case there is an uncertainty around the prioritization of an issue, please ask the maintainers for help.
| Label | Description |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `priority/critical` | Highest priority. Must be actively worked on as someone's top priority right now. |
| `priority/support-subscription` | This is important for one or several customers having a paid Grafana support subscription. |
| `priority/important-soon` | Must be staffed and worked on either currently, or very soon, ideally in time for the next release. |
| `priority/important-longterm` | Important over the long term, but may need multiple releases to complete. |
| `priority/nice-to-have` | It's a good idea, but not scheduled for any release. |
| `priority/awaiting-more-evidence` | Lowest priority. Possibly useful, but not yet enough interest in it. |
| `priority/unscheduled` | Something to look into before and to be discussed during the planning of the next major/minor stable release. |
| Label | Description |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `priority/critical` | Highest priority. Must be actively worked on as someone's top priority right now. |
| `priority/support-subscription` | This is important for one or several customers having a paid Grafana support subscription. |
| `priority/important-soon` | Must be staffed and worked on either currently, or very soon, ideally in time for the next release. |
| `priority/important-longterm` | Important over the long term, but may not be staffed and/or may need multiple releases to complete. |
| `priority/nice-to-have` | It's a good idea, but not scheduled for any release. |
| `priority/awaiting-more-evidence` | Lowest priority. Possibly useful, but not yet enough interest in it. |
| `priority/unscheduled` | Something to look into before and to be discussed during the planning of the next (upcoming) major/minor stable release. |
**Critical bugs**
1. If a bug has been categorized and any of the following criteria apply, the bug should be labeled as critical and must be actively worked on as someone's top priority right now:
1. If a bug has been categorized and any of the following criteria apply, the bug should be labeled as critical and must be actively worked on as someone's top priority right now.
- Results in any data loss
- Critical security or performance issues
- Problem that makes a feature unusable
- Multiple users experience a severe problem affecting their business, user experience, and so on.
- Multiple users experience a severe problem affecting their business, users etc.
1. Label the issue `priority/critical`.
1. If applicable, label the issue `priority/support-subscription`.
1. Add the issue to the next upcoming patch release milestone. Create a new milestone if there are none.
1. Escalate the problem to the maintainers.
1. Assign or ask a maintainer for help assigning someone to make this issue their top priority right now.
2. Label the issue `priority/critical`.
3. If applicable, label the issue `priority/support-subscription`.
4. Add the issue to the next upcoming patch release milestone. Create a new milestone if there are none.
5. Escalate the problem to the maintainers.
6. Assign or ask a maintainer for help assigning someone to make this issue their top priority right now.
**Important short-term**
1. Label the issue `priority/important-soon`.
1. If applicable, label the issue `priority/support-subscription`.
1. Add the issue to the next upcoming patch or major/minor stable release milestone. Ask maintainers for help if unsure if it's a patch or not. Create a new milestone if there are none.
1. Make sure to add the issue to a suitable backlog of a GitHub project and prioritize it or assign someone to work on it now or very soon.
1. Consider requesting [help from the community](#5-requesting-help-from-the-community), even though it may be problematic given a short amount of time until it should be released.
2. If applicable, label the issue `priority/support-subscription`.
3. Add the issue to the next upcoming patch or major/minor stable release milestone. Ask maintainers for help if unsure if it's a patch or not. Create a new milestone if there are none.
4. Make sure to add the issue to a suitable backlog of a GitHub project and prioritize it or assign someone to work on it now or very soon.
5. Consider requesting [help from the community](#5-requesting-help-from-the-community), even though it may be problematic given a short amount of time until it should be released.
**Important long-term**
1. Label the issue `priority/important-longterm`.
1. Consider requesting [help from the community](#5-requesting-help-from-the-community).
2. Consider requesting [help from the community](#5-requesting-help-from-the-community).
**Nice to have**
1. Label the issue `priority/nice-to-have`.
1. Consider requesting [help from the community](#5-requesting-help-from-the-community).
2. Consider requesting [help from the community](#5-requesting-help-from-the-community).
**Not critical, but unsure?**
1. Label the issue `priority/unscheduled`.
1. Consider requesting [help from the community](#5-request-help-from-the-community).
2. Consider requesting [help from the community](#5-requesting-help-from-the-community).
### 5. Request help from the community
## 5. Requesting help from the community
It's generally a good idea to consider signaling to the community that help is appreciated and needed in case an issue isn't prioritized to be worked on by maintainers. Use your best judgement. In general, requesting help from the community means that a contribution has a good chance of getting accepted and merged.
Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement. In general, requesting help from the community means that a contribution has a good chance of getting accepted and merged.
In many cases the issue author or community as a whole is more suitable to contribute changes since they're experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success, made an effort to get it to work, reached out to the [community site](https://community.grafana.com/) to get the missing information, or some combination of these things.
In certain areas there probably exist domain experts who may be able to help:
In many cases the issue author or community as a whole is more suitable to contribute changes since they're experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success and made an effort to get it to work and/or reached out to the [community site](https://community.grafana.com/) to get the missing information. Particularly in these areas it's more likely that there exist experts in their own domain and it is usually a good idea to request help from contributors:
- Database setups
- Authentication like OAuth providers and LDAP setups
- Platform-specific things
- Platform specific things
- Reverse proxy setups
- Alert notifiers
1. Kindly and politely add a comment to signal to users subscribed to updates of the issue.
- Explain that the issue would be nice to get resolved, but it isn't prioritized to work on by maintainers for an unforeseen future.
- If possible or applicable, try to help contributors getting starting by adding pointers and references to what code needs to be changed. Note any suggests for good ways of solving or implementing the issue.
1. Label the issue with `help wanted`.
1. If applicable, label the issue with `beginner friendly` to denote that the issue is suitable for a beginner to work on.
1. If possible, try to estimate the amount of work by adding `effort/small`, `effort/medium` or `effort/large`.
- If possible or applicable, try to help contributors getting starting by adding pointers and references to what code/files need to be changed and/or ideas of a good way to solve/implement the issue.
2. Label the issue with `help wanted`.
3. If applicable, label the issue with `beginner friendly` to denote that the issue is suitable for a beginner to work on.
4. If possible, try to estimate the amount of work by adding `effort/small`, `effort/medium` or `effort/large`.
### Investigation of issues
## Investigation of issues
When an issue has all basic information provided, but the triage responsible hasn't been able to reproduce the reported problem at a first glance, the issue is labeled [`triage/needs-confirmation`](https://github.com/grafana/grafana/labels/triage%2Fneeds-confirmation). Depending on the perceived severity and/or number of [upvotes](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments), the investigation will either be delegated to another maintainer for further investigation or put on hold until someone else (maintainer or contributor) picks it up and eventually starts investigating it.
When an issue has all basic information provided, but the triage responsible haven't been able to reproduce the reported problem at a first glance, the issue is labeled [`triage/needs-confirmation`](https://github.com/grafana/grafana/labels/triage%2Fneeds-confirmation). Depending on the perceived severity and/or number of [upvotes](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments), the investigation will either be delegated to another maintainer for further investigation or put on hold until someone else (maintainer or contributor) picks it up and eventually starts investigating it.
Investigating issues can be a very time consuming task, especially for the maintainers, given the huge number of combinations of plugins, data sources, platforms, databases, browsers, hardware, integrations, cloud services, and so on, that are used with Grafana. There are a certain number of combinations that are more common than others, and these are in general easier for maintainers to investigate.
Investigating issues can be a very time consuming task, especially for the maintainers, given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services, etc that are being used with Grafana. There is a certain number of combinations that are more common than others, and these are in general easier for maintainers to investigate.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise, the issue is highly likely to be closed.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments) the issue if you happen to have the same problem. If you have further details that may help investigating the issue, please provide as much information as possible.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments) the issue if you happen to have the same problem. If you have further details that may help investigating the issue please provide as much information as possible.
### Automation
## Automation
We have some automation that triggers on comments or labels being added to issues. Many of these automated behaviors are defined in [commands.json](https://github.com/grafana/grafana/blob/main/.github/commands.json). Or in other [GitHub Actions](https://github.com/grafana/grafana/tree/main/.github/workflows)
To learn more about bot actions, refer to our [bot documentation](https://github.com/grafana/grafana/blob/main/.github/bot.md).
[Read more on bot actions](https://github.com/grafana/grafana/blob/main/.github/bot.md)
### External PRs
## External PRs
Part of issue triage should also be triaging of external PRs. The main goal should be to make sure PRs from external contributors have an owner and aren't forgotten.
Part of issue triage should also be triaging of external PRs. Main goal should be to make sure PRs from external contributors have an owner/reviewer and are not forgotten.
1. Check new external PRs which don't have a reviewer. You can easily search for pull requests made by external contributors by using the label: `pr/external` in your [query search](https://github.com/grafana/grafana/pulls?q=is%3Aopen+is%3Apr+label%3Apr%2Fexternal) Note: external PRs are automatically labeled with `pr/external` upon creation.
1. Check if there is a link to an existing issue. The link to a existing issue should be in the description section, underneath “Which issue(s) does this PR fix?:”. If not, and you know which issue it is solving, add the link yourself. Otherwise, ask the author to link the issue or create one.
1. Assign a reviewer based on who was handling the linked issue or what code or feature the PR touches (if all else fails, look at who was the last to make changes).
1. Check new external PRs which do not have a reviewer. You can easily search for pull requests made by external contributors by using the label: `pr/external` in your [query search](https://github.com/grafana/grafana/pulls?q=is%3Aopen+is%3Apr+label%3Apr%2Fexternal) Note: external PRs are automatically labeled with `pr/external` upon creation.
2. Check if there is a link to an existing issue. The link to a existing issue should be in the description section, underneath “Which issue(s) does this PR fix?:”.
3. If not and you know which issue it is solving, add the link yourself, otherwise ask the author to link the issue or create one.
4. Assign a reviewer based on who was handling the linked issue or what code or feature does the PR touches (look at who was the last to make changes there if all else fails).
### Appendix
## Appendix
#### Setting up Gmail filters
### Setting up Gmail filters
If you're using Gmail, a best practice is to set up filters to automatically remove emails from the inbox and label them to make it easy for you to understand when you need to act upon a notification. You should be able to promptly process all incoming issues that haven't been triaged.
If you're using Gmail it's highly recommended that you setup filters to automatically remove email from the inbox and label them accordingly to make it easy for you to understand when you need to act upon a notification or process all incoming issues that haven't been triaged.
This may be set up by personal preference, but here's a working configuration for reference:
This may be setup by personal preference, but here's a working configuration for reference.
1. Follow instructions in [gist](https://gist.github.com/marefr/9167c2e31466f6316c1cba118874e74f)
1. In Gmail, go to **Settings** -> **Filters and Blocked Addresses**.
1. On the menu, select **Import filters**, then select and open the XML file.
1. Review the filters.
1. Optional: Select **Apply new filters to existing email**.
1. Create filters.
2. In Gmail, go to Settings -> Filters and Blocked Addresses
3. Import filters -> select xml file -> Open file
4. Review filters
5. Optional, Check Apply new filters to existing email
6. Create filters
This gives you a structure of labels in the sidebar similar to the following:
This will give you a structure of labels in the sidebar similar to the following:
```
- Inbox
@@ -360,5 +359,6 @@ This gives you a structure of labels in the sidebar similar to the following:
- Grafana
```
- All notifications youll need to take action on should show up as unread in **GitHub (mine)** and its sub-labels.
- All notifications you dont need to take action on show up as unread in **GitHub (other)** and its sub-labels.
- All notifications youll need to read/take action on show up as unread in GitHub (mine) and its sub-labels.
- All other notifications you dont need to take action on show up as unread in GitHub (other) and its sub-labels
- This is convenient for issue triage and to follow the activity in the Grafana project.

View File

@@ -1,24 +1,18 @@
# Contribute to the Grafana project
# Contribute
We're excited that you're considering making a contribution to the Grafana project! This is the place to find guides for contributors to our open-source project.
These are some good resources to explore for developers:
This directory contains guides for contributors to the Grafana project.
- [Create a pull request](create-pull-request.md)
- [Contribute to our documentation](../contribute/documentation/README.md)
- [Developer guide](developer-guide.md)
- [Triage issues](triage-issues.md)
- [Merge a pull request](merge-pull-request.md)
- [Making changes to the CI pipeline](drone-pipeline.md)
- [Breaking changes in frontend APIs](./breaking-changes-guide/breaking-changes-guide.md)
Learn how to create great documentation and apps for Grafana:
The `style-guides` directory contains style guides for the Grafana software project and documentation.
- [Developer portal](https://grafana.com/developers/) - Find resources for creating apps and plugins to Grafana.
- [Contribute to our documentation](../contribute/documentation/README.md) - Learn how to write and style Grafana documentation.
Find style guides for the Grafana software project:
- [Backend style guide](backend/style-guide.md) - Learn how to style and format backend functionality and code.
- [Frontend style guide](style-guides/frontend.md) - Learn how to style and format the user-facing functionality and code.
- [Redux framework](style-guides/redux.md) - Design the Grafana Redux framework.
- [Themes style guide](style-guides/themes.md) - Design and update Grafana themes.
- [Backend style guide](backend/style-guide.md) for how to style and format backend functionality and code.
- [Frontend style guide](style-guides/frontend.md) for how to style and format the user-facing functionality and code.
- [Redux framework](style-guides/redux.md) for designing the Grafana redux framework.
- [Themes style guide](style-guides/themes.md) for designing and updating Grafana themes.

View File

@@ -1,6 +1,6 @@
# Guide to upgrading dependencies
Upgrading Go or Node.js requires making changes in many different files. Refer to the following list for more information.
Upgrading Go or Node.js requires making changes in many different files. See below for a list and explanation for each.
## Go
@@ -19,7 +19,7 @@ Upgrading Go or Node.js requires making changes in many different files. Refer t
## Go dependencies
The Grafana project uses [Go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) to manage dependencies on external packages. This requires a working Go environment with version 1.11 or later installed.
The Grafana project uses [Go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) to manage dependencies on external packages. This requires a working Go environment with version 1.11 or greater installed.
To add or update a new dependency, use the `go get` command:
@@ -36,19 +36,17 @@ Tidy up the `go.mod` and `go.sum` files:
go mod tidy
```
You have to commit the changes to `go.mod` and `go.sum` before you submit the pull request.
You have to commit the changes to `go.mod` and `go.sum` before submitting the pull request.
To understand what the actual dependencies of `grafana-server` are, you can run it with the `-vv` flag. Note that this command might produce an output different from `go.mod` contents, and `-vv` option is the source of truth here. The output lists the modules _compiled_ into the executable, whereas `go.mod` lists also test and weak transitive dependencies (that is, modules, used in some packages, which aren't in use by itself). If you're interested in reporting a vulnerability in a dependency module, consult the `-vv` output, maybe the "dependency" isn't actually a dependency as such.
To understand what the actual dependencies of `grafana-server` are, one could run it with `-vv` flag. This might produce an output, different from `go.mod` contents and `-vv` option is the source of truth here. It lists the modules _compiled_ into the executable, while `go.mod` lists also test and weak transitive dependencies (modules, used in some package, which is not in use by itself). If you are interested in reporting a vulnerability in a dependency module - please consult `-vv` output, maybe the "dependency" is not a dependency as such.
### Upgrading dependencies
If you need to upgrade a direct or indirect dependency, you can do it like so, where _`MODULE`_ is the dependency in question: `go get -u <MODULE>`. The corresponding entry in `go.mod` should then have the version you specified. If it's an indirect dependency, the entry should have the `// indirect` comment.
To do so, execute `go mod tidy` to ensure that `go.mod` and `go.sum` are updated. If the indirect dependency turns out to not be used (transitively) by any of our packages, `go mod tidy` actually strips it from `go.mod`. In that case, you can just ignore it because ultimately it isn't used.
If you need to upgrade a direct or indirect dependency, you can do it like so, $MODULE being the dependency in question: `go get -u $MODULE`. The corresponding entry in go.mod should then have the version you specified; if it's an indirect dependency, the entry should have the `// indirect` comment. Follow this by executing `go mod tidy`, to ensure that go.mod and go.sum are up to date. If the indirect dependency turns out to not be used (transitively) by any of our packages, `go mod tidy` will actually strip it from go.mod. In that case, you can just ignore it since it isn't used in the end.
## Node.js dependencies
Updated using `yarn`:
Updated using `yarn`.
- `package.json`
@@ -64,26 +62,26 @@ Our CI builds run on Drone.
#### Dependencies
- Node.js
- Go
- `grafana/build-container` (our custom Docker build container)
- nodejs
- golang
- grafana/build-container (our custom docker build container)
### grafana/build-container
The main build steps (in Drone) happen using a custom Docker image that comes pre-baked with some of the necessary dependencies.
Link: [`grafana/build-container`](https://github.com/grafana/grafana/tree/main/scripts/build/ci-build)
Link: [grafana/build-container](https://github.com/grafana/grafana/tree/main/scripts/build/ci-build)
#### Dependencies
- fpm
- Node.js
- Go
- cross-compiling (several compilers)
- nodejs
- golang
- crosscompiling (several compilers)
### Appveyor
Main and release builds trigger test runs on the Appveyors build environment so that tests will run on Windows.
Main and release builds trigger test runs on Appveyors build environment so that tests will run on Windows.
#### Files:
@@ -109,4 +107,4 @@ There is a Docker build for Grafana in the root of the project that allows anyon
### Local developer environments
It is a good practice to send out a notice in the grafana-dev Slack channel when updating Go or Node.js to make it easier for everyone to update their local developer environments.
Please send out a notice in the grafana-dev slack channel when updating Go or Node.js to make it easier for everyone to update their local developer environments.

View File

@@ -194,11 +194,12 @@ func (s *MyService) Hello(ctx context.Context, name string) (string, error) {
if name == "" {
err := fmt.Errorf("name cannot be empty")
// Use the helper functions tracing.Errorf or tracing.Error
// to set the spans status to Error to make
// the span tracking a failed operation as an error span and
// record error as an exception span event for the provided span.
return "", tracing.Errorf(span, "failed to check name: %w", err)
// sets the spans status to Error to make the span tracking
// a failed operation as an error span.
span.SetStatus(codes.Error, "failed to check name")
// record err as an exception span event for this span
span.RecordError(err)
return "", err
}
// Add some other event to show Events usage

View File

@@ -2,16 +2,12 @@
Notes on upgrading various backend dependencies.
## Protobuf
# Protobuf
When upgrading the [protobuf](http://github.com/golang/protobuf) library in Grafana and the plugin SDK,
you typically also want to upgrade your protobuf compiler toolchain and re-compile protobuf files.
you typically also want to upgrade your protobuf compiler toolchain and re-compile protobuf files:
**Note:** You need Buf CLI installed and availabile in your path, see https://buf.build/docs/installation for instructions.
Re-compile protobuf files in grafana and the plugin SDK:
```shell
```
cd $GRAFANA
make protobuf
cd $GRAFANA_PLUGIN_SDK_GO

View File

@@ -6,15 +6,17 @@ Example PR: https://github.com/grafana/grafana/pull/79329
## The main areas that need to change during the upgrade are:
- [`go.mod`](/go.mod#L3)
- [`go.work`](/go.work#L1)
- [`scripts/drone/variables.star`](/scripts/drone/variables.star#L6)
- [`Makefile`](/Makefile#L12)
- [`Dockerfile`](/Dockerfile#L6)
- https://github.com/grafana/grafana/blob/d8ecea4ed93efb2e4d64a5ee24bc08f3805f413d/scripts/drone/variables.star#L6
- https://github.com/grafana/grafana/blob/d8ecea4ed93efb2e4d64a5ee24bc08f3805f413d/Makefile#L264
- https://github.com/grafana/grafana/blob/d8ecea4ed93efb2e4d64a5ee24bc08f3805f413d/Dockerfile#L6
Then, run `go mod tidy` and `go work sync`. Also run `make drone` so changes to `.star` files are reflected and `drone.yml` is updated.
Make sure to run `make drone` so that changes to `.star` files are reflected and `drone.yml` is generated.
### Additional files to change
- Take a look in `.github/workflows` folder for what `go` version is being used there in various workflows.
- Make sure to create a PR with the corresponding changes in `grafana/grafana-enterprise` repository.
## Updating the go.mod file
Please avoid updating the `go.mod` to the newest version unless really necessary. This ensures backwards compatibility and introduces less breaking changes. Always upgrade Go version in the runtime files above first, let them run for a couple of weeks and only then consider updating the `go.mod` file if necessary.

View File

@@ -1,23 +1,23 @@
# Create a pull request
Every contribution to Grafana's software begins with a [pull request](https://help.github.com/en/articles/about-pull-requests/). This document guides you through the process of creating a PR.
We're excited that you're considering making a contribution to the Grafana project! This document guides you through the process of creating a [pull request](https://help.github.com/en/articles/about-pull-requests/).
## Before you begin
We know you're excited to create your first pull request. Before we get started, read these resources first:
- Get started [contributing to Grafana](/CONTRIBUTING.md).
- Learn how to start [Contributing to Grafana](/CONTRIBUTING.md).
- Make sure your code follows the relevant [style guides](/contribute/style-guides).
- It's recommended you [set up precommit hooks](/contribute/developer-guide.md) to auto-format when you commit
## Your first pull request
If this is your first time contributing to an open-source project on GitHub, make sure you read GitHub's article on [creating a pull request](https://help.github.com/en/articles/creating-a-pull-request).
If this is your first time contributing to an open-source project on GitHub, make sure you read about [Creating a pull request](https://help.github.com/en/articles/creating-a-pull-request).
To increase the chance of having your pull request accepted, make sure your pull request follows these guidelines:
- Title and description matches the implementation.
- Commits within the pull request follow the [formatting guidelines](#Formatting-guidelines).
- Commits within the pull request follow the [Formatting guidelines](#Formatting-guidelines).
- The pull request closes one related issue.
- The pull request contains necessary tests that verify the intended behavior.
- If your pull request has conflicts, rebase your branch onto the main branch.
@@ -27,7 +27,7 @@ If the pull request fixes a bug:
- The pull request description must include `Closes #<issue number>` or `Fixes #<issue number>`.
- To avoid regressions, the pull request should include tests that replicate the fixed bug.
## Guidelines for frontend development
## Frontend-specific guidelines
Pull requests for frontend contributions must:
@@ -42,76 +42,76 @@ Pull requests for Redux contributions must:
- Use the `actionCreatorFactory` and `reducerFactory` helpers instead of traditional switch statement reducers in Redux. Refer to [Redux framework](/contribute/style-guides/redux.md) for more details.
- Use `reducerTester` to test reducers. Refer to [Redux framework](/contribute/style-guides/redux.md) for more details.
- Not contain code that mutates state in reducers or thunks.
- Not contain code that accesses the reducer's state slice directly. Instead, the code should use state selectors to access state.
- Not contain code that accesses the reducers state slice directly. Instead, the code should use state selectors to access state.
Pull requests that add or modify unit tests that are written in Jest must adhere to these guidelines:
- Don't add snapshots tests. We are incrementally removing existing snapshot tests, and so we don't want more.
- If an existing unit test is written in Enzyme, migrate it to React Testing Library (RTL), unless youre fixing a bug. Bug fixes usually shouldn't include any bigger refactoring, so its okay to skip migrating the test to RTL.
- Don't add snapshots tests. We are incrementally removing existing snapshot tests, we don't want more.
- If an existing unit test is written in Enzyme, migrate it to RTL (React Testing Library), unless youre fixing a bug. Bug fixes usually shouldn't include any bigger refactoring, so its ok to skip migrating the test to RTL.
Pull requests that create new UI components or modify existing ones must adhere to the following accessibility guidelines:
- Use semantic HTML.
- Use ARIA roles, labels and other accessibility attributes correctly. Accessibility attributes should only be used when semantic HTML doesn't satisfy your use case.
- Use the [Grafana theme palette](/contribute/style-guides/themes.md) for styling. The palette contains colors with good contrast to aid accessibility.
- Use the [Grafana theme palette](/contribute/style-guides/themes.md) for styling. It contains colors with good contrast which aids accessibility.
- Use [RTL](https://testing-library.com/docs/dom-testing-library/api-accessibility/) for writing unit tests. It helps to create accessible components.
### Guidelines for accessibility
### Accessibility-specific guidelines
Before submitting pull requests that introduce accessibility (a11y) errors, refer to the [accessibility guidelines](/contribute/style-guides/accessibility.md).
Pull requests that introduce accessibility(a11y) errors - please refer to the [accessibility guidelines](/contribute/style-guides/accessibility.md).
### Betterer
We make use of a tool called [**Betterer**](https://phenomnomnominal.github.io/betterer/) in order to drive long-running code quality improvements. Our intention is for this requirement to be as unintrusive as possible; however, there are some things to be aware of:
We make use of a tool called [**Betterer**](https://phenomnomnominal.github.io/betterer/) in order to drive long-running code quality improvements. The intention is for this to be as unintrusive as possible, however there are some things to be aware of:
- **Betterer runs as a precommit hook**:
- You may see changes to the `.betterer.results` file automatically added to your commits.
- You may get an error when trying to commit something that decreases the overall code quality. You can either fix these errors or temporarily override the checks (for example, to commit something that's a work in progress). To do so, use `git commit --no-verify`. All errors will eventually have to be fixed before your code can be merged because...
- You may get an error when trying to commit something that decreases the overall code quality. You can either fix these errors or temporarily override the checks (e.g. to commit something that's a work in progress) by using `git commit --no-verify`. All errors will eventually have to be fixed before your code can be merged because...
- **Betterer also runs as part of our CI**:
- You may see the following error message in the CI: `Unexpected changes detected in these tests while running in CI mode`. To resolve the error, merge with the target branch (usually `main`).
- You may see merge conflicts for the `.betterer.results` file. To resolve, merge with the target branch (usually `main`), and then run `yarn betterer:merge` and commit.
- You may see the following error message in the CI: `Unexpected changes detected in these tests while running in CI mode`. To resolve, merge with the target branch (usually `main`).
- You may see merge conflicts for the `.betterer.results` file. To resolve, merge with the target branch (usually `main`) then run `yarn betterer:merge` and commit.
## Guidelines for backend development
## Backend-specific guidelines
Refer to the [backend style guidelines](/contribute/backend/style-guide.md).
Please refer to the [backend style guidelines](/contribute/backend/style-guide.md).
## Code review
Once you've created a pull request, the next step is to have someone review your change. A review is a learning opportunity for both the reviewer and the author of the pull request.
If you think a specific person needs to review your pull request, then you can tag them in the description or in a comment. To tag a user on GitHub, go to Reviewers box on the Conversations page and enter the `@` symbol followed by their GitHub username.
If you think a specific person needs to review your pull request, then you can tag them in the description or in a comment. Tag a user by typing the `@` symbol followed by their GitHub username.
We recommend that you read [How to do a code review](https://google.github.io/eng-practices/review/reviewer/) to learn more about code reviews.
## Formatting guidelines
A well-written pull request minimizes the time to get your change accepted. The following guidelines help you to write good commit messages and descriptions for your pull requests.
A well-written pull request minimizes the time to get your change accepted. These guidelines help you write good commit messages and descriptions for your pull requests.
### Commit message format
Grafana uses the guidelines for commit messages outlined in the article [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/), with the following additions:
Grafana uses the guidelines for commit messages outlined in [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/), with the following additions:
- Subject line must begin with the _area_ of the commit.
- Footer in the form of an optional [keyword and issue reference](https://help.github.com/en/articles/closing-issues-using-keywords).
- A footer in the form of an optional [keyword and issue reference](https://help.github.com/en/articles/closing-issues-using-keywords).
#### Area
The _area_ refers to a specific part of Grafana's codebase. It should be given in the upper camel case format. For example: UpperCamelCase.
The area should use upper camel case, e.g. UpperCamelCase.
Prefer using one of the following areas:
- **Build:** Change the build system, or external dependencies
- **Chore:** Change that doesn't affect functionality
- **Chore:** Change that don't affect functionality
- **Dashboard:** Change the Dashboard feature
- **Docs:** Change documentation
- **Explore:** Change the Explore feature
- **Plugins:** Change a plugin
- **Plugins:** Change the ... plugin
For changes to data sources, the area is the name of the data source. For example, AzureMonitor, Graphite, or Prometheus.
For changes to panels, the area is the name of the panel, suffixed with Panel. For example, GraphPanel, SinglestatPanel, or TablePanel.
**Examples of good commit messages**
**Examples**
- `Build: Support publishing MSI to grafana.com`
- `Explore: Add Live option for supported data sources`
@@ -129,13 +129,12 @@ The Grafana team _squashes_ all commits into one when we accept a pull request.
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.
**Example:**
`Docs: Change url to URL in all documentation files`
## Configuration changes
If your pull request includes configuration changes, all the following files must be changed correspondingly:
If your PR includes configuration changes, all the following files must be changed correspondingly:
- `conf/defaults.ini`
- `conf/sample.ini`
- `docs/sources/administration/configuration.md`
- conf/defaults.ini
- conf/sample.ini
- docs/sources/administration/configuration.md

View File

@@ -1,32 +1,30 @@
# Deprecation policy
We do our best to limit breaking changes and the deprecation of features to major releases. We always do our best _not_ to introduce breaking changes in order to make upgrading Grafana as easy and reliable as possible. However, at times we have to introduce a breaking change by changing behavior or by removing a feature.
We do our best to limit breaking changes and the deprecation of features to major releases. We always do our best **not** to introduce breaking changes in order to make upgrading Grafana as easy and reliable as possible. However, at times we have to introduce a breaking change by changing behavior or by removing a feature.
To minimize the negative effects of removing a feature, we require a deprecation plan. A typical deprecation plan includes these features:
To minimize the negative effects of removing a feature we require a deprecation plan that includes:
- Determine usage levels of the feature.
- Find alternative solutions and possible migration paths.
- Announce deprecation of the feature.
- Migrate users if possible.
- Migrate users if possible
- Give users time to adjust to the deprecation.
- Disable the feature by default.
- Remove the feature from the code base.
We want the deprecation plan to be in the form of written communication for all parties so we know it's intentional and that a reasonable attempt was made to avoid breaking changes unnecessarily. Depending on the size and importance of the feature the plan can be a design doc or an issue.
Depending on the size and importance of the feature this can be a design doc or an issue. We want this to be written communication for all parties so we know it's intentional and that did a reasonable attempt to avoid breaking changes unless needed. The size of the feature also means different notice times between Depreciation and disabling as well as disabling and removal. The actual duration will depend on releases of Grafana and the table below should be used as a guide.
> Grafana employees can find more details in our internal docs.
Additionally, the size of the feature requires different notice times between depreciation and disabling as well as disabling and removal. The actual duration will depend on releases of Grafana and the table below should be used as a guide.
Grafana employees can find more details in our internal docs.
## Grace period between announcement and disabling feature by default
| Size | Duration | Example |
| ------ | ---------- | ---------------------------------------------------------------- |
| Large | 1-2 years | Classic alerting, scripted dashboards, AngularJS |
| Medium | 6 months | Supported database for Grafana's backend |
| Medium | 6 months | Supported Database for Grafana's backend |
| Small | 1-3 months | Refresh OAuth access_token automatically using the refresh_token |
## Announced deprecations
## Announced deprecations.
| Name | Announcement Date | Disabling date | Removal Date | Description | Status |
| ------------------------------------------------------------------------ | ----------------- | -------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------- | ------- |

View File

@@ -8,8 +8,8 @@ Make sure you have the following dependencies installed before setting up your d
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature). See [.nvmrc](../.nvmrc) for supported version. We recommend that you use a version manager such as [nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm), or similar.
- [GCC](https://gcc.gnu.org/) (required for Cgo] dependencies)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature). See [.nvmrc](../.nvmrc) for supported version. It's recommend you use a version manager such as [nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm), or similar.
- GCC (required for Cgo dependencies)
### macOS
@@ -33,91 +33,61 @@ We recommend using the Git command-line interface to download the source code fo
1. Open a terminal and run `git clone https://github.com/grafana/grafana.git`. This command downloads Grafana to a new `grafana` directory in your current directory.
1. Open the `grafana` directory in your favorite code editor.
For alternative ways of cloning the Grafana repository, refer to [GitHub's documentation](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository).
For alternative ways of cloning the Grafana repository, please refer to [GitHub's cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) documentation.
> **Caution:** Do not use `go get` to download Grafana. Recent versions of Go have added behavior which isn't compatible with the way the Grafana repository is structured.
**Warning:** Do not use `go get` to download Grafana. Recent versions of Go have added behavior which isn't compatible with the way the Grafana repository is structured.
### Configure precommit hooks
We use pre-commit hooks (via [lefthook](https://github.com/evilmartians/lefthook)) to lint, fix, and format code as you commit your changes. Previously, the Grafana repository automatically installed these hook when you ran `yarn install`, but they are now opt-in for all contributors.
We use pre-commit hooks (via [lefthook](https://github.com/evilmartians/lefthook)) to lint, fix, and format code as you commit your changes. Previously the Grafana repository automatically installed these hook when you did `yarn install`, but they are now opt in for all contributors
To install the precommit hooks:
Install the lefthook precommit hooks with:
```sh
make lefthook-install
```
To remove precommit hooks:
To remove precommit hooks, run
```sh
make lefthook-uninstall
```
> We strongly encourage contributors who work on the frontend to install the precommit hooks, even if your IDE formats on save. By doing so, the `.betterer.results` file is kept in sync.
> [!NOTE]
> Contributors working on the frontend are highly encouraged to install the precommit hooks, even if your IDE formats on save, so the `.betterer.results` file is kept up to sync.
## Build Grafana
When building Grafana, be aware that it consists of two components:
- The _frontend_, and
- The _backend_.
Grafana consists of two components; the _frontend_, and the _backend_.
### Frontend
Before you can build the frontend assets, you need to install the related dependencies:
Before we can build the frontend assets, we need to install the dependencies:
```
yarn install --immutable
```
> If you get the error `The remote archive doesn't match the expected checksum` for a dependency pulled from a link (for example, `"tether-drop": "https://github.com/torkelo/drop"`): this is a temporary mismatch. To work around the error (while someone corrects the issue), you can prefix your `yarn install --immutable` command with [`YARN_CHECKSUM_BEHAVIOR=update`](https://yarnpkg.com/advanced/error-codes#yn0018---cache_checksum_mismatch).
> Troubleshooting: if you get the error `The remote archive doesn't match the expected checksum` for a dependency pulled from a link (e.g. `"tether-drop": "https://github.com/torkelo/drop"`): this is a temporary mismatch. To work around it (while someone corrects the issue), you can prefix your `yarn install --immutable` command with [`YARN_CHECKSUM_BEHAVIOR=update`](https://yarnpkg.com/advanced/error-codes#yn0018---cache_checksum_mismatch)
After the command has finished, you can start building the source code:
After the command has finished, we can start building our source code:
```
yarn start
```
This command generates SASS theme files, builds all external plugins, and then builds the frontend assets.
This command will generate sass theme files, build all external plugins, then build the frontend assets.
Once `yarn start` has built the assets, it will continue to do so whenever any of the files change. This means you don't have to manually build the assets every time you change the code.
After `yarn start` has built the assets, it will continue to do so whenever any of the files change. This means you don't have to manually build the assets every time you change the code.
> Troubleshooting: if your first build works, but after pulling updates you see unexpected errors in the "Type-checking in progress..." stage, these can be caused by the [tsbuildinfo cache supporting incremental builds](https://www.typescriptlang.org/tsconfig#incremental). You can `rm tsconfig.tsbuildinfo` and re-try.
> **Troubleshooting:** if your first build works, after pulling updates you may see unexpected errors in the "Type-checking in progress..." stage. These errors can be caused by the [tsbuildinfo cache supporting incremental builds](https://www.typescriptlang.org/tsconfig#incremental). In this case, you can enter `rm tsconfig.tsbuildinfo` and re-try.
#### Plugins
If you want to contribute to any of the plugins listed below (that are found within the `public/app/plugins` directory) they require running additional commands to watch and rebuild them.
- azuremonitor
- cloud-monitoring
- grafana-postgresql-datasource
- grafana-pyroscope-datasource
- grafana-testdata-datasource
- jaegar
- mysql
- parca
- tempo
- zipkin
To build and watch all these plugins you can run the following command. Note this can be quite resource intensive as it will start separate build processes for each plugin.
```
yarn plugin:build:dev
```
If, instead, you would like to build and watch a specific plugin you can run the following command. Make sure to substitute `<name_of_plugin>` with the plugins name field found in its package.json. e.g. `@grafana-plugins/tempo`.
```
yarn workspace <name_of_plugin> dev
```
Next, we'll explain how to build and run the web server that serves these frontend assets.
Next, we'll build & run the web server that will serve the frontend assets we just built.
### Backend
Build and run the backend by running `make run` in the root directory of the repository. This command compiles the Go source code and starts a web server.
> **Troubleshooting:** Are you having problems with [too many open files](#troubleshooting)?
> Are you having problems with [too many open files](#troubleshooting)?
By default, you can access the web server at `http://localhost:3000/`.
@@ -129,14 +99,14 @@ Log in using the default credentials:
When you log in for the first time, Grafana asks you to change your password.
#### Build on Windows
#### Building on Windows
The Grafana backend includes SQLite, a database which requires GCC to compile. So in order to compile Grafana on Windows you need to install GCC. We recommend [TDM-GCC](http://tdm-gcc.tdragon.net/download). Eventually, if you use [Scoop](https://scoop.sh), you can install GCC through that.
The Grafana backend includes SQLite which requires GCC to compile. So in order to compile Grafana on Windows you need to install GCC. We recommend [TDM-GCC](http://tdm-gcc.tdragon.net/download). Eventually, if you use [Scoop](https://scoop.sh), you can install GCC through that.
You can build the back-end as follows:
1. Follow the [instructions](https://github.com/google/wire#installing) to install the Wire tool.
2. Generate code using Wire. For example:
2. Generate code using Wire:
```
# Default Wire tool install path: $GOPATH/bin/wire.exe
@@ -149,9 +119,8 @@ You can build the back-end as follows:
go run build.go build
```
The Grafana binaries will be installed in `bin\\windows-amd64`.
Alternatively, if you are on Windows and want to use the `make` command, install [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm) and use it in a UNIX shell (for example, Git Bash).
The Grafana binaries will be in bin\\windows-amd64.
Alternately, if you wish to use the `make` command, install [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm) and use it in a Unix shell (f.ex. Git Bash).
## Test Grafana
@@ -159,7 +128,7 @@ The test suite consists of three types of tests: _Frontend tests_, _backend test
### Run frontend tests
We use [Jest](https://jestjs.io/) for our frontend tests. Run them using Yarn:
We use [jest](https://jestjs.io/) for our frontend tests. Run them using Yarn:
```
yarn test
@@ -175,29 +144,27 @@ go test -v ./pkg/...
#### On Windows
Running the backend tests on Windows currently needs some tweaking, so use the `build.go` script:
Running the backend tests on Windows currently needs some tweaking, so use the build.go script:
```
go run build.go test
```
### Run SQLite, PostgreSQL and MySQL integration tests
### Run SQLLite, PostgreSQL and MySQL integration tests
By default, grafana runs SQLite. To run test with SQLite:
By default, grafana runs SQLite, to run test with SQLite
```bash
go test -covermode=atomic -tags=integration ./pkg/...
```
To run PostgreSQL and MySQL integration tests locally, start the Docker blocks for test data sources for MySQL, PostgreSQL, or both, by running `make devenv sources=mysql_tests,postgres_tests`.
When your test data sources are running, you can execute integration tests by running for MySQL:
To run PostgreSQL and MySQL integration tests locally, you need to start the docker blocks for MySQL and/or PostgreSQL test data sources by running `make devenv sources=mysql_tests,postgres_tests`. When your test data sources are running, you can execute integration tests by running:
```bash
make test-go-integration-mysql
```
For PostgreSQL, you could run:
and/or
```bash
make test-go-integration-postgres
@@ -205,9 +172,9 @@ make test-go-integration-postgres
### Run end-to-end tests
Grafana uses [Cypress](https://www.cypress.io/) to end-to-end test core features. Core plugins use [Playwright](https://playwright.dev/) to run automated end-to-end tests. You can find more information on how to add end-to-end tests to your core plugin [in our end-to-end testing style guide](./style-guides/e2e-plugins.md)
Grafana uses [Cypress](https://www.cypress.io/) to end-to-end test core features. Core plugins use [Playwright](https://playwright.dev/) to run automated end-to-end tests. You can find more information on how to add end-to-end tests to your core plugin [here](./style-guides/e2e-plugins.md)
#### Run Cypress tests
#### Running Cypress tests
To run all tests in a headless Chromium browser.
@@ -237,25 +204,25 @@ yarn e2e:dev
**Note:** If you're using VS Code as your development editor, it's recommended to install the [Playwright test extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright). It allows you to run, debug and generate Playwright tests from within the editor. For more information about the extension and how to install it, refer to the [Playwright documentation](https://playwright.dev/docs/getting-started-vscode).
Each version of Playwright needs specific versions of browser binaries to operate. You need to use the Playwright CLI to install these browsers.
Each version of Playwright needs specific versions of browser binaries to operate. You will need to use the Playwright CLI to install these browsers.
```
yarn playwright install chromium
```
To run all tests in a headless Chromium browser and display results in the terminal:
To run all tests in a headless Chromium browser and display results in the terminal.
```
yarn e2e:playwright
```
For a better developer experience, open the Playwright UI where you can visually walk through each step of the test and see what was happening before, during, and after each step.
For a better developer experience, open the Playwright UI where you can easily walk through each step of the test and visually see what was happening before, during and after each step.
```
yarn e2e:playwright:ui
```
To open the HTML reporter for the last test run session:
To open the HTML reporter for the last test run session.
```
yarn e2e:playwright:report
@@ -267,7 +234,7 @@ The default configuration, `defaults.ini`, is located in the `conf` directory.
To override the default configuration, create a `custom.ini` file in the `conf` directory. You only need to add the options you wish to override.
Enable the development mode by adding the following line in your `custom.ini`:
Enable the development mode, by adding the following line in your `custom.ini`:
```
app_mode = development
@@ -297,7 +264,7 @@ make devenv sources=influxdb,loki
The script generates a Docker Compose file with the databases you specify as `sources`, and runs them in the background.
See the repository for all the [available data sources](/devenv/docker/blocks). Note that some data sources have specific Docker images for macOS; for example, `nginx_proxy_mac`.
See the repository for all the [available data sources](/devenv/docker/blocks). Note that some data sources have specific Docker images for macOS, e.g. `nginx_proxy_mac`.
## Build a Docker image
@@ -307,9 +274,9 @@ To build a Docker image, run:
make build-docker-full
```
The resulting image will be tagged as `grafana/grafana:dev`.
The resulting image will be tagged as grafana/grafana:dev.
> **Note:** If you use Docker for macOS, be sure to set the memory limit to be larger than 2 GiB. Otherwise, `grunt build` may fail. The memory limit settings are available under **Docker Desktop** -> **Preferences** -> **Advanced**.
**Note:** If you are using Docker for macOS, be sure to set the memory limit to be larger than 2 GiB. Otherwise, `grunt build` may fail. The memory limit settings are available under **Docker Desktop** -> **Preferences** -> **Advanced**.
## Troubleshooting
@@ -317,13 +284,13 @@ Are you having issues with setting up your environment? Here are some tips that
### IDE configuration
Configure your IDE to use the TypeScript version from the Grafana repository. The version should match the TypeScript version in the `package.json` file, and is typically located at `node_modules/.bin/tsc`.
Configure your IDE to use the Typescript version from the Grafana repository. The version should match the Typescript version in the package.json file, and is typically at the path `node_modules/.bin/tsc`.
Previously, Grafana used Yarn PnP to install frontend dependencies, which required additional special IDE configuration. This is no longer the case. If you have custom paths in your IDE for ESLint, Prettier, or TypeScript, you can now remove them and use the defaults from `node_modules`.
Previously Grafana used Yarn PnP to install frontend dependencies, which required additional special IDE configuration. This is no longer the case. If you have custom paths in your IDE for ESLint, Prettier, or Typescript, you can now remove them and use the defaults from node_modules.
### Too many open files when running `make run`
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a UNIX-like OS (for example, Linux or macOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a Unix like OS (e.g. Linux/macOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
To see how many open files are allowed, run:
@@ -345,7 +312,7 @@ find ./conf ./pkg ./public/views | wc -l
Another alternative is to limit the files being watched. The directories that are watched for changes are listed in the `.bra.toml` file in the root directory.
You can retain your `ulimit` configuration, that is, save it so it will be remembered for future sessions. To do this, commit it to your command line shell initialization file. Which file this is depends on the shell you are using. For example:
To retain your `ulimit` configuration, i.e. so it will be remembered for future sessions, you need to commit it to your command line shell initialization file. Which file this will be depends on the shell you are using, here are some examples:
- zsh -> ~/.zshrc
- bash -> ~/.bashrc
@@ -364,15 +331,11 @@ For some people, typically using the bash shell, ulimit fails with an error simi
ulimit: open files: cannot modify limit: Operation not permitted
```
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (`~/.bashrc`, typically), to see if there's already an `ulimit` command that you can tweak.
### Getting `AggregateError` when building frontend tests
If you encounter an `AggregateError` when building new tests, this is probably due to a call to our client [backend service](https://github.com/grafana/grafana/blob/main/public/app/core/services/backend_srv.ts) not being mocked. Our backend service anticipates multiple responses being returned and was built to return errors as an array. A test encountering errors from the service will group those errors as an `AggregateError` without breaking down the individual errors within. `backend_srv.processRequestError` is called once per error and is a great place to return information on what the individual errors might contain.
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already an ulimit command that you can tweak.
## Next steps
- Read our [style guides](/contribute/style-guides).
- Learn how to [create a pull request](/contribute/create-pull-request.md).
- Learn how to [Create a pull request](/contribute/create-pull-request.md).
- Read about the [architecture](architecture).
- Read through the [backend documentation](/contribute/backend/README.md).

View File

@@ -1,17 +1,17 @@
# Making changes to the Drone pipeline
> Only members of the Grafana organization can make changes to the Drone pipeline.
_Only people in the Grafana organization can make changes to the Drone pipeline_
The Drone pipelines are built with [Starlark](https://github.com/bazelbuild/starlark), a similar language to Python. The Starlark files are located in [`scripts/drone`](https://github.com/grafana/grafana/tree/main/scripts/drone).
The Drone pipelines are built with [Starlark](https://github.com/bazelbuild/starlark), a language which is similar to Python. The Starlark files are located in [`scripts/drone`](https://github.com/grafana/grafana/tree/main/scripts/drone).
## Drone setup
## Setup
1. Set environment variables `DRONE_SERVER` and `DRONE_TOKEN` found in your [Drone account](https://drone.grafana.net/account). These environment variables are used to verify that only Grafana employees can make changes to the pipelines.
1. Install [buildifier](https://github.com/bazelbuild/buildtools/blob/master/buildifier/README.md), and use it to format the Starlark files you want to edit.
- Set environment variables `DRONE_SERVER` and `DRONE_TOKEN`, which can be found on your [Drone account](https://drone.grafana.net/account). These are used to verify that only Grafana employees can make changes to the pipelines.
- Install [buildifier](https://github.com/bazelbuild/buildtools/blob/master/buildifier/README.md), and use it to format the Starlark files you edit.
## Drone development
## Develop
1. Open a pull request where you can do test runs for your changes. If you need to experiment with secrets, create a pull request in the [`grafana-ci-sandbox repo`](https://github.com/grafana/grafana-ci-sandbox) before opening a pull request in the main repo.
1. Run `make drone` after making changes to the Starlark files. This builds the `.drone.yml` file.
- Open a PR where you can do test runs for your changes. If you need to experiment with secrets, create a PR in the [grafana-ci-sandbox repo](https://github.com/grafana/grafana-ci-sandbox), before opening a PR in the main repo.
- Run `make drone` after making changes to the Starlark files. This builds the `.drone.yml` file.
For further questions, reach out to the `grafana-release-guild` squad.
For further questions, reach out to the grafana-release-guild squad.

View File

@@ -1,17 +1,15 @@
# Feature toggle guide
This guide helps you to add your feature behind a _feature flag_, code that lets you enable or disable a feature without redeploying Grafana.
This guide helps you get started adding your feature behind a feature flag in Grafana.
## Steps to adding a feature toggle
1. Define the feature toggle in [registry.go](../pkg/services/featuremgmt/registry.go). To see what each feature stage means, look at the [related comments](../pkg/services/featuremgmt/features.go). If you are a community member, use the [CODEOWNERS](../.github/CODEOWNERS) file to determine which team owns the package you are updating.
2. Run the Go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This generates all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. To run the test, run `make gen-feature-toggles`.
1. Define the feature toggle in [registry.go](../pkg/services/featuremgmt/registry.go). To see what each feature stage means, look at the comments [here](../pkg/services/featuremgmt/features.go). If you are a community member, use the [CODEOWNERS](../.github/CODEOWNERS) file to determine which team owns the package you are updating.
2. Run the go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This will generate all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. You can run the test by running `make gen-feature-toggles`.
## How to use the toggle in your code
## How to use it in the code
Once your feature toggle is defined, you can then wrap your feature around a check if the feature flag is enabled on that Grafana instance.
Examples:
Once your feature toggle is defined, you can then wrap your feature around a check if the feature flag is enabled on that Grafana instance. Here are examples of how to do that:
- [Backend](https://github.com/grafana/grafana/blob/feb2b5878b3e3ec551d64872c35edec2a0187812/pkg/services/authn/clients/session.go#L57): Use the `IsEnabled` function and pass in your feature toggle.
- [Frontend](https://github.com/grafana/grafana/blob/feb2b5878b3e3ec551d64872c35edec2a0187812/public/app/features/search/service/folders.ts#L14): Check the config for your feature toggle.

View File

@@ -2,22 +2,22 @@
Grafana uses the [i18next](https://www.i18next.com/) framework for managing translating phrases in the Grafana frontend.
## TL;DR
## tl;dr
**Note:** We don't currently accept contributions for translations. Please don't submit pull requests translating `grafana.json` files - they will be rejected. We do accept contributions to mark up phrases for translation.
**Please note:** We do not currently accept contributions for translations. Please do not submit pull requests translating grafana.json files - they will be rejected. We do accept contributions to mark up phrases for translation.
- Use `<Trans i18nKey="search-results.panel-link">Go to {{ pageTitle }}</Trans>` in code to add a translatable phrase.
- Translations are stored in JSON files in `public/locales/{locale}/grafana.json`.
- If a particular phrase isn't available in a given language, then it will fall back to English.
- To update phrases in English, edit the default phrase in the component's source, and then run `make i18n-extract`.
- The single source of truth for `en-US` (fallback language) is in `grafana/grafana`, and the single source of truth for any translated language is Crowdin.
- Use `<Trans i18nKey="search-results.panel-link">Go to {{ pageTitle }}</Trans>` in code to add a translatable phrase
- Translations are stored in JSON files in `public/locales/{locale}/grafana.json`
- If a particular phrase is not available in the a language then it will fall back to English
- To update phrases in English, edit the default phrase in the component's source and then run `yarn i18n:extract`.
- The single source of truth for en-US (fallback language) is in grafana/grafana, the single source of truth for any translated language is Crowdin
- To update phrases in any translated language, edit the phrase in Crowdin. Do not edit the `{locale}/grafana.json`
## How to add a new translation phrase
### JSX
1. For JSX children, use the `<Trans />` component from `app/core/internationalization` with the `i18nKey`, ensuring it conforms to the following guidelines, with the default English translation. For example:
1. For JSX children, use the `<Trans />` component from `app/core/internationalization` with the `i18nKey`, ensuring it conforms to the guidelines below, with the default english translation. e.g.
```jsx
import { Trans } from 'app/core/internationalization';
@@ -29,20 +29,20 @@ const SearchTitle = ({ term }) => (
);
```
Prefer using `<Trans />` for JSX children, and `t()` for props and other JavaScript usage.
Prefer using `<Trans />` for JSX children, and `t()` for props and other javascript usage.
When translating in `grafana-ui`, use a relative path to import `<Trans />` and `t()` from `src/utils/i18n`.
When translating in grafana-ui, use a relative path to import `<Trans />` and `t()` from `src/utils/i18n`.
Note that our tooling must be able to statically analyze the code to extract the phrase, so the `i18nKey` can't be dynamic. For example: the following will not work:
Note that our tooling must be able to statically analyse the code to extract the phrase, so the `i18nKey` can not be dynamic. e.g. the following will not work:
```jsx
const ErrorMessage = ({ id, message }) => <Trans i18nKey={`errors.${id}`}>There was an error: {{ message }}</Trans>;
```
2. Upon reload, the default English phrase appears on the page.
2. Upon reload, the default English phrase will appear on the page.
3. Before submitting your PR, run the `make i18n-extract` command to extract the messages you added into the `public/locales/en-US/grafana.json` file and make them available for translation.
**Note:** All other languages receive their translations when they are ready to be downloaded from Crowdin.
3. Before submitting your PR, run the `yarn i18n:extract` command to extract the messages you added into the `public/locales/en-US/grafana.json` file and make them available for translation.
**Note:** All other languages will receive their translations when they are ready to be downloaded from Crowdin.
### Plain JS usage
@@ -62,40 +62,37 @@ Interpolating phrases is a bit more verbose. Make sure the placeholders in the s
const placeholder = t('page.greeting', 'Hello {{ username }}', { username });
```
While the `t` function can technically be used outside of React functions (for example, in actions or reducers), aim to keep all UI phrases within the React UI functions.
While the `t` function can technically be used outside of React functions (e.g, in actions/reducers), aim to keep all UI phrases within the React UI functions.
## How to add a new language
1. Add a new locale in Crowdin.
1. Go to the Grafana OSS Crowdin project.
2. In the top right, select the "dot dot dot" menu.
3. Under **Target languages**, add the language.
4. If Crowdin's locale code is different from our IETF language tag (such as Chinese Simplified), add a custom mapping in **Project Settings** -> **Language mapping**.
2. Sync the new (empty) language to the repo.
1. In Grafana's Github Actions, go to [Crowdin Download Action](https://github.com/grafana/grafana/actions/workflows/i18n-crowdin-download.yml).
2. From main, select **Run workflow**.
3. The workflow creates a PR with the new language files, which can be reviewed and merged.
3. Update `public/app/core/internationalization/constants.ts`.
1. Add a new constant for the new language.
2. Add the new constant to the `LOCALES` array.
3. Create a PR with the changes and merge when you are ready to release the new language (as a general rule, wait until we have translations for it).
4. In the Grafana Enterprise repo, update `src/public/locales/localeExtensions.ts`.
1. Add a new locale in Crowdin
1. Grafana OSS Crowdin project
2. "dot dot dot" menu in top right
3. Target languages, and add the language
4. If Crowdin's locale code is different from our IETF language tag (such as Chinese Simplified), add a custom mapping in Project Settings -> Language mapping
2. Sync the new (empty) language to the repo
1. In Grafana's Github Actions, go to [Crowdin Download Action](https://github.com/grafana/grafana/actions/workflows/i18n-crowdin-download.yml)
2. Select 'Run workflow', from main
3. The workflow will create a PR with the new language files, which can be reviewed and merged
3. Update `public/app/core/internationalization/constants.ts`
1. Add a new constant for the new language
2. Add the new constant to the `LOCALES` array
3. Create a PR with the changes and merge when you are ready to release the new language (probably wait until we have translations for it)
## How translations work in Grafana
Grafana uses the [i18next](https://www.i18next.com/) framework for managing translating phrases in the Grafana frontend. It:
- Marks up phrases within our code for extraction.
- Extracts phrases into the default messages catalog for translating in external systems.
- Manages the user's locale and puts the translated phrases in the UI.
- Marks up phrases within our code for extraction
- Extracts phrases into the default messages catalogue for translating in external systems
- Manages the user's locale and putting the translated phrases in the UI
Grafana loads the message catalog JSON before the initial render.
Grafana will load the message catalogue JSON before the initial render.
### Phrase ID naming convention
We set explicit IDs for phrases to make it easier to identify phrases out of context, and to track where they're used.
IDs follow a naming scheme that includes _where_ the phrase is used. The exception is the rare case of a single reoccurring word like "Cancel", but the default is to use a feature-specific phrase.
We set explicit IDs for phrases to make it easier to identify phrases out of context, and to track where they're used. IDs follow a naming scheme that includes _where_ the phrase is used. The exception is the rare case of single reoccuring words like "Cancel", but default to using a feature/phrase specific phrase.
Message IDs are made of _up to_ three segments in the format `feature.area.phrase`. For example:
@@ -109,11 +106,11 @@ For components used all over the site, use just two segments:
### I18next context
We rely on a global i18next singleton (that lives inside the i18next) for storing the i18next configuration.
We rely on a global i18next singleton (that lives inside the i18next) for storing the i18next config/context.
## Examples
Refer to the [i18next](https://www.i18next.com/) and [react-i18next](https://react.i18next.com/) documentation for more details.
See [i18next](https://www.i18next.com/) and [react-i18next](https://react.i18next.com/) documentation for more details.
### Basic usage
@@ -125,7 +122,7 @@ import { Trans } from 'app/core/internationalization';
<Trans i18nKey="page.greeting">Hello user!</Trans>;
```
To interpolate a variable, include it as an object child. It's a weird syntax, but `Trans` will do its magic to make it work:
To interpolate variables, include it as an object child. It's weird syntax, but Trans will do it's magic to make it work:
```jsx
import { Trans } from 'app/core/internationalization';
@@ -136,7 +133,7 @@ const userName = user.name;
<Trans i18nKey="page.greeting">Hello {{ userName }}!</Trans>;
```
Variables must be strings (or, must support calling `.toString()`, which we almost never want). For example:
Variables must be strings (or, must support calling `.toString()`, which we almost never want).
```jsx
import { Trans } from 'app/core/internationalization';
@@ -154,7 +151,7 @@ const userName = user.name;
### React components and HTML tags
Both HTML tags and React components can be included in a phase. The `Trans` function handles interpolating for its children.
Both HTML tags and React components can be included in a phase. The Trans function will handle interpolating it's children properly
```js
import { Trans } from "app/core/internationalization"
@@ -173,23 +170,23 @@ import { Trans } from "app/core/internationalization"
### Plurals
Plurals require special handling to make sure they can be translated according to the rules of each locale (which may be more complex than you think). Use either the `<Trans />` component or the `t` function, with the `count` prop to provide a singular form. For example:
Plurals require special handling to make sure they can be translating according to the rules of each locale (which may be more complex that you think!). Use either the `<Trans />` component or the `t` function, with the `count` prop to provide a singular form.
```js
import { Trans } from 'app/core/internationalization';
<Trans i18nKey="inbox.heading" count={messages.length}>
You got {{ count: messages.length }} messages
You got {{ count: messages.length }} message
</Trans>;
```
```js
import { t } from 'app/core/internationalization';
const translatedString = t('inbox.heading', 'You got {{count}} messages', { count: messages.length });
const translatedString = t('inbox.heading', 'You got {{count}} message', { count: messages.length });
```
Once extracted with `make i18n-extract` you need to manually edit the [English `grafana.json` message catalog](../public/locales/en-US/grafana.json) to correct the plural forms. Refer to the [react-i18next docs](https://react.i18next.com/latest/trans-component#plural) for more details.
Once extracted with `yarn i18n:extract` you will need to manually edit the [English grafana.json message catalogue](../public/locales/en-US/grafana.json) to correct the plural forms. See the [react-i18next docs](https://react.i18next.com/latest/trans-component#plural) for more details.
```json
{
@@ -202,19 +199,20 @@ Once extracted with `make i18n-extract` you need to manually edit the [English `
## Feedback
**Note:** This is only for proofreaders with permissions to the Grafana OSS project on Crowdin.
**Please note:** This is only for proofreaders with permissions to Grafana OSS project on Crowdin.
To provide feedback on translations, sign into Crowdin and follow these steps:
1. Open the Grafana OSS project in Crowdin.
1. On the left menu, click **Dashboard**. A list of available languages appears under the **Translations** section. Click the one you want to comment on.
1. There is a table with the file structure in it:
2. In the left-hand menu, click on the 'Dashboard' menu item.
3. A list of available languages appears under the 'Translations' section. Click on the one you want to comment on.
4. There is a table with the file structure in it:
<br>
`grafana/main > public > locales > 'language denomination' > grafana.json`
<br>
Click the `grafana.json` file.
1. In the left section, click the **Search in file** input. Search for the string that you want to comment on. You can search in English, as it's the default language, or in the language the string is translated into.
1. Once you have found the string, on the right hand side there is a **Comments** section where you can send your feedback about the translation. Tag `@Translated` to be sure the team of linguists gets notified.
Click on the `grafana.json` file.
5. In the left-hand section, click on the 'Search in file' input and search for the string that you want to comment on. You can search in English, as it is the default language, or in the language the string is translated to.
6. Once you have found the string, on the right hand side there is a 'Comments' section where you can send the feedback about the translation. Tag @Translated to be sure the team of linguists gets notified.
## Documentation

View File

@@ -1,24 +1,24 @@
# Merge a pull request
When a pull request has been reviewed and approved by at least one person and all checks have passed, then it's time to merge the pull request.
When a pull request has been reviewed and approved by at least one person and all checks have passed it's time to merge the pull request.
## Who is expected to merge a pull request?
Maintainers are responsible for merging all pull requests. If a maintainer has opened a pull request, then the general rule is that the same maintainer merges the pull request. If a non-maintainer has opened a pull request, then it's suggested that one of the maintainers who reviews the pull request should merge the pull request.
Maintainers are responsible for merging all pull requests. If a maintainer has opened a pull request the general rule is that the same maintainer merges the pull request. If a non-maintainer has opened a pull request it's suggested that one of the maintainers reviewing the pull request merges the pull request.
## Checklist of considerations
## Checklist/summary
Consider (and ask about) the items on the following checklist before merging a pull request:
The following checklist/summary should give you a quick overview of what to ask/consider before merging a pull request.
- Is it reviewed and approved?
- Have all checks passed?
- Does it have a proper pull request title?
- Does it need to be added to the changelog (release notes)?
- Does it need backporting?
- Reviewed and approved?
- All checks passed?
- Proper pull request title?
- Add to changelog/release notes?
- Needs backporting?
## Before merge
Before actually merging a pull request, consider the following things:
Before actually merging a pull request there's a couple of things to take into consideration.
### Status checks
@@ -30,73 +30,74 @@ The pull request title should be formatted according to `<Area>: <Summary>` (Bot
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 the [changelog](#include-in-changelog-and-release-notes).
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 (automated)
### Assign a milestone
The Grafana release process uses a bot to automatically assign pull requests to a milestone to make it easier for release managers to track changes. For example, [generating changelog (release note)](#include-in-changelog-and-release-notes) must be in a milestone.
Several things in the Grafana release process requires at least pull requests to be in a milestone, for example [generating changelog/release notes](#include-in-changelog-and-release-notes).
That being said, _you don't have to assign a milestone manually_ to a pull request. Instead, when it is merged and closed, a bot will then look for the most appropriate milestone and assign it to the pull request.
This makes it easier to track what changes go into a certain release. Without this information, release managers have to go through git commits which is not an efficient process.
The bot-assigned milestone should always reflect the branch into which the pull request is merged. For example:
That being said, _you don't have to assign a milestone manually_ to a pull request.
Instead, when it is merged & closed then a bot will look for the most appropriate miletone and assign it to the pull request.
- For every major and minor release, there is a milestone ending with `.x` (for example, `10.0.x` for the 10.0.x releases).
- Pull requests targeting `main` use the `.x` milestone of the next minor (or major) version (you can find that version number inside the `package.json` file).
- Backport pull requests use the version of the target branch (for example, `9.4.x` for the `v9.4.x` branch).
That milestone should always reflect the branch that the pull request is merged into.
For every major and minor release there is a milestone ending with `.x` (e.g. `10.0.x` for the 10.0.x releases).
Pull requests targeting `main` should use the `.x` milestone of the next minor (or major) version (you can find that version number inside the `package.json` file).
Backport pull requests should use the version of the target branch (e.g. `9.4.x` for the `v9.4.x` branch).
### What to include in changelog and release notes
### Include in changelog and release notes?
At Grafana we generate the [changelog](https://github.com/grafana/grafana/blob/main/CHANGELOG.md) and [release notes](https://grafana.com/docs/grafana/latest/release-notes/) based on merged pull requests. Including changes in the changelog (release notes) is very important to provide a relatively complete picture of what changes a Grafana release actually includes.
At Grafana we generate the [changelog](https://github.com/grafana/grafana/blob/main/CHANGELOG.md) and [release notes](https://grafana.com/docs/grafana/latest/release-notes/) based on merged pull requests. Including changes in the changelog/release notes is very important to provide a somewhat complete picture of what changes a Grafana release actually includes.
There's a GitHub action available in the repository named [Update changelog](https://github.com/grafana/grafana/blob/main/.github/workflows/update-changelog.yml) that can be triggered manually to re-generate the changelog and release notes for any release.
There's a GitHub action available in the repository named [Update changelog](https://github.com/grafana/grafana/blob/main/.github/workflows/update-changelog.yml) that can manually be triggered to re-generate the changelog and release notes for any release.
Exactly what changes should be added to the changelog is hard to answer but here's some general guidance:
- Include any bug fix in general.
- Include any change that you think would be interesting for the community as a whole.
- Skip larger features divided into multiple pull requests since they might go into the release's What's New article.
- Use your best judgement and, if you aren't sure, then ask other maintainers for advice.
- It's better to err on the side of inclusion. Introducing an unnecessary or duplicate change in the changelog is better than leaving out a change.
- Always keep the guidelines in [Format the pull request title](#format-the-pull-request-title) in mind.
- Skip larger features divided in multiple pull requests since they might go into the release blog post/What's New article.
- Use your best judgement and/or ask other maintainers for advice.
- Including a change in error rather than skipping one that should have been there is better.
- Always keep [Format the pull request title](#format-the-pull-request-title) in mind.
An active decision to include a change in the changelog needs to be taken for every pull request. There's a pull request check named **Changelog Check** that enforces this rule. By adding or removing labels on the pull request or updating the pull request title, description, or both, the check is re-evaluated.
An active decision to include change in changelog/release notes needs to be taken for every pull request. There's a pull request check named **Changelog Check** that will enforce this. By adding/removing labels on the pull request or updating the pull request title/description the check will be re-evaluated.
#### Skip changelog
If you don't want to include your change in changelog, you need to add a label named **no-changelog** to the pull request.
If you don't want to include your change in changelog/release notes you need to add a label named **no-changelog** to the pull request.
#### Include in changelog
#### Include in changelog/release notes
To include a pull request in the changelog, add a label named `add to changelog` to the pull request. Then the following additional validation rules are checked:
To include a pull request in the changelog/release notes you need to add a label named `add to changelog` to the pull request. Then additional validation rules is checked:
- The title must be formatted according to [Format the pull request title](#format-the-pull-request-title)
- The description must include a breaking change notice if the change is labeled to be a breaking change. Refer to [Breaking changes](#breaking-changes) below for more information.
- Title need to be formatted according to [Format the pull request title](#format-the-pull-request-title)
- Description needs to include a breaking change notice if change is labeled to be a breaking change, see Breaking changes below for more information.
Not complying with above rules can make the **Changelog Check** fail with validation errors.
The changelog is divided into various sections. Here's how to make a description of a pull request show up in a certain section of the release notes:
The changelog/release notes are divided into sections and here's a description of how you make a pull request show up in a certain section.
**Features and enhancements:**
Label the pull request with `add to changelog` and any of the other section rules don't apply.
Labeled with `add to changelog` and any of the other section rules don't apply.
**Bug fixes:**
Label the pull request with `add to changelog` and either label with `type/bug` or the pull request title contains `fix` or `fixes`.
Labeled with `add to changelog` and either labeled with `type/bug` or the pull request title contains `fix` or `fixes`.
**Plugin development fixes and changes:**
**Plugin development fixes & changes:**
Label the pull request with `area/grafana/ui` or `area/grafana/runtime`.
Labeled with `area/grafana/ui` or `area/grafana/runtime`.
**Deprecations:**
In case the pull request introduces a deprecation you should document this. Label the pull request with `add to changelog` and use the following template at the end of the pull request description to describe the deprecation change.
In case the pull request introduces a deprecation you should document this. Label the pull request with `add to changelog` and use the following template at the end of the pull request description describing the deprecation change.
```md
# Deprecation notice
@@ -106,7 +107,7 @@ In case the pull request introduces a deprecation you should document this. Labe
**Breaking changes:**
In case the pull request introduces a breaking change you should document this. Label the pull request with `add to changelog` and `breaking change` and use the following template at the end of the pull request description describing the breaking change:
In case the pull request introduces a breaking change you should document this. Label the pull request with `add to changelog` and `breaking change` and use the following template at the end of the pull request description describing the breaking change.
```md
# Release notice breaking change
@@ -117,44 +118,39 @@ In case the pull request introduces a breaking change you should document this.
### Backporting
Backporting is the process of copying the pull request into the version branch of one or multiple previous releases.
This is a rare exception, should only be done for _critical bug fixes_, and involves the intervention of a Grafana Labs employee.
Backporting is a rare exception, should only be done for _critical bug fixes_, and involves the intervention of a Grafana Labs employee.
If your pull request fixes a critical bug and needs to be backported, add it to the "Critical Bug Release" form so the team can approve the backport and know that a release needs to be made. Specify the correct `backport vx.x` labels for the releases to which the fix needs to be backported. Once approved, the backporting process continues.
If your pull request fixes a critical bug and needs to be backported, add it to the "Critical Bug Release" form so the team can approve the backport and know that a release needs to be made. Specify the correct `backport vx.x` labels for the releases the fix needs to be backported to. Once approved, the backporting process will continue from there.
#### Required labels
We aim to ensure that we don't backport pull requests unnecessarily. The only scenarios for backporting are typically pull requests that address bugs, have a product approval, or refer to documentation changes.
To ensure that we don't backport pull requests that don't need to be backported, i.e. implement new features, and only backport pull requests that address bugs, have a product approval, or refer to docs changes, backport labels need to be followed by either:
Backport labels need to be followed by either:
- `type/bug` label: Pull requests which address bugs
- `product-approved` label: Urgent fixes which need product approval, in order to get merged
- `type/docs` label: Docs changes
- `type/ci` label: Changes to the CI automation
- `type/bug` label: Pull requests which address bugs,
- `product-approved` label: Urgent fixes which need product approval, in order to get merged,
- `type/docs` label: Docs changes.
- `type/ci` label: Changes to the CI automation.
> **Note:** You can still backport a pull request after it's been merged.
## Doing the actual merge
The best time to actually merge the pull request varies from case to case. All commits in a pull request are squashed.
Time to actually merge the pull request changes. All commits in a pull request are squashed, hence the GitHub `Squash and merge` button is used to initialize the merge.
You can change the commit message before merging. Please remember that developers might use the commit information for tasks like reviewing changes of files, doing Git blame, and resolving merge conflicts.
This will present you with options allowing you to optionally change the commit message before merging. Please remember that developers might use the commit information when reviewing changes of files, doing git blame and resolving merge conflicts etc., trying to quickly figure out what the actual change was. But there's not really any best practices around this, the following is an attempt to bring some guidance.
While there aren't formal best practices around this process, you can consider the following guidance:
Do:
**Do:**
- Make sure the pull request title is formatted properly before merging. Doing so automatically gives you a good and short summary of the commit.
- Leave `Co-authored-by:` lines as is so that co-authors are credited for the contribution.
- Make sure the pull request title is formatted properly before merging, this will automatically give you a good and short summary of the commit/change.
- Leave `Co-authored-by:` lines as is so that co-authors will be accounted for the contribution.
- Remove any commit information that doesn't bring any context to the change.
**Consider:**
Consider:
- Keep any references to issues that the pull request fixes, closes, or references. Doing this allows cross-reference between the commit and referenced issue or issues.
- Add any references to issues that the pull request fixes/closes/references to ease giving quick context to things. Doing this allows cross-reference between the commit and referenced issue(s).
To finalize the merge, click the **Confirm squash and merge** button.
Finalize the merge by clicking on the `Confirm squash and merge` button.
## After the merge
Make sure to close any referenced or related issues. We recommend that you assign the same milestone on the issues that the pull request fixes or closes, but this isn't required.
Make sure to close any referenced/related issues. It's recommended to assign the same milestone on the issues that the pull request fixes/closes, but not required.

View File

@@ -1,6 +1,6 @@
# Triage issues
Triage helps ensure that GitHub issues resolve quickly by:
Triage helps ensure that issues resolve quickly by:
- Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took.
- Giving a contributor the information they need before they commit to resolving an issue.
@@ -11,11 +11,11 @@ This document gives you some ideas on what you can do to help. For more informat
## Improve issues
Improve issues by suggesting improvements to the title and description of the issue. If you think an issue has formatting issues, bad language, or grammatical errors, post a comment to let the author and maintainers know.
Improve issues by suggesting improvements to the title and description. If you think an issue has formatting issues, bad language, or grammatical errors, post a comment to let the author and maintainers know.
## Report resolved issues
If you think an issue has been resolved, or is no longer relevant, suggest that we close it. Add a comment on the issue in which you explain the reason that it should be closed. Make sure to include any related issues and pull requests.
If you think an issue has been resolved, or is no longer relevant, suggest us to close it. Add a comment on the issue, where you explain the reason it should be closed. Make sure to include any related issues and pull requests.
## Investigate issues
@@ -29,4 +29,4 @@ Read more about [how we prioritize issues](/ISSUE_TRIAGE.md#4-prioritization-of-
## Report duplicates
If you find two issues that describe the same thing, add a comment in one of the issues. In the comment, include a reference (`#<issue number>`) to the duplicate. Explain why you think the issue is duplicated.
If you find two issues that describe the same thing, add a comment in one of the issues, with a reference (`#<issue number>`) to the other. Explain why you think the issue is duplicated.

View File

@@ -3,7 +3,6 @@ apiVersion: 1
providers:
- name: 'Bulk dashboards'
folder: 'Bulk dashboards'
updateIntervalSeconds: 3600
type: file
options:
path: devenv/bulk-dashboards

View File

@@ -1,8 +1,5 @@
#!/bin/bash
echo "Deleting previous bulk folders"
find ./bulk-folders -type d -name "Bulk Folder*" -exec rm -rf "{}" \;
numberOfFolders=${1:-200}
numberOfDashboardsPerFolder=${2:-3}

View File

@@ -3,7 +3,6 @@ apiVersion: 1
providers:
- name: 'Bulk folders'
type: file
updateIntervalSeconds: 3600
options:
foldersFromFilesStructure: true
path: devenv/bulk-folders

View File

@@ -6,6 +6,6 @@ providers:
folderUid: ''
type: file
allowUiUpdates: false
updateIntervalSeconds: 3600
updateIntervalSeconds: 60
options:
path: devenv/dev-dashboards

View File

@@ -1,377 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 220,
"links": [
{
"asDropdown": false,
"icon": "external link",
"includeVars": false,
"keepTime": false,
"tags": [
"live-tests"
],
"targetBlank": false,
"title": "gdev live tests",
"tooltip": "",
"type": "dashboards",
"url": ""
}
],
"liveNow": true,
"panels": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 2,
"w": 24,
"x": 0,
"y": 0
},
"id": 9,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "## Note the consistent refresh rate (liveNow = true)",
"mode": "markdown"
},
"pluginVersion": "11.1.0-pre",
"type": "text"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 4,
"w": 11,
"x": 0,
"y": 2
},
"id": 2,
"options": {
"channel": {
"namespace": "devenv",
"path": "weather",
"scope": "stream"
},
"display": "none",
"json": {
"hello": "world"
},
"message": "weather,location=west,sensor=A temperature=82\nweather,location=east,sensor=A temperature=76",
"publish": "influx"
},
"title": "Enter weather data",
"type": "live"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 13,
"x": 11,
"y": 2
},
"id": 4,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"channel": "stream/devenv/weather",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Weather (values)",
"transformations": [
{
"id": "reduce",
"options": {
"includeTimeField": true,
"labelsToFields": false,
"mode": "reduceFields",
"reducers": [
"last"
]
}
}
],
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 7,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "always",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 6
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "stream/devenv/weather",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Manually entered weather points",
"type": "timeseries"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 7,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "always",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 13
},
"id": 10,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "plugin/testdata/random-flakey-stream",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Random flakey stream",
"type": "timeseries"
}
],
"schemaVersion": 39,
"tags": [
"gdev",
"live-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-30s",
"to": "now"
},
"timeRangeUpdatedDuringEditOrView": false,
"timepicker": {},
"timezone": "browser",
"title": "Live flakey stream (w/ liveNow)",
"uid": "liveddluze",
"version": 4,
"weekStart": ""
}

View File

@@ -1,377 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 220,
"links": [
{
"asDropdown": false,
"icon": "external link",
"includeVars": false,
"keepTime": false,
"tags": [
"live-tests"
],
"targetBlank": false,
"title": "gdev live tests",
"tooltip": "",
"type": "dashboards",
"url": ""
}
],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 2,
"w": 24,
"x": 0,
"y": 0
},
"id": 9,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "## Note the flakey refresh rate (liveNow = false). Also the time axis is not the same for all panels.",
"mode": "markdown"
},
"pluginVersion": "11.1.0-pre",
"type": "text"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 4,
"w": 11,
"x": 0,
"y": 2
},
"id": 2,
"options": {
"channel": {
"namespace": "devenv",
"path": "weather",
"scope": "stream"
},
"display": "none",
"json": {
"hello": "world"
},
"message": "weather,location=west,sensor=A temperature=82\nweather,location=east,sensor=A temperature=76",
"publish": "influx"
},
"title": "Enter weather data",
"type": "live"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 13,
"x": 11,
"y": 2
},
"id": 4,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"channel": "stream/devenv/weather",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Weather (values)",
"transformations": [
{
"id": "reduce",
"options": {
"includeTimeField": true,
"labelsToFields": false,
"mode": "reduceFields",
"reducers": [
"last"
]
}
}
],
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 7,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "always",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 6
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "stream/devenv/weather",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Manually entered weather points",
"type": "timeseries"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 7,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "always",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 13
},
"id": 10,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "plugin/testdata/random-flakey-stream",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Random flakey stream",
"type": "timeseries"
}
],
"schemaVersion": 39,
"tags": [
"gdev",
"live-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-30s",
"to": "now"
},
"timeRangeUpdatedDuringEditOrView": false,
"timepicker": {},
"timezone": "browser",
"title": "Live flakey stream",
"uid": "liveddluzy",
"version": 4,
"weekStart": ""
}

View File

@@ -19,22 +19,7 @@
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 209,
"links": [
{
"asDropdown": false,
"icon": "external link",
"includeVars": false,
"keepTime": false,
"tags": [
"live-tests"
],
"targetBlank": false,
"title": "gdev live tests",
"tooltip": "",
"type": "dashboards",
"url": ""
}
],
"links": [],
"panels": [
{
"datasource": {
@@ -196,7 +181,7 @@
"message": "weather,location=west,sensor=A temperature=90\nweather,location=east,sensor=A temperature=80",
"publish": "influx"
},
"title": "Timeseries with multiple streaming queries",
"title": "Panel Title",
"type": "live"
},
{
@@ -455,7 +440,7 @@
},
"timepicker": {},
"timezone": "browser",
"title": "Live publish test",
"title": "live test",
"uid": "addoomtlivedev",
"version": 17,
"weekStart": ""

View File

@@ -1,795 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 218,
"links": [
{
"asDropdown": false,
"icon": "external link",
"includeVars": false,
"keepTime": false,
"tags": [
"live-tests"
],
"targetBlank": false,
"title": "gdev live tests",
"tooltip": "",
"type": "dashboards",
"url": ""
}
],
"liveNow": true,
"panels": [
{
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.lineWidth",
"value": 3
},
{
"id": "color",
"value": {
"fixedColor": "super-light-blue",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Max"
},
"properties": [
{
"id": "custom.fillBelowTo",
"value": "Min"
},
{
"id": "custom.fillOpacity",
"value": 72
},
{
"id": "color",
"value": {
"fixedColor": "dark-blue",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Min"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "dark-blue",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 13,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "random-20Hz-stream",
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "live"
}
],
"title": "Random 20hs stream",
"type": "timeseries"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 7,
"x": 13,
"y": 0
},
"id": 5,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Time"
}
]
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 1,
"refId": "A"
}
],
"title": "Panel Title",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Time",
"Value"
]
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "blue",
"mode": "fixed"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 4,
"x": 20,
"y": 0
},
"id": 3,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 1,
"refId": "A"
}
],
"title": "Stats",
"transformations": [
{
"id": "reduce",
"options": {
"reducers": [
"lastNotNull",
"min",
"max",
"count"
]
}
}
],
"type": "stat"
},
{
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 13,
"x": 0,
"y": 7
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "random-2s-stream",
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "live"
}
],
"title": "Random 2s stream",
"type": "timeseries"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 7,
"x": 13,
"y": 7
},
"id": 6,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Time"
}
]
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 2,
"refId": "A"
}
],
"title": "Panel Title",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Time",
"Value"
]
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "blue",
"mode": "fixed"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 4,
"x": 20,
"y": 7
},
"id": 4,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 2,
"refId": "A"
}
],
"title": "Stats",
"transformations": [
{
"id": "reduce",
"options": {
"reducers": [
"lastNotNull",
"min",
"max",
"count"
]
}
}
],
"type": "stat"
},
{
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 13,
"x": 0,
"y": 14
},
"id": 7,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "random-labeled-stream",
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "live"
}
],
"title": "Random Labeled streams",
"type": "timeseries"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 11,
"x": 13,
"y": 14
},
"id": 8,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Time"
}
]
},
"pluginVersion": "11.1.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 7,
"refId": "A"
}
],
"title": "Labeled structure",
"type": "table"
}
],
"schemaVersion": 39,
"tags": [
"gdev",
"live-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-1m",
"to": "now"
},
"timeRangeUpdatedDuringEditOrView": false,
"timepicker": {},
"timezone": "browser",
"title": "Live streaming examples",
"uid": "liveb94wbb",
"version": 9,
"weekStart": ""
}

View File

@@ -88,7 +88,7 @@
"id": "links",
"value": [
{
"title": "${__data.fields.id}/${__field.name}/${__value.raw}",
"title": "google",
"url": "google.com"
},
{
@@ -114,8 +114,8 @@
"id": "links",
"value": [
{
"title": "${__data.fields.id}/${__field.name}/${__value.raw}",
"url": ""
"title": "datalink column 2",
"url": "grafana.com"
}
]
},
@@ -906,6 +906,6 @@
"timezone": "",
"title": "Panel Tests - Bar Chart Tooltips & Legends",
"uid": "ea33320b-bd97-4fe1-a27c-24bc61a48b41",
"version": 5,
"version": 1,
"weekStart": ""
}

View File

@@ -93,7 +93,6 @@
},
"id": 1,
"options": {
"infinitePan": false,
"inlineEditing": false,
"panZoom": false,
"root": {
@@ -488,16 +487,23 @@
},
{
"background": {
"fixed": "#D9D9D9"
"color": {
"fixed": "transparent"
}
},
"border": {
"color": {
"fixed": "transparent"
},
"width": 1
"fixed": "dark-green"
}
},
"config": {
"align": "center",
"backgroundColor": {
"fixed": "#D9D9D9"
},
"borderColor": {
"fixed": "transparent"
},
"color": {
"fixed": "#000000"
},
@@ -505,7 +511,8 @@
"field": "A-hehwzd",
"mode": "field"
},
"valign": "middle"
"valign": "middle",
"width": 1
},
"constraint": {
"horizontal": "left",
@@ -522,16 +529,23 @@
},
{
"background": {
"fixed": "#D9D9D9"
"color": {
"fixed": "transparent"
}
},
"border": {
"color": {
"fixed": "transparent"
},
"width": 1
"fixed": "dark-green"
}
},
"config": {
"align": "center",
"backgroundColor": {
"fixed": "#D9D9D9"
},
"borderColor": {
"fixed": "transparent"
},
"color": {
"field": "A-hehwzd",
"fixed": "#000000"
@@ -539,7 +553,8 @@
"text": {
"fixed": "Text color"
},
"valign": "middle"
"valign": "middle",
"width": 1
},
"constraint": {
"horizontal": "left",
@@ -556,28 +571,35 @@
},
{
"background": {
"fixed": "#D9D9D9",
"color": {
"fixed": "transparent"
},
"image": {
"field": "Count (transformation)",
"fixed": "",
"mode": "field"
}
},
"border": {
"color": {
"fixed": "transparent"
},
"width": 1
"fixed": "dark-green"
}
},
"config": {
"align": "center",
"backgroundColor": {
"fixed": "#D9D9D9"
},
"borderColor": {
"fixed": "transparent"
},
"color": {
"fixed": "#000000"
},
"text": {
"fixed": "Background image"
},
"valign": "middle"
"valign": "middle",
"width": 1
},
"constraint": {
"horizontal": "left",
@@ -587,32 +609,40 @@
"placement": {
"height": 50,
"left": 530,
"top": 248.33333333333334,
"width": 187.99997965494794
"top": 249,
"width": 188
},
"type": "ellipse"
},
{
"background": {
"fixed": "#D9D9D9"
"color": {
"fixed": "transparent"
}
},
"border": {
"color": {
"field": "A-hehwzd",
"fixed": "transparent"
"fixed": "dark-green"
},
"radius": 0,
"width": 2
},
"config": {
"align": "center",
"backgroundColor": {
"fixed": "#D9D9D9"
},
"borderColor": {
"fixed": "transparent"
},
"color": {
"fixed": "#000000"
},
"text": {
"fixed": "Border"
},
"valign": "middle"
"valign": "middle",
"width": 1
},
"constraint": {
"horizontal": "left",
@@ -622,8 +652,8 @@
"placement": {
"height": 50,
"left": 530,
"top": 328.33333333333337,
"width": 187.99997965494794
"top": 328,
"width": 188
},
"type": "ellipse"
},
@@ -764,9 +794,9 @@
"name": "Element 18",
"placement": {
"height": 50,
"left": 798.3333333333334,
"top": 248.33333333333334,
"width": 187.99997965494794
"left": 798,
"top": 249,
"width": 188
},
"type": "rectangle"
},
@@ -800,9 +830,9 @@
"name": "Element 19",
"placement": {
"height": 50,
"left": 798.3333333333334,
"top": 328.33333333333337,
"width": 187.99235026041669
"left": 798,
"top": 328,
"width": 188
},
"type": "rectangle"
},
@@ -1901,7 +1931,6 @@
"placement": {
"height": 100,
"left": 0,
"rotation": 0,
"top": 0,
"width": 100
},
@@ -1909,7 +1938,7 @@
},
"showAdvancedTypes": true
},
"pluginVersion": "11.1.0-pre",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -3444,6 +3473,6 @@
"timezone": "browser",
"title": "Panel Tests - Canvas Datalinks",
"uid": "adf95uwu7w1s0e",
"version": 10,
"version": 1,
"weekStart": ""
}

File diff suppressed because one or more lines are too long

View File

@@ -946,7 +946,7 @@
},
"gridPos": {
"h": 12,
"w": 6,
"w": 12,
"x": 0,
"y": 32
},
@@ -1830,315 +1830,6 @@
],
"title": "Multi-series Temperature vs Humidity",
"type": "xychart"
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "red",
"mode": "continuous-BlYlRd"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 1,
"pointSize": {
"fixed": 5
},
"scaleDistribution": {
"type": "linear"
},
"show": "points"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 6,
"x": 6,
"y": 32
},
"id": 12,
"options": {
"dims": {
"frame": 0
},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"series": [
{
"name": "Price",
"pointColor": {
"field": "Price",
"fixed": "#fade2a40"
},
"pointSize": {
"fixed": 10,
"max": 50,
"min": 1
},
"x": "Lat",
"y": "Lng"
}
],
"seriesMapping": "manual",
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"csvFileName": "flight_info_by_state.csv",
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "Color by field (gradient)",
"type": "xychart"
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "red",
"mode": "thresholds"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 1,
"pointSize": {
"fixed": 5
},
"scaleDistribution": {
"type": "linear"
},
"show": "points"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 500
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 6,
"x": 12,
"y": 32
},
"id": 13,
"options": {
"dims": {
"frame": 0
},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"series": [
{
"name": "Price",
"pointColor": {
"field": "Price",
"fixed": "#fade2a40"
},
"pointSize": {
"fixed": 10,
"max": 50,
"min": 1
},
"x": "Lat",
"y": "Lng"
}
],
"seriesMapping": "manual",
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"csvFileName": "flight_info_by_state.csv",
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "Color by field (threshold)",
"type": "xychart"
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "red",
"mode": "thresholds"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 1,
"pointSize": {
"fixed": 5
},
"scaleDistribution": {
"type": "linear"
},
"show": "points"
},
"mappings": [
{
"options": {
"700": {
"color": "purple",
"index": 0
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 6,
"x": 18,
"y": 32
},
"id": 14,
"options": {
"dims": {
"frame": 0
},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"series": [
{
"name": "Price",
"pointColor": {
"field": "Price",
"fixed": "#fade2a40"
},
"pointSize": {
"fixed": 10,
"max": 50,
"min": 1
},
"x": "Lat",
"y": "Lng"
}
],
"seriesMapping": "manual",
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"csvFileName": "flight_info_by_state.csv",
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "Color by field (value mappings)",
"type": "xychart"
}
],
"refresh": "",
@@ -2146,7 +1837,7 @@
"tags": [
"gdev",
"panel-tests",
"graph-ng"
"xychat"
],
"templating": {
"list": []
@@ -2157,7 +1848,7 @@
},
"timepicker": {},
"timezone": "",
"title": "Panel Tests - XY Chart migrations",
"title": "Panel Tests - XY Chart",
"uid": "YObbMr44k",
"version": 1,
"weekStart": ""

View File

@@ -28,3 +28,4 @@ by the `devenv` target.
- [openldap](./openldap)
- [openldap-multiple](./openldap-multiple)
- [prometheus_basic_auth_proxy](./prometheus_basic_auth_proxy)
- [saml](./saml)

View File

@@ -3014,7 +3014,7 @@ c8b506a5-ae32-481a-8b0c-e81a624b4dcf true access.token.claim
--
COPY public.realm (id, access_code_lifespan, user_action_lifespan, access_token_lifespan, account_theme, admin_theme, email_theme, enabled, events_enabled, events_expiration, login_theme, name, not_before, password_policy, registration_allowed, remember_me, reset_password_allowed, social, ssl_required, sso_idle_timeout, sso_max_lifespan, update_profile_on_soc_login, verify_email, master_admin_client, login_lifespan, internationalization_enabled, default_locale, reg_email_as_username, admin_events_enabled, admin_events_details_enabled, edit_username_allowed, otp_policy_counter, otp_policy_window, otp_policy_period, otp_policy_digits, otp_policy_alg, otp_policy_type, browser_flow, registration_flow, direct_grant_flow, reset_credentials_flow, client_auth_flow, offline_session_idle_timeout, revoke_refresh_token, access_token_life_implicit, login_with_email_allowed, duplicate_emails_allowed, docker_auth_flow, refresh_token_max_reuse, allow_user_managed_access, sso_max_lifespan_remember_me, sso_idle_timeout_remember_me, default_role) FROM stdin;
grafana 60 300 300 \N \N \N t f 0 \N grafana 1666795300 \N f f f f NONE 1800 36000 f f ef7f6eac-9fff-44aa-a86c-5125d52acc82 1800 f \N f f f f 0 1 30 6 HmacSHA1 totp a38aeb47-f27e-4e68-82ff-7cc7371a47a7 9d02badd-cb1c-4655-bf5e-f888861433ff b478ecfb-db7e-4797-a245-8fc3b4dec884 3085fb68-fc1f-4e1c-a8be-33fb45194b04 cbb4b3ca-ced6-4046-8b59-f1c3959c7948 2592000 f 900 t f 95e02703-f5bc-4e04-8bef-f6adc2d8173f 0 f 0 0 97053b1d-6647-46b5-893b-bdb9b850a33a
grafana 60 300 300 \N \N \N t f 0 \N grafana 1666795300 \N f f f f EXTERNAL 1800 36000 f f ef7f6eac-9fff-44aa-a86c-5125d52acc82 1800 f \N f f f f 0 1 30 6 HmacSHA1 totp a38aeb47-f27e-4e68-82ff-7cc7371a47a7 9d02badd-cb1c-4655-bf5e-f888861433ff b478ecfb-db7e-4797-a245-8fc3b4dec884 3085fb68-fc1f-4e1c-a8be-33fb45194b04 cbb4b3ca-ced6-4046-8b59-f1c3959c7948 2592000 f 900 t f 95e02703-f5bc-4e04-8bef-f6adc2d8173f 0 f 0 0 97053b1d-6647-46b5-893b-bdb9b850a33a
master 60 300 60 \N \N \N t f 0 \N master 1643820855 \N f f f f EXTERNAL 1800 36000 f f 3cd285ea-0f6e-43b6-ab5c-d021c33a551b 1800 f \N f f f f 0 1 30 6 HmacSHA1 totp ef998ef5-ca12-45db-a252-2e71b1419039 1695e7d2-ad80-4502-8479-8121a6e2a2f0 5f6f801e-0588-4a6e-860a-35483f5c1ec7 954b046d-2b24-405e-84ee-c44ffe603df2 023dc515-c259-42bb-88a8-2e8d84abca92 2592000 f 900 t f 032b05cf-0007-44da-a370-b42039f6b762 0 f 0 0 43359527-1d84-45cd-8565-8fae0f00847b
\.

View File

@@ -1,5 +1,5 @@
mimir_backend:
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-validate_grafana_am_config-1e903e462-WIP
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
container_name: mimir_backend
command:
- -target=backend

View File

@@ -7,7 +7,6 @@
command: >
--enable-feature=remote-write-receiver
--enable-feature=exemplar-storage
--enable-feature=native-histograms
--config.file=/etc/prometheus/prometheus.yml
--storage.tsdb.path=/prometheus
volumes:
@@ -46,7 +45,7 @@
- --server.http.listen-addr=0.0.0.0:12345
- /etc/agent/config.river
volumes:
- ./docker/blocks/self-instrumentation/agent.flow:/etc/agent/config.river
- ./docker/blocks/self-instrumentation/agent.flow:/etc/agent/config.river
ports:
- "12345:12345"
- "12347:12347"

View File

@@ -4,7 +4,6 @@ global:
scrape_configs:
- job_name: grafana
scrape_classic_histograms: true
static_configs:
- targets:
- host.docker.internal:3000

View File

@@ -35,7 +35,7 @@ storage:
trace:
backend: local # backend configuration to use
wal:
path: /tmp/tempo/wal # where to store the wal locally
path: /tmp/tempo/wal # where to store the the wal locally
local:
path: /tmp/tempo/blocks

View File

@@ -44,7 +44,7 @@ storage:
v2_index_downsample_bytes: 1000 # number of bytes per index record
v2_encoding: zstd # block encoding/compression. options: none, gzip, lz4-64k, lz4-256k, lz4-1M, lz4, snappy, zstd, s2
wal:
path: /tmp/tempo/wal # where to store the wal locally
path: /tmp/tempo/wal # where to store the the wal locally
v2_encoding: snappy # wal encoding/compression. options: none, gzip, lz4-64k, lz4-256k, lz4-1M, lz4, snappy, zstd, s2
local:
path: /tmp/tempo/blocks

View File

@@ -59,10 +59,7 @@
"join-by-labels": (import '../dev-dashboards/transforms/join-by-labels.json'),
"lazy_loading": (import '../dev-dashboards/panel-common/lazy_loading.json'),
"linked-viz": (import '../dev-dashboards/panel-common/linked-viz.json'),
"live-flakey": (import '../dev-dashboards/live/live-flakey.json'),
"live-flakey-refresh": (import '../dev-dashboards/live/live-flakey-refresh.json'),
"live-publish": (import '../dev-dashboards/live/live-publish.json'),
"live-streams": (import '../dev-dashboards/live/live-streams.json'),
"loki_fakedata": (import '../dev-dashboards/datasource-loki/loki_fakedata.json'),
"loki_query_splitting": (import '../dev-dashboards/datasource-loki/loki_query_splitting.json'),
"migrations": (import '../dev-dashboards/migrations/migrations.json'),
@@ -130,8 +127,7 @@
"timeseries-y-ticks-zero-decimals": (import '../dev-dashboards/panel-timeseries/timeseries-y-ticks-zero-decimals.json'),
"timeseries-yaxis-ticks": (import '../dev-dashboards/panel-timeseries/timeseries-yaxis-ticks.json'),
"trend_example": (import '../dev-dashboards/panel-trend/trend_example.json'),
"xychart-demo": (import '../dev-dashboards/panel-xychart/xychart-demo.json'),
"xychart-migrations": (import '../dev-dashboards/panel-xychart/xychart-migrations.json'),
"xychart-example": (import '../dev-dashboards/panel-xychart/xychart-example.json'),
"xychart-tooltip-color-test": (import '../dev-dashboards/panel-xychart/xychart-tooltip-color-test.json'),
},
}

View File

@@ -6,6 +6,15 @@
# [Semantic versioning](https://semver.org/) is used to help the reader identify the significance of changes.
# Changes are relevant to this script and the support docs.mk GNU Make interface.
#
# ## 8.0.1 (2024-07-01)
#
# ### Fixed
#
# - Update log suppression to catch new format of website /docs/ homepage REF_NOT_FOUND warnings.
#
# These warnings are related to missing some pages during the build that are required for the /docs/ homepage.
# They were previously suppressed but the log format changed and without this change they reappear in the latest builds.
#
# ## 8.0.0 (2024-05-28)
#
# ### Changed
@@ -905,7 +914,7 @@ EOF
-e '/Press Ctrl+C to stop/ d' \
-e '/make/ d' \
-e '/WARNING: The manual_mount source directory/ d' \
-e '/docs\/_index.md .* not found/ d'
-e '/"docs\/_index.md" not found/d'
fi
;;
esac

View File

@@ -49,7 +49,7 @@ To follow these instructions, you need at least one of the following:
### Steps
To create an API, complete the following steps:
To create an API key, complete the following steps:
1. Sign in to Grafana.
1. Click **Administration** in the left-side menu, **Users and access**, and select **API Keys**.

View File

@@ -35,8 +35,6 @@ To set up Team LBAC for a Loki data source, refer to [Configure Team LBAC](https
## Limitations
- There is a set number of rules to be configured within a datasource, depending on the size of the rules.
- Around ~500-600 rules is the upper limit.
- If there are no Team LBAC rules for a user's team, that user can query all logs.
- If an administrator is part of a team with Team LBAC rules, those rules are applied to the administrator requests.
- Cloud Access Policies (CAP) LBAC rules override Team LBAC rules.

View File

@@ -123,14 +123,3 @@ A user that is part of Team A will have access to logs that match `namespace="de
A user that is part of Team A and part of Team B will have access to logs that match `namespace="dev"`.
A user that is not part of Team A and part of Team B, that is `Editor` or `Viewer` will have access to all logs (due to the query permission for the user).
### Task 6: User A is Admin and part of Team B
We have team B, user A is part of Team B and has an `Admin` basic role.
- Team B has no roles assigned
- Team B has Query permissions to data source Loki
- Team B has a rule `{ project_id="project-dev" }`
User A may only access logs for data source Loki that match `{ project_id="project-dev" }` and no other logs on the data source.

View File

@@ -81,14 +81,6 @@ If the data source already exists, Grafana reconfigures it to match the provisio
The configuration file can also list data sources to automatically delete, called `deleteDatasources`.
Grafana deletes the data sources listed in `deleteDatasources` _before_ adding or updating those in the `datasources` list.
You can configure Grafana to automatically delete provisioned data sources when they're removed from the provisioning file.
To do so, add `prune: true` to the root of your provisioning file.
With this configuration, Grafana also removes the provisioned data sources if you remove the provisioning file entirely.
{{% admonition type="note" %}}
The `prune` parameter is available in Grafana v11.1 and higher.
{{% /admonition %}}
### Running multiple Grafana instances
If you run multiple instances of Grafana, add a version number to each data source in the configuration and increase it when you update the configuration.
@@ -108,10 +100,6 @@ deleteDatasources:
- name: Graphite
orgId: 1
# Mark provisioned data sources for deletion if they are no longer in a provisioning file.
# It takes no effect if data sources are already listed in the deleteDatasources section.
prune: true
# List of data sources to insert/update depending on what's
# available in the database.
datasources:

View File

@@ -29,144 +29,140 @@ To learn more about the Grafana resources to which you can apply RBAC, refer to
The following list contains role-based access control actions.
| Action | Applicable scope | Description |
| ------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `alert.instances.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alerts and silences in data sources that support alerting. |
| `alert.instances.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage alerts and silences in data sources that support alerting. |
| `alert.instances:create` | n/a | Create silences in the current organization. |
| `alert.instances:read` | n/a | Read alerts and silences in the current organization. |
| `alert.instances:write` | n/a | Update and expire silences in the current organization. |
| `alert.notifications.external:read` | `datasources:*`<br>`datasources:uid:*` | Read templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications:write` | n/a | Manage templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.notifications:read` | n/a | Read all templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.rules.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alert rules in data sources that support alerting (Prometheus, Mimir, and Loki) |
| `alert.rules.external:write` | `datasources:*`<br>`datasources:uid:*` | Create, update, and delete alert rules in data sources that support alerting (Mimir and Loki). |
| `alert.rules:create` | `folders:*`<br>`folders:uid:*` | Create Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:delete` | `folders:*`<br>`folders:uid:*` | Delete Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:read` | `folders:*`<br>`folders:uid:*` | Read Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:write` | `folders:*`<br>`folders:uid:*` | Update Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.silences:create` | `folders:*`<br>`folders:uid:*` | Create rule-specific silences in a folder and its subfolders. |
| `alert.silences:read` | `folders:*`<br>`folders:uid:*` | Read general and rule-specific silences in a folder and its subfolders. |
| `alert.silences:write` | `folders:*`<br>`folders:uid:*` | Update and expire rule-specific silences in a folder and its subfolders. |
| `alert.provisioning:read` | n/a | Read all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `alert.provisioning.secrets:read` | n/a | Same as `alert.provisioning:read` plus ability to export resources with decrypted secrets. |
| `alert.provisioning:write` | n/a | Update all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `alert.provisioning.provenance:write` | n/a | Set provisioning status for alerting resources. Cannot be used alone. Requires user to have permissions to access resources |
| `annotations:create` | `annotations:*`<br>`annotations:type:*` | Create annotations. |
| `annotations:delete` | `annotations:*`<br>`annotations:type:*` | Delete annotations. |
| `annotations:read` | `annotations:*`<br>`annotations:type:*` | Read annotations and annotation tags. |
| `annotations:write` | `annotations:*`<br>`annotations:type:*` | Update annotations. |
| `apikeys:create` | n/a | Create API keys. |
| `apikeys:read` | `apikeys:*`<br>`apikeys:id:*` | Read API keys. |
| `apikeys:delete` | `apikeys:*`<br>`apikeys:id:*` | Delete API keys. |
| `dashboards:create` | `folders:*`<br>`folders:uid:*` | Create dashboards in one or more folders and their subfolders. |
| `dashboards:delete` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Delete one or more dashboards. |
| `dashboards.insights:read` | n/a | Read dashboard insights data and see presence indicators. |
| `dashboards.permissions:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read permissions for one or more dashboards. |
| `dashboards.permissions:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update permissions for one or more dashboards. |
| `dashboards:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read one or more dashboards. |
| `dashboards:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update one or more dashboards. |
| `dashboards.public:write` | `dashboards:*`<br>`dashboards:uid:*` | Write public dashboard configuration. |
| `datasources.caching:read` | `datasources:*`<br>`datasources:uid:*` | Read data source query caching settings. |
| `datasources.caching:write` | `datasources:*`<br>`datasources:uid:*` | Update data source query caching settings. |
| `datasources:create` | n/a | Create data sources. |
| `datasources:delete` | `datasources:*`<br>`datasources:uid:*` | Delete data sources. |
| `datasources:explore` | n/a | Enable access to the **Explore** tab. |
| `datasources.id:read` | `datasources:*`<br>`datasources:uid:*` | Read data source IDs. |
| `datasources.insights:read` | n/a | Read data sources insights data. |
| `datasources.permissions:read` | `datasources:*`<br>`datasources:uid:*` | List data source permissions. |
| `datasources.permissions:write` | `datasources:*`<br>`datasources:uid:*` | Update data source permissions. |
| `datasources:query` | `datasources:*`<br>`datasources:uid:*` | Query data sources. |
| `datasources:read` | `datasources:*`<br>`datasources:uid:*` | List data sources. |
| `datasources:write` | `datasources:*`<br>`datasources:uid:*` | Update data sources. |
| `featuremgmt.read` | n/a | Read feature toggles. |
| `featuremgmt.write` | n/a | Write feature toggles. |
| `folders.permissions:read` | `folders:*`<br>`folders:uid:*` | Read permissions for one or more folders and their subfolders. |
| `folders.permissions:write` | `folders:*`<br>`folders:uid:*` | Update permissions for one or more folders and their subfolders. |
| `folders:create` | n/a | Create folders in the root level. If granted together with `folders:write`, also allows creating subfolders under all folders that the user can update. |
| `folders:delete` | `folders:*`<br>`folders:uid:*` | Delete one or more folders and their subfolders. |
| `folders:read` | `folders:*`<br>`folders:uid:*` | Read one or more folders and their subfolders. |
| `folders:write` | `folders:*`<br>`folders:uid:*` | Update one or more folders and their subfolders. If granted together with `folders:create` permission, also allows creating subfolders under these folders. |
| `ldap.config:reload` | n/a | Reload the LDAP configuration. |
| `ldap.status:read` | n/a | Verify the availability of the LDAP server or servers. |
| `ldap.user:read` | n/a | Read users via LDAP. |
| `ldap.user:sync` | n/a | Sync users via LDAP. |
| `library.panels:create` | `folders:*` <br> `folders:uid:*` | Create a library panel in one or more folders and their subfolders. |
| `library.panels:read` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Read one or more library panels. |
| `library.panels:write` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Update one or more library panels. |
| `library.panels:delete` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Delete one or more library panels. |
| `licensing.reports:read` | n/a | Get custom permission reports. |
| `licensing:delete` | n/a | Delete the license token. |
| `licensing:read` | n/a | Read licensing information. |
| `licensing:write` | n/a | Update the license token. |
| `org.users:write` | `users:*` <br> `users:id:*` | Update the organization role (`None`, `Viewer`, `Editor`, or `Admin`) of a user. |
| `org.users:add` | `users:*` <br> `users:id:*` | Add a user to an organization or invite a new user to an organization. |
| `org.users:read` | `users:*` <br> `users:id:*` | Get user profiles within an organization. |
| `org.users:remove` | `users:*` <br> `users:id:*` | Remove a user from an organization. |
| `orgs.preferences:read` | n/a | Read organization preferences. |
| `orgs.preferences:write` | n/a | Update organization preferences. |
| `orgs.quotas:read` | n/a | Read organization quotas. |
| `orgs.quotas:write` | n/a | Update organization quotas. |
| `orgs:create` | n/a | Create an organization. |
| `orgs:delete` | n/a | Delete one or more organizations. |
| `orgs:read` | n/a | Read one or more organizations. |
| `orgs:write` | n/a | Update one or more organizations. |
| `plugins.app:access` | `plugins:*` <br> `plugins:id:*` | Access one or more application plugins (still enforcing the organization role) |
| `plugins:install` | n/a | Install and uninstall plugins. |
| `plugins:write` | `plugins:*` <br> `plugins:id:*` | Edit settings for one or more plugins. |
| `provisioning:reload` | `provisioners:*` | Reload provisioning files. To find the exact scope for specific provisioner, see [Scope definitions]({{< relref "#scope-definitions" >}}). |
| `reports:create` | n/a | Create reports. |
| `reports:write` | `reports:*` <br> `reports:id:*` | Update reports. |
| `reports.settings:read` | n/a | Read report settings. |
| `reports.settings:write` | n/a | Update report settings. |
| `reports:delete` | `reports:*` <br> `reports:id:*` | Delete reports. |
| `reports:read` | `reports:*` <br> `reports:id:*` | List all available reports or get a specific report. |
| `reports:send` | `reports:*` <br> `reports:id:*` | Send a report email. |
| `roles:delete` | `permissions:type:delegate` | Delete a custom role. |
| `roles:read` | `roles:*` <br> `roles:uid:*` | List roles and read a specific role with its permissions. |
| `roles:write` | `permissions:type:delegate` | Create or update a custom role. |
| `roles:write` | `permissions:type:escalate` | Reset basic roles to their default permissions. |
| `server.stats:read` | n/a | Read Grafana instance statistics. |
| `server.usagestats.report:read` | n/a | View usage statistics report. |
| `serviceaccounts:write` | `serviceaccounts:*` | Create Grafana service accounts. |
| `serviceaccounts:create` | n/a | Update Grafana service accounts. |
| `serviceaccounts:delete` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Delete Grafana service accounts. |
| `serviceaccounts:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service accounts. |
| `serviceaccounts.permissions:write` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Update Grafana service account permissions to control who can do what with the service account. |
| `serviceaccounts.permissions:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service account permissions to see who can do what with the service account. |
| `settings:read` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Read the [Grafana configuration settings]({{< relref "../../../../setup-grafana/configure-grafana/" >}}) |
| `settings:write` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Update any Grafana configuration settings that can be [updated at runtime]({{< relref "../../../../setup-grafana/configure-grafana/settings-updates-at-runtime" >}}). |
| `support.bundles:create` | n/a | Create support bundles. |
| `support.bundles:delete` | n/a | Delete support bundles. |
| `support.bundles:read` | n/a | List and download support bundles. |
| `status:accesscontrol` | `services:accesscontrol` | Get access-control enabled status. |
| `teams.permissions:read` | `teams:*`<br>`teams:id:*` | Read members and Team Sync setup for teams. |
| `teams.permissions:write` | `teams:*`<br>`teams:id:*` | Add, remove and update members and manage Team Sync setup for teams. |
| `teams.roles:add` | `permissions:type:delegate` | Assign a role to a team. |
| `teams.roles:read` | `teams:*`<br>`teams:id:*` | List roles assigned directly to a team. |
| `teams.roles:remove` | `permissions:type:delegate` | Unassign a role from a team. |
| `teams:create` | n/a | Create teams. |
| `teams:delete` | `teams:*`<br>`teams:id:*` | Delete one or more teams. |
| `teams:read` | `teams:*`<br>`teams:id:*` | Read one or more teams and team preferences. To list teams through the UI one of the following permissions is required in addition to `teams:read`: `teams:write`, `teams.permissions:read` or `teams.permissions:write`. |
| `teams:write` | `teams:*`<br>`teams:id:*` | Update one or more teams and team preferences. |
| `users.authtoken:read` | `global.users:*` <br> `global.users:id:*` | List authentication tokens that are assigned to a user. |
| `users.authtoken:write` | `global.users:*` <br> `global.users:id:*` | Update authentication tokens that are assigned to a user. |
| `users.password:write` | `global.users:*` <br> `global.users:id:*` | Update a users password. |
| `users.permissions:read` | `users:*` | List permissions of a user. |
| `users.permissions:write` | `global.users:*` <br> `global.users:id:*` | Update a users organization-level permissions. |
| `users.quotas:read` | `global.users:*` <br> `global.users:id:*` | List a users quotas. |
| `users.quotas:write` | `global.users:*` <br> `global.users:id:*` | Update a users quotas. |
| `users.roles:add` | `permissions:type:delegate` | Assign a role to a user or a service account. |
| `users.roles:read` | `users:*` | List roles assigned directly to a user or a service account. |
| `users.roles:remove` | `permissions:type:delegate` | Unassign a role from a user or a service account. |
| `users:create` | n/a | Create a user. |
| `users:delete` | `global.users:*` <br> `global.users:id:*` | Delete a user. |
| `users:disable` | `global.users:*` <br> `global.users:id:*` | Disable a user. |
| `users:enable` | `global.users:*` <br> `global.users:id:*` | Enable a user. |
| `users:logout` | `global.users:*` <br> `global.users:id:*` | Sign out a user. |
| `users:read` | `global.users:*` | Read or search user profiles. |
| `users:write` | `global.users:*` <br> `global.users:id:*` | Update a users profile. |
| Action | Applicable scope | Description |
| ------------------------------------ | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `alert.instances.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alerts and silences in data sources that support alerting. |
| `alert.instances.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage alerts and silences in data sources that support alerting. |
| `alert.instances:create` | n/a | Create silences in the current organization. |
| `alert.instances:read` | n/a | Read alerts and silences in the current organization. |
| `alert.instances:write` | n/a | Update and expire silences in the current organization. |
| `alert.notifications.external:read` | `datasources:*`<br>`datasources:uid:*` | Read templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications:write` | n/a | Manage templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.notifications:read` | n/a | Read all templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.rules.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alert rules in data sources that support alerting (Prometheus, Mimir, and Loki) |
| `alert.rules.external:write` | `datasources:*`<br>`datasources:uid:*` | Create, update, and delete alert rules in data sources that support alerting (Mimir and Loki). |
| `alert.rules:create` | `folders:*`<br>`folders:uid:*` | Create Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:delete` | `folders:*`<br>`folders:uid:*` | Delete Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:read` | `folders:*`<br>`folders:uid:*` | Read Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:write` | `folders:*`<br>`folders:uid:*` | Update Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.provisioning:read` | n/a | Read all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `alert.provisioning.secrets:read` | n/a | Same as `alert.provisioning:read` plus ability to export resources with decrypted secrets. |
| `alert.provisioning:write` | n/a | Update all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `annotations:create` | `annotations:*`<br>`annotations:type:*` | Create annotations. |
| `annotations:delete` | `annotations:*`<br>`annotations:type:*` | Delete annotations. |
| `annotations:read` | `annotations:*`<br>`annotations:type:*` | Read annotations and annotation tags. |
| `annotations:write` | `annotations:*`<br>`annotations:type:*` | Update annotations. |
| `apikeys:create` | n/a | Create API keys. |
| `apikeys:read` | `apikeys:*`<br>`apikeys:id:*` | Read API keys. |
| `apikeys:delete` | `apikeys:*`<br>`apikeys:id:*` | Delete API keys. |
| `dashboards:create` | `folders:*`<br>`folders:uid:*` | Create dashboards in one or more folders and their subfolders. |
| `dashboards:delete` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Delete one or more dashboards. |
| `dashboards.insights:read` | n/a | Read dashboard insights data and see presence indicators. |
| `dashboards.permissions:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read permissions for one or more dashboards. |
| `dashboards.permissions:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update permissions for one or more dashboards. |
| `dashboards:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read one or more dashboards. |
| `dashboards:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update one or more dashboards. |
| `dashboards.public:write` | `dashboards:*`<br>`dashboards:uid:*` | Write public dashboard configuration. |
| `datasources.caching:read` | `datasources:*`<br>`datasources:uid:*` | Read data source query caching settings. |
| `datasources.caching:write` | `datasources:*`<br>`datasources:uid:*` | Update data source query caching settings. |
| `datasources:create` | n/a | Create data sources. |
| `datasources:delete` | `datasources:*`<br>`datasources:uid:*` | Delete data sources. |
| `datasources:explore` | n/a | Enable access to the **Explore** tab. |
| `datasources.id:read` | `datasources:*`<br>`datasources:uid:*` | Read data source IDs. |
| `datasources.insights:read` | n/a | Read data sources insights data. |
| `datasources.permissions:read` | `datasources:*`<br>`datasources:uid:*` | List data source permissions. |
| `datasources.permissions:write` | `datasources:*`<br>`datasources:uid:*` | Update data source permissions. |
| `datasources:query` | `datasources:*`<br>`datasources:uid:*` | Query data sources. |
| `datasources:read` | `datasources:*`<br>`datasources:uid:*` | List data sources. |
| `datasources:write` | `datasources:*`<br>`datasources:uid:*` | Update data sources. |
| `featuremgmt.read` | n/a | Read feature toggles. |
| `featuremgmt.write` | n/a | Write feature toggles. |
| `folders.permissions:read` | `folders:*`<br>`folders:uid:*` | Read permissions for one or more folders and their subfolders. |
| `folders.permissions:write` | `folders:*`<br>`folders:uid:*` | Update permissions for one or more folders and their subfolders. |
| `folders:create` | n/a | Create folders in the root level. If granted together with `folders:write`, also allows creating subfolders under all folders that the user can update. |
| `folders:delete` | `folders:*`<br>`folders:uid:*` | Delete one or more folders and their subfolders. |
| `folders:read` | `folders:*`<br>`folders:uid:*` | Read one or more folders and their subfolders. |
| `folders:write` | `folders:*`<br>`folders:uid:*` | Update one or more folders and their subfolders. If granted together with `folders:create` permission, also allows creating subfolders under these folders. |
| `ldap.config:reload` | n/a | Reload the LDAP configuration. |
| `ldap.status:read` | n/a | Verify the availability of the LDAP server or servers. |
| `ldap.user:read` | n/a | Read users via LDAP. |
| `ldap.user:sync` | n/a | Sync users via LDAP. |
| `library.panels:create` | `folders:*` <br> `folders:uid:*` | Create a library panel in one or more folders and their subfolders. |
| `library.panels:read` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Read one or more library panels. |
| `library.panels:write` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Update one or more library panels. |
| `library.panels:delete` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Delete one or more library panels. |
| `licensing.reports:read` | n/a | Get custom permission reports. |
| `licensing:delete` | n/a | Delete the license token. |
| `licensing:read` | n/a | Read licensing information. |
| `licensing:write` | n/a | Update the license token. |
| `org.users:write` | `users:*` <br> `users:id:*` | Update the organization role (`Viewer`, `Editor`, or `Admin`) of a user. |
| `org.users:add` | `users:*` <br> `users:id:*` | Add a user to an organization or invite a new user to an organization. |
| `org.users:read` | `users:*` <br> `users:id:*` | Get user profiles within an organization. |
| `org.users:remove` | `users:*` <br> `users:id:*` | Remove a user from an organization. |
| `orgs.preferences:read` | n/a | Read organization preferences. |
| `orgs.preferences:write` | n/a | Update organization preferences. |
| `orgs.quotas:read` | n/a | Read organization quotas. |
| `orgs.quotas:write` | n/a | Update organization quotas. |
| `orgs:create` | n/a | Create an organization. |
| `orgs:delete` | n/a | Delete one or more organizations. |
| `orgs:read` | n/a | Read one or more organizations. |
| `orgs:write` | n/a | Update one or more organizations. |
| `plugins.app:access` | `plugins:*` <br> `plugins:id:*` | Access one or more application plugins (still enforcing the organization role) |
| `plugins:install` | n/a | Install and uninstall plugins. |
| `plugins:write` | `plugins:*` <br> `plugins:id:*` | Edit settings for one or more plugins. |
| `provisioning:reload` | `provisioners:*` | Reload provisioning files. To find the exact scope for specific provisioner, see [Scope definitions]({{< relref "#scope-definitions" >}}). |
| `reports:create` | n/a | Create reports. |
| `reports:write` | `reports:*` <br> `reports:id:*` | Update reports. |
| `reports.settings:read` | n/a | Read report settings. |
| `reports.settings:write` | n/a | Update report settings. |
| `reports:delete` | `reports:*` <br> `reports:id:*` | Delete reports. |
| `reports:read` | `reports:*` <br> `reports:id:*` | List all available reports or get a specific report. |
| `reports:send` | `reports:*` <br> `reports:id:*` | Send a report email. |
| `roles:delete` | `permissions:type:delegate` | Delete a custom role. |
| `roles:read` | `roles:*` <br> `roles:uid:*` | List roles and read a specific role with its permissions. |
| `roles:write` | `permissions:type:delegate` | Create or update a custom role. |
| `roles:write` | `permissions:type:escalate` | Reset basic roles to their default permissions. |
| `server.stats:read` | n/a | Read Grafana instance statistics. |
| `server.usagestats.report:read` | n/a | View usage statistics report. |
| `serviceaccounts:write` | `serviceaccounts:*` | Create Grafana service accounts. |
| `serviceaccounts:create` | n/a | Update Grafana service accounts. |
| `serviceaccounts:delete` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Delete Grafana service accounts. |
| `serviceaccounts:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service accounts. |
| `serviceaccounts.permissions:write` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Update Grafana service account permissions to control who can do what with the service account. |
| `serviceaccounts.permissions:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service account permissions to see who can do what with the service account. |
| `settings:read` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Read the [Grafana configuration settings]({{< relref "../../../../setup-grafana/configure-grafana/" >}}) |
| `settings:write` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Update any Grafana configuration settings that can be [updated at runtime]({{< relref "../../../../setup-grafana/configure-grafana/settings-updates-at-runtime" >}}). |
| `support.bundles:create` | n/a | Create support bundles. |
| `support.bundles:delete` | n/a | Delete support bundles. |
| `support.bundles:read` | n/a | List and download support bundles. |
| `status:accesscontrol` | `services:accesscontrol` | Get access-control enabled status. |
| `teams.permissions:read` | `teams:*`<br>`teams:id:*` | Read members and Team Sync setup for teams. |
| `teams.permissions:write` | `teams:*`<br>`teams:id:*` | Add, remove and update members and manage Team Sync setup for teams. |
| `teams.roles:add` | `permissions:type:delegate` | Assign a role to a team. |
| `teams.roles:read` | `teams:*`<br>`teams:id:*` | List roles assigned directly to a team. |
| `teams.roles:remove` | `permissions:type:delegate` | Unassign a role from a team. |
| `teams:create` | n/a | Create teams. |
| `teams:delete` | `teams:*`<br>`teams:id:*` | Delete one or more teams. |
| `teams:read` | `teams:*`<br>`teams:id:*` | Read one or more teams and team preferences. To list teams through the UI one of the following permissions is required in addition to `teams:read`: `teams:write`, `teams.permissions:read` or `teams.permissions:write`. |
| `teams:write` | `teams:*`<br>`teams:id:*` | Update one or more teams and team preferences. |
| `users.authtoken:read` | `global.users:*` <br> `global.users:id:*` | List authentication tokens that are assigned to a user. |
| `users.authtoken:write` | `global.users:*` <br> `global.users:id:*` | Update authentication tokens that are assigned to a user. |
| `users.password:write` | `global.users:*` <br> `global.users:id:*` | Update a users password. |
| `users.permissions:read` | `users:*` | List permissions of a user. |
| `users.permissions:write` | `global.users:*` <br> `global.users:id:*` | Update a users organization-level permissions. |
| `users.quotas:read` | `global.users:*` <br> `global.users:id:*` | List a users quotas. |
| `users.quotas:write` | `global.users:*` <br> `global.users:id:*` | Update a users quotas. |
| `users.roles:add` | `permissions:type:delegate` | Assign a role to a user or a service account. |
| `users.roles:read` | `users:*` | List roles assigned directly to a user or a service account. |
| `users.roles:remove` | `permissions:type:delegate` | Unassign a role from a user or a service account. |
| `users:create` | n/a | Create a user. |
| `users:delete` | `global.users:*` <br> `global.users:id:*` | Delete a user. |
| `users:disable` | `global.users:*` <br> `global.users:id:*` | Disable a user. |
| `users:enable` | `global.users:*` <br> `global.users:id:*` | Enable a user. |
| `users:logout` | `global.users:*` <br> `global.users:id:*` | Sign out a user. |
| `users:read` | `global.users:*` | Read or search user profiles. |
| `users:write` | `global.users:*` <br> `global.users:id:*` | Update a users profile. |
### Grafana OnCall action definitions (beta)

View File

@@ -20,8 +20,6 @@ weight: 50
Available in [Grafana Enterprise]({{< relref "../../../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud](/docs/grafana-cloud).
{{% /admonition %}}
{{< table-of-contents >}}
This section includes instructions for how to view permissions associated with roles, create custom roles, and update and delete roles.
The following example includes the base64 username:password Basic Authorization. You cannot use authorization tokens in the request.
@@ -106,7 +104,7 @@ Create a custom role when basic roles and fixed roles do not meet your permissio
### Create custom roles using provisioning
[File-based provisioning]({{< relref "./rbac-grafana-provisioning" >}}) is one method you can use to create custom roles.
File-based provisioning is one method you can use to create custom roles.
1. Open the YAML configuration file and locate the `roles` section.

View File

@@ -23,91 +23,90 @@ The following tables list permissions associated with basic and fixed roles.
## Basic role assignments
| Basic role | UID | Associated fixed roles | Description |
| ------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Grafana Admin | `basic_grafana_admin` | `fixed:roles:reader`<br>`fixed:roles:writer`<br>`fixed:users:reader`<br>`fixed:users:writer`<br>`fixed:org.users:reader`<br>`fixed:org.users:writer`<br>`fixed:ldap:reader`<br>`fixed:ldap:writer`<br>`fixed:stats:reader`<br>`fixed:settings:reader`<br>`fixed:settings:writer`<br>`fixed:provisioning:writer`<br>`fixed:organization:reader`<br>`fixed:organization:maintainer`<br>`fixed:licensing:reader`<br>`fixed:licensing:writer`<br>`fixed:datasources.caching:reader`<br>`fixed:datasources.caching:writer`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:plugins:maintainer`<br>`fixed:authentication.config:writer`<br>`fixed:library.panels:creator`<br>`fixed:library.panels:reader`<br>`fixed:library.panels:general.reader`<br>`fixed:library.panels:writer`<br>`fixed:library.panels:general.writer` | Default [Grafana server administrator]({{< relref "../../#grafana-server-administrators" >}}) assignments. |
| Admin | `basic_admin` | `fixed:reports:reader`<br>`fixed:reports:writer`<br>`fixed:datasources:reader`<br>`fixed:datasources:writer`<br>`fixed:organization:writer`<br>`fixed:datasources.permissions:reader`<br>`fixed:datasources.permissions:writer`<br>`fixed:teams:writer`<br>`fixed:dashboards:reader`<br>`fixed:dashboards:writer`<br>`fixed:dashboards.permissions:reader`<br>`fixed:dashboards.permissions:writer`<br>`fixed:dashboards.public:writer`<br>`fixed:folders:reader`<br>`fixed:folders:writer`<br>`fixed:folders.permissions:reader`<br>`fixed:folders.permissions:writer`<br>`fixed:alerting:writer`<br>`fixed:apikeys:reader`<br>`fixed:apikeys:writer`<br>`fixed:alerting.provisioning.secrets:reader`<br>`fixed:alerting.provisioning:writer`<br>`fixed:datasources.caching:reader`<br>`fixed:datasources.caching:writer`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:plugins:writer`<br>`fixed:library.panels:creator`<br>`fixed:library.panels:reader`<br>`fixed:library.panels:general.reader`<br>`fixed:library.panels:writer`<br>`fixed:library.panels:general.writer`<br>`fixed:alerting.provisioning.status:writer` | Default [Grafana organization administrator]({{< relref "../#basic-roles" >}}) assignments. |
| Editor | `basic_editor` | `fixed:datasources:explorer`<br>`fixed:dashboards:creator`<br>`fixed:folders:creator`<br>`fixed:annotations:writer`<br>`fixed:teams:creator` if the `editors_can_admin` configuration flag is enabled<br>`fixed:alerting:writer`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:library.panels:creator`<br>`fixed:library.panels:general.reader`<br>`fixed:library.panels:general.writer`<br>`fixed:alerting.provisioning.status:writer` | Default [Editor]({{< relref "../#basic-roles" >}}) assignments. |
| Viewer | `basic_viewer` | `fixed:datasources.id:reader`<br>`fixed:organization:reader`<br>`fixed:annotations:reader`<br>`fixed:annotations.dashboard:writer`<br>`fixed:alerting:reader`<br>`fixed:plugins.app:reader`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:library.panels:general.reader`<br>`fixed:datasources:explorer` if the `viewers_can_edit` configuration flag is enabled | Default [Viewer]({{< relref "../#basic-roles" >}}) assignments. |
| No Basic Role | n/a | | Default [No Basic Role]({{< relref "../#basic-roles" >}}) |
| Basic role | Associated fixed roles | Description |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Grafana Admin | `fixed:roles:reader`<br>`fixed:roles:writer`<br>`fixed:users:reader`<br>`fixed:users:writer`<br>`fixed:org.users:reader`<br>`fixed:org.users:writer`<br>`fixed:ldap:reader`<br>`fixed:ldap:writer`<br>`fixed:stats:reader`<br>`fixed:settings:reader`<br>`fixed:settings:writer`<br>`fixed:provisioning:writer`<br>`fixed:organization:reader`<br>`fixed:organization:maintainer`<br>`fixed:licensing:reader`<br>`fixed:licensing:writer`<br>`fixed:datasources.caching:reader`<br>`fixed:datasources.caching:writer`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:plugins:maintainer`<br>`fixed:authentication.config:writer`<br>`fixed:library.panels:creator`<br>`fixed:library.panels:reader`<br>`fixed:library.panels:general.reader`<br>`fixed:library.panels:writer`<br>`fixed:library.panels:general.writer` | Default [Grafana server administrator]({{< relref "../../#grafana-server-administrators" >}}) assignments. |
| Admin | `fixed:reports:reader`<br>`fixed:reports:writer`<br>`fixed:datasources:reader`<br>`fixed:datasources:writer`<br>`fixed:organization:writer`<br>`fixed:datasources.permissions:reader`<br>`fixed:datasources.permissions:writer`<br>`fixed:teams:writer`<br>`fixed:dashboards:reader`<br>`fixed:dashboards:writer`<br>`fixed:dashboards.permissions:reader`<br>`fixed:dashboards.permissions:writer`<br>`fixed:dashboards.public:writer`<br>`fixed:folders:reader`<br>`fixed:folders:writer`<br>`fixed:folders.permissions:reader`<br>`fixed:folders.permissions:writer`<br>`fixed:alerting:writer`<br>`fixed:apikeys:reader`<br>`fixed:apikeys:writer`<br>`fixed:alerting.provisioning.secrets:reader`<br>`fixed:alerting.provisioning:writer`<br>`fixed:datasources.caching:reader`<br>`fixed:datasources.caching:writer`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:plugins:writer`<br>`fixed:library.panels:creator`<br>`fixed:library.panels:reader`<br>`fixed:library.panels:general.reader`<br>`fixed:library.panels:writer`<br>`fixed:library.panels:general.writer` | Default [Grafana organization administrator]({{< relref "../#basic-roles" >}}) assignments. |
| Editor | `fixed:datasources:explorer`<br>`fixed:dashboards:creator`<br>`fixed:folders:creator`<br>`fixed:annotations:writer`<br>`fixed:teams:creator` if the `editors_can_admin` configuration flag is enabled<br>`fixed:alerting:writer`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:library.panels:creator`<br>`fixed:library.panels:general.reader`<br>`fixed:library.panels:general.writer` | Default [Editor]({{< relref "../#basic-roles" >}}) assignments. |
| Viewer | `fixed:datasources.id:reader`<br>`fixed:organization:reader`<br>`fixed:annotations:reader`<br>`fixed:annotations.dashboard:writer`<br>`fixed:alerting:reader`<br>`fixed:plugins.app:reader`<br>`fixed:dashboards.insights:reader`<br>`fixed:datasources.insights:reader`<br>`fixed:library.panels:general.reader` | Default [Viewer]({{< relref "../#basic-roles" >}}) assignments. |
| No Basic Role | | Default [No Basic Role]({{< relref "../#basic-roles" >}}) |
## Fixed role definitions
| Fixed role | Permissions | Description |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fixed:alerting.instances:writer` | All permissions from `fixed:alerting.instances:reader` and<br> `alert.instances:create`<br>`alert.instances:write` for organization scope <br> `alert.instances.external:write` for scope `datasources:*` | Create, update and expire all silences in the organization produced by Grafana, Mimir, and Loki.[\*](#alerting-roles) |
| `fixed:alerting.instances:reader` | `alert.instances:read` for organization scope <br> `alert.instances.external:read` for scope `datasources:*` | Read all alerts and silences in the organization produced by Grafana Alerts and Mimir and Loki alerts and silences.[\*](#alerting-roles) |
| `fixed:alerting.notifications:writer` | All permissions from `fixed:alerting.notifications:reader` and<br>`alert.notifications:write`for organization scope<br>`alert.notifications.external:read` for scope `datasources:*` | Create, update, and delete contact points, templates, mute timings and notification policies for Grafana and external Alertmanager.[\*](#alerting-roles) |
| `fixed:alerting.notifications:reader` | `alert.notifications:read` for organization scope<br>`alert.notifications.external:read` for scope `datasources:*` | Read all Grafana and Alertmanager contact points, templates, and notification policies.[\*](#alerting-roles) |
| `fixed:alerting.rules:writer` | All permissions from `fixed:alerting.rules:reader` and <br> `alert.rule:create` <br> `alert.rule:write` <br> `alert.rule:delete` <br> `alert.silences:create` <br> `alert.silences:write` for scope `folders:*` <br> `alert.rules.external:write` for scope `datasources:*` | Create, update, and delete all\* Grafana, Mimir, and Loki alert rules.[\*](#alerting-roles) and manage rule-specific silences |
| `fixed:alerting.rules:reader` | `alert.rule:read`, `alert.silences:read` for scope `folders:*` <br> `alert.rules.external:read` for scope `datasources:*` <br> `alert.notifications.time-intervals:read` <br> `alert.notifications.receivers:list` | Read all\* Grafana, Mimir, and Loki alert rules.[\*](#alerting-roles) and read rule-specific silences |
| `fixed:alerting:writer` | All permissions from `fixed:alerting.rules:writer` <br>`fixed:alerting.instances:writer`<br>`fixed:alerting.notifications:writer` | Create, update, and delete Grafana, Mimir, Loki and Alertmanager alert rules\*, silences, contact points, templates, mute timings, and notification policies.[\*](#alerting-roles) |
| `fixed:alerting:reader` | All permissions from `fixed:alerting.rules:reader` <br>`fixed:alerting.instances:reader`<br>`fixed:alerting.notifications:reader` | Read-only permissions for all Grafana, Mimir, Loki and Alertmanager alert rules\*, alerts, contact points, and notification policies.[\*](#alerting-roles) |
| `fixed:alerting.provisioning.secrets:reader` | `alert.provisioning:read` and `alert.provisioning.secrets:read` | Read-only permissions for Provisioning API and let export resources with decrypted secrets [\*](#alerting-roles) |
| `fixed:alerting.provisioning:writer` | `alert.provisioning:read` and `alert.provisioning:write` | Create, update and delete Grafana alert rules, notification policies, contact points, templates, etc via provisioning API. [\*](#alerting-roles) |
| `fixed:alerting.provisioning.status:writer` | `alert.provisioning.provenance:write` | Set provenance status to alert rules, notification policies, contact points, etc. Should be used together with regular writer roles. [\*](#alerting-roles) |
| `fixed:annotations.dashboard:writer` | `annotations:write` <br>`annotations.create`<br> `annotations:delete` for scope `annotations:type:dashboard` | Create, update and delete dashboard annotations and annotation tags. |
| `fixed:annotations:reader` | `annotations:read` for scopes `annotations:type:*` | Read all annotations and annotation tags. |
| `fixed:annotations:writer` | All permissions from `fixed:annotations:reader` <br>`annotations:write` <br>`annotations.create`<br> `annotations:delete` for scope `annotations:type:*` | Read, create, update and delete all annotations and annotation tags. |
| `fixed:apikeys:reader` | `apikeys:read` for scope `apikeys:*` | Read all api keys. |
| `fixed:apikeys:writer` | All permissions from `fixed:apikeys:reader` and <br> `apikeys:create` <br> `apikeys:delete` for scope `apikeys:*` | Read, create, delete all api keys. |
| `fixed:authentication.config:writer` | `settings:read` for scope `settings:auth.saml:*` <br> `settings:write` for scope `settings:auth.saml:*` | Read and update authentication and SAML settings. |
| `fixed:dashboards:creator` | `dashboards:create`<br>`folders:read` | Create dashboards. |
| `fixed:dashboards.insights:reader` | `dashboards.insights:read` | Read dashboard insights data and see presence indicators. |
| `fixed:dashboards.permissions:reader` | `dashboards.permissions:read` | Read all dashboard permissions. |
| `fixed:dashboards.permissions:writer` | All permissions from `fixed:dashboards.permissions:reader` and <br>`dashboards.permissions:write` | Read and update all dashboard permissions. |
| `fixed:dashboards.public:writer` | `dashboards.public:write` | Create, update, delete or pause a public dashboard. |
| `fixed:dashboards:reader` | `dashboards:read` | Read all dashboards. |
| `fixed:dashboards:writer` | All permissions from `fixed:dashboards:reader` and <br>`dashboards:write`<br>`dashboards:edit`<br>`dashboards:delete`<br>`dashboards:create`<br>`dashboards.permissions:read`<br>`dashboards.permissions:write` | Read, create, update, and delete all dashboards. |
| `fixed:datasources.caching:reader` | `datasources.caching:read` | Read data source query caching settings. |
| `fixed:datasources.caching:writer` | `datasources.caching:read`<br>`datasources.caching:write` | Enable, disable, or update query caching settings. |
| `fixed:datasources:explorer` | `datasources:explore` | Enable the Explore feature. Data source permissions still apply, you can only query data sources for which you have query permissions. |
| `fixed:datasources.id:reader` | `datasources.id:read` | Read the ID of a data source based on its name. |
| `fixed:datasources.insights:reader` | `datasources.insights:read` | Read data source insights data. |
| `fixed:datasources.permissions:reader` | `datasources.permissions:read` | Read data source permissions. |
| `fixed:datasources.permissions:writer` | All permissions from `fixed:datasources.permissions:reader` and <br>`datasources.permissions:write` | Create, read, or delete permissions of a data source. |
| `fixed:datasources:creator` | `datasources:create` | Create data sources. |
| `fixed:datasources:reader` | `datasources:read`<br>`datasources:query` | Read and query data sources. |
| `fixed:datasources:writer` | All permissions from `fixed:datasources:reader` and <br>`datasources:create`<br>`datasources:write`<br>`datasources:delete` | Read, query, create, delete, or update a data source. |
| `fixed:folders.permissions:reader` | `folders.permissions:read` | Read all folder permissions. |
| `fixed:folders.permissions:writer` | All permissions from `fixed:folders.permissions:reader` and <br>`folders.permissions:write` | Read and update all folder permissions. |
| `fixed:folders:creator` | `folders:create` | Create folders in the root level. If granted together with `folders:write` permission, also allows creating subfolders under all folders. |
| `fixed:folders:reader` | `folders:read`<br>`dashboards:read` | Read all folders and dashboards. |
| `fixed:folders:writer` | All permissions from `fixed:dashboards:writer` and <br>`folders:read`<br>`folders:write`<br>`folders:create`<br>`folders:delete`<br>`folders.permissions:read`<br>`folders.permissions:write` | Read, create, update, and delete all folders and dashboards. If granted together with `fixed:folders:creator`, allows creating subfolders under all folders. |
| `fixed:ldap:reader` | `ldap.user:read`<br>`ldap.status:read` | Read the LDAP configuration and LDAP status information. |
| `fixed:ldap:writer` | All permissions from `fixed:ldap:reader` and <br>`ldap.user:sync`<br>`ldap.config:reload` | Read and update the LDAP configuration, and read LDAP status information. |
| `fixed:library.panels:creator` | `library.panels:create`<br>`folders:read` | Create library panel at the root level. |
| `fixed:library.panels:reader` | `library.panels:read` | Read all library panels. |
| `fixed:library.panels:general.reader` | `library.panels:read` | Read all library panels at the root level. |
| `fixed:library.panels:writer` | All permissions from `fixed:library.panels:reader` plus<br>`library.panels:create`<br>`library.panels:delete`<br>`library.panels:write` | Create, read, write or delete all library panels and their permissions. |
| `fixed:library.panels:general.writer` | All permissions from `fixed:library.panels:general.reader` plus<br>`library.panels:create`<br>`library.panels:delete`<br>`library.panels:write` | Create, read, write or delete all library panels and their permissions at the root level. |
| `fixed:licensing:reader` | `licensing:read`<br>`licensing.reports:read` | Read licensing information and licensing reports. |
| `fixed:licensing:writer` | All permissions from `fixed:licensing:viewer` and <br>`licensing:write`<br>`licensing:delete` | Read licensing information and licensing reports, update and delete the license token. |
| `fixed:org.users:reader` | `org.users:read` | Read users within a single organization. |
| `fixed:org.users:writer` | All permissions from `fixed:org.users:reader` and <br>`org.users:add`<br>`org.users:remove`<br>`org.users:write` | Within a single organization, add a user, invite a new user, read information about a user and their role, remove a user from that organization, or change the role of a user. |
| `fixed:organization:maintainer` | All permissions from `fixed:organization:reader` and <br> `orgs:write`<br>`orgs:create`<br>`orgs:delete`<br>`orgs.quotas:write` | Create, read, write, or delete an organization. Read or write its quotas. This role needs to be assigned globally. |
| `fixed:organization:reader` | `orgs:read`<br>`orgs.quotas:read` | Read an organization and its quotas. |
| `fixed:organization:writer` | All permissions from `fixed:organization:reader` and <br> `orgs:write`<br>`orgs.preferences:read`<br>`orgs.preferences:write` | Read an organization, its quotas, or its preferences. Update organization properties, or its preferences. |
| `fixed:plugins.app:reader` | `plugins.app:access` | Access application plugins (still enforcing the organization role). |
| `fixed:plugins:maintainer` | `plugins:install` | Install and uninstall plugins. Needs to be assigned globally. |
| `fixed:plugins:writer` | `plugins:write` | Enable and disable plugins and edit plugins' settings. |
| `fixed:provisioning:writer` | `provisioning:reload` | Reload provisioning. |
| `fixed:reports:reader` | `reports:read`<br>`reports:send`<br>`reports.settings:read` | Read all reports and shared report settings. |
| `fixed:reports:writer` | All permissions from `fixed:reports:reader` and <br>`reports:create`<br>`reports:write`<br>`reports:delete`<br>`reports.settings:write` | Create, read, update, or delete all reports and shared report settings. |
| `fixed:roles:reader` | `roles:read`<br>`teams.roles:read`<br>`users.roles:read`<br>`users.permissions:read` | Read all access control roles, roles and permissions assigned to users, teams. |
| `fixed:roles:writer` | All permissions from `fixed:roles:reader` and <br>`roles:write`<br>`roles:delete`<br>`teams.roles:add`<br>`teams.roles:remove`<br>`users.roles:add`<br>`users.roles:remove` | Create, read, update, or delete all roles, assign or unassign roles to users, teams. |
| `fixed:roles:resetter` | `roles:write` with scope `permissions:type:escalate` | Reset basic roles to their default. |
| `fixed:serviceaccounts:reader` | `serviceaccounts:read` | Read Grafana service accounts. |
| `fixed:serviceaccounts:creator` | `serviceaccounts:create` | Create Grafana service accounts. |
| `fixed:serviceaccounts:writer` | `serviceaccounts:read`<br>`serviceaccounts:create`<br>`serviceaccounts:write`<br>`serviceaccounts:delete`<br>`serviceaccounts.permissions:read`<br>`serviceaccounts.permissions:write` | Create, update, read and delete all Grafana service accounts and manage service account permissions. |
| `fixed:settings:reader` | `settings:read` | Read Grafana instance settings. |
| `fixed:settings:writer` | All permissions from `fixed:settings:reader` and<br>`settings:write` | Read and update Grafana instance settings. |
| `fixed:stats:reader` | `server.stats:read` | Read Grafana instance statistics. |
| `fixed:teams:reader` | `teams:read` | List all teams. |
| `fixed:teams:creator` | `teams:create`<br>`org.users:read` | Create a team and list organization users (required to manage the created team). |
| `fixed:teams:writer` | `teams:create`<br>`teams:delete`<br>`teams:read`<br>`teams:write`<br>`teams.permissions:read`<br>`teams.permissions:write` | Create, read, update and delete teams and manage team memberships. |
| `fixed:users:reader` | `users:read`<br>`users.quotas:read`<br>`users.authtoken:read`<br>` | Read all users and their information, such as team memberships, authentication tokens, and quotas. |
| `fixed:users:writer` | All permissions from `fixed:users:reader` and <br>`users:write`<br>`users:create`<br>`users:delete`<br>`users:enable`<br>`users:disable`<br>`users.password:write`<br>`users.permissions:write`<br>`users:logout`<br>`users.authtoken:write`<br>`users.quotas:write` | Read and update all attributes and settings for all users in Grafana: update user information, read user information, create or enable or disable a user, make a user a Grafana administrator, sign out a user, update a users authentication token, or update quotas for all users. |
| Fixed role | Permissions | Description |
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fixed:alerting.instances:writer` | All permissions from `fixed:alerting.instances:reader` and<br> `alert.instances:create`<br>`alert.instances:write` for organization scope <br> `alert.instances.external:write` for scope `datasources:*` | Create, update and expire all silences in the organization produced by Grafana, Mimir, and Loki.[\*](#alerting-roles) |
| `fixed:alerting.instances:reader` | `alert.instances:read` for organization scope <br> `alert.instances.external:read` for scope `datasources:*` | Read all alerts and silences in the organization produced by Grafana Alerts and Mimir and Loki alerts and silences.[\*](#alerting-roles) |
| `fixed:alerting.notifications:writer` | All permissions from `fixed:alerting.notifications:reader` and<br>`alert.notifications:write`for organization scope<br>`alert.notifications.external:read` for scope `datasources:*` | Create, update, and delete contact points, templates, mute timings and notification policies for Grafana and external Alertmanager.[\*](#alerting-roles) |
| `fixed:alerting.notifications:reader` | `alert.notifications:read` for organization scope<br>`alert.notifications.external:read` for scope `datasources:*` | Read all Grafana and Alertmanager contact points, templates, and notification policies.[\*](#alerting-roles) |
| `fixed:alerting.rules:writer` | All permissions from `fixed:alerting.rules:reader` and <br> `alert.rule:create` <br> `alert.rule:write` <br> `alert.rule:delete` for scope `folders:*` <br> `alert.rules.external:write` for scope `datasources:*` | Create, update, and delete all\* Grafana, Mimir, and Loki alert rules.[\*](#alerting-roles) |
| `fixed:alerting.rules:reader` | `alert.rule:read` for scope `folders:*` <br> `alert.rules.external:read` for scope `datasources:*` | Read all\* Grafana, Mimir, and Loki alert rules.[\*](#alerting-roles) |
| `fixed:alerting:writer` | All permissions from `fixed:alerting.rules:writer` <br>`fixed:alerting.instances:writer`<br>`fixed:alerting.notifications:writer` | Create, update, and delete Grafana, Mimir, Loki and Alertmanager alert rules\*, silences, contact points, templates, mute timings, and notification policies.[\*](#alerting-roles) |
| `fixed:alerting:reader` | All permissions from `fixed:alerting.rules:reader` <br>`fixed:alerting.instances:reader`<br>`fixed:alerting.notifications:reader` | Read-only permissions for all Grafana, Mimir, Loki and Alertmanager alert rules\*, alerts, contact points, and notification policies.[\*](#alerting-roles) |
| `fixed:alerting.provisioning.secrets:reader` | `alert.provisioning:read` and `alert.provisioning.secrets:read` | Read-only permissions for Provisioning API and let export resources with decrypted secrets [\*](#alerting-roles) |
| `fixed:alerting.provisioning:writer` | `alert.provisioning:read` and `alert.provisioning:write` | Create, update and delete Grafana alert rules, notification policies, contact points, templates, etc via provisioning API. [\*](#alerting-roles) |
| `fixed:annotations.dashboard:writer` | `annotations:write` <br>`annotations.create`<br> `annotations:delete` for scope `annotations:type:dashboard` | Create, update and delete dashboard annotations and annotation tags. |
| `fixed:annotations:reader` | `annotations:read` for scopes `annotations:type:*` | Read all annotations and annotation tags. |
| `fixed:annotations:writer` | All permissions from `fixed:annotations:reader` <br>`annotations:write` <br>`annotations.create`<br> `annotations:delete` for scope `annotations:type:*` | Read, create, update and delete all annotations and annotation tags. |
| `fixed:apikeys:reader` | `apikeys:read` for scope `apikeys:*` | Read all api keys. |
| `fixed:apikeys:writer` | All permissions from `fixed:apikeys:reader` and <br> `apikeys:create` <br> `apikeys:delete` for scope `apikeys:*` | Read, create, delete all api keys. |
| `fixed:authentication.config:writer` | `settings:read` for scope `settings:auth.saml:*` <br> `settings:write` for scope `settings:auth.saml:*` | Read and update authentication and SAML settings. |
| `fixed:dashboards:creator` | `dashboards:create`<br>`folders:read` | Create dashboards. |
| `fixed:dashboards.insights:reader` | `dashboards.insights:read` | Read dashboard insights data and see presence indicators. |
| `fixed:dashboards.permissions:reader` | `dashboards.permissions:read` | Read all dashboard permissions. |
| `fixed:dashboards.permissions:writer` | All permissions from `fixed:dashboards.permissions:reader` and <br>`dashboards.permissions:write` | Read and update all dashboard permissions. |
| `fixed:dashboards.public:writer` | `dashboards.public:write` | Create, update, delete or pause a public dashboard. |
| `fixed:dashboards:reader` | `dashboards:read` | Read all dashboards. |
| `fixed:dashboards:writer` | All permissions from `fixed:dashboards:reader` and <br>`dashboards:write`<br>`dashboards:edit`<br>`dashboards:delete`<br>`dashboards:create`<br>`dashboards.permissions:read`<br>`dashboards.permissions:write` | Read, create, update, and delete all dashboards. |
| `fixed:datasources.caching:reader` | `datasources.caching:read` | Read data source query caching settings. |
| `fixed:datasources.caching:writer` | `datasources.caching:read`<br>`datasources.caching:write` | Enable, disable, or update query caching settings. |
| `fixed:datasources:explorer` | `datasources:explore` | Enable the Explore feature. Data source permissions still apply, you can only query data sources for which you have query permissions. |
| `fixed:datasources.id:reader` | `datasources.id:read` | Read the ID of a data source based on its name. |
| `fixed:datasources.insights:reader` | `datasources.insights:read` | Read data source insights data. |
| `fixed:datasources.permissions:reader` | `datasources.permissions:read` | Read data source permissions. |
| `fixed:datasources.permissions:writer` | All permissions from `fixed:datasources.permissions:reader` and <br>`datasources.permissions:write` | Create, read, or delete permissions of a data source. |
| `fixed:datasources:creator` | `datasources:create` | Create data sources. |
| `fixed:datasources:reader` | `datasources:read`<br>`datasources:query` | Read and query data sources. |
| `fixed:datasources:writer` | All permissions from `fixed:datasources:reader` and <br>`datasources:create`<br>`datasources:write`<br>`datasources:delete` | Read, query, create, delete, or update a data source. |
| `fixed:folders.permissions:reader` | `folders.permissions:read` | Read all folder permissions. |
| `fixed:folders.permissions:writer` | All permissions from `fixed:folders.permissions:reader` and <br>`folders.permissions:write` | Read and update all folder permissions. |
| `fixed:folders:creator` | `folders:create` | Create folders in the root level. If granted together with `folders:write` permission, also allows creating subfolders under all folders. |
| `fixed:folders:reader` | `folders:read`<br>`dashboards:read` | Read all folders and dashboards. |
| `fixed:folders:writer` | All permissions from `fixed:dashboards:writer` and <br>`folders:read`<br>`folders:write`<br>`folders:create`<br>`folders:delete`<br>`folders.permissions:read`<br>`folders.permissions:write` | Read, create, update, and delete all folders and dashboards. If granted together with `fixed:folders:creator`, allows creating subfolders under all folders. |
| `fixed:ldap:reader` | `ldap.user:read`<br>`ldap.status:read` | Read the LDAP configuration and LDAP status information. |
| `fixed:ldap:writer` | All permissions from `fixed:ldap:reader` and <br>`ldap.user:sync`<br>`ldap.config:reload` | Read and update the LDAP configuration, and read LDAP status information. |
| `fixed:library.panels:creator` | `library.panels:create`<br>`folders:read` | Create library panel at the root level. |
| `fixed:library.panels:reader` | `library.panels:read` | Read all library panels. |
| `fixed:library.panels:general.reader` | `library.panels:read` | Read all library panels at the root level. |
| `fixed:library.panels:writer` | All permissions from `fixed:library.panels:reader` plus<br>`library.panels:create`<br>`library.panels:delete`<br>`library.panels:write` | Create, read, write or delete all library panels and their permissions. |
| `fixed:library.panels:general.writer` | All permissions from `fixed:library.panels:general.reader` plus<br>`library.panels:create`<br>`library.panels:delete`<br>`library.panels:write` | Create, read, write or delete all library panels and their permissions at the root level. |
| `fixed:licensing:reader` | `licensing:read`<br>`licensing.reports:read` | Read licensing information and licensing reports. |
| `fixed:licensing:writer` | All permissions from `fixed:licensing:viewer` and <br>`licensing:write`<br>`licensing:delete` | Read licensing information and licensing reports, update and delete the license token. |
| `fixed:org.users:reader` | `org.users:read` | Read users within a single organization. |
| `fixed:org.users:writer` | All permissions from `fixed:org.users:reader` and <br>`org.users:add`<br>`org.users:remove`<br>`org.users:write` | Within a single organization, add a user, invite a new user, read information about a user and their role, remove a user from that organization, or change the role of a user. |
| `fixed:organization:maintainer` | All permissions from `fixed:organization:reader` and <br> `orgs:write`<br>`orgs:create`<br>`orgs:delete`<br>`orgs.quotas:write` | Create, read, write, or delete an organization. Read or write its quotas. This role needs to be assigned globally. |
| `fixed:organization:reader` | `orgs:read`<br>`orgs.quotas:read` | Read an organization and its quotas. |
| `fixed:organization:writer` | All permissions from `fixed:organization:reader` and <br> `orgs:write`<br>`orgs.preferences:read`<br>`orgs.preferences:write` | Read an organization, its quotas, or its preferences. Update organization properties, or its preferences. |
| `fixed:plugins.app:reader` | `plugins.app:access` | Access application plugins (still enforcing the organization role). |
| `fixed:plugins:maintainer` | `plugins:install` | Install and uninstall plugins. Needs to be assigned globally. |
| `fixed:plugins:writer` | `plugins:write` | Enable and disable plugins and edit plugins' settings. |
| `fixed:provisioning:writer` | `provisioning:reload` | Reload provisioning. |
| `fixed:reports:reader` | `reports:read`<br>`reports:send`<br>`reports.settings:read` | Read all reports and shared report settings. |
| `fixed:reports:writer` | All permissions from `fixed:reports:reader` and <br>`reports:create`<br>`reports:write`<br>`reports:delete`<br>`reports.settings:write` | Create, read, update, or delete all reports and shared report settings. |
| `fixed:roles:reader` | `roles:read`<br>`teams.roles:read`<br>`users.roles:read`<br>`users.permissions:read` | Read all access control roles, roles and permissions assigned to users, teams. |
| `fixed:roles:writer` | All permissions from `fixed:roles:reader` and <br>`roles:write`<br>`roles:delete`<br>`teams.roles:add`<br>`teams.roles:remove`<br>`users.roles:add`<br>`users.roles:remove` | Create, read, update, or delete all roles, assign or unassign roles to users, teams. |
| `fixed:roles:resetter` | `roles:write` with scope `permissions:type:escalate` | Reset basic roles to their default. |
| `fixed:serviceaccounts:reader` | `serviceaccounts:read` | Read Grafana service accounts. |
| `fixed:serviceaccounts:creator` | `serviceaccounts:create` | Create Grafana service accounts. |
| `fixed:serviceaccounts:writer` | `serviceaccounts:read`<br>`serviceaccounts:create`<br>`serviceaccounts:write`<br>`serviceaccounts:delete`<br>`serviceaccounts.permissions:read`<br>`serviceaccounts.permissions:write` | Create, update, read and delete all Grafana service accounts and manage service account permissions. |
| `fixed:settings:reader` | `settings:read` | Read Grafana instance settings. |
| `fixed:settings:writer` | All permissions from `fixed:settings:reader` and<br>`settings:write` | Read and update Grafana instance settings. |
| `fixed:stats:reader` | `server.stats:read` | Read Grafana instance statistics. |
| `fixed:teams:reader` | `teams:read` | List all teams. |
| `fixed:teams:creator` | `teams:create`<br>`org.users:read` | Create a team and list organization users (required to manage the created team). |
| `fixed:teams:writer` | `teams:create`<br>`teams:delete`<br>`teams:read`<br>`teams:write`<br>`teams.permissions:read`<br>`teams.permissions:write` | Create, read, update and delete teams and manage team memberships. |
| `fixed:users:reader` | `users:read`<br>`users.quotas:read`<br>`users.authtoken:read`<br>` | Read all users and their information, such as team memberships, authentication tokens, and quotas. |
| `fixed:users:writer` | All permissions from `fixed:users:reader` and <br>`users:write`<br>`users:create`<br>`users:delete`<br>`users:enable`<br>`users:disable`<br>`users.password:write`<br>`users.permissions:write`<br>`users:logout`<br>`users.authtoken:write`<br>`users.quotas:write` | Read and update all attributes and settings for all users in Grafana: update user information, read user information, create or enable or disable a user, make a user a Grafana administrator, sign out a user, update a users authentication token, or update quotas for all users. |
### Alerting roles

View File

@@ -69,6 +69,10 @@ By default, the viewer organization role does not allow viewers to create dashbo
This modification is useful for public Grafana installations where you want anonymous users to be able to edit panels and queries but not save or create new dashboards.
{{% admonition type="note" %}}
If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `viewers_can_edit` flag.
{{% /admonition %}}
### Before you begin
- Ensure that you have access to the Grafana server

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