Compare commits

...

602 Commits

Author SHA1 Message Date
Gabriel MABILLE
49d3cf745f [v9.4.x] LDAP: Fix user disabling (#74318)
* [LDAP] Disable removed users on login (#74016)

* manual backport of #74016 on legacy code

* LDAP: Fix active sync with large quantities of users (#73834)

* Fix authenticate user test
2023-09-04 16:14:20 +02:00
grafana-delivery-bot[bot]
1e00f2e0ab [v9.4.x] Docs: Fix broken link (#74185)
Docs: Fix broken link (#74141)

* Replaced partial URL with relref

* Changed link path

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

---------

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

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-08-31 13:29:46 -04:00
Jack Baldry
ac29b6662d [v9.4.x] Update docs/shared shortcode usage to use keyword argument interface (#73765)
* Update all use of docs/shared in Grafana to use keyword arguments

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

* Add version inference to remaining Grafana docs/shared usage

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-08-31 11:06:43 +01:00
grafana-delivery-bot[bot]
fa6ddc2fba [v9.4.x] Update make docs procedure (#74158)
Update `make docs` procedure (#74152)

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-31 10:20:55 +01:00
grafana-delivery-bot[bot]
e04c22c3b7 [v9.4.x] Docker: Add musl as a ubuntu dependency (#74130)
Docker: Add musl as a ubuntu dependency (#74127)

Add musl as a ubuntu dependency

(cherry picked from commit 364ca3daa0)

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-08-30 22:02:54 +03:00
grafana-delivery-bot[bot]
b0e2eae439 [v9.4.x] Add LICENSE file to generated Docker images (#74099)
Add LICENSE file to generated Docker images (#74082)

(cherry picked from commit 6277c04caf)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-08-30 14:37:35 +03:00
Dimitris Sotirakis
01466f0fd9 [v9.4.x] CI: Mount /root/.docker/ dir in authenticate-gcr step (#74076)
CI: Mount /root/.docker/ dir in authenticate-gcr step  (#73977)

Mount /root/.docker/ dir

(cherry picked from commit eea4adea29)

# Conflicts:
#	.drone.yml
2023-08-30 11:15:02 +03:00
Guilherme Caulada
b68e5715e8 [v9.4.x] CI: Use new release eng managed grafanacom api key (#74032)
CI: Use new release eng managed grafanacom api key (#74017)

Use new release eng managed grafanacom api key

(cherry picked from commit ab7e655737)
2023-08-29 12:07:39 -03:00
Dimitris Sotirakis
bd1c66f220 [v9.4.x] Security: Authenticate to GCR for trivy scans (#73926)
Security: Authenticate to GCR for trivy scans (#72658)

* Authenticate to GCR for trivy scans

# Conflicts:
#	.drone.yml

* verify-starlark

* Change secret

# Conflicts:
#	.drone.yml

(cherry picked from commit e100fc927e)

# Conflicts:
#	.drone.yml
#	scripts/drone/vault.star
2023-08-28 16:00:24 +03:00
Dimitris Sotirakis
9aeb1db384 [v9.4.x] CI: Update secrets for publishing steps (#73663)
CI: Update secrets for publishing steps (#73658)

Update secrets

(cherry picked from commit de118a3736)

# Conflicts:
#	.drone.yml
2023-08-23 11:41:49 +03:00
Horst Gutmann
d1485fed57 [v9.4.x] CI: Different secret for verification and do not ignore build failures (#73618)
CI: Different secret for verification and do not ignore build failures (#73613)

(cherry picked from commit 8fc3be6b5a)
2023-08-22 16:34:04 +03:00
grafana-delivery-bot[bot]
135c74bd95 [v9.4.x] Update make docs procedure (#73544)
Update `make docs` procedure (#73540)

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-21 09:18:44 +01:00
grafana-delivery-bot[bot]
b347249fa9 [v9.4.x] CI: Improve error handling in gcloud copy operations (#73536)
CI: Improve error handling in gcloud copy operations (#73474)

(cherry picked from commit 220ea869be)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-08-21 09:26:20 +03:00
grafana-delivery-bot[bot]
56ad16ffc4 [v9.4.x] Sync-mirror GHA updates (#73508)
Sync-mirror GHA updates (#73504)

fixing sync-mirror run-name and altering concurrency to use branch name

(cherry picked from commit 4047cdb213)

Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>
2023-08-18 12:47:24 -05:00
Horst Gutmann
7165da76cb [v9.4.x] CI: Move npm token to Vault (#73457)
CI: Move npm token to Vault (#73407)

(cherry picked from commit c86a73c794)
2023-08-18 09:00:08 +03:00
grafana-delivery-bot[bot]
c583fc795e [v9.4.x] Docs: Update dashboards api create/update (#73417)
Docs: Update dashboards api create/update (#73345)

(cherry picked from commit bb3a2d31d7)

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2023-08-17 12:35:58 -05:00
grafana-delivery-bot[bot]
d7ba054f30 [v9.4.x] Update make docs procedure (#73386)
Update `make docs` procedure (#73359)

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-17 15:48:38 +01:00
Dimitris Sotirakis
67c5afb44b [v9.4.x] CI: Update grabpl to v3.0.41 (#73373) (#73376)
CI: Update `grabpl` to `v3.0.41` (#73373)

Update grabpl

(cherry picked from commit 3463dc8e48)

# Conflicts:
#	.drone.yml
2023-08-17 13:08:42 +03:00
grafana-delivery-bot[bot]
a9bae1ad62 [v9.4.x] Grafana versioning: Remove pre suffix from Grafana version (#73364)
Grafana versioning: Remove `pre` suffix from Grafana version (#73357)

* Remove pre suffix from version

* Fix tests

(cherry picked from commit 0aba319ea0)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-08-17 11:29:10 +03:00
grafana-delivery-bot[bot]
e0806338ab [v9.4.x] docs: add default value workaround (#73001)
docs: add default value workaround (#72545)

* Update _index.md

Fixes #https://github.com/grafana/support-escalations/issues/6376

Variables : Added Default values

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

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

* Ran prettier to resolve build errors

---------

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 54f0de313f)

Co-authored-by: arunkg2787 <131352769+arunkg2787@users.noreply.github.com>
2023-08-07 12:49:12 -04:00
Christopher Moyer
257a489d38 [Docs 9.4x] - Manual backport, Clarify necessary rediss scheme for TLS with redis caching (#72122) (#72647)
Clarify necessary rediss scheme for TLS with redis caching (#72122)

Update index.md

To enable TLS with Redis you must use the `rediss` scheme, not the `redis` scheme. This is documented here: https://www.iana.org/assignments/uri-schemes/prov/rediss

(cherry picked from commit e03303997a)

Co-authored-by: chrisharbro <102977229+chrisharbro@users.noreply.github.com>
2023-07-31 15:13:38 -05:00
Christopher Moyer
14ca449530 [Docs v9.4x] Manual backport - Update _index.md (#72068) (#72195)
* Update _index.md (#72068)

* Update _index.md

Edits to the "Set up image rendering" doc.

1. First section, "Set up Image Rendering," last paragraph:
"You can also render a PNG by clicking hovering..." -- I removed "clicking" from that sentence.

2. "Alerting and Render Limits" section, link for "concurrent_render_limit" takes you to the page but not the section. This seems to be the case for all section links on this "Configure Grafana" page. I'm not sure how to fix it but switched from a relative link to a full path to see if that would help.

3. "Install Grafana Image Renderer Plugin," the link goes to the plugin overview page instead of the installation page. I tried adding the full path to see if that would go to the installation tab.

4. "Configuration" section, the same as the second edit I made, the first link, "Grafana configuration file," goes to the page but not the section link. I switched the relative path to a full path to see if it would work.

5. "Security" section, the very last sentence has the same Grafana configuration page link that goes to the correct page but not the correct section, "Grafana configuration" for the renderer token section. Same as previous ones, I switched out the relative path for the full path.

6. "Start browser with additional arguments," the second link in the first paragraph that goes to Puppeteer list of Chromium flags went to a 404 page. I couldn't figure out where they had moved it so I found a different site with a list of default flags and used that link instead.

* corrects links

* updates links

* fixes anchor link

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit b88a321ad2)

* Apply suggestions from code review

---------

Co-authored-by: Eva <ebuchala@gmail.com>
2023-07-31 12:06:57 -07:00
Ieva
8aa4245fe4 [v9.4.x] Docs: remove references to groups_attribute_path for Okta and GitLab docs (#72591)
Docs: remove references to `groups_attribute_path` for Okta and GitLab docs (#72588)

remove references to groups_attribute_path for Okta and GitLab

(cherry picked from commit b96d6e2c8d)
2023-07-31 13:09:31 +02:00
Guilherme Caulada
abd2ccc250 [v9.4.x] CI: Update secret refs to vault ones; update downstream repo origin (#72547)
CI: Update secret refs to vault ones; update downstream repo origin (#72515)

Update secret refs to vault ones; update downstream repo origin

(cherry picked from commit 6669d0a704)

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-07-28 16:00:23 -03:00
Kevin Minehart
b8120d421d [v9.4.x] CI: Make RGM the main pipeline for prerelease (#72530)
CI: Make RGM the main pipeline for prerelease (#72295)

* Make RGM the main pipeline for prerelease

* Use grafana/grafana-build:dev-bd41660

* Use grafana/grafana-build:dev-fda506a

* Fix destination url

* Update vault secrets

* Move bucket path to environment

* Use grafana/grafana-build:dev-2f36afa

* Revert to grafana/grafana-build:main

* Add repo to rgm_main trigger

(cherry picked from commit 971f5f14be)

Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
2023-07-28 12:31:10 -03:00
Kevin Minehart
4201e7faea [v9.4.x] CI: use base64 key in windows installer build step (#72452)
CI: use base64 key in windows installer build step (#72413)

use base64 key

(cherry picked from commit b019ef9a89)
2023-07-27 16:29:58 +03:00
Dimitris Sotirakis
9203d5b116 [v9.4.x] CI: Fix deb/rpm bug for linux package publishing (#72422)
CI: Fix `deb/rpm` bug for linux package publishing (#72336)

Fix deb/rpm

(cherry picked from commit c3ebd388e3)
(cherry picked from commit 4c9bdef98dcfb24d8d24dac8117c9d3feb921a06)

# Conflicts:
#	.drone.yml
(cherry picked from commit e3ec53b418)

# Conflicts:
#	.drone.yml
2023-07-27 09:58:24 +03:00
Kevin Minehart
d5d838eaa1 [v9.4.x] CI: use the base64 key in the windows installer steps (#72379)
CI: use the base64 key in the windows installer steps (#72372)

use the base64 key in the windows installer steps

(cherry picked from commit 0c2b2219bb)
2023-07-26 12:04:00 -03:00
grafana-delivery-bot[bot]
549387b831 [v9.4.x] Prometheus: Add present_over_time syntax highlighting (#72366)
Prometheus: Add present_over_time syntax highlighting (#72283)

add prometheus present_over_time syntax highlighting

to color present_over_time keyword for prometheus

(cherry picked from commit d96067985b)

Co-authored-by: stratomonitor <arnaud_lemaignen@yahoo.com>
2023-07-26 08:41:26 -05:00
Ieva
c8687a78ff [v9.4.x] Docs: update GitLab OAuth2 documentation (#72343)
* backport

* linting
2023-07-26 11:06:45 +00:00
Guilherme Caulada
f35d160b67 [v9.4.x] CI: Fix verify-prerelease-assets pipeline (#72230)
CI: Fix verify-prerelease-assets pipeline (#72226)

* Fix verify-prerelease-assets pipeline

* Comment out unused assets

(cherry picked from commit 142cbc2ec6)
2023-07-25 00:56:54 +03:00
Christopher Moyer
7e71245181 [Docs v9.4x]: Manual backport, adds link to HA docs Update _index.md (#71400) (#72136)
Update _index.md (#71400)

* Update _index.md

Added missing hyperlink for high availability and a small typo

* updates link

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 4e50115d95)

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2023-07-24 10:43:23 -04:00
Kevin Minehart
41c04aecbb [v9.4.x] CI: Run only Grafana builds on RGM for grafana/grafana (#72159)
* CI: Try setting the vault secret for 'grafana_api_key' (#71981)

* Try setting the vault secret

* Maybe?

* forgot .drone.yml

* CI: Use GCP keys in vault and not drone secrets (#72023)

* CI: Run only Grafana builds on RGM for grafana/grafana (#72144)

* Run only OSS builds on RGM for grafana/grafana

* Update script name

* Ignore windows step failure for RGM

---------

Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
2023-07-21 18:27:36 -03:00
grafana-delivery-bot[bot]
e925841872 [v9.4.x] docs: fix broken link (#72154)
docs: fix broken link (#72114)

(cherry picked from commit 0589060041)

Co-authored-by: David Harris <david.harris@grafana.com>
2023-07-21 16:56:16 -04:00
grafana-delivery-bot[bot]
3c987bd8c4 [v9.4.x] Docs: adds mimir and oncall (#72047)
Docs: adds mimir and oncall (#72042)

adds mimir and oncall

(cherry picked from commit 46c49aa7ff)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-07-20 12:09:58 -05:00
lwandz13
64307da9ea Docs: add alias to data sources index file 9.4 (#71985)
added features alias to front matter
2023-07-20 09:34:15 -05:00
grafana-delivery-bot[bot]
95a61e652a [v9.4.x] AuthNZ documentation revamp (#71967)
AuthNZ documentation revamp (#62581)

* init for base branch

* Add authnz code ownership

* Fix docs ownsership path

* docs revamp: Plan IAM strategy (#62582)

* Add planning page

* Add teams definition

* Expand on planning and benefits

* Add reasons to organize users

* Add description of User Teams

* Add Grafana organizations info

* Add a section between Teams and Orgs

* Add a section for external systems

* planning your role strategy

* Add service account documentation

* Add Auth Setup to index sidebar

* Address PR comments

* Add planning for API keys

* Add team and org sync

* Docs: role and permission section for planning docs (#64702)

* docs revamp: Service accounts (#63710)

* docs revamp: Add new documentation to sidebar index (#66104)

* docs revamp: synchronisation planning (#66409)

* Docs: api keys (#64803)

* Remove personal access tokens section

* Move auth integration planning page

* Remove auth folder

* Restore codeowners file

* reword and update info on user management and grouping

* Rename iam strategy page

* extend the section on teams and organizations

* Rename planning your IAM section

* Move to administration section

* Add definition for role sync

* Relocate planning

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
(cherry picked from commit 63346674e6)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2023-07-19 16:17:55 -05:00
Guilherme Caulada
32830edc60 [v9.4.x] CI: Allow RGM to create msi for multiple editions (#71892)
CI: Allow RGM to create msi for multiple editions (#71883)

* Allow RGM to create msi for multiple editions

* Remove suffix from build-windows-installer step

* Invert exit code on verify_release_pipeline

(cherry picked from commit 4c80bcf35f)
2023-07-19 13:35:16 -03:00
Isabel
97aabc8497 [v9.4.x] docs: add docker commands for enabling alpha layers (#71963)
docs: add docker commands for enabling alpha layers (#71897)

added docker commands for enabling alpha layers

(cherry picked from commit ef0de1af32)
2023-07-19 12:34:52 -04:00
Dimitris Sotirakis
c6634f3780 [v9.4.x] Bug: Compare semver digits for frontend packages config (#71906)
Bug: Compare `semver` digits for frontend packages config (#71829)

* Compare semver digits

* Fix lint

(cherry picked from commit 5f8ace33fb)

# Conflicts:
#	pkg/build/frontend/config_test.go
2023-07-19 10:21:47 +03:00
grafana-delivery-bot[bot]
da681e13f2 [v9.4.x] Update _index.md (#71796)
Update _index.md (#71792)

* Update _index.md

* makes prettier

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 03c2efa2d6)

Co-authored-by: Melori Arellano <melori.arellano@grafana.com>
2023-07-18 14:29:37 -05:00
Guilherme Caulada
e3be6812ce [v9.4.x] CI: Add rgm compatible windows msi pipeline (#71857)
CI: Add rgm compatible windows msi pipeline (#71678)

* Add rgm compatible windows msi pipeline

* Fix dependencies and platform

* Fix missing arg comment

* Fix linting issues

* Try to fix version on file path

* Fix dependency on verify release pipeline

(cherry picked from commit 4caa773401)
2023-07-18 13:51:07 -03:00
linoman
0817676d9e [v9.4.x] Rework Okta OAuth2 (#71860)
Rework Okta OAuth2 (#71349)

* Rework Okta OAuth2

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
(cherry picked from commit 130f142c7f)
2023-07-18 17:36:33 +02:00
grafana-delivery-bot[bot]
4333d651e1 [v9.4.x] docs: Update Transform Data (#71852)
docs: Update Transform Data (#71013)

* Update Transform Data :docs:

* Apply suggestions from code review Update Transform Data

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

* Fix link

* Various suggestions

* Various suggestions

* Various suggestions

* Reset make file

* Add example for extract field

* Add example for field lookup

* Add example for histogram

* Update

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

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

---------

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: ludovio <ludovic.viaud@gmail.com>
(cherry picked from commit 679365960b)

Co-authored-by: Jara Suárez de Puga García <jara.suarezdepuga@grafana.com>
2023-07-18 10:37:46 -04:00
Guilherme Caulada
20f001649e [v9.4.x] CI: Removes enterprise specific pipelines and steps (#71775)
[WIP] CI: Removes enterprise specific pipelines and steps (#70815)

* Removes enterprise specific pipelines and steps (#123)

* Comment out enterprise related pipelines and steps

* Suppress unused variable warning

* Removes all edition arguments

* Remove leftover comments

* Remove redundant oss on pipelines and steps names

* Remove leftover unused variable

* Remove leftovers

* Remove pipeline dependencies

* Rename pipelines

* Fix starlark

---------

Co-authored-by: dsotirakis <dimitrios.sotirakis@grafana.com>
(cherry picked from commit 642a81ba75e79138246797302aba5c35575f030d)

* Add editions for static assets

(cherry picked from commit b13939b9af)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-07-18 11:17:11 -03:00
linoman
c465fa856e [v9.4.x] Auth: update generic OAuth documentation (#71639)
* Auth: update generic OAuth documentation (#70330)

* update generic OAuth docs

* some more fixes and corrections

* update examples and sync sections

* fix a link

* linting

* formatting and adding more links to OAuth integrations

* add a section with config walkthrough

* fix link

* move examples to the end of the doc

* extend role mapping

* small improvements

* add a before you begin section, clean up steps, remove some text

* remove unnecessary section

* merge main 2

* OAuth -> OAuth2

* remove Centrify example because it's likely outdated

* add shared intro content

* indentation

* add refresh token to tasks, clean up more sections

* linting

* linting

* Apply suggestions from code review

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

* Update docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth/index.md

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

* indentation and small descriptions under headings

* add a table for config options

* clean up more sections

* rewrite email address section

* rewriting login and display name sections, plus adding line breaks

* clean up more sections

* update role mapping section

* indentation again

* update section names

* incorporates final edits

* Apply suggestions from code review

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

* pr feedback

* Apply suggestions from code review

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

* PR feedback: rewording

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 276c63a656)

* linting

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-07-17 12:27:21 +00:00
grafana-delivery-bot[bot]
98d339bc12 [v9.4.x] Plugins: Only configure plugin proxy transport once (#71740)
Plugins: Only configure plugin proxy transport once (#71735)

only configure plugin proxy transport once

(cherry picked from commit b59ca7fb22)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2023-07-17 14:54:03 +03:00
grafana-delivery-bot[bot]
55abd83948 [v9.4.x] CI: Re-enable milestone-check (#71721)
CI: Re-enable milestone-check (#71718)

This will hopefully resolve stuck PRs until we find a better way to
disable that check.

(cherry picked from commit 44b55a1ca6)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-07-17 12:18:00 +03:00
Dimitris Sotirakis
be7557306c [v9.4.x] CI: Fix broken env vars in publish-artifacts step (#71645)
CI: Fix broken env vars in publish-artifacts step (#71471)

Fix env vars

(cherry picked from commit 64d2ff03c80c807c03390f63ba1834c5605fc96d)

# Conflicts:
#	.drone.yml
(cherry picked from commit fd90737884)

# Conflicts:
#	.drone.yml
2023-07-17 11:53:31 +03:00
Horst Gutmann
5481d29428 [v9.4.x] Chore: Add auto-milestone workflow for pull-requests (#71709)
Chore: Add auto-milestone workflow for pull-requests (#71177)

This adds a new auto-milestone workflow that will set the milestone for
a PR when it is closed. This way, contributors no longer have to think
about milestone at all.

(cherry picked from commit 8ae92db53d)
2023-07-17 10:30:41 +02:00
linoman
093ea7cd47 [v9.4.x] Docs: reorder auth provider pages (#71642)
Docs: reorder auth provider pages (#70764)

* order auth provider pages

* add shorter menu titles

* linting

* update reference

* rename Grafana auth section to basic auth

(cherry picked from commit fc290281cb)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-07-17 09:58:25 +02:00
linoman
3ecbd728b3 [v9.4.x] Auth: update GitHub OAuth documentation (#70459) (#71649)
Auth: update GitHub OAuth documentation (#70459)

* github oauth doc improvements

* add skip_org_role_sync to config for github provider

* update links and section headings

* update the docs based on the first PR

* update references

(cherry picked from commit cb695cef8e)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-07-17 09:57:41 +02:00
grafana-delivery-bot[bot]
aff2783e68 [v9.4.x] Docs: Add reference to Grafana Cloud doc (#71666)
Docs: Add reference to Grafana Cloud doc (#71653)

Add reference to Grafana Cloud doc

(cherry picked from commit 6b40fe75f5)

Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>
2023-07-14 10:26:33 -05:00
Kevin Minehart
14484c46ad [v9.4.x] CI: Update and rename pr-patch-mirror-and-apply.yml to sync-mirror.yml (#71613)
CI: Update and rename pr-patch-mirror-and-apply.yml to sync-mirror.yml (#71608)

* CI: Update and rename pr-patch-mirror-and-apply.yml to sync-mirror.yml

* update CODEOWNERS

(cherry picked from commit 3afc20fae9)
2023-07-14 11:50:01 +01:00
Isabel
672a4d1590 [v9.4.x] docs: restructure dashboard annotations page (#71514)
* docs: restructure dashboard annotations page (#70208)

* restructured page, updated and removed images, replaced a paragraph with a procedure

* Clarify language

* Apply suggestions from code review

* removed native annotation language, added missing link, added text from UI

* fixed relref

* replaced relref with simple link

* updated links and link text in whats new for annotations updates

* fixed some grammar/wording and style issues

* Apply suggestions from code review

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

* fix typo

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>

* make link text more clear

* fix typo

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
(cherry picked from commit adc7f65453)

* fixed backport
2023-07-13 10:11:16 -04:00
Isabel
211bfd2f4d [v9.4.x] docs: add alphaPanels feature toggle information (#71508)
fix backport conflict
2023-07-13 01:25:32 +03:00
grafana-delivery-bot[bot]
89c1e4c35e [v9.4.x] CI: Rename the patch GHA workflows (#71475)
CI: Rename the patch GHA workflows (#71470)

* Rename the patch workflows

* Update codeowners

(cherry picked from commit 428f63518a)

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-07-12 10:35:17 -05:00
Christopher Moyer
c922a5f956 [DOC] Fix tracing links in explore/tracing (#71383) (#71392)
* [DOC] Fix tracing links in explore/tracing (#71383)

Fix tracing links

(cherry picked from commit 41def2e346)

* Update docs/sources/explore/trace-integration.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

---------

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2023-07-11 11:57:41 -05:00
Emil Tullstedt
a4ab5bfaad [v9.4.x] CI: Provide a Drone promotion to build the build-container (#71350)
CI: Provide a Drone promotion to build the build-container (#71133)

(cherry picked from commit 7a9847e196)
2023-07-11 14:04:23 +02:00
grafana-delivery-bot[bot]
6480b50187 [v9.4.x] Docs: Fix broken links to play (#71294)
Docs: Fix broken links to play (#71112)

* fix broken links to play

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

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>

---------

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
(cherry picked from commit 69d8e3d8dc)

Co-authored-by: matt abrams <37156449+zuchka@users.noreply.github.com>
2023-07-10 14:47:47 -04:00
grafana-delivery-bot[bot]
6ab231d61d [v9.4.x] Prometheus: Version detect bug (#71242)
Prometheus: Version detect bug (#71198)

* remove redundant request copy in backend, add more versions to semver lists

(cherry picked from commit 7dc071f46b)

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2023-07-07 14:21:31 -05:00
Kevin Minehart
19ea031bbd [v9.4.x] CI: Add GPG keys to rgm, don't clone RGM just use the docker image (#71231)
* CI: Add rgm to drone (#66991)

* add drone stub that build grafana using 'grafana/build' (dagger)

---------

Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>
(cherry picked from commit 768efe9748)

* Add dagger token to rgm builds (#68651)

(cherry picked from commit a870b227db)

* CI: Add GPG keys to rgm, don't clone RGM just use the docker image (#71143)

* Add GPG keys to rgm, dont' clone RGM just use the docker image

(cherry picked from commit d5a4c81fa1)
2023-07-07 20:23:39 +03:00
Christopher Moyer
f09edce739 Docs: update the word "integration" in Okta config (#71181) (#71210)
(cherry picked from commit ac78146091)

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2023-07-07 09:39:49 -05:00
grafana-delivery-bot[bot]
fe5305ffeb [v9.4.x] InfluxDB: Interpolate retention policies (#71202)
InfluxDB: Interpolate retention policies (#69202)

Interpolate retention policies

(cherry picked from commit f610e37aec)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-07-07 15:14:24 +02:00
grafana-delivery-bot[bot]
fa72114b45 [v9.4.x] Docs: Updates Grafana alerting link text on Panel Editor Overview page (#71195)
Docs: Updates Grafana alerting link text on Panel Editor Overview page (#71146)

* Updates Grafana alerting link text on panel editor overview page

* fixed wording of link text

---------

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

Co-authored-by: Leanna Shippy <11079957+lshippy@users.noreply.github.com>
2023-07-07 08:24:55 -04:00
grafana-delivery-bot[bot]
51b8889874 [v9.4.x] Added security patch delivery workflows (#71147)
Added security patch delivery workflows (#71101)

* adding security patch workflows

* adding grafana-delivery as codeowners for new pr-security-check workflows

* adding release branch triggers to PR security patch github action

* joined security patching mirror and apply jobs

* remove temp files

(cherry picked from commit d88046d3d4)

Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>
2023-07-06 11:11:27 -05:00
grafana-delivery-bot[bot]
3e8916aa81 [v9.4.x] Docs: update heatmap panel options (#71095)
Docs: update heatmap panel options (#71058)

Added some heatmap panel configuration options which were missing from the docs

(cherry picked from commit bdf60d69de)

Co-authored-by: prenzlern <88067634+prenzlern@users.noreply.github.com>
2023-07-05 13:52:18 -04:00
grafana-delivery-bot[bot]
edba3a2467 [v9.4.x] standardize docs copyright (#70829)
standardize docs copyright (#70732)

(cherry picked from commit 3e3bcf510b)

Co-authored-by: Robby Milo <robbymilo@fastmail.com>
2023-06-28 09:47:10 -04:00
grafana-delivery-bot[bot]
8dcfb83de4 [v9.4.x] CI: Ignore .pr-body.txt file (#70806)
CI: Ignore .pr-body.txt file (#70798)

This file is used during the backporting process but should never be
committed.

(cherry picked from commit 2b10d31bac)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-06-28 12:22:35 +03:00
Dimitris Sotirakis
4486f323ec [v9.4.x] CI: Cleanup - Remove security related steps (#70793)
CI: Cleanup - Remove security related steps (#70788)

* Remove security related steps

* More cleanup

(cherry picked from commit 7f55ba9c6e)
2023-06-28 11:38:03 +03:00
grafana-delivery-bot[bot]
1d34f16a3f [v9.4.x] Update to docs - index.md (#70751)
Update to docs -  index.md (#70699)

Update index.md

Minor correction.

(cherry picked from commit b32cea7929)

Co-authored-by: marybelvargas <107340764+marybelvargas@users.noreply.github.com>
2023-06-27 17:01:03 -05:00
Horst Gutmann
db737d1d96 [v9.4.x] Docs: Add missing entries to changelog for 9.4.9 (#70744) 2023-06-27 14:33:23 +03:00
grafana-delivery-bot[bot]
47e4a2f886 [v9.4.x] docs: fix broken links in Configure legend (#70709)
docs: fix broken links in Configure legend (#70696)

* fix broken links

* fix remaining broken links

(cherry picked from commit 2d261e7aef)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-06-26 13:54:38 -04:00
grafana-delivery-bot[bot]
fda6f03ec9 [v9.4.x] Docs: removes-yum (#70640)
Docs: removes-yum (#70634)

* removes-yum

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

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

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

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

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

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* incorporates feedback

* adds GPG key step

* removes duplicate addrepo command

---------

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
(cherry picked from commit 262af2c473)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-06-23 14:35:22 -05:00
grafana-delivery-bot[bot]
b1d68dc18d [v9.4.x] Docs: removes references to Redhat, adds import GPG key step (#70630)
Docs: removes references to Redhat, adds import GPG key step (#70625)

removes references to Redhat, adds import GPG key step

(cherry picked from commit 06b1b6f552)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-06-23 12:47:11 -05:00
grafana-delivery-bot[bot]
54e65f25b7 [v9.4.x] docs: clarifies that only OSS or Enterprise are installed (#70626)
docs: clarifies that only OSS or Enterprise are installed (#70619)

* clarifies that only OSS or Enterprise are installed,  not both

* Apply suggestions from code review

(cherry picked from commit f77a886f0e)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-06-23 12:39:19 -05:00
grafana-delivery-bot[bot]
3db20d0149 [v9.4.x] formatting fix for line 72 (#70621)
formatting fix for line 72 (#70618)

(cherry picked from commit cbf4fe9d23)

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
2023-06-23 10:04:26 -07:00
grafana-delivery-bot[bot]
cb7a0bb612 [v9.4.x] Changelog: Updated changelog for 9.4.13 (#70596)
Changelog: Updated changelog for 9.4.13 (#70595)

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

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2023-06-23 15:07:56 +03:00
Horst Gutmann
28005f8baa [v9.4.x] Auth: Fixed CVE-2023-3128 (#70579)
Auth: Fixed CVE-2023-3128 (#70571)

Fixed CVE-2023-3128

(cherry picked from commit 789ee2121e)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2023-06-23 12:10:30 +02:00
Vardan Torosyan
1a333623cf [v9.4.x] Add and document option for enabling email lookup (#916)
Add and document option for enabling email lookup (#913)

* Docs: Document option for enabling email lookup

* Add the new config in the config files

* Apply suggestions from code review

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* Don't capitalize identity providers

* Apply suggestions from code review

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

* Apply suggestions from code review

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

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 8380bc7d6a79794cc260bf1c427e2b4e849adbf6)
2023-06-23 08:58:43 +02:00
Ieva
5829fdd399 Auth: Remove Email Lookup from oauth integrations 9.4 (#896)
backport https://github.com/grafana/grafana-private-mirror/pull/894 to 9.4.x
2023-06-23 08:58:42 +02:00
grafana-delivery-bot[bot]
1a07dc5db0 [v9.4.x] Changelog: Add CVE to 9.4.13 changelog (#70559)
Changelog: Add CVE to 9.4.13 changelog (#70558)

Add CVE to 9.4.13 changelog

(cherry picked from commit 69fc4e6bc0)

Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
2023-06-22 18:17:55 -03:00
grafana-delivery-bot[bot]
f829ae71db Release: Bump version to 9.4.14 (#70557)
"Release: Updated versions in package to 9.4.14"

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2023-06-22 18:01:46 -03:00
Guilherme Caulada
43e78fa1a6 [v9.4.x] Changelog: Updated changelog for 9.4.13 (#70555)
* Changelog: Updated changelog for 9.4.13 (#70553)

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

* Fix changelog conflict

---------

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2023-06-22 17:49:03 -03:00
grafana-delivery-bot[bot]
351450bfe0 [v9.4.x] Github Actions: Fix milestone GH action (#70497)
Github Actions: Fix milestone GH action (#70490)

* Remove secret from the caller action

* Inherit secrets for reusable actions

(cherry picked from commit 37db29db63)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-06-22 19:17:40 +03:00
grafana-delivery-bot[bot]
69848e4349 [v9.4.x] docs: table panel: modified support section regarding alerts (#70532)
table panel: modified support section regarding alerts (#70421)

* modified support section

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

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

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

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

* fixing linting error

---------

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

Co-authored-by: tonypowa <45235678+tonypowa@users.noreply.github.com>
2023-06-22 11:34:13 -04:00
grafana-delivery-bot[bot]
28767f8a67 [v9.4.x] Docs: changes link text and adds link to the download page (#70507)
Docs: changes link text and adds link to the download page (#70477)

achanges link text and add link to the download page

(cherry picked from commit 5426d519c6)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-06-22 06:55:17 -05:00
grafana-delivery-bot[bot]
ccbd6d0afb [v9.4.x] Docs: removes references to YUM (#70473)
Docs: removes references to YUM (#70471)

removes references to YUM

(cherry picked from commit ebdba3b359)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-06-21 14:18:32 -05:00
Dimitris Sotirakis
b8ad4e0bb4 [v9.4.x] GitHub Apps: Replace grafanabot token with grafana-delivery-bot GitHub App (#70457)
* GitHub Apps: Replace `grafanabot` token with `grafana-delivery-bot` GitHub App (#70242)

* Update bump-version.yml

* Fix secret

* [REVERTME] Remove check

* Test without grafana-delivery-bot prefix

* Check if token exists

* Cleanup bump-version

* Update gh actions to use app key

(cherry picked from commit 15a85686c2)

# Conflicts:
#	.github/workflows/backport.yml
#	.github/workflows/bump-version.yml
#	.github/workflows/milestone.yml
#	.github/workflows/update-changelog.yml

* Bug: Fix `yaml` identation for github action yamls (#70445)

* Fix yaml identation

* Fix the rest of the yamls

(cherry picked from commit 31b9f9d235)
2023-06-21 16:32:58 +03:00
Grot (@grafanabot)
4add393ff0 [v9.4.x] docs: Fix bad markup in time series docs (#70388)
Fix bad markup in time series docs (#70352)

(cherry picked from commit d8a74ab1b7)

Co-authored-by: John Spurlock <john.spurlock@gmail.com>
2023-06-20 13:53:10 -04:00
Isabel
b640eb0c85 [v9.4.x] docs: Use "or" to convey that OS options are unique (#70353)
* Fix merge conflict
* Update relrefs

---------
Co-authored-by: Ursula Kallio <ursula.kallio@grafana.com>
2023-06-20 11:15:28 +02:00
Grot (@grafanabot)
ed6169688e [v9.4.x] Docs: List packages together, and fix or add menuTitles. (#70341)
Docs: List packages together, and fix or add menuTitles. (#70338)

List packages together, and fix or add menuTitles.

(cherry picked from commit a50afe67d3)

Co-authored-by: Ursula Kallio <ursula.kallio@grafana.com>
2023-06-19 11:34:49 -04:00
Dimitris Sotirakis
85637f0355 [v9.4.x] What's New: Bump whatsnewurl link (#70313)
Bump whatsNewUrl link
2023-06-19 13:11:11 +03:00
Jack Baldry
b3b5a9a999 [v9.4.x] Update make-docs procedure (#70275)
Update make-docs procedure (#70265)

## 4.1.0 (2023-06-16)

### Added

- Mounts of `layouts` and `config` directories for the `website` project.
  Ensures that local changes to mounts or shortcodes are reflected in the development server.

### Fixed

- Version inference for versioned docs pages.
  Pages in versioned projects now have the `versioned: true` front matter set to ensure that "version" in $.Page.Scratch is set on builds.

## 4.0.0 (2023-06-06)

### Removed

- `doc-validator/%` target.
  The behavior of the target was not as described.
  Instead, to limit `doc-validator` to only specific files, refer to https://grafana.com/docs/writers-toolkit/writing-guide/tooling-and-workflows/validate-technical-documentation/#run-on-specific-files.

## 3.0.0 (2023-05-18)

### Fixed

- Compatibility with the updated Make targets in the `website` repository.
  `docs` now runs this script itself, `server-docs` builds the site with the `docs` Hugo environment.


(cherry picked from commit a4a16b62c7)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-06-16 21:53:29 +01:00
Jack Baldry
4c56cef6af [v9.4.x] Use docs/reference for flexible linking for content reused in Grafana Cloud (#70270)
Use docs/reference for flexible linking for content reused in Grafana Cloud (#70253)

* Use docs/reference for flexible linking for content reused in Grafana Cloud

Documented in https://github.com/grafana/website/pull/13878



* Use docs-base image that has docs/reference shortcode



---------


(cherry picked from commit 3d15d54a71)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-06-16 18:45:27 +01:00
Grot (@grafanabot)
4c7ff6cff3 [v9.4.x] Changelog: Updated changelog for 9.4.10 (#70184)
Changelog: Updated changelog for 9.4.10 (#70181)

(cherry picked from commit 44c87c5b32)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-06-15 15:06:19 +00:00
Grot (@grafanabot)
1bb101b1ce [v9.4.x] Changelog: Updated changelog for 9.4.12 (#70171)
Changelog: Updated changelog for 9.4.12 (#70167)

(cherry picked from commit c82baf68a5)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-06-15 17:21:03 +03:00
Dimitris Sotirakis
ca2c251be6 [v9.4.x] CI: Update grabpl to v3.0.39 (#70134)
CI: Update `grabpl` to `v3.0.39` (#70126)

Update grabpl to v3.0.39

(cherry picked from commit b1e219e72c)

# Conflicts:
#	.drone.yml
2023-06-15 13:11:38 +03:00
Dimitris Sotirakis
c251570039 [v9.4.x] Bug: Fix build-frontend* config checks (#70076) (#70118)
Bug: Fix `build-frontend*` config checks (#70076)

* Fix frontend config checks

* Exclude test tag events

(cherry picked from commit 5a36fa5f8a)

# Conflicts:
#	pkg/build/cmd/buildfrontendpackages.go
2023-06-15 09:44:30 +03:00
Dimitris Sotirakis
c1cddece45 [v9.4.x] CI: Add CI check for what's new link (#70046) (#70121)
CI: Add CI check for `what's new` link (#70046)

* Add whatsnewchecker

* Add whatsnewchecker_test

* Small fixes

* Add step in CI

* Fix lint

* Fix starlark

* t.Cleanup instead of separate func

* Skip check for test tags

(cherry picked from commit 91272ee4f9)

# Conflicts:
#	.drone.yml
#	scripts/drone/events/release.star
2023-06-15 09:43:55 +03:00
Grot (@grafanabot)
37fc161fd9 [v9.4.x] AzureMonitor: Update docs to detail Azure logs query changes (#70086)
AzureMonitor: Update docs to detail Azure logs query changes (#69987)

Update docs to detail Azure logs query changes

(cherry picked from commit 068236c37f)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-06-14 19:14:11 +03:00
Dimitris Sotirakis
9117cec064 [v9.4.x] NPM packages: Fail build-frontend-packages step if package.json and input tag differ (#70011) (#70041)
* NPM packages: Fail `build-frontend-packages` step if `package.json` and input tag differ (#70011)

* Fail if package.json version is different than the tag

* Add tests

* Update message

* Small refactoring

* Fix lint

(cherry picked from commit a6b524fd56)

* Bump urfave/cli/v2

* go mod tidy
2023-06-14 12:42:05 +03:00
Dimitris Sotirakis
1a714ed0f5 [v9.4.x] Security Scans: Exclude windows container scans (#69977) (#69983)
Security Scans: Exclude windows container scans (#69977)

* Exclude windows container scans

* Fixes according to reviewer's comments

(cherry picked from commit fa70fba0e3)

# Conflicts:
#	.drone.yml
2023-06-13 10:57:32 +03:00
Isabel
f4064da4b5 [v9.4.x] docs: general edits to dashboard overview (#69747) (#69933)
docs: general edits to dashboard overview (#69747)

* general edits

* style edits - contractions

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Apply suggestions from code review

* fixed linting error

---------

Co-authored-by: David Allen <david.allen@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit a169cdd5ec)

# Conflicts:
#	docs/sources/fundamentals/dashboards-overview/index.md
2023-06-12 11:32:08 -04:00
Dimitris Sotirakis
0850edc137 [v9.4.x] Security Scans: Add trivy scans to every docker image used for building/testing/publishing (#69911) (#69920)
* Security Scans: Add trivy scans to every docker image used for building/testing/publishing (#69911)

* Created images.star

* Fix typo

* Add cronjobs for build-images

(cherry picked from commit 2cda971796)

# Conflicts:
#	.drone.yml
#	scripts/drone/services/services.star
#	scripts/drone/steps/lib.star

* Fix rebasing issue
2023-06-12 17:32:09 +03:00
Jack Westbrook
12c6626a42 [v9.4.x] Docs: fix broken migration-guide (#69896)
docs: fix broken migration-guide
2023-06-12 12:02:20 +02:00
Grot (@grafanabot)
e5d8b486a6 [v9.4.x] docs: Azure doc link update (#69751)
docs: Azure doc link update (#69749)

Update index.md

Link update

(cherry picked from commit 3e48c0b570)

Co-authored-by: Jan Garaj <jan.garaj@gmail.com>
2023-06-08 09:29:25 -05:00
Christopher Moyer
66f195ca77 [9.4.x] Backport 64565 to v9.4.x (#69746)
Docs/docker compose update (#64565)

* added CLI in heading for clearity

* added new heading

* new change

* updated final version for review

* fix small line breaks

* copy edit, restructuring

* Apply suggestions from code review

* Apply suggestions from code review

* removed internal notes

* updateding the docker configuraiton file which have advanced instructions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* updated persistent stroage section

* updated heading typo

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* fixed code identation and minor typos

* added yaml file validation check in the troubleshooting section

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

added "also"

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* Apply suggestions from code review

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

* Update docs/sources/setup-grafana/configure-docker.md

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

* add more details to apline, cloudwatch and default path sections

* Apply suggestions from code review

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

* added more detailes about docker ubuntu image, fixed headings, added more clarity to the persistent vs bind stroage

* Apply suggestions from code review

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

* added more improvements for the examples

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

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

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

* Update docs/sources/setup-grafana/configure-docker.md

* updates links, edits Troubleshooting section

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* fixes doc-validator issues

* adds link to plugin install instructions

* added improvement in the AWS cloudwatch example

* Update docs/sources/setup-grafana/configure-docker.md

* Update docs/sources/setup-grafana/configure-docker.md

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

* Apply suggestions from code review

suggestions looks good

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

* added dan suggestion for the tags, but skip the longer description part as not really useful for end user

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

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Dan Cech <dcech@grafana.com>

* Apply suggestions from code review

looks good

Co-authored-by: Dan Cech <dcech@grafana.com>

* added missing version

* fixed identation and small typo

* fixed the pwd data folder instruction

* fixed persistent volume creating and identation

* fixed identation

* fixed typo to get debug logs

* fixed custom plugin installation section

* created docker secret command instructions

* fixed missing path

* fixed code in docker secret and other minor typos

* incorporates feedback, copy edits secrets section

* fixed small typo in docker secrets section

* remove the additonal info command for secrets

* combined custom docker pre-installed plugin section as one

* fixed the build link typo

* various updates/fixes

* another fix

* added more clarity to the volume creating command

* fixed command for bind mounts

* fixed missing comman in the plugin command

* fixed small typo

* improve and simplifly the steps instructions

* fixed validation command

* Apply suggestions from code review

looks good!!

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

* fixed typo in docker secret command explaination

* fixed minor stuff

* makes prettier

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Dan Cech <dcech@grafana.com>
(cherry picked from commit d50e50be28)

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2023-06-07 15:06:30 -05:00
Isabel
c659f65ac0 [v9.4.x] docs: improvements to visualizations docs (#69740)
fixing merge conflict
2023-06-07 14:18:20 -04:00
Grot (@grafanabot)
5cbce7b951 [v9.4.x] docs: add product labels for reporting page (#69726)
docs: add product labels for reporting page (#69717)

add product labels for reporting page

(cherry picked from commit 994defeeb4)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-06-07 12:04:52 -04:00
Grot (@grafanabot)
8c42bef420 [v9.4.x] Docker: Add ARM64 architecture for Docker, for PRs (#69713)
Docker: Add ARM64 architecture for Docker, for PRs (#68295)

* Add ARM64 architecture for Docker

* Add arm64 variants

(cherry picked from commit bbd83cbaeb)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-06-07 17:35:23 +03:00
Grot (@grafanabot)
d3d03312c3 [v9.4.x] Docs: Remove duplicate word in edit panel of configure panel options (#69666)
Docs: Remove duplicate word in edit panel of configure panel options (#69592)

Documentation: Remove duplicate word in edit panel of configure panel options
(cherry picked from commit f20a8eb2a7)

Co-authored-by: SatVeer Singh <developer.satveer@gmail.com>
2023-06-06 16:53:37 -04:00
Grot (@grafanabot)
c97d52e238 [v9.4.x] docs: update use dashboards descriptions (#69492)
* docs: update use dashboards descriptions (#67360)

* Update index.md

* fix wording

---------

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

* reverting incorrectly backported changes

* add changes intended for backport

* revert incorrectly backported change

---------

Co-authored-by: MattiasSegerdahl <102952046+MattiasSegerdahl@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-06-06 16:37:13 -04:00
Grot (@grafanabot)
8faf41ff7f [v9.4.x] Prevent crash while executing concurrent mixed queries (#876)
Prevent crash while executing concurrent mixed queries (#874)

limit parallel query execution to 1 at a time

(cherry picked from commit 96579a60e19e2a9f2d6bdaeba64e0e702211eb73)

Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
2023-06-06 13:27:09 +02:00
George Robinson
f30c03c281 [v9.4.x] Require alert.notifications:write permissions to test receivers and templates (#868)
Require alert.notifications:write permissions to test receivers and templates (#865)

(cherry picked from commit 3c21ab70075256d4ba8e4fbfdcb15f5a394161fa)
2023-06-06 13:27:08 +02:00
Grot (@grafanabot)
1e75a11e6b Release: Bump version to 9.4.13 (#69618)
"Release: Updated versions in package to 9.4.13"
2023-06-06 10:11:42 +00:00
Horst Gutmann
ce81d3d30a [v9.4.x] Changelog: Updated changelog for 9.4.12 (#69619)
* Changelog: Updated changelog for 9.4.12

* Add missing changes

Backport of #69617

---------

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
(cherry picked from commit 997c5e2348)

Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
2023-06-06 11:49:02 +02:00
Grot (@grafanabot)
92f437a5f2 [v9.4.x] Chore: Update @grafana/e2e (#66881)
Chore: Update @grafana/e2e (#66365)

* Update e2e package

- Ensure health request is monitored for addDatasource flow
- Add custom timeout to configurePanel flow

* Make health check optional

(cherry picked from commit b2e32a70b9)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-06-05 09:33:22 +00:00
Grot (@grafanabot)
16b542a3e6 [v9.4.x] [docs] typo fixes in expression queries (#69505)
[docs] typo fixes in expression queries (#65665)

* Update index.md

Fixing some minor typos.

* make language clearer

---------

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

Co-authored-by: marybelvargas <107340764+marybelvargas@users.noreply.github.com>
2023-06-02 18:19:23 -04:00
Grot (@grafanabot)
0167cb7ff8 [v9.4.x] docs: update add-template-variables docs (#69500)
docs: update add-template-variables docs (#65682)

correcting typo in "Filter and modify using named text and value capture groups" section

(cherry picked from commit 921bc0324e)

Co-authored-by: annelaurefroment <49911675+annelaurefroment@users.noreply.github.com>
2023-06-02 17:56:08 -04:00
Grot (@grafanabot)
f6273ebb06 [v9.4.x] docs: fix grafana play link (#69496)
docs: fix grafana play link (#65763)

* Update index.md

Fixed the link for a grafana play reference

* fix link text

* fix wording for flow

---------

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

Co-authored-by: ashley <97468854+ansomerv@users.noreply.github.com>
2023-06-02 17:51:56 -04:00
Grot (@grafanabot)
4c1f6cca24 [v9.4.x] docs: update TestData screenshots (#69481)
docs: update TestData screenshots (#69472)

updated screenshots

(cherry picked from commit 52da729c83)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-06-02 16:25:39 -04:00
Grot (@grafanabot)
de801f532d [v9.4.x] Docs: Bring back the alias for external group sync HTTP API page (#69455)
Docs: Bring back the alias for external group sync HTTP API page (#69434)

* Docs: Bring back the alias for external group sync HTTP API page

* Update docs/sources/developers/http_api/team_sync.md

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

---------

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

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2023-06-02 13:08:05 +00:00
Grot (@grafanabot)
457b4b208b [v9.4.x] remove incorrect state changes statement (#69446)
remove incorrect state changes statement (#65785)

Update index.md

(cherry picked from commit e789c2bf03)

Co-authored-by: Stefan Dunkler <stefan.dun@gmail.com>
2023-06-02 13:58:09 +02:00
Grot (@grafanabot)
0828eaa14c [v9.4.x] Docs: Rename External Group Sync references to Team Sync (#69398)
Docs: Rename External Group Sync references to Team Sync (#69395)

(cherry picked from commit 8235f774aa)

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2023-06-02 11:01:57 +02:00
Grot (@grafanabot)
832e89dad0 [v9.4.x] Dashboard: Fix library panels in collapsed rows not getting updated (#68535)
Dashboard: Fix library panels in collapsed rows not getting updated (#66643)

(cherry picked from commit f478504bc9)

Co-authored-by: Victor Colomb <51762123+VictorColomb@users.noreply.github.com>
2023-06-01 11:56:20 +03:00
Grot (@grafanabot)
caa6545292 [v9.4.x] Fix opentsdb table format (#69283)
Fix opentsdb table format (#69281)

* fixed table formatting

* changed opentsdb to OpenTSDB

* cleaned up wording

(cherry picked from commit 4a84633773)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-05-30 13:44:49 -07:00
Grot (@grafanabot)
0ac3eb956b [v9.4.x] Auth: Update docs on use PKCE by default (#69267)
Auth: Update docs on use PKCE by default (#68638)

* Auth: Update docs on use PKCE by default. (#68073)

Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>

* Fix: docs review - from introduces to provides https://github.com/grafana/grafana/pull/68638/files#r1200506006

Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>

* Fix docs - Remove note about a version https://github.com/grafana/grafana/pull/68638/files#r1200508038

Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>

* Update docs/sources/setup-grafana/configure-security/configure-authentication/azuread/index.md

---------

Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 345b7fadc9)

Co-authored-by: arukiidou <arukiidou@yahoo.co.jp>
2023-05-30 11:41:53 -05:00
Grot (@grafanabot)
4cf03f5004 [v9.4.x] Docs: adds intro to prometheus (#69263)
Docs: adds intro to prometheus (#64352)

* adds topic content

* adjusts weights

* Update docs/sources/fundamentals/intro-to-prometheus/index.md

Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>

* Update docs/sources/fundamentals/intro-to-prometheus/index.md

* Apply suggestions from code review

Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>

* Update docs/sources/fundamentals/intro-to-prometheus/index.md

* Apply suggestions from code review

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>

* Apply suggestions from code review

* adds sentence about agent

* reworks prometheus as deployment section based on feedback

---------

Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
(cherry picked from commit 59a62353dd)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-05-30 10:58:12 -05:00
Grot (@grafanabot)
e3f05514d3 [v9.4.x] Docs: Updates Grafana [smtp](#63311) (#69215)
Docs: Updates Grafana [smtp](#63311) (#63332)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
(cherry picked from commit 89088d6aa2)

Co-authored-by: chenbt <34958405+chenbt-hz@users.noreply.github.com>
2023-05-30 09:14:55 -05:00
Grot (@grafanabot)
6d94ee5411 [v9.4.x] fix: Chef cookbook has moved to sous-chefs (#69240)
fix: Chef cookbook has moved to sous-chefs (#68425)

* fix: Chef cookbook has moved to sous-chefs

Updates the github link for the chef configuration option.

* Update docs/sources/administration/provisioning/index.md

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

---------

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

Co-authored-by: Jason Field <Jason@avon-lea.co.uk>
2023-05-30 08:32:05 +01:00
Ricky Whitaker
8be48da766 Backport 69191 to v9.4.x (#69197)
* fix verify_release_pipeline script execution (#69191)

* fix verify_release_pipeline script execution

* forgot to run make drone

(cherry picked from commit 68fe1e1cb0)

* make drone

---------

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-05-26 17:20:21 -05:00
Joseph Perez
ef87202878 [v9.4.x] Docs: Plugins doc review chunk 1-B (#68926)
Docs: Plugin doc review changes from chunk 1-B with corrected set of files (#67164)

* Re-pushing doc review changes from 1-B with fewer files

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fix for URL examples

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Data frames fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fixes from doc review

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* More doc review changes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Prettier

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fix migration index

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fix screenshot

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Quick fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
(cherry picked from commit d6ba522c3c)
2023-05-26 19:29:32 +02:00
Grot (@grafanabot)
d448263073 [v9.4.x] Docs: Plugin doc review - backend topics - chunk 5 (#69161)
Docs: Plugin doc review - backend topics - chunk 5 (#68662)

* Initial commit

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Minor fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Prettier fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Incorporating review feedback

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Minor fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/grafana-plugin-sdk-for-go.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/grafana-plugin-sdk-for-go.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/plugin-protocol.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/plugin-protocol.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/plugin-protocol.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/developers/plugins/backend/_index.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Indentation fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Review feedback

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Bug fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
Co-authored-by: David Harris <david.harris@grafana.com>
(cherry picked from commit b7e2f3ad3f)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-05-26 16:48:37 +00:00
Grot (@grafanabot)
fc447be8ac [v9.4.x] Docs: Update the service account HTTP API documentation (#69187)
Docs: Update the service account HTTP API documentation (#63235)

* doc: Add the service account deletion function

* doc: Add new service account documentation

(cherry picked from commit 4aa207ed83)

Co-authored-by: Pascal Zimmermann <pascal.zimmermann@theiotstudio.com>
2023-05-26 09:39:11 -07:00
Grot (@grafanabot)
f498b4d821 [v9.4.x] Docs: corrects circular reference in links (#69169)
Docs: corrects circular reference in links (#69165)

corrects circular reference in links

(cherry picked from commit 521d5f86dc)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-05-26 08:57:12 -05:00
Grot (@grafanabot)
f781e6fb7e [v9.4.x] Docs: fix 2 broken links on 'Publish a plugin' topic (#69157)
Docs: fix 2 broken links on 'Publish a plugin' topic (#68666)

* Initial commit

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Delete Reference folder for now

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
(cherry picked from commit 0600c5f5e7)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-05-26 08:25:11 -05:00
Grot (@grafanabot)
e6ed9908e3 [v9.4.x] GoogleAPI: Add retries functionallity to GoogleAPI calls (#69142)
GoogleAPI: Add retries functionallity to GoogleAPI calls (#69129)

* Add retryer to GoogleAPI calls

* Add comment

(cherry picked from commit 515270f5fd)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-05-26 10:21:16 +00:00
Grot (@grafanabot)
37a8711985 [v9.4.x] docs: Update "Create reports" doc to clarify custom time ranges and add information about drafts (#69090)
docs: Update "Create reports" doc to clarify custom time ranges and add information about drafts (#69015)

* Update index.md

Clarify that changes to dashboard time range are only reflected in the report if they are not using a custom time range.

Add information regarding saving a report as a draft.

* Update docs/sources/dashboards/create-reports/index.md

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

* running prettier

---------

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

Co-authored-by: chrisharbro <102977229+chrisharbro@users.noreply.github.com>
2023-05-25 19:02:19 -04:00
Grot (@grafanabot)
cd0854f1bc [v9.4.x] docs: update logs integration and calculation types content (#68915)
* Jasuade docs patch 1 (#68074)

* Docs update Logs in Explore

* Include new Calculation Types :docs:

* Update docs/sources/explore/logs-integration.md

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

* Update docs/sources/explore/logs-integration.md

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

* Update docs/sources/explore/logs-integration.md

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

* Update docs/sources/explore/logs-integration.md

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

* Eye icon instead of Toggle field visibility

* running prettier

---------

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

* fixing erroneously updated content

* remove extra line break

---------

Co-authored-by: Jara Suárez de Puga García <jara.suarezdepuga@grafana.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-05-26 01:33:43 +03:00
Grot (@grafanabot)
0d7c6950b9 [v9.4.x] Docs: Add JSON format for webhook notifications to differences (#69054)
Docs: Add JSON format for webhook notifications to differences (#68786)

(cherry picked from commit 65e2df7a2e)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-05-25 11:17:48 +02:00
Horst Gutmann
58b306eacf [v9.4.x] CI: Pin the google/cloud-sdk image (#69041)
[v9.4.x] CI: Pin the google/cloud-sdk image (#69037)

(cherry picked from commit f22d1d14a0)

Backport of #69037
2023-05-25 10:56:33 +03:00
Grot (@grafanabot)
0d80fc0da0 [v9.4.x] update prometheus query editor doc (#69012)
update prometheus query editor doc (#68595)

* initial updates to outdated info

* minor edits prior to draft PR

* commented out options no longer available

* additional edits

* removed tables, changed format to list

* updated code mode section

* finished edits to builder mode

* added revisions per Brendan

* removed commented out section

* added note short codes

(cherry picked from commit 3edeafa663)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-05-24 13:38:11 -07:00
Grot (@grafanabot)
14d0a0cfd5 [v9.4.x] Edit global time variable - custom date formats use browser time (#69019)
Edit global time variable - custom date formats use browser time (#69016)

* Edit global time variable - custom date formats use browser time

Fixes https://github.com/grafana/grafana/issues/68748

* run prettier

---------

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
(cherry picked from commit 7c2358862e)

Co-authored-by: Melori Arellano <melori.arellano@grafana.com>
2023-05-24 13:37:09 -07:00
Grot (@grafanabot)
8ba86ce233 [v9.4.x] "Anatomy of a Dashboard" intro docs (#68833)
"Anatomy of a Dashboard" intro docs (#68011)

* first commit

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* applying edited suggestions

* applying edit changes

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Apply suggestions from code review

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

* Update docs/sources/fundamentals/dashboards-overview/index.md

* Update docs/sources/fundamentals/dashboards-overview/index.md

* Update docs/sources/fundamentals/dashboards-overview/index.md

* Update docs/sources/fundamentals/dashboards-overview/index.md

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Update docs/sources/fundamentals/dashboards-overview/index.md

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

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* makes prettier

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 26c59ddc70)

Co-authored-by: David Allen <david.allen@grafana.com>
2023-05-24 09:51:35 -05:00
Jack Baldry
7daa240753 Revert "[v9.4.x] [feat] docs; update admonition syntax" (#68982)
Revert "[v9.4.x] [feat] docs; update admonition syntax (#68855)"

This reverts commit 048de5d09a.
2023-05-24 14:53:21 +01:00
Kevin Minehart
136cb16a52 [9.4.x] Backport 68756 to v9.4.x (#68932)
CI: Add release verify pipeline (#68756)

(cherry picked from commit 79f49c9649)
2023-05-24 15:20:48 +02:00
Dimitris Sotirakis
324ba5c62b [v9.4.x] G10: Replace beta with preview references (#68347) (#68948)
G10: Replace `beta` with `preview` references (#68347)

* Update references

* Update grabpl to v3.0.38

(cherry picked from commit 7e816d010c)

# Conflicts:
#	.drone.yml
2023-05-24 02:21:50 -07:00
Dimitris Sotirakis
81d4d8f228 [v9.4.x] Remove code to publish to RPM and deb repos (#61786) (#68952)
Remove code to publish to RPM and deb repos (#61786)

This was replaced here: https://github.com/grafana/grafana/pull/53553 and it's no longer used

(cherry picked from commit a190e03133)

Co-authored-by: Julien Duchesne <julien.duchesne@grafana.com>
2023-05-24 10:49:30 +02:00
Grot (@grafanabot)
70d0b7a0d2 [v9.4.x] Docs: Plugins doc review chunk 3 (#68919)
Docs: Plugins doc review chunk 3 (#68159)

* Initial commit

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Minor fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Review changes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Minor fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Update docs/sources/developers/plugins/cross-plugin-linking.md

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>

* Update docs/sources/developers/plugins/development-with-local-grafana.md

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>

* Update docs/sources/developers/plugins/cross-plugin-linking.md

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>

* Update docs/sources/developers/plugins/cross-plugin-linking.md

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>

* Update docs/sources/developers/plugins/development-with-local-grafana.md

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>

* Incorporating review feedback

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Update docs/sources/developers/plugins/development-with-local-grafana.md

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>

* Test commit

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>
(cherry picked from commit d68079e927)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-05-23 14:23:38 -05:00
Grot (@grafanabot)
4b802788f5 [v9.4.x] Update enterprise plugins list (#68911)
Update enterprise plugins list (#68730)

Updated to reflect a couple missing plugins from https://grafana.com/docs/plugins/

(cherry picked from commit 34d294bf56)

Co-authored-by: Ron D <106610617+rgnvldr@users.noreply.github.com>
2023-05-23 14:14:30 -05:00
Grot (@grafanabot)
048de5d09a [v9.4.x] [feat] docs; update admonition syntax (#68855)
[feat] docs; update admonition syntax (#68842)

* [feat] docs; update admonition syntax

- Standardizes according to style conventions: https://grafana.com/docs/writers-toolkit/style-guide/style-conventions/#admonitions
- Prepares docs for better, uniform admonition style.

* Remove false positives and irregularities

* false positive removal

* Update docs/sources/datasources/mysql/_index.md

* Update docs/sources/developers/angular_deprecation/angular-plugins.md

* fix link errors

* Prettify some nested blockquotes

* remoe unnecessary admonition

(cherry picked from commit 1c4bb9ca00)

Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>
2023-05-23 07:46:19 -05:00
Grot (@grafanabot)
ad2a920191 [v9.4.x] Azure Monitor: Fix bug that did not show alert rule preview (#68561)
Azure Monitor: Fix bug that did not show alert rule preview (#68339)

(cherry picked from commit f9601f8f27)

Co-authored-by: Alyssa Bull <58453566+alyssabull@users.noreply.github.com>
2023-05-23 13:33:39 +01:00
Grot (@grafanabot)
c794e68ea2 [v9.4.x] Docker: Add mode label when building docker images (#68868)
Docker: Add `mode` label when building docker images (#68865)

Add mode label when building docker image

(cherry picked from commit bad570ee86)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-05-23 10:56:06 +02:00
Grot (@grafanabot)
4d944081bc [v9.4.x] Utils: Reimplement util.GetRandomString to avoid modulo bias (#66969)
Utils: Reimplement util.GetRandomString to avoid modulo bias (#64481)

* reimplement GetRandomString, add tests that results are unbiased

(cherry picked from commit 7e765c870a)

Co-authored-by: Dan Cech <dcech@grafana.com>
2023-05-22 14:55:20 -04:00
Dimitris Sotirakis
3b6ed3340d [v9.4.x] CI: Run trigger-test-release only on PRs against main (#68794) (#68811)
CI: Run `trigger-test-release` only on PRs against main (#68794)

Run trigger-test-release only on PRs against main

(cherry picked from commit 623c014cda)

# Conflicts:
#	.drone.yml
2023-05-22 15:09:55 +02:00
Dimitris Sotirakis
bba6777982 [v9.4.x] Docker images: Don't fail if a PR comes from a fork (#68765) (#68782)
Docker images: Don't fail if a PR comes from a fork (#68765)

* Update grabpl

* Allow publish images to fail for PRs

(cherry picked from commit 04e2d9055d)

# Conflicts:
#	.drone.yml
2023-05-22 12:04:59 +02:00
Grot (@grafanabot)
1c1be82eb9 [v9.4.x] RBAC: Remove legacy AC editor and admin role on new dashboard route (#68775)
RBAC: Remove legacy AC editor and admin role on new dashboard route (#68762)

remove legacy AC editor and admin role on new dashboard route

(cherry picked from commit 94283f5039)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2023-05-22 10:37:43 +01:00
Dimitris Sotirakis
409cec2e41 [v9.4.x] G10: Post docker pull commands for local testing (#67489) (#68684)
* G10: Post `docker pull` commands for local testing (#67489)

* Add grabpl publish images

Update grabpl - add github pr token

* Replace github_pr_token with gh app

# Conflicts:
#	.drone.yml
#	scripts/drone/vault.star

# Conflicts:
#	.drone.yml

# Conflicts:
#	.drone.yml

* Lint starlark

Add forgotten secrets

Lint starlark

Change secrets

* Update grabpl to v3.0.35

* Lint starlark

* Remove unnecessary secrets

(cherry picked from commit 26bacf6d4c)

# Conflicts:
#	.drone.yml

* Update grabpl to v3.0.36
2023-05-22 09:48:24 +02:00
Grot (@grafanabot)
55e05cc833 [v9.4.x] Clarify Graphite version and type to set if using Grafana Cloud (#68719)
Clarify Graphite version and type to set if using Grafana Cloud (#68239)

* Clarify Graphite version and type to set if using Grafana Cloud

* Update _index.md

(cherry picked from commit 9f7f82c3cc)

Co-authored-by: Fiona Liao <fiona.y.liao@gmail.com>
2023-05-18 18:14:53 +02:00
Grot (@grafanabot)
0fb2bd25d3 [v9.4.x] Revert: Allow editors to access GET /datasources (#68653)
Revert: Allow editors to access GET /datasources (#68632)

Revert "Allow editors to access GET /datasources"

This reverts commit 5a830c43c0.

(cherry picked from commit 6a2bcba078)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2023-05-17 19:18:07 +01:00
Ivan Ortega Alba
c0ca04e9a3 [v9.4.x] Dashboards: Remove no-datasource screen (#68574) (#68646)
Dashboards: Remove no-datasource screen (#68574)

* Dashboards: Remove non-ds configured landing page

* Remove `datasourceOnboarding` feature toggle

(cherry picked from commit 1505a188eb)
2023-05-17 19:26:52 +03:00
Grot (@grafanabot)
bcf4e758dc [v9.4.x] Explore: Remove data source onboarding page (#68642)
Explore: Remove data source onboarding page (#68131)

* Remove EmptyStateWrapper

(cherry picked from commit cee838c8a8)

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2023-05-17 09:55:07 -06:00
Andreas Christou
c8077a982e [v9.4.x] AzureMonitor: Fix Log Analytics portal links (#65482) (#68523)
AzureMonitor: Fix Log Analytics portal links (#65482)

* Fix and update Log Analytics portal links

- Build portal URL in backend
- Correctly set multiple resource value
- Move AddConfigLinks util function
- Add necessary types
- Remove unused functions

* Fix lint issue

* Remove unused cache variable

(cherry picked from commit e27cb67776)

# Conflicts:
#	.betterer.results
2023-05-16 17:12:01 +00:00
Christopher Moyer
53d8071192 [v9.4 backport] Docs: Plugin doc review for chunk 1-A (#67070) (#68134)
Docs: Plugin doc review for chunk 1-A (#67070)

* Plugin doc review for chunk 1-A

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Group of fixes in response to review comments

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Updates for review comments

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fixed extra space

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Additional doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* More doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fixes from doc review

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc review fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* More changes from doc review

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fix links and relrefs using doc-validator advice

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

* Publishing criteria update

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Markdown fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Testing

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Testing

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Testing

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Link fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Prettier

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Fix to publishing criteria

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/build-a-logs-data-source-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/build-a-streaming-data-source-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/build-a-streaming-data-source-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/get-started-with-plugins/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/publish-a-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/publish-a-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/publish-a-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/developers/plugins/sign-a-plugin.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Prettier

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
(cherry picked from commit 13be068919)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-05-15 12:48:52 -05:00
Dimitris Sotirakis
b31c0b7897 [v9.4.x] CI: Add delivery bot secrets to publish images step (#68467) (#68471)
CI: Add delivery bot secrets to publish images step (#68467)

Add delivery bot secrets

(cherry picked from commit 55622615de)

# Conflicts:
#	.drone.yml
#	scripts/drone/vault.star
2023-05-15 18:18:09 +03:00
Horst Gutmann
cd2ea25f54 [v9.4.x] CI: Update grabpl to 3.0.34 (#68456) (#68466)
* CI: Port of init-enterprise fix from 9.4.10

* CI: Update grabpl to 3.0.34

(cherry picked from commit 35ccfa6131)

Backport of https://github.com/grafana/grafana/pull/68456
2023-05-15 17:53:13 +03:00
ismail simsek
fb9429b1f7 [v9.4.x] Prometheus: Fix fallback http method when no http method specified in jsonData (#68434)
Prometheus: Fix fallback http method when no http method specified in jsonData (#65229)

Use POST as default if no http method specified in jsonData

(cherry picked from commit 959349d191)
2023-05-14 15:52:31 +02:00
Grot (@grafanabot)
f5da579af9 [v9.4.x] Alerting: Migration to not fail if alert_configuration table is not empty (#68404)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2023-05-12 22:30:27 +03:00
Grot (@grafanabot)
ec973b648a [v9.4.x] Plugins doc review chunk 2 (#68411)
Plugins doc review chunk 2 (#67691)

* Doc style edit for 7 topics

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Proofread topics

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Prettier

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Doc fix

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Update docs/sources/developers/plugins/add-query-editor-help.md

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* Doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Changes from doc review

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Incorporate review feedback

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* More fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* More doc fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
(cherry picked from commit 49a18bc8e2)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-05-12 14:00:40 -05:00
Grot (@grafanabot)
b3b956b01e [v9.4.x] Wording changes to improve clarity. (#68399)
Wording changes to improve clarity. (#66045)

* Wording changes to improve clarity.

* Update docs/sources/setup-grafana/set-up-for-high-availability.md

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

* Update docs/sources/setup-grafana/set-up-for-high-availability.md

* Update docs/sources/setup-grafana/set-up-for-high-availability.md

* Update docs/sources/setup-grafana/set-up-for-high-availability.md

* Update docs/sources/setup-grafana/set-up-for-high-availability.md

* Update docs/sources/setup-grafana/set-up-for-high-availability.md

* ran doc validator, make corrections

---------

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit fd83b17b7f)

Co-authored-by: colinedwardwood <colin.wood@grafana.com>
2023-05-12 11:20:07 -05:00
Grot (@grafanabot)
9fa0ec2047 [v9.4.x] CloudMonitor: Show template variables by default (#68382)
CloudMonitor: Show template variables by default (#68331)

CloudMonitor: show template variables by default
(cherry picked from commit 9503f22f53)

Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2023-05-12 14:03:14 +00:00
Dimitris Sotirakis
eacc0bafea [v9.4.x] CI: Add .drone.yml in pathschanged trigger for lint_backend pipeline (#68348) (#68367)
CI: Add `.drone.yml` in pathschanged trigger for `lint_backend` pipeline (#68348)

Add .drone.yml in pathschanged for lint_backend

(cherry picked from commit b7b13067a5)

# Conflicts:
#	.drone.yml
2023-05-12 13:25:08 +01:00
Grot (@grafanabot)
11b98de351 [v9.4.x] Docs: Correct capitalization of openSUSE (#68335)
Docs: Correct capitalization of openSUSE (#67567)

Correct capitalization of openSUSE

(cherry picked from commit 7e0031ec36)

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
2023-05-11 15:28:03 -05:00
Adam Simpson
4a07a2dc5d Google Cloud Monitor: Fix mem usage for dropdown (#67683) (#67950)
Previously the Metric name dropdown would attempt to load _all_ the
available metric names into the Select which would eventually crash the
browser if the dataset was large enough.

We can fix this by using AsyncSelect and making another query once a
Service is selected _and_ the user types a few characters.

* fix: update tests for AsyncSelect

* fix lint

* fix: add subset of metrics on initial load
2023-05-11 19:26:51 +00:00
Andreas Christou
9cb76776af AzureMonitor: Add health check retry logic (#68120) (#68198)
AzureMonitor: Bump credential wait time (#68120)

Bump credential wait time as 15s seems too short

(cherry picked from commit 0d3a78d86d)

# Conflicts:
#	e2e/cloud-plugins-suite/azure-monitor.spec.ts
2023-05-11 11:22:41 -05:00
Grot (@grafanabot)
a0be1550eb Release: Bump version to 9.4.11 (#68272)
"Release: Updated versions in package to 9.4.11"
2023-05-10 17:03:29 -05:00
Ricky Whitaker
9daf1363df [9.4.x] Changelog: Updated changelog for 9.4.10 (#68267) (#68270)
* Changelog: Updated changelog for 9.4.10 (#68267)

(cherry picked from commit 2dbdebaae9)

* Update CHANGELOG.md

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>

---------

Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-05-10 16:45:11 -05:00
Horst Gutmann
93af60149d [v9.4.x] CI: Move windows-tests into promotion pipeline (#68218) (#68233)
(cherry picked from commit acd02e8a48)

Backport of https://github.com/grafana/grafana/pull/68218
2023-05-10 17:53:09 +03:00
Jack Baldry
203becbf33 [v9.4.x] Use expected types for admonition (#68179)
All types are declared lowercased.


(cherry picked from commit 356eabc24c)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-05-10 14:12:26 +01:00
Grot (@grafanabot)
896f2ce04f [v9.4.x] updated screenshots, links and some wording (#68144)
updated screenshots, links and some wording (#67864)

(cherry picked from commit c9e5c229ec)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-05-09 14:28:18 -07:00
Grot (@grafanabot)
2ea3929354 [v9.4.x] Fix Enterprise Datasources link on Grafana Enterprise page (#68116)
Fix Enterprise Datasources link on Grafana Enterprise page (#67962)

fix-enterprise-datasources-link

(cherry picked from commit 18d4fda613)

Co-authored-by: Andriy <andriy.urbanas@grafana.com>
2023-05-09 10:34:24 -05:00
Adam Simpson
126426e15e AzureMonitor: Correct series name accounting for dimensions (#67050) (#68033)
Correct displayName accounting for dimensions

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-05-09 13:06:36 +00:00
Dimitris Sotirakis
ef6fdcd710 [v9.4.x] CI: Remove custom enterprise2 pipelines (#68056) (#68059)
CI: Remove custom enterprise2 pipelines (#68056)

Remove custom enterprise2 pipelines

(cherry picked from commit 6ae952c7c5)
2023-05-09 12:07:01 +03:00
Galen Kistler
a2fea9af76 [v9.4.x] Prometheus: bug in creating autocomplete queries with labels (#68031)
* Prometheus: bug in creating autocomplete queries with labels (#68003)
(cherry picked from commit a1bc1bd368)
2023-05-08 21:40:50 +03:00
Horst Gutmann
d12a747a5d [v9.4.x] CI: Add Windows backend tests in more places (#66438) (#68008)
* CI: Add Windows backend tests in more places

* CI: Add promotion pipeline for publishing new windows-test-images

* CI: Ignore windows backend-test failures for now

* CI: Fix linting issue in ci_images.star file

(cherry picked from commit b2fc285a5d)

Backport of https://github.com/grafana/grafana/pull/66438
2023-05-08 17:04:37 +03:00
Grot (@grafanabot)
bcdc8cd5ab [v9.4.x] AzureMonitor: Fix logs query multi-resource and timespan values (#67931)
AzureMonitor: Fix logs query multi-resource and timespan values (#67914)

* Update TimeGrain interface methods

- Make them util functions because it's simpler

* Update logs ds to appropiately set resources and timespan

* Set timespan using RCF times

* Update tests

(cherry picked from commit 9d16718acc)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-05-05 20:19:04 +03:00
Isabel
1b2f5a3798 [v9.4.x] docs: fix create dashboard steps (#67865)
fixed merge conflict for backport
2023-05-04 13:07:27 -04:00
Grot (@grafanabot)
eafc315dc1 [v9.4.x] Docs: updates Grafana installation for Red Hat, Fedora, RHEL, SUSE, and OpenSUSE (#67773)
Docs: updates Grafana installation for Red Hat, Fedora, RHEL, SUSE, and OpenSUSE (#65232)

* removes references to CentOS

* starts reorg

* complete restructure

* updates alias

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

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* incorporates review feedback

* adds install on suse/opensuse

* updates aliases

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* removes start server content from both topics; adds link to start server docs in Next steps

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* incorporates review feedback

* Apply suggestions from code review

* typo fix

---------

Co-authored-by: Dan Cech <dcech@grafana.com>
(cherry picked from commit fcdbb7a86f)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-05-04 12:04:01 -05:00
Grot (@grafanabot)
2760aa808d [v9.4.x] Docs/updates install landing page (#67774)
Docs/updates install landing page (#64809)

* copy edit

* copy edits plus some restructuring

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

---------

Co-authored-by: Dan Cech <dcech@grafana.com>
(cherry picked from commit 3b37135b5b)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-05-04 11:59:14 -05:00
Christopher Moyer
9b77be4a08 [Docs v9.4x] Manual backport - Link to config exemplars leads goes to top of page (#67687) (#67856)
Link to config exemplars leads goes to top of page (#67687)

* Link to config exemplars leads goes to top of page

The link to the configure exemplars in a Prometheus datasource leads to the top of the page.  I have referenced the correct link that would take it to the right section.

https://grafana.com/docs/grafana/latest/datasources/prometheus/#configure-exemplars

* Update docs/sources/fundamentals/exemplars/index.md

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 681925fb63)

Co-authored-by: samu6851 <samuel.oswalt@grafana.com>
2023-05-04 11:53:07 -05:00
Grot (@grafanabot)
2ca13f2b57 [v9.4.x] docs: updates windows/mac install topics (#67775)
docs: updates windows/mac install topics (#64740)

* updates windows/mac install topics

* corrects typo

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* tweaks

---------

Co-authored-by: Dan Cech <dcech@grafana.com>
(cherry picked from commit d67ad9efc4)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-05-04 11:46:49 -05:00
Grot (@grafanabot)
fbb48cb826 [v9.4.x] docs: Updates installation instruction for Debian/Ubuntu (#67776)
docs: Updates installation instruction for Debian/Ubuntu (#64232)

* draft changes

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* reworks debian/ubuntu instructions, updates start server topic

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* incorporates feedback; restructures to align with writers toolkit guidelines

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* tweaks structure of server topic; renames directory, corrects relrefs

* corrects spelling

* Apply suggestions from code review

Co-authored-by: Dan Cech <dcech@grafana.com>

* removed web parameter

* removes unnecessary word

* incorporates feedback from internal reviewer

* updates alias

* updates alias

* adjust alias

---------

Co-authored-by: Dan Cech <dcech@grafana.com>
(cherry picked from commit 13af5afaf3)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-05-04 11:30:33 -05:00
Grot (@grafanabot)
a567819719 [v9.4.x] InfluxDB: Fix adding FROM statement when the measurement is an empty string (#67834)
InfluxDB: Fix adding FROM statement when the measurement is an empty string (#67827)

* If the measurement empty don't add FROM statement

* Add comment line

(cherry picked from commit 764f87b485)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-05-04 17:09:17 +03:00
Sofia Papagiannaki
ff88bb0102 [v9.4.x] Chore: Upgrade Go to 1.20.4 (#67760)
Chore: Upgrade Go to 1.20.4
2023-05-04 10:53:16 +03:00
Grot (@grafanabot)
6a80a658b8 [v9.4.x] docs: add semi relative time ranges (#67753)
docs: add semi relative time ranges (#67559)

* add semi-relative time range section

* added second example and reworded

* formatting fixes

* added alerting note and fixed formatting

* wording fix

(cherry picked from commit 0271a1d094)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-05-03 11:55:43 -04:00
Grot (@grafanabot)
30504b6857 [v9.4.x] Update index.md (#67727)
Update index.md (#67172)

Clarified some of the intro text and added JSON outer element to make the samples clearer

(cherry picked from commit 66ad704292)

Co-authored-by: Nabeel Saad <saadnabs@hotmail.com>
2023-05-03 08:46:51 -05:00
Grot (@grafanabot)
be58e9f116 [v9.4.x] InfluxDB: Fix querying retention policies on flux mode (#67724)
InfluxDB: Fix querying retention policies on flux mode (#67722)

Query retention policies only on InfluxQL mode

(cherry picked from commit 373e4cab9a)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-05-03 16:11:03 +03:00
Grot (@grafanabot)
ad4357b07e [v9.4.x] docs: move misplaced Configure legend page (#67670)
docs: move misplaced Configure legend page (#67597)

* move configure legend page and add alias

* updated page weight and tried fixing alias

* fixed alias

* add preemptive alias for current page location

* apply suggestion from review

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

* apply suggestions from review

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

* apply suggestions from review

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

---------

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

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-05-02 11:51:44 -04:00
Grot (@grafanabot)
04d7c5f790 [v9.4.x] Theme: Fix wrong code segment in theme.md (#65438)
Theme: Fix wrong code segment in theme.md (#62488)

* fix wrong markdown

* fix prettier

(cherry picked from commit 3335d46c5f)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-05-02 12:16:26 +00:00
Isabel
ee278fe3b9 [9.4.x] docs: reverse what's new order in TOC (#67605)
fixed merge conflict for backport
2023-05-01 17:37:34 -04:00
Grot (@grafanabot)
101927cf04 [v9.4.x] Add Grafana Free as supporting Enterprise features (#67600)
Add Grafana Free as supporting Enterprise features (#67568)

Per https://docs.google.com/document/d/14aOVLPq0FNqQKN4axTTEvjraY_OafhiDM_2NYSHF33A/edit#heading=h.lo4c6e71q7vo Grafana Cloud Free will include all the features of Grafana Advanced in Q2

(cherry picked from commit 999a2ce92d)

Co-authored-by: Ron D <106610617+rgnvldr@users.noreply.github.com>
2023-05-01 15:11:14 -05:00
Leon Sorokin
9ec538568a [v9.4.x] TimeSeries: Fix leading null-fill for missing intervals (#67572)
* TimeSeries: Fix leading null-fill for missing intervals (#67570)

(cherry picked from commit e5aeb7c322)

# Conflicts:
#	packages/grafana-ui/src/components/GraphNG/nullInsertThreshold.ts

* fix jest
2023-04-29 04:15:14 -06:00
Isabel
63ecb1c359 [v9.4.x] docs: fixing merge conflict for backport (#67564)
fixing merge conflict for backport

Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
2023-04-28 17:03:34 -04:00
Grot (@grafanabot)
885057c4d2 [v9.4.x] Grafana Cloud: Put cloud artifacts to */release dir (#67530)
Grafana Cloud: Put cloud artifacts to `*/release` dir (#66168)

Put cloud artifacts to */release dir

(cherry picked from commit a2634495e5)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-04-28 18:23:20 +03:00
Grot (@grafanabot)
8f169dc42d [v9.4.x] Grafana Cloud: Add VariantLinuxAmd64 in build variants (#67527)
Grafana Cloud: Add `VariantLinuxAmd64` in build variants (#66167)

Add VariantLinuxAmd64 in build variants

(cherry picked from commit 8dd87a79f7)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-04-28 18:22:13 +03:00
Grot (@grafanabot)
1e7a0c9738 [v9.4.x] Influxdb: Handle legacy Influxdb influxql annotations with target in migration (#67503)
Influxdb: Handle legacy Influxdb influxql annotations with target in migration (#63225)

* handle legacy influxdb annotations with target in migration

* add types

* don't check tags that are empty strings and give annotation a type

(cherry picked from commit 7a3f7e26ce)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2023-04-28 08:55:26 -04:00
Grot (@grafanabot)
82f3e6f5a7 [v9.4.x] docs: update dashboard settings page (#67430)
docs: update dashboard settings page (#67359)

Update index.md

(cherry picked from commit 55c36b04ca)

Co-authored-by: MattiasSegerdahl <102952046+MattiasSegerdahl@users.noreply.github.com>
2023-04-27 13:49:22 -04:00
Christopher Moyer
f5f29e203b [Docs 9.4x] Update configure tracing (#67163) (#67414)
Update configure tracing (#67163)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 97ddfa631b)

Co-authored-by: MattiasSegerdahl <102952046+MattiasSegerdahl@users.noreply.github.com>
2023-04-27 11:53:06 -05:00
Grot (@grafanabot)
59898b231c [v9.4.x] Docs: Fix broken links to section on Variable syntax page (#67409)
Docs: Fix broken links to section on Variable syntax page (#67340)

These links have a trailing slash which don't work when linking to a
specific element.

(cherry picked from commit 278a8fccc9)

Co-authored-by: Eric Wang <2069450+ericdwang@users.noreply.github.com>
2023-04-27 12:09:24 -04:00
Horst Gutmann
0fdb063576 [v9.4.x] Chore: Update SAML lib (#828)
Update SAML lib
2023-04-27 14:36:34 +03:00
Horst Gutmann
6d1b00c745 AuthJWT: Fix JWT query param leak (CVE-2023-1387) [9.4.x] (#823)
* fix JWT query param leak

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
(cherry picked from commit 9e205a0)

* skip broken test

(cherry picked from commit 58e235a)
2023-04-27 14:36:34 +03:00
Grot (@grafanabot)
44c3c5f269 [v9.4.x] Alerting: Fix misleading status code in provisioning API (#67357)
Alerting: Fix misleading status code in provisioning API (#67331)

Fixes #66249

(cherry picked from commit dfc99cdd19)

Co-authored-by: Uwe Sommerlatt <uwe.sommerlatt@gmail.com>
2023-04-27 11:41:38 +03:00
Grot (@grafanabot)
ded351dc79 [v9.4.x] Azure Monitor: Fix bug that was not showing resources for certain locations (#66617)
Azure Monitor: Fix bug that was not showing resources for certain locations (#66502)

(cherry picked from commit d43482a463)

Co-authored-by: Alyssa Bull <58453566+alyssabull@users.noreply.github.com>
2023-04-26 15:38:46 +03:00
Grot (@grafanabot)
2a6ac647d2 [v9.4.x] Changelog: Updated changelog for 9.4.9 (#67265)
Changelog: Updated changelog for 9.4.9 (#67264)

(cherry picked from commit d5bad429dd)
2023-04-26 12:22:47 +03:00
Grot (@grafanabot)
ac8fd7966a Release: Bump version to 9.4.9 (#67261)
"Release: Updated versions in package to 9.4.9"
2023-04-26 12:09:29 +03:00
Grot (@grafanabot)
eb2d0db641 [v9.4.x] Doc: Fix typo (#67242)
Doc: Fix typo (#66929)

Update index.md

(cherry picked from commit ff61772218)

Co-authored-by: oneoneonepig <oneoneonepig@users.noreply.github.com>
2023-04-25 14:28:10 -05:00
Grot (@grafanabot)
46232f03bb [v9.4.x] docs: Update Screenshot (#67235)
Update Screenshot (#67233)

(cherry picked from commit ad964a0e1d)

Co-authored-by: Stefan Dunkler <stefan.dun@gmail.com>
2023-04-25 14:47:38 -04:00
Grot (@grafanabot)
ffe711cb14 [v9.4.x] Expressions/threshold: Fix incorrect thresholds args length (#66925)
Expressions/threshold: Fix incorrect thresholds args length (#66859)

(cherry picked from commit 350de3f3bf)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-04-20 13:16:54 +02:00
Grot (@grafanabot)
63347e0da2 [v9.4.x] Docs: adds legacy wording to api docs (#66941)
Docs: adds legacy wording to api docs (#66937)

adds legacy wording to api docs

(cherry picked from commit 9b529ef0cd)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-04-20 11:13:24 +00:00
Gilles De Mey
647edf7f58 Alerting: Fix share URL for Prometheus rules on subpath (#66752) (#66802) 2023-04-20 11:29:37 +02:00
Grot (@grafanabot)
4a7153cabe [v9.4.x] AzureMonitor: Ensure dimension labels are consistent (#66873)
AzureMonitor: Ensure dimension labels are consistent (#66783)

Ensure dimension labels are consistent

(cherry picked from commit c161b28f29)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-04-19 19:17:52 +03:00
Grot (@grafanabot)
1f415749a0 [v9.4.x] [docs] remove auth/saml alias from team sync page (#66855)
[docs] remove auth/saml alias from team sync page (#66796)

removed auth/saml alias from team sync page

(cherry picked from commit 60e6ff1038)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-04-19 10:00:55 -04:00
Emil Tullstedt
e37bbc7178 Chore: Upgrade Go to 1.20.3 (#66836)
Backport of #66264.
2023-04-19 14:00:22 +02:00
Grot (@grafanabot)
50d9084d35 [v9.4.x] CloudMonitor: Correctly re-render VisualMetricQueryEditor on TimeRange updates (#66786)
CloudMonitor: Correctly re-render `VisualMetricQueryEditor` on `TimeRange` updates (#66756)

Compare string value rather than object

(cherry picked from commit adf12d0e90)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-04-18 16:34:55 +00:00
Grot (@grafanabot)
f650293066 [v9.4.x] Update index.md (#66717)
Update index.md (#66698)

The useful links were down as they were using /docs/grafana/next/ instead of /docs/grafana/latest/ in the path

(cherry picked from commit 58e3b3a90e)

Co-authored-by: Sébastien Dauphin <dauphin.sebastien@gmail.com>
2023-04-18 14:02:35 +02:00
Grot (@grafanabot)
a7ac9d0b3b [v9.4.x] Trace View: Update the queryType to traceql for checking if same trace when clicking span link (#66670)
Trace View: Update the queryType to traceql for checking if same trace when clicking span link (#66645)

* TraceView: update the queryType to traceql for checking if same trace when clicking span link

* TraceView: linting

* TraceView: remove traceid check completely

(cherry picked from commit 6462c81f81)

Co-authored-by: Eric Mustin <mustin.eric@gmail.com>
2023-04-18 01:01:36 +01:00
Grot (@grafanabot)
36470ebcf3 [v9.4.x] docs: add missing alias (#66675)
docs: add missing alias (#66621)

added missing alias

(cherry picked from commit 2b7f41f4df)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-04-17 10:09:14 -04:00
Grot (@grafanabot)
5d2034188b [v9.4.x] removed duplicate query data source section (#66681)
removed duplicate query data source section (#66605)

(cherry picked from commit 1e53b29eee)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-04-17 06:50:16 -07:00
Grot (@grafanabot)
b4d141ed1c [v9.4.x] Alerting: Update migration to put alerts to the default folder if dashboard folder is missing (#66593)
Alerting: Update migration to put alerts to the default folder if dashboard folder is missing (#65577)

* extract function

* use context logger

* put alert to general folder if folder is missing

* move folderHelper init

* add test

* Update pkg/services/sqlstore/migrations/ualert/ualert.go

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>

---------

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
(cherry picked from commit 7b2f44762e)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2023-04-15 08:08:57 +02:00
Isabel
8f761197a4 [v9.4.x] docs: put the numbers before dashboard elements (#66614)
resolving merge conflict for backport PR

Co-authored-by: samu6851 <samuel.oswalt@grafana.com>
2023-04-14 16:12:26 -04:00
Grot (@grafanabot)
d6785c9223 [v9.4.x] Google Cloud Monitoring: Fix project variable (#66602)
Google Cloud Monitoring: Fix project variable (#66524)

Google Cloud Monitoring: fix project variable

Also fix typo found while debugging

(cherry picked from commit 02951e8a26)

Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2023-04-14 15:29:30 +00:00
Grot (@grafanabot)
6286cba8ee [v9.4.x] InfluxDB: Fix querying with hardcoded retention policy (#66587)
InfluxDB: Fix querying with hardcoded retention policy (#66466)

* Use default retention policy instead of hardcoded retention policy

* Load retention policies for the editor

* Fix the typo

* Add more comment line

* Update comment

* Better error message

* Put back getTagKeys and getTagValues

* Fix unit test

(cherry picked from commit 6d53c87862)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-04-14 16:18:37 +03:00
lwandz13
0ec31973de [v9.4.x]docs:remove duplicate exemplars section (#66398) (#66421)
remove duplicate exemplars section (#66398)

(cherry picked from commit 5197fca70c)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-04-13 06:53:35 -07:00
Grot (@grafanabot)
cd8cd0f246 [v9.4.x] Auth: Remove the session cookie only if it's invalid or revoked (#66430)
Auth: Remove the session cookie only if it's invalid or revoked (#65984)

Remove the cookie if it's invalid or revoked

(cherry picked from commit 4cac95d1c2)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2023-04-13 09:53:31 +02:00
Grot (@grafanabot)
21e2f26688 [v9.4.x] InfluxDB: Fix Interpolation when querying variables (#66393)
InfluxDB: Fix Interpolation when querying variables (#65875)

Interpolate variables with InfluxQueryModel

(cherry picked from commit 4e71c91cfd)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-04-12 18:01:15 +03:00
Grot (@grafanabot)
49680128cd [v9.4.x] Expressions: Fix expression load with legacy UID -100 (#66387)
Expressions: Fix expression load with legacy UID -100 (#65950)

* Fix expressions instance settings loading

* Introduce a new method to get name or uid

* Update public/app/features/plugins/datasource_srv.ts

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>

* Move getNameOrUid method outside the class

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit d4bd024951)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-04-12 16:53:09 +02:00
Grot (@grafanabot)
edae149230 [v9.4.x] AccessControl: Allow editors to access GET /api/datasources (#66375)
AccessControl: Allow editors to access GET /api/datasources (#66343)

Allow editors to access GET /datasources

(cherry picked from commit 2c21090931)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2023-04-12 15:55:33 +02:00
Dimitris Sotirakis
0366e6f469 [v9.4.x] CI: Split /bin/build artifacts * subcommand (#66005) (#66344)
CI: Split `/bin/build artifacts *` subcommand (#66005)

* Split go files

* Modify publishartifacts.go

* Split main

* FIXME: Temp add GCSCopy to gcloud/storage

* Fix lint

* Exported flags

* Update starlark - make drone

* Further backend lint fixes

* Add fallback_test.go

* Fix go imports order

* make drone

* Remove GCSCopy from static assets

* Remove GCSCopy from storybook

* Fix lint

* Remove GCSCopy

* Remove success logline

* drone yaml cleanup

* Add artifacts-editions flag

* Fix starlark

* Add default sting slice in artifacts packages command

(cherry picked from commit 24d348f804)

# Conflicts:
#	.drone.yml
2023-04-12 12:36:33 +03:00
Isabel
0a2401f393 [v9.4] docs: update broken link (#66321)
fixed merge conflict
2023-04-11 16:22:51 -04:00
Grot (@grafanabot)
bca5541355 [v9.4.x] Remove "Open source" label from all "RBAC" pages (#66247)
Remove "Open source" label from all "RBAC" pages (#66129)

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-04-11 11:39:52 +03:00
Grot (@grafanabot)
a5b8b383e6 [v9.4.x] Remove "Open source" label from "Recorded queries" page (#66251)
Remove "Open source" label from "Recorded queries" page (#66127)

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-04-11 11:38:44 +03:00
Grot (@grafanabot)
19cc5aae59 [v9.4.x] fixed broken links (#66178)
fixed broken links (#66153)

(cherry picked from commit ce00465d9b)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-04-07 19:06:30 +03:00
Grot (@grafanabot)
2a3f141ca5 [v9.4.x] Alerting: Fix explore link in alert detail view (#66165)
Alerting: Fix explore link in alert detail view (#66106)

(cherry picked from commit cb8a5b2c96)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-04-07 14:35:19 +02:00
Grot (@grafanabot)
bfb21e7621 [v9.4.x] Alerting: Fix docs link when creating or editing rules (#66163)
Alerting: Fix docs link when creating or editing rules (#66019)

(cherry picked from commit 3e12b72f58)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-04-07 14:41:38 +03:00
Grot (@grafanabot)
cd323622b7 [v9.4.x] CloudMonitoring: Add project selector for MQL editor[fix] (#65844)
CloudMonitoring: Add project selector for MQL editor[fix] (#65567)

(cherry picked from commit 81cb84d098)

Co-authored-by: Alyssa Bull <58453566+alyssabull@users.noreply.github.com>
2023-04-06 20:10:29 +00:00
Grot (@grafanabot)
b0c69c9eec [v9.4.x] Docs: Small fixes for Template Variables Doc (#66138)
Docs: Small fixes for Template Variables Doc (#65947)

* Docs: Small fixes for Template Variables Doc

* Docs: Minor fix to Variables Docs

- Added missing word

* Update docs/sources/dashboards/variables/add-template-variables/index.md

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

* empty commit to trigger linting

* small change to trigger linting

---------

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

Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
2023-04-06 14:35:33 -05:00
Grot (@grafanabot)
0c3bf3f0e9 [v9.4.x] Docs: Add content to what's new 9.4 (#66122)
Docs: Add content to what's new 9.4 (#65895)

* Docs: Add content to what's new 9.4

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

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

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

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 75f5cb061e)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2023-04-06 07:50:58 -05:00
Grot (@grafanabot)
b40bf8b3f5 [v9.4.x] docs: fixes link (#66068)
docs: fixes link (#66051)

* fixes link

* Update docs/sources/setup-grafana/configure-security/configure-authentication/enhanced-ldap/index.md

Co-authored-by: melGL <81323402+melgl@users.noreply.github.com>

---------

Co-authored-by: melGL <81323402+melgl@users.noreply.github.com>
(cherry picked from commit 421b911c45)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-04-06 07:21:24 -05:00
Grot (@grafanabot)
876f6e8727 [v9.4.x] Docs: Add example to extract a specific label value (#66018)
Docs: Add the index function

(cherry picked from commit a39190b613)

Co-authored-by: Simon Crute <simonc6372@users.noreply.github.com>
2023-04-05 15:15:53 +01:00
Grot (@grafanabot)
1148da45d3 [v9.4.x] Docs: Updated Grafana OSS Introduction (#66024)
Docs: Updated Grafana OSS Introduction (#66004)

* Added Phlare and added static data sources to intro instead of it just being TSDB sources

* Update docs/sources/introduction/_index.md

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

* Update docs/sources/introduction/_index.md

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 e8813916c9)

Co-authored-by: Alex Close <alex.kirtley-close@grafana.com>
2023-04-05 08:23:53 -05:00
Eric Leijonmarck
d37fa06f05 [v9.4.x] Auth: Fix orgrole picker disabled if isSynced user (#65553)
Auth: Fix orgrole picker disabled if isSynced user (#64033)

* fix: disable orgrolepicker if externaluser is synced

* add disable to role picker

* just took me 2 hours to center the icon

* wip

* fix: check externallySyncedUser for API call

* remove check from store

* add: tests

* refactor authproxy and made tests run

* add: feature toggle

* set feature toggle for tests

* add: IsProviderEnabled

* refactor: featuretoggle name

* IsProviderEnabled tests

* add specific tests for isProviderEnabled

* fix: org_user tests

* add: owner to featuretoggle

* add missing authlabels

* remove fmt

* feature toggle

* change config

* add test for a different authmodule

* test refactor

* gen feature toggle again

* fix basic auth user able to change the org role

* test for basic auth role

* make err.base to error

* lowered lvl of log and input mesg

(cherry picked from commit 3cd952b8ba)
2023-04-05 09:55:43 +01:00
Grot (@grafanabot)
f9f0dd8b1b [v9.4.x] Build: Add CloudMode to build versions (#65987)
Build: Add CloudMode to build versions (#65651)

* Add CloudMode to build versions

* Use linux-amd64 variant without musl for cloud mode

* Add cloud mode to version folder on package upload

* Use musl variant for CloudMode

* Only sign rpm packages if there's any to sign

* Remove trailing whitespace

(cherry picked from commit 8f282b8a6e)

Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
2023-04-05 11:37:03 +03:00
Grot (@grafanabot)
1daa365107 [v9.4.x] Docs: Added note to contact Support (#65958)
Docs: Added note to contact Support (#65235)

* Added note to contact Support

* Update docs/sources/setup-grafana/configure-security/configure-authentication/enhanced-ldap/index.md

* Update docs/sources/setup-grafana/configure-security/configure-authentication/enhanced-ldap/index.md

* makes prettier

* Apply suggestions from code review

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 445734888b)

Co-authored-by: melGL <81323402+melgl@users.noreply.github.com>
2023-04-04 21:42:47 +03:00
Konrad Lalik
cd4cb967a5 [v9.4.x] Alerting: Disable alerting incompatible panels in the dashboard picke… (#65780)
* Alerting: Disable alerting incompatible panels in the dashboard picker (#65341)

* Hide dashboard hint when dashboard already selected

* Disable panels of types other than graph and timeseries

* Add a test checking disabled panels

* Make all panels selectable

* Fix tests

(cherry picked from commit bde77e4f79)

* Skip flakey test
2023-04-04 09:54:01 +02:00
Dimitris Sotirakis
285d5809c5 [v9.4.x] Backport #65797 and #65806 to v9.4.x (#65857)
* CI: Make `init-enterprise` depend on `grabpl` (#65797)

Make init-enterprise depend on grabpl

# Conflicts:
#	.drone.yml

(cherry picked from commit 821633c796)

# Conflicts:
#	.drone.yml
#	scripts/drone/pipelines/test_frontend.star

* CI: Exclude cloud related tags from tag events  (#65806)

* Exclude cloud related tags

* Fix starlark lint errors

(cherry picked from commit a18ea77aac)

# Conflicts:
#	.drone.yml
2023-04-04 08:36:57 +02:00
Grot (@grafanabot)
7d7751d5b0 [v9.4.x] update enhanced-ldap (#65867)
update enhanced-ldap (#65687)

* update enhanced-ldap

documenting a potential issue with ldap active sync, when search filter and username attributes do not match.

* Update docs/sources/setup-grafana/configure-security/configure-authentication/enhanced-ldap/index.md

* formats example

* Update docs/sources/setup-grafana/configure-security/configure-authentication/enhanced-ldap/index.md

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 99ac39f0d2)

Co-authored-by: annelaurefroment <49911675+annelaurefroment@users.noreply.github.com>
2023-04-03 11:24:08 -05:00
Grot (@grafanabot)
53d2e59cff [v9.4.x] Docs: Add transformations doc link for What's New v9.2 (#65850)
Docs: Add transformations doc link for What's New v9.2 (#65673)

* Add transformations doc link

Add transformations doc link to `Transformations: INNER JOINs` section.

Related issue: https://github.com/grafana/grafana/issues/65671

* Apply suggestions from code review

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

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit b86c0bc4fa)

Co-authored-by: Christine Wang <wang.christiney@gmail.com>
2023-04-03 11:17:54 -05:00
Horst Gutmann
bf3f1368a7 [v9.4.x] CI: Move release integration pipeline to standalone promotion pipeline (#65787) (#65800)
CI: Move release integration pipeline to standalone promotion pipeline (#65787)

(cherry picked from commit e9aef20eb4)
2023-04-03 14:08:05 +03:00
Grot (@grafanabot)
8500eb1c18 [v9.4.x] Alerting: Fix integration test for creating silences (#65790)
Alerting: Fix integration test for creating silences (#65722)

* fix integration test for creating silences

to create correct silence with endsAt in the future

* Update api_alertmanager_test.go

(cherry picked from commit ed8628e39d)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2023-04-03 12:45:19 +03:00
Grot (@grafanabot)
f13eff4287 [v9.4.x] Angular: Prevent angular from loading when disabled (#65777)
* Angular: Prevent angular from loading when disabled (#65755)

* Angular: Prevent angular from loading when disabled

* remove stuff

(cherry picked from commit 093498a03b)

* Update

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-04-03 12:10:06 +03:00
Sofia Papagiannaki
ecaeafd4f3 [9.4.x]: API: Fix "Updated by" Column in dashboard versions table (#65626)
* API: Fix  "Updated by" Column in dashboard versions table (#65351)

* API: Fix dashboard versions created by field

* Add tests

* Update OpenAPI specs

* Apply suggestion from code review

(cherry picked from commit 3cd3bb00ec)

* Fix guardian call
2023-03-31 11:56:36 +02:00
Alexander Weaver
e9d53761fb Alerting: Introduce proper feature toggles for common state history backend combinations (#65650)
* Alerting: Introduce proper feature toggles for common state history backend combinations (#65497)

* define 3 feature toggles for rollout phases

* Pass feature toggles along

* Implement first feature toggle

* Try a different strategy with fall-throughs to specific configurations

* Apply toggle overrides once outside of backend composition

* Emit log messages when we coerce backends

* Run code generator for feature toggle files

* Improve wording in flag descs

* Re-run generator

* Use code-generated constants instead of plain strings

* Use converted enum values rather than strings for pre-parsing

(cherry picked from commit b2abb63286)

* Remove generated file that is only present in future versions
2023-03-30 14:29:43 -05:00
Grot (@grafanabot)
66e3f8dc23 [v9.4.x] Docs: Fix markup for URL (#65649)
Docs: Fix markup for URL (#65576)

* Docs: Fix markup for URL

* updates absolute URL to a relref

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 940768cf76)

Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
2023-03-30 21:59:14 +03:00
Grot (@grafanabot)
fc6b8f9c6c [v9.4.x] Give more detail and context on http_addr in grafana.ini (#65644)
Give more detail and context on http_addr in grafana.ini (#65187)

* Give more detail and context on http_addr in grafana.ini

This particular configuration item is misleadingly named (it's about networking addresses rather than HTTP) and there are a bunch of ways users can misread, misconfigure, and create a situation where grafana won't start due to a bind error.

I'm trying to outline a couple of extra things about what this covers and provide good default advice, leaving room for specialists who know what they're doing to still use this, with more clarity.

* Update _index.md

* Apply suggestions from code review

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

* Update _index.md

removed recommendation note about http_addr

* makes prettier

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 765073a776)

Co-authored-by: David Allen <david.allen@grafana.com>
2023-03-30 12:34:10 -05:00
Alexander Weaver
76c3e1863b Alerting: Fix and re-enable filters instance labels in log line test (#65622)
Alerting: Fix and re-enable `filters instance labels in log line` test (#65618)

Fix and reenable test

(cherry picked from commit 5e87ea745d)
2023-03-30 09:44:48 -05:00
Grot (@grafanabot)
a3ef453ff6 [v9.4.x] Docs: updates type to integration (#65592)
Docs: updates type to integration (#65591)

* Docs: updates type to integration

* fixes link

* fixes links

(cherry picked from commit c77aa11545)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-03-30 10:27:49 +02:00
Grot (@grafanabot)
37f2a0aa32 [v9.4.x] Docs: Fix Nightly Builds URL (#65570)
Docs: Fix Nightly Builds URL (#65552)

Update _index.md

URL for Nightly Builds leads to standard download page.
- Updated to direct to correct Nightly Downloads page: https://grafana.com/grafana/download/nightly?edition=oss

(cherry picked from commit 8717cd0761)

Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
2023-03-29 16:39:37 -05:00
Grot (@grafanabot)
1b9abfeec8 [v9.4.x] Docs: Update version for "What's New" section (#65571)
Docs: Update version for "What's New" section (#65554)

(cherry picked from commit 906086c91b)

Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
2023-03-29 16:39:17 -05:00
Alexander Weaver
3bf0352fbb Alerting: No longer index state history log streams by instance labels (#65563)
Alerting: No longer index state history log streams by instance labels (#65474)

* Remove private labels

* No longer index by instance labels

* Labels are now invariant, only build them once

* Remove bucketing since everything is in a single stream

* Refactor statesToStreams to only return a single unified log stream

* Don't query on labels that no longer exist

* Move selector logic to loki layer, genericize client to work in terms of straight logQL

* Add support for line-level label filters in query

* Combine existing selector tests for better parallelism

* Tests for logQL construction

* Underscore instead of dot for unwrapping labels in logql

(cherry picked from commit a416100abc)
2023-03-29 16:11:12 -05:00
ismail simsek
132900fe2e [v9.4.x] InfluxDB: Fix sending retention policy with InfluxQL queries (#65532)
InfluxDB: Fix sending retention policy with InfluxQL queries (#63820)

* Send retention policy if that is specified

* Define the type

* Update default retention policy name

* Update unit tests

* fix unit tests

* fix unit tests again

* Load retention policies at first

* Fix tests

* Fix Editor tests

* Remove unused code

* A simpler approach

* Even simpler

* Even simpler

(cherry picked from commit 0aee7338ad)
2023-03-29 21:57:44 +03:00
Grot (@grafanabot)
009fa712c2 [v9.4.x] configure HTTPS documentation (#65560)
configure HTTPS documentation  (#65271)

* configure HTTPS settings for grafana

* Apply suggestions from code review

* Apply suggestions from code review

* rewrites and restructures content

* Apply suggestions from code review

* PR feedback review; https docs

* Update docs/sources/setup-grafana/set-up-https.md

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

* Update docs/sources/setup-grafana/set-up-https.md

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

* Update docs/sources/setup-grafana/set-up-https.md

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

* Update docs/sources/setup-grafana/set-up-https.md

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

* Update docs/sources/setup-grafana/set-up-https.md

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

* Update docs/sources/setup-grafana/set-up-https.md

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

* Update docs/sources/setup-grafana/set-up-https.md

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

* errata

* make prettier

* Apply suggestions from code review

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 4839f1543a)

Co-authored-by: David Allen <david.allen@grafana.com>
2023-03-29 13:23:49 -05:00
Yuri Tseretyan
413ac1ec7d Chore: Update alerting to commit 518e63bb07c5 (#65488)
* update alerting module to 518e63bb07c5
* update slack test to cover json and text response content-type cases
2023-03-29 13:07:06 -04:00
Grot (@grafanabot)
266a7407f6 [v9.4.x] Dashboards: Evaluate provisioned dashboard titles in a backwards compatible way (#65440)
Backport from #65184 using github.com/xorcare/pointer instead of the newer util.Pointer.

(cherry picked from commit b210a39cb7)

---------

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2023-03-29 11:25:44 +02:00
Grot (@grafanabot)
90db06d65b [v9.4.x] docs: fix enhanced ldap alias (#65485)
docs: fix enhanced ldap alias (#65478)

fixed alias

(cherry picked from commit 4b29b1d741)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-03-28 14:43:42 -05:00
Grot (@grafanabot)
a080d453b4 [v9.4.x] docs: update elasticsearch grafana play link (#65480)
docs: update elasticsearch grafana play link (#65280)

(cherry picked from commit 0d3e0e7cc4)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-03-28 14:30:33 -05:00
Grot (@grafanabot)
8374ef84df [v9.4.x] Remove redundant content or delete this page entirely (#65473)
Remove redundant content or delete this page entirely (#65446)

* Remove redundant content or delete this page entirely

The top of the page has redundant content pitching Grafana Cloud.

"You can also configure the MS SQL Server data source on a Grafana Cloud instance without having to host Grafana yourself."  Which is directly under the highlighted area explaining the same thing.  The same content is floating in the right side of all the pages as well.

Removed "> **Note:** You must install Grafana 5.1+ in order to use the integrated MS SQL data source."

Wait, why does this page exist if the data source page has the relevant updated content?  https://grafana.com/docs/grafana/latest/datasources/mssql/

* makes prettier

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 2b73f8cfd5)

Co-authored-by: mallettjared <110853992+mallettjared@users.noreply.github.com>
2023-03-28 12:58:52 -05:00
Gilles De Mey
ef6476d92b Alerting: Use displayNameFromDS if available in preview (#65342) (#65445) 2023-03-28 18:15:52 +02:00
Grot (@grafanabot)
144efd25b8 [v9.4.x] MegaMenu: Fixes mega menu showing scroll indicator when it shouldn't (#65465)
MegaMenu: Fixes mega menu showing scroll indicator when it shouldn't (#65452)

* MegaMenu: Fixes mega menu showing scroll indicator when it shouldn't

* fixing css

(cherry picked from commit 273e05a9a2)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-03-28 18:55:09 +03:00
Grot (@grafanabot)
cb5c92a375 [v9.4.x] CI: Allow overwriting of existing GitHub release assets (#65459)
CI: Allow overwriting of existing GitHub release assets (#65127)

* CI: Allow overwriting of existing GitHub release assets

This closes #63698

* Use c for *cli.Context in publishgithub.go

(cherry picked from commit 4ab3bd6f7e)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-03-28 17:31:14 +02:00
Gilles De Mey
6a73b2b726 Email: Mark HTML comments as "safe" in email templates (#64546) (#65443) 2023-03-28 17:26:15 +02:00
Grot (@grafanabot)
d3c37d28ed [v9.4.x] Alerting: Add alert instance labels to Loki log lines in addition to stream labels (#65454)
Alerting: Add alert instance labels to Loki log lines in addition to stream labels (#65403)

Add instance labels to log line

(cherry picked from commit de1637afe5)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-28 17:11:43 +03:00
Grot (@grafanabot)
1b8d220d96 [v9.4.x] Alerting: Add "backend" label to state history writes metrics (#65453)
Alerting: Add "backend" label to state history writes metrics (#65395)

* Add backend label to state history writes metrics

* Update test expectations

(cherry picked from commit dd04757fc9)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-28 17:06:57 +03:00
Grot (@grafanabot)
8fad42fa6f [v9.4.x] DateTimePicker: Can now select time correctly (#65431) 2023-03-28 13:11:52 +02:00
Grot (@grafanabot)
9d00d07a6a [v9.4.x] Alerting: Fix wrong text in step4 (#65348)
Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
Fix wrong text in step4 (#65279)
2023-03-28 13:04:32 +02:00
Grot (@grafanabot)
7b874aa327 [v9.4.x] Increase coverage of 'Grafana Cloud' labels (#64752)
Increase coverage of 'Grafana Cloud' labels (#64646)

* Add 'Grafana Cloud' label to content

All pages are applicable to both 'Open source' and 'Grafana Cloud'

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

* Add 'Grafana Cloud' label to administration content with some exceptions

- Enterprise licensing is 'Open source' and 'Enterprise'.
- 'Manage Organizations', 'Provision Grafana', and 'Stats and License' are 'Open source' only.

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

* Remove OSS from enterprise-licensing content

* Apply suggestions from code review

---------

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-28 11:51:36 +01:00
Will Browne
0d7efc076c [v9.4.x] Plugins: Markdown fetch retry with lowercase (#65388)
cherry pick
2023-03-28 12:19:20 +02:00
Grot (@grafanabot)
d14faf3cc0 [v9.4.x] Docs: Add 'tenant_id' for Loki clients (Auditing & Analytics) (#65401)
Docs: Add 'tenant_id' for Loki clients (Auditing & Analytics) (#63098)

* Docs: Add 'tenant_id' for Loki clients (Auditing & Analytics)

* Apply suggestions from code review

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

* Apply suggestions from code review

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
(cherry picked from commit f9abd8608e)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2023-03-27 23:49:19 +03:00
Sofia Papagiannaki
67dd929f5e [v9.4.x]: Upgrade golang.org/x/net to 0.7.0 (#65337)
* go mod tidy

* go get golang.org/x/net@v0.7.0
2023-03-27 17:57:49 +03:00
Grot (@grafanabot)
72dad41413 [v9.4.x] Navigation: Sanitize homeUrl (#65365)
Navigation: Sanitize homeUrl (#65293)

sanitize homeUrl

(cherry picked from commit f948482386)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-27 15:41:32 +01:00
Dimitris Sotirakis
84e9267612 [v9.4.x] CI: Cleanup unnecessary grabpl dependencies (#65330) (#65347)
CI: Cleanup unnecessary `grabpl` dependencies (#65330)

* Remove unnecessary grabpl dependencies

* Revert test-frontend change

(cherry picked from commit 89d642e001)

# Conflicts:
#	.drone.yml
2023-03-27 16:41:23 +03:00
Virginia Cepeda
9bafdcb72a Alerting: Improve showing nextEvaluationDate for rules (#65205) (#65227)
* Improve showing nextEvaluationDate for rules

Co-Authored-By: Konrad Lalik <konradlalik@gmail.com>

* Improve imports and comments

---------

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>
(cherry picked from commit b90aed4fd7)
2023-03-27 10:32:20 -03:00
Grot (@grafanabot)
bb3e08a0a1 [v9.4.x] Alerting: Fix stats that display alert count when using unified alerting (#64951)
* Alerting: Fix stats that display alert count when using unified alerting (#64852)

* Alerting: Fix stats when using unified alerting

(cherry picked from commit 02a8f62021)

* bundle services is not needed for 9.4.x

---------

Co-authored-by: gotjosh <josue.abreu@gmail.com>
2023-03-27 14:30:27 +01:00
Grot (@grafanabot)
0680231781 [v9.4.x] Database: Don't sleep 10ms before every request (#65334)
Database: Don't sleep 10ms before every request (#64832)

Previously every DB operation would wait 10ms before even trying.
Now we try first, and defer creating the ticker until we need it.

(cherry picked from commit f4a5f91496)

Co-authored-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-27 12:30:50 +03:00
Grot (@grafanabot)
8288d962ef [v9.4.x] Docs: Use correct function in labels and annotations docs (#65253)
Docs: Use correct function in labels and annotations docs (#65032)

Use correct function in labels and annotations docs

(cherry picked from commit 0464aebc8e)

Co-authored-by: Martin Beentjes <martinbeentjes@users.noreply.github.com>
2023-03-27 11:10:12 +02:00
Dimitris Sotirakis
bd37c60b50 [v9.4.x] CI: Remove grabpl dependency from publish-packages steps (#65329) (#65333)
CI: Remove `grabpl` dependency from `publish-packages` steps (#65329)

Remove grabpl dependency from publish packages

(cherry picked from commit 3b00d2c273)

# Conflicts:
#	.drone.yml
2023-03-27 11:29:02 +03:00
Jack Baldry
e37fb197b2 [v9.4.x] Add @imatwawana to CODEOWNERS for her area of responsibility (#65158)
Add @imatwawana to CODEOWNERS for her area of responsibility (#64963)


(cherry picked from commit 8941ca813c)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-26 10:42:44 +01:00
Grot (@grafanabot)
0f87c31a2c [v9.4.x] Changelog: Updated changelog for 9.4.7 (#65296)
Changelog: Updated changelog for 9.4.7 (#65292)

(cherry picked from commit a02a28f229)
2023-03-23 12:52:45 -05:00
Grot (@grafanabot)
97fc76da27 [v9.4.x] Docs/updates amazon cloudwatch (#65282)
Docs/updates amazon cloudwatch (#64987)

* updated AWS to Amazon in the index file

* edited query editor index file -AWS with Amazon

(cherry picked from commit 0975e53fc0)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-03-23 08:50:55 -07:00
Gilles De Mey
54fe185e80 Alerting: Paginate result previews (#65257) (#65273)
Co-authored-by: konrad147 <konradlalik@gmail.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2023-03-23 16:01:52 +01:00
Grot (@grafanabot)
96d1d9981d [v9.4.x] Changelog: Updated changelog for 9.4.7 (#65269)
Changelog: Updated changelog for 9.4.7 (#65268)

(cherry picked from commit da97139489)
2023-03-23 14:28:25 +01:00
Grot (@grafanabot)
f54cf0865a [v9.4.x] Expressions: More robust expression check (#65177)
Expressions: More robust expression check (#65006)

More robust expression check

(cherry picked from commit 1328878ace)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-03-22 20:57:17 +01:00
Dimitris Sotirakis
ffe9b71a27 [v9.4.x] CD: Remove fetch-images dependency from AWS marketplace automation (#65173) (#65197)
CD: Remove `fetch-images` dependency from AWS marketplace automation (#65173)

* Remove fetch-images dependency

* Fix starlark link

(cherry picked from commit d0be9610f0)

# Conflicts:
#	.drone.yml
2023-03-22 18:56:03 +02:00
Grot (@grafanabot)
4a825cad7b [v9.4.x] Changelog: Updated changelog for 9.4.7 (#65209)
Changelog: Updated changelog for 9.4.7 (#65208)

(cherry picked from commit adcdf190bb)
2023-03-22 17:47:28 +01:00
ismail simsek
ca91072d5b [v9.4.x] Fix xss in Graphite functions tooltip (#805)
Fix xss in Graphite functions tooltip (#804)

(cherry picked from commit 87aad3f11836f810ee1fdfee27827e746ef36055)

Co-authored-by: Ludovic Viaud <ludovic.viaud@gmail.com>
2023-03-22 17:41:54 +01:00
Grot (@grafanabot)
b1c73a9984 [v9.4.x] SQL Datasources: Prevent Call Stack Overflows with Large Numbers of Values for Variable (#65182)
SQL Datasources: Prevent Call Stack Overflows with Large Numbers of Values for Variable (#64937)

* Push values with every map call to avoid hitting the maximum call stack size.

* Add test and refactor to for of

* Use native fill instead of lodash

---------

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

Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
2023-03-22 15:17:47 +01:00
Konrad Lalik
721605af13 Alerting: Prometheus-compatible Alertmanager timings editor (#64526) (#65124)
* Alerting: Prometheus-compatible Alertmanager timings editor (#64526)

* Change Alertmanager timings editor

* Update timing inputs for default policy editor

* Switch prom duration inputs in notification policy form

* Fix a11y issues

* Fix validation

* Add timings forms tests

* Fix default policy form and add more tests

* Add notification policy form tests

* Add todo item

* Remove unused code

* Use default timings object to fill placeholder values

(cherry picked from commit d8e32cc929)

* Adjust code and tests to v.9.4 codebase

* Remove unused code, remove TODO item
2023-03-22 13:26:14 +01:00
Grot (@grafanabot)
950b15d0aa [v9.4.x] Alerting: Fix attachment of external labels to Loki state history log streams (#65142)
Alerting: Fix attachment of external labels to Loki state history log streams (#65140)

Fix attachment of external labels, add tests

(cherry picked from commit 07368dec74)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-22 09:15:44 +02:00
Alexander Weaver
788dc25416 Alerting: Switch to snappy-compressed-protobuf for outgoing push requests to Loki (#65137)
* Alerting: Switch to snappy-compressed-protobuf for outgoing push requests to Loki (#65077)

* Encode with snappy, always

* JSON encoder type

* Headers

* Copy labels formatter from promtail

* Implement snappy-proto encoding

* Create encoder interface, test both encoders, choose snappy-proto by default

* Make encoder configurable at the LokiCfg level

* Export both encoders

* Touch up comment and tests

* Drop unnecessary conversions after move to plain strings to appease linter

(cherry picked from commit bf54f2672e)

* Sample fields got renamed between 9.4 and main
2023-03-21 16:42:01 -05:00
Alexander Weaver
744c1164e7 Alerting: Fix ambiguous handling of equals in labels when bucketing Loki state history streams (#65135)
Alerting: Fix ambiguous handling of equals in labels when bucketing Loki state history streams (#65013)

* Use JSON instead of data.Labels string format as label repr

* Drop debug log line

(cherry picked from commit cc7e5ce62e)
2023-03-21 19:59:57 +02:00
Brendan O'Handley
2c6ad8867f Prometheus: Feedback link for metric encyclopedia plus performance im… (#64773)
Prometheus: Feedback link for metric encyclopedia plus performance improvements (#64576)

* add filtered results

* add feedback link

* correctly debounce fuzzy search thank you leon

* reduce calls to filterMetrics()in letter search

* clean up the alphabet type

* bug fix, filter type should be subtractive

* each filter is don;t explicitly, subtracting from the results of each

* Revert "each filter is don;t explicitly, subtracting from the results of each"

This reverts commit 5648788451.

* each filter is filtered explicitly, one after the other, subtracting from the results of each

(cherry picked from commit 2e4b134743)
2023-03-21 11:56:49 -04:00
Grot (@grafanabot)
4b6a015256 [v9.4.x] Alerting: Elide requests to Loki if nothing should be recorded (#65118)
Alerting: Elide requests to Loki if nothing should be recorded (#65011)

Exit early if no log streams or annotations

(cherry picked from commit e39d7f44c9)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-21 16:50:47 +02:00
Grot (@grafanabot)
4452c15714 [v9.4.x] Fix x-value being formatted as time when not necessary (#65114)
Fix x-value being formatted as time when not necessary (#65095)

(cherry picked from commit 24ecc7d0dc)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2023-03-21 16:13:14 +02:00
Grot (@grafanabot)
4b95a36e82 [v9.4.x] Docs: fix numbering and rename topic (#65107)
Docs: fix numbering and rename topic (#65093)

* Docs: fix numbering and rename topic

* fixes typo

* removes full stops

* deletes :

(cherry picked from commit 89c65e22d3)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-03-21 14:14:04 +01:00
Dimitris Sotirakis
612edc2665 [v9.4.x] CI: Update grabpl to 3.0.30 (#65028) (#65091)
CI: Update `grabpl` to `3.0.30` (#65028)

Update grabpl

(cherry picked from commit 4a80233bed)

# Conflicts:
#	.drone.yml
2023-03-21 12:14:17 +02:00
Grot (@grafanabot)
fa2a8b2bd5 [v9.4.x] Docs: Add documentation on how to debug backend plugins (#65088)
Docs: Add documentation on how to debug backend plugins (#64814)

* Docs: Add documentation on how to debug backend plugins

* Changes from PR reviews

* PR review changes

(cherry picked from commit 41b0c17aae)

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
2023-03-21 10:43:03 +01:00
Horst Gutmann
29d69eb16f [v9.4.x] Update CODEOWNERship for grafana-delivery team (#64973) (#65018)
Update CODEOWNERship for grafana-delivery team (#64973)

(cherry picked from commit 2897ee37bf)
2023-03-21 11:27:45 +02:00
Grot (@grafanabot)
553b90d1e7 [v9.4.x] CloudWatch Logs: Revert "Queries in an expression should run synchronously (#64443)" (#65067)
CloudWatch Logs: Revert "Queries in an expression should run synchronously (#64443)" (#65036)

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

This reverts commit 74436d31de.

(cherry picked from commit 972e611f76)

Co-authored-by: Shirley <4163034+fridgepoet@users.noreply.github.com>
2023-03-20 19:51:38 +01:00
Grot (@grafanabot)
50952f0a7a [v9.4.x] [Docs] - Add Warning about Version Downgrade and Alerting to Grafana … (#65062)
[Docs] - Add Warning about Version Downgrade and Alerting to Grafana … (#64896)

* [Docs] - Add Warning about Version Downgrade and Alerting to Grafana v9.4 Upgrade Instructions

Add Warning about Version Downgrade and Alerting to Grafana v9.4 Upgrade Instructions

* Update docs/sources/upgrade-guide/upgrade-v9.4/index.md

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

* Update docs/sources/upgrade-guide/upgrade-v9.4/index.md

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

* makes prettier

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 661e44ae6d)

Co-authored-by: SeamusGrafana <102023327+SeamusGrafana@users.noreply.github.com>
2023-03-20 13:03:28 -05:00
Grot (@grafanabot)
bc4e9e3215 [v9.4.x] Information about SQLite limitations (#65066)
Information about SQLite limitations (#64990)

* Update _index.md

I am creating this PR to add more content about the SQLite (the default database for Grafana) limitations. SQLite is fine for small environments but not suitable when monitoring many Dashboards and sending lots of alerts frequently.

For e.g. this issue is just from this week and then got followed up by 3-4 more similar issues (all related to SQLite and are linked with this issue)

Closes #64664

By adding more information, will have less frequency of such issues reported by users.

Also, once this PR get submitted, will also create a new PR about the possible workaround to not get the error message "database locked" while using SQLite.

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

Thank you. Also, can you please add this link to the High Availablity text as hyperlink.

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

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

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

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit ccfe09d20e)

Co-authored-by: Usman Ahmad <69509548+usmangt@users.noreply.github.com>
2023-03-20 12:06:09 -05:00
Grot (@grafanabot)
6a1d736f03 [v9.4.x] KVStore: Include database field in migration (#65037)
KVStore: Include database field in migration (#62790)

(cherry picked from commit b0213a4877)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2023-03-20 12:44:03 +01:00
Konrad Lalik
bf3422740b Alerting: Fix notification policies matcher filter (#64967) 2023-03-20 07:55:50 +01:00
Grot (@grafanabot)
231cb2b835 [v9.4.x] AzureMonitor: Fix query variable migration (#64982)
AzureMonitor: Fix query variable migration (#63991)

* AzureMonitor: Fix query variable migration

Somehow the query object becomes "unwriteable" post 9.4. To workaround
this I clone the query object before doing any migrations which removes
the immutability and allows the migrations to function as they did.

Fixes #63943

* refactor deepClone out to keep object the same

(cherry picked from commit 3498785184)

Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2023-03-18 21:21:40 +02:00
Grot (@grafanabot)
a440178397 [v9.4.x] Vendor errors.Join from Go standard library to avoid version incompatibilities (#64986)
Vendor errors.Join from Go standard library to avoid version incompatibilities (#64985)

Vendor errors.Join from std lib

(cherry picked from commit 40c5713cbd)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-17 14:42:31 -05:00
Grot (@grafanabot)
85c794d932 [v9.4.x] Alerting: Create new state history "fanout" backend that dispatches to multiple other backends at once (#64983)
Alerting: Create new state history "fanout" backend that dispatches to multiple other backends at once (#64774)

* Rename RecordStatesAsync to Record

* Rename QueryStates to Query

* Implement fanout writes

* Implement primary queries

* Simplify error joining

* Add test for query path

* Add tests for writes and error propagation

* Allow fanout backend to be configured

* Touch up log messages and config validation

* Consistent documentation for all backend structs

* Parse and normalize backend names more consistently against an enum

* Touch-ups to documentation

* Improve clarity around multi-record blocking

* Keep primary and secondaries more distinct

* Rename fanout backend to multiple backend

* Simplify config keys for multi backend mode

(cherry picked from commit a31672fa40)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-17 20:13:12 +02:00
Grot (@grafanabot)
1f498f9ff7 [v9.4.x] AzureMonitor: Increase wait for credentials to be ready in E2E test (#64980)
AzureMonitor: Increase wait for credentials to be ready in E2E test (#64969)

Increase wait for credentials to be ready

(cherry picked from commit edc47964b6)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-03-17 16:56:12 +00:00
Grot (@grafanabot)
7e5e3d78d0 [v9.4.x] SQLStore: Fix setting query retries for integration tests (#64972)
SQLStore: Fix setting query tries for integration tests (#64944)

* SQLStore: Pass testinfra database configuration to the test database

* Add test

* Bypass gocyclo check for initTestDB

(cherry picked from commit f5cb8c660e)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-03-17 18:05:30 +02:00
Grot (@grafanabot)
c5f4ef6c3e [v9.4.x] Alerting: Handful of small adjustments to log levels and parameters (#64954)
Alerting: Handful of small adjustments to log levels and parameters (#64572)

Calculate duration earlier in scheduler

(cherry picked from commit 9bcf8819d3)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-17 14:33:55 +02:00
Grot (@grafanabot)
69a7d5d6a6 [v9.4.x] SQLStore: Fix SQLite error propagation if query retries are disabled (#64948)
SQLStore: Fix SQLite error propagation if query retries are disabled (#64904)

* SQLStore: Add test when query retrying is disabled

* Fix condition

* Add test cases for sqlite3.ErrLocked

(cherry picked from commit 41843464d1)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-03-17 13:33:37 +02:00
Grot (@grafanabot)
3d1085c6ad [v9.4.x] Navigation: handle case when there is no alerting node at all (#64950)
Navigation: handle case when there is no alerting node at all (#64941)

* handle case when there is no alerting node at all

* update backend tests

(cherry picked from commit f4c62a5c5d)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-17 13:27:40 +02:00
Grot (@grafanabot)
5d6a6677a2 [v9.4.x] Alerting: QoL improvements to the unified alerting multi-replica devenv (#64939)
Alerting: QoL improvements to the unified alerting multi-replica devenv (#64907)

(cherry picked from commit 406431df4e)

Co-authored-by: gotjosh <josue.abreu@gmail.com>
2023-03-17 10:59:13 +00:00
Grot (@grafanabot)
b5c092f03e [v9.4.x] Navigation: Correctly create Alerts and incidents section when using legacy alerting (#64926)
Navigation: Correctly create `Alerts and incidents` section when using legacy alerting (#64924)

check for legacy alerting node as well

(cherry picked from commit 54dd8943ca)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-16 20:17:48 +02:00
Grot (@grafanabot)
46030b3b69 [v9.4.x] LogContext: Fix height of upper group when using logsContextDatasourceUi (#64617)
LogContext: Fix height of upper group when using `logsContextDatasourceUi` (#64602)

fix wrong height being set

(cherry picked from commit 7cde6acbef)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-03-16 08:09:01 -07:00
Grot (@grafanabot)
0e11822954 [v9.4.x] Fix broken link in "Publish a plugin" page and lint the page with doc-validator (#64895)
Fix broken link in "Publish a plugin" page and lint the page with doc-validator (#64881)

* Use one sentence per line for better line based diffing

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

* Add missing and required description front matter

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

* Fix heading hierarchy

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

* Fix doc-validator linting errors

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

* Add doc-validator make target

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

* Fix nested lists

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

---------

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-16 12:22:47 +00:00
Grot (@grafanabot)
bf832c93e7 [v9.4.x] Fix website build errors both for Grafana and content mounted in Grafana Cloud (#64836)
Fix website build errors both for Grafana and content mounted in Grafana Cloud (#64794)

* Fix reference to Grafana CLI

- Make relref for relative permalink
- Use relative path for unambiguous resolution

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

* Fix alerting relref anchor format

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

* Avoid ambiguous relref lookups by forcing relative resolution

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

* Remove reference to non-existent shared page

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

* Fix links broken in Grafana Cloud using absolute relrefs

By resolving the relref absolutely, it refers to the same location
regardless of mounted directory.

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

* Remove trailing slash for bundle independent resolution

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

* Fix typo

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

* For now, avoid Hugo checking cross repository /docs/grafana-cloud link

The path is unlikely to change in the short term and this makes CI
completely green for now.

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

* No need to specify path for in page anchors

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

* Fix prose

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit ebb54aea8d)

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-16 08:33:28 +00:00
ismail simsek
412f1c1cc6 Influxdb: Re-introduce backend migration feature toggle (#64842)
* Put feature toggle back

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

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

This reverts commit 67c02f66

* Put feature toggle back

(cherry picked from commit 0823672fce)
2023-03-15 19:15:55 +01:00
Yuri Tseretyan
10a2245f93 Alerting: Update scheduler to receive rule updates only from database (#64780)
Alerting: Update scheduler to get updates only from database (#64635)

* stop using the scheduler's Update and Delete methods all communication must be via the database
* update scheduler's registry to calculate diff before re-setting the cache
* update fetcher to return the diff generated by registry
* update processTick to update rule eval routine if the rule was updated and it is not going to be evaluated at this tick.
* remove references to the scheduler from api package
* remove unused methods in the scheduler

(cherry picked from commit 85a954cd81)

# Conflicts:
#	pkg/services/ngalert/schedule/schedule.go
#	pkg/services/ngalert/schedule/schedule_unit_test.go
2023-03-14 19:44:34 -04:00
Virginia Cepeda
12013e9aa4 Alerting: Display last & next rule eval date plus eval duration (#64767) (#64772)
* Display last & next rule eval date plus eval duration

* Show next evaluation date in a humanized format

Full date still visible on hover

* Only show next evaluation column is group has an interval

(cherry picked from commit 6b95b3f8aa)
2023-03-14 22:49:25 +01:00
Grot (@grafanabot)
56d1dcc9b3 [v9.4.x] Packaging: Dockerfile copy local folder (#64768)
Packaging: Dockerfile copy local folder (#64766)

Dockerfile copy local folder

(cherry picked from commit dfee4249e8)

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-03-14 15:11:08 -05:00
Grot (@grafanabot)
b5a274f392 [v9.4.x] CloudWatch Logs: Queries in an expression should run synchronously (#64707)
CloudWatch Logs: Queries in an expression should run synchronously (#64443)

(cherry picked from commit 74436d31de)

Co-authored-by: Isabella Siu <Isabella.siu@grafana.com>
2023-03-14 08:49:40 -04:00
Marco Schaefer
08acfafffd Upgrade faro-core and faro-web-sdk to 1.0.2 (#64407) (#64695)
* chore: upgrade faro-core and faro-web-sdk to 1.0.2 (#64407)

With v1.0.2 Faro explicitly closes fetch requests.
This fixes an issue were (headless) chrome browser
still considers those requests as open  which lead to timeouts.

(cherry picked from commit d8a497ee6e)

* fix: add missing setView and getView mocks
2023-03-14 11:05:10 +02:00
Grot (@grafanabot)
fc8002d9ab [v9.4.x] Alerting: Log error but don't fail initialization if state history connection test fails (#64719)
Alerting: Log error but don't fail initialization if state history connection test fails (#64699)

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

(cherry picked from commit faef3a8258)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-13 23:59:21 +02:00
Grot (@grafanabot)
75a44af935 [v9.4.x] Dashboards: Filter out expressions when going to Explore (#64684)
Dashboards: Filter out expressions when going to Explore (#64654)

* Filter out expressions when going from dashboard to explore

* Move expression UID constant to types

(cherry picked from commit c363a81806)

Co-authored-by: Kristina <kristina.durivage@grafana.com>
2023-03-13 08:23:53 -05:00
Grot (@grafanabot)
53a06bf65f [v9.4.x] Frontend: Fix broken links in /plugins when pathname has a trailing slash (#64608)
Frontend: Fix broken links in /plugins when pathname has a trailing slash (#64348)

Fix broken links in /plugins when pathname has a trailing slash

(cherry picked from commit a05cb1e78e)

Co-authored-by: William Assis <35489495+gassiss@users.noreply.github.com>
2023-03-13 13:53:13 +01:00
Grot (@grafanabot)
7a26957f87 [v9.4.x] Navigation: Remove duplicate header on user invite page (#64678)
Navigation: Remove duplicate header on user invite page (#64677)

remove duplicated header in old navigation

(cherry picked from commit caf98101e7)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-13 13:53:54 +02:00
Grot (@grafanabot)
d75b8c13ef [v9.4.x] TimeSeries: fix time comparer not comparing date strings properly (#64674)
TimeSeries: fix time comparer not comparing date strings properly (#64622)

* fix time comparer not comparing times properly

* move isDateTime last as it's probably the most expensive check

(cherry picked from commit 3a1862f37f)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-13 05:43:31 -04:00
Grot (@grafanabot)
01917df71a [v9.4.x] InfluxDB: Fix type assertion panics for interface conversion: interface {} is nil (#64623)
InfluxDB: Fix type assertion panics for interface conversion: interface {} is nil (#64556)

* fix type assertions

* fix chk

* add nil and fix tests

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

* reduce complexity

* reduce complexity

* reduce complexity again

* switch case for valTypes

(cherry picked from commit 50ef183208)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2023-03-10 14:51:52 -05:00
Grot (@grafanabot)
b7ff4d1661 [v9.4.x] Cloudwatch Logs: Fix log group names not interpolating with multiple variables (#64631)
Cloudwatch Logs: Fix log group names not interpolating with multiple variables (#64567)

* Cloudwatch Logs: Fix log group names not interpolating with multiple variables

* fix test

(cherry picked from commit 75f89e67af)

Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
2023-03-10 14:12:28 -05:00
Timur Olzhabayev
eaace4fc45 [v9.4.x] Docs: Minor wording changes for plugin signing docs (#64615) (#64624)
Docs: Minor wording changes for plugin signing docs (#64615)

Minor wording changes

(cherry picked from commit f9b9041ad8)
2023-03-10 09:51:13 -08:00
Grot (@grafanabot)
039d9c379c [v9.4.x] Update page labels to better reflect contents (#64626)
Update page labels to better reflect contents (#64606)

* Set correct products labels on Grafana Cloud and Enterprise pages

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

* Add cloud label to all alerting docs

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

---------

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-10 17:47:45 +00:00
Grot (@grafanabot)
6bce4d516d [v9.4.x] Docs: Changes to angular deprecation announcement (#64619)
Docs: Changes to angular deprecation announcement (#63928)

Adjusting the content to reflect latest discussions. This page can now be used as reference for all things about angular deprecation.

(cherry picked from commit 9ca53d9596)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2023-03-10 17:47:45 +01:00
Grot (@grafanabot)
332e870086 [v9.4.x] Cloudwatch: Add expression field to interpolate variables in Metrics Code Builder (#64508)
Cloudwatch: Add expression field to interpolate variables in Metrics Code Builder (#64288)

(cherry picked from commit 1c8ad04f8d)

Co-authored-by: Ida Štambuk <ida.stambuk@grafana.com>
2023-03-10 15:02:07 +01:00
Grot (@grafanabot)
6f22584d26 [v9.4.x] Alerting: fix users call 403 by calling /user instead of /users/{id} (#64607)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
fix users call 403 by calling /user instead of /users/{id} (#64544)
2023-03-10 14:29:43 +01:00
Grot (@grafanabot)
961446e7e1 [v9.4.x] Docs: Remove Alertmanager configuration rollback from What's New (#64588)
Docs: Remove Alertmanager configuration rollback from What's New (#64564)

* Docs: Remove Alertmanager configuration rollback from What's New

* Trigger Build

---------

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

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2023-03-10 10:04:15 -03:00
Grot (@grafanabot)
419e8d782c [v9.4.x] Alerting: Fix contact point name being URL-encoded in the title (#64596)
Alerting: Fix contact point name being URL-encoded in the title (#64590)

Fix contact point name being encoded in the title text

(cherry picked from commit 4c8855ed2d)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-03-10 06:29:52 -05:00
Ashley Harrison
aa09499343 Backport 62658 to v9.4.x (#64545)
* Navigation: Fix Home logo always going to `/login` (#62658)

* only redirect to /login when anonymous access is disabled

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

* fix go logic

* add unit tests

(cherry picked from commit 3336327306)

* remove file i accidentally left in :/

* import correct method
2023-03-10 04:59:06 -05:00
Grot (@grafanabot)
cf3f234a54 [v9.4.x] Docs: Add a note on uploading report branding logos (#64539)
Docs: Add a note on uploading report branding logos (#64532)

* Docs: Add a note on uploading report branding logos

* Fix wording

(cherry picked from commit 6f67529a0a)

Co-authored-by: Tania <yalyna.ts@gmail.com>
2023-03-09 10:53:37 -05:00
Grot (@grafanabot)
de7d18d4e0 [v9.4.x] CI: Add PrereleaseBucket field in versions.go (#64524)
CI: Add `PrereleaseBucket` field in `versions.go` (#64519)

Add PrereleaseBucket in versions.go

(cherry picked from commit 29b3f3fbf4)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-03-09 17:49:59 +02:00
Horst Gutmann
7f6c61f0bd [9.4.x] CI: Move some build settings (#64491) (#64513)
CI: Move some build settings (#64491)

* Move some build settings to Vault

* CI: Remove reference to DOWNSTREAM_REPO as it isn't used

(cherry picked from commit 4b241804b4)
2023-03-09 08:33:15 -05:00
Grot (@grafanabot)
47e1860e34 [v9.4.x] OptionsPicker: Correctly highlight template variable value when filtering (#64394)
OptionsPicker: Correctly highlight template variable value when filtering (#63495)

* VariablePicker: Correctly highlight items when filtering

* Change interactions for selecting values in variable options picker

* Review

(cherry picked from commit e4d591fc01)

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2023-03-09 04:21:16 -08:00
Grot (@grafanabot)
db9dfc7aef [v9.4.x] Loki: Fix labels in LabelBrowser being wrongly cached (#64496)
Loki: Fix labels in LabelBrowser being wrongly cached  (#64482)

* remove label cache from label browser

* fix spelling

Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>

---------

Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>
(cherry picked from commit 976568a337)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-03-09 05:43:50 -05:00
George Robinson
0d561b6c24 [v9.4.x] Docs: Updates default template link (#64495)
Docs: Updates default template link (#64485)

Updates default template link

(cherry picked from commit 14208c4c42)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-03-09 05:21:48 -05:00
Grot (@grafanabot)
9bccf165be [v9.4.x] Docs: Last iteration on docs for images in notifications (#64494)
Docs: Last iteration on docs for images in notifications (#64392)

This commit includes some minor rephrasing to the Requirements and
Limitations of the Images in notification feature.

(cherry picked from commit 1898e76dd6)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-03-09 05:03:44 -05:00
Grot (@grafanabot)
936e72f1e6 [v9.4.x] CloudWatch Logs: Fix interpolation of scoped variables in queryString (#64405)
* CloudWatch Logs: Fix interpolation of scoped variables in queryString (#64267)

(cherry picked from commit af9a0dbe39)

* fix typecheck

---------

Co-authored-by: Isabella Siu <Isabella.siu@grafana.com>
2023-03-08 19:56:07 -05:00
Brendan O'Handley
b66e903439 Prometheus: Metric encyclopedia (#63423) (#64455)
* add metric encyclopedia feature toggle and component

* remove unused button

* move file, add test file

* add tests

* add pagination and tests

* test with 10,000,000 metrics

* remove unused import

* add filter by type

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

* add suggested functions and filter for functions

* allow user to select variables in encyclopedia

* fix style and tests

* add fuzzy search by either metric name or all metadata

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

* add encyclopedia feature tracking

* indicate that metrics are filtered by labels

* handle metric singular or plural

* add tooltips and fix language

* add filtering tests

* change 'search' to 'browse'

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

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

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

* small performance improvements

* fix tests

* add backend metrics query option

* add loading spinner for start load and backend search

* autofocus search input

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

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

* run prettier

* run prettier

* fix text for feature toggle

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

* fixing tests

* fix feature toggle docs

* fix feature toggle

* fix feature toggle

* add owner to feature toggle

---------

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

(cherry picked from commit 39a4634ae9)

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

* Add test for deleting snapshot for non existent dashboard

* Add test for failure to fetch guardian other than ErrDashboardNotFound

* Fix dashboard snapshot delete

(cherry picked from commit 43095d84e4)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-03-08 03:33:23 -05:00
Grot (@grafanabot)
3b523c13a7 [v9.4.x] OpenTSDB: Allow metric autocomplete to use suggest api on every input (#64361)
OpenTSDB: Allow metric autocomplete to use suggest api on every input (#62045)

* allow metric autocomplete by suggest api

* debounce sugggest metrics

* debounce sugggest metrics with debounce-promise

* commit for tests

(cherry picked from commit 70c1850888)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2023-03-07 18:02:26 -05:00
Grot (@grafanabot)
4474649869 [v9.4.x] Cloudwatch Logs: Make mixed type fields fallback to being strings (#64359)
Cloudwatch Logs: Make mixed type fields fallback to being strings (#63981)

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

* addressing pr comments

(cherry picked from commit 70f600db10)

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

Force unique IDs when seeding database

(cherry picked from commit 4a1c18abf6)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-03-07 11:00:50 -05:00
Grot (@grafanabot)
9e0cb259ee [v9.4.x] Logs sample: Fix scrolling for unwrapped log lines (#64291)
Logs sample: Fix scrolling for unwrapped log lines (#64163)

Fix scrolling for logs sample

(cherry picked from commit 7b01668729)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2023-03-07 12:34:38 +01:00
Grot (@grafanabot)
e272ce8274 [v9.4.x] Docs: Update Images in notifications docs to be more readable and instructive (#64294)
Docs: Update Images in notifications docs to be more readable and instructive (#64227)

(cherry picked from commit 9d9421154e)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-03-07 10:58:29 +00:00
Will Browne
2d0324ec70 [v9.4.x] Plugins: Fix Cache-Control header response for public/plugins/* assets API (#64255)
resolve conflicts
2023-03-06 19:20:54 +01:00
Galen Kistler
5a6471c01f TimeSeries: Fix overflowing exemplar modals causing content shifts (#… (#64254)
TimeSeries: Fix overflowing exemplar modals causing content shifts (#64037)

*  fix overflowing exemplar modals causing content shifts

(cherry picked from commit b9ebd5757a)
2023-03-06 12:18:05 -06:00
Grot (@grafanabot)
0d2a01f03f [v9.4.x] Alerting: Fix Classic Conditions $values variable (#64249)
Alerting: Fix Classic Conditions $values variable (#64243)

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

(cherry picked from commit ed71012ced)

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

* Create historian metrics and dependency inject

* Record counter for total number of state transitions logged

* Track write failures

* Track current number of active write goroutines

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

* Don't copy the registerer

* Adjust naming of write failures metric

* Introduce WritesTotal to complement WritesFailedTotal

* Measure TransitionsFailedTotal to complement TransitionsTotal

* Rename all to state_history

* Remove redundant Total suffix

* Increment totals all the time, not just on success

* Drop ActiveWriteGoroutines

* Drop PersistDuration in favor of WriteDuration

* Drop unused gauge

* Make writes and writesFailed per org

* Add metric indicating backend and a spot for future metadata

* Drop _batch_ from names and update help

* Add metric for bytes written

* Better pairing of total + failure metric updates

* Few tweaks to wording and naming

* Record info metric during composition

* Create fakeRequester and simple happy path test using it

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

* Add tests for failure case metrics

* Smoke test for full annotation persistence

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

* Address linter complaints

* More linter complaints

* Remove unnecessary whitespace

* Consistency improvements to help texts

* Update tests to match new descs

(cherry picked from commit 19d01dff91)
2023-03-06 12:10:11 -05:00
Grot (@grafanabot)
52288b87aa [v9.4.x] LokiContextUi: Add loading indicator (#64244)
LokiContextUi: Add loading indicator (#64167)

add loading indicator to LokiContextUi

(cherry picked from commit 5db0d14606)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-03-06 17:38:35 +01:00
Grot (@grafanabot)
84e358660a [v9.4.x] Revert "Alerting: Fix alert form broken coming from panel (#64148)" (#64241)
Revert "Alerting: Fix alert form broken coming from panel (#64148)" (#64240)

(cherry picked from commit 282d021c53)

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-03-06 10:39:46 -05:00
Grot (@grafanabot)
269ae0d7be [v9.4.x] Alerting: Fix queries not being previewed in detail view (#64235)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Fix queries not being previewed in detail view (#64198)
2023-03-06 09:58:52 -05:00
Grot (@grafanabot)
24e46f3ae7 [v9.4.x] Alerting: Disable "Declare Incident" button for open-source editions (#64234)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-03-06 09:58:48 -05:00
Grot (@grafanabot)
232cbed853 [v9.4.x] GrafanaUI: reset ConfirmModal disabled state on re-open (#64207)
GrafanaUI: reset ConfirmModal disabled state on re-open (#63452)

(cherry picked from commit 88231c7cb8)

Co-authored-by: Uladzimir Dzmitračkoŭ <3773351+going-confetti@users.noreply.github.com>
2023-03-06 13:33:44 +01:00
Grot (@grafanabot)
c5583207ee [v9.4.x] Fix scenario where tooltip shows wrong value (#64199)
Fix scenario where tooltip shows wrong value (#64025)

* Fix scenario where tooltip shows wrong value

* refactor

(cherry picked from commit 211a999a2a)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2023-03-06 11:54:25 +00:00
Giordano Ricci
c48ca77815 [v9.4.x] Explore: Avoid changing queries twice when importing a query in mixed mode (#64206)
Explore: Avoid changing queries twice when importing a query in mixed mode (#63804)

* Explore: avoid changing queries twice when importing a query in mixed mode

* move logic to thunk

* add tests

* improve tests

(cherry picked from commit 24a4a24a89)
2023-03-06 11:33:39 +00:00
Dimitris Sotirakis
5fb2986aa5 [v9.4.x] Chore: Bump alpine version to 3.17.1 (#63252) (#63264)
Chore: Bump alpine version to `3.17.1` (#63252)

Bump alpine version to 3.17.1

(cherry picked from commit 24c60486f6)

# Conflicts:
#	.drone.yml
2023-03-06 04:40:47 -05:00
Sonia Aguilar
6772c060d8 Alerting: Fix alert form broken coming from panel (#64148) (#64200)
Fix alert form broken coming from panel

(cherry picked from commit a669b72641)
2023-03-06 04:14:33 -05:00
Grot (@grafanabot)
f918b3bf9d [v9.4.x] Alerting: Prevent resetting the form on evaluation group interval change (#63794)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-03-06 10:00:00 +01:00
Grot (@grafanabot)
49ef18b2b7 [v9.4.x] Docs: Adding angular support deprecation to our plugin submission FAQ (#64201)
Docs: Adding angular support deprecation to our plugin submission FAQ (#64006)

Adding angular support deprecation to our faq

(cherry picked from commit 43e281271b)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2023-03-06 03:57:18 -05:00
Grot (@grafanabot)
f80239c21a [v9.4.x] update data source permissions instructions to match modern UI (#64181)
update data source permissions instructions to match modern UI (#63405)

* update data source permissions instructions to match modern UI

* Apply suggestions from code review

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit adc8000b72)

Co-authored-by: chrisharbro <102977229+chrisharbro@users.noreply.github.com>
2023-03-03 16:26:27 -06:00
Grot (@grafanabot)
bf6e7d2abe [v9.4.x] Clarify that LDAP will create Grafana users by default when they log in for the first time (#64180)
Clarify that LDAP will create Grafana users by default when they log in for the first time (#63391)

* Clarify that enabling LDAP will create users by default when they log in

This proposed change to the doc was requested by a user in support ticket `79860`, as it was not clear to them that the OOTB behavior was for user accounts to be provisioned automatically in Grafana when signing in for the first time via LDAP.

* Update docs/sources/setup-grafana/configure-security/configure-authentication/ldap/index.md

Thanks!

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

* fix boolean

Woops, `true` should be `false`

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit b136d0dfcf)

Co-authored-by: chrisharbro <102977229+chrisharbro@users.noreply.github.com>
2023-03-03 16:26:04 -06:00
Jack Baldry
ddf5363aa6 [v9.4.x] Replace ambiguous relrefs with partial URIs to prevent 404s (#62468) (#64114)
* Replace ambiguous relrefs with partial URIs to prevent 404s



* Fix local builds that depend on latest content



* Fix broken relref



---------


(cherry picked from commit 66b54e2dbd)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-03 18:59:09 +00:00
Grot (@grafanabot)
a9faf4b9f1 [v9.4.x] Influxdb: Fix missing columns with raw query (#64173)
Influxdb: Fix missing columns with raw query (#64058)

* add selected columns to table when select object is not in query model because of rawQuery

* handle * and SHOW raw queries

* handle metricFindQuery

* Update public/app/plugins/datasource/influxdb/response_parser.ts

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

* Update public/app/plugins/datasource/influxdb/response_parser.ts

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

* Update public/app/plugins/datasource/influxdb/response_parser.ts

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
(cherry picked from commit aed020d9b5)

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2023-03-03 13:40:39 -05:00
Sofia Papagiannaki
8c12f75b0b [v9.4.x] Chore: Remove CreateUserForTests() (#64125) (#64165)
Chore: Remove CreateUserForTests() (#64125)

* Chore: Remove CreateUserForTests

* Apply suggestion from code review

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

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

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

Fixes #63995

(cherry picked from commit dbb72f2c6e)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
2023-03-03 11:24:21 -05:00
Grot (@grafanabot)
5ccddbe071 [v9.4.x] Changelog: Updated changelog for 9.4.0 (#63983)
Changelog: Updated changelog for 9.4.0 (#63978)

* Changelog: Updated changelog for 9.4.0

* Revert release date manually

---------

Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
(cherry picked from commit 682a186676)
2023-03-03 11:14:08 -05:00
Grot (@grafanabot)
6d0beaedaf [v9.4.x] build: fix corss build (#63261)
build: fix corss build (#61121)

* build: fix corss build

* fix lint

(cherry picked from commit 37baae3699)

Co-authored-by: Jimmie Han <hanjinming@outlook.com>
2023-03-03 10:04:12 -06:00
Grot (@grafanabot)
8c1d16c879 [v9.4.x] Logs: Log samples not being ordered correctly (#64147)
Logs: Log samples not being ordered correctly (#64097)

* fix log samples being unsorted and multiple results when chunking

* use `SortDirection` enum

* changed to `sortDataFrame` to support other datasources than loki

* update tests

* change capitalization

(cherry picked from commit 2076282064)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-03-03 10:09:50 -05:00
Ashley Harrison
4ee064da11 Chore: Pass signed user_hash to Intercom via Rudderstack (#63921) (#64145)
* move analytics identifiers to backend

* implement hash function

* grab secret from env

* expose and retrieve intercom secret from config

* concat email with appUrl to ensure uniqueness

* revert to just using email

* Revert "revert to just using email"

This reverts commit 8f10f9b1bc.

* add docstring

(cherry picked from commit d61bcdf4ca)
2023-03-03 10:06:13 -05:00
Grot (@grafanabot)
1548edc40e [v9.4.x] Docs: Meta-monitoring docs for Grafana and Mimir (#64142)
Docs: Meta-monitoring docs for Grafana and Mimir (#63752)

* Docs: (WIP) Meta-monitoring docs for Grafana and Mimir

* Update metrics for Grafana Managed Alerts

* Fix spelling mistake

* Add docs for Alertamanager, including high-availability mode

* Comment undefined metrics

---------

Co-authored-by: Armand Grillet <2117580+armandgrillet@users.noreply.github.com>
(cherry picked from commit fed59b1d43)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-03-03 15:46:19 +01:00
Grot (@grafanabot)
aad839e5b9 [v9.4.x] Alerting: Fix client to external Alertmanager to correctly build URL for Mimir Alertmanager (#63684)
Alerting: Fix client to external Alertmanager to correctly build URL for Mimir Alertmanager (#63676)

(cherry picked from commit 98e1aeaebd)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2023-03-03 09:14:33 -05:00
Grot (@grafanabot)
aa60a45f6b [v9.4.x] Docs: Pinning to latest for grafana plugin tools (#64141)
Docs: Pinning to latest for grafana plugin tools (#64140)

Pinning to latest for grafana plugin tools

(cherry picked from commit 92ee03db78)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2023-03-03 09:11:31 -05:00
Giordano Ricci
bdf8b7531b [9.4.x] Correlations: Fix flaky integration tests (#64004) (#64139)
Correlations: Fix flaky integration tests (#64004)

* Correlations: Fix flaky integration tests

* set explore-squad as correlations tests code owners

(cherry picked from commit 4a7fbea7a4)
2023-03-03 14:06:59 +00:00
Grot (@grafanabot)
9ef2e8d7da [v9.4.x] Alerting: Allow downloading alert rules from subpath (#64138)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-03-03 08:44:03 -05:00
Grot (@grafanabot)
79fb770ca5 [v9.4.x] Alerting: Fix UI crashing when selecting custom grouping in alert panel (#64128)
Alerting: Fix UI crashing when selecting custom grouping in alert panel (#64124)

Fix UI crashing when selecting custom grouping in alert panel

(cherry picked from commit 9765c98b3d)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-03-03 07:08:12 -05:00
Grot (@grafanabot)
b733b4fd5c [v9.4.x] Docker Build: Use tonistiigi/binfmt image for cross compilation (#64117)
Docker Build: Use `tonistiigi/binfmt` image for cross compilation (#64108)

* Change docker image used for cross-compilation

* Replace fmt.Println with log.Println

* Add specific tag for docker image

(cherry picked from commit b42fd92fad)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-03-03 13:19:00 +02:00
Grot (@grafanabot)
a2b984cd7e [v9.4.x] docs: Prevent internal docs on setting up plugin spellcheck from appearing on public website (#64118)
docs: Prevent internal docs on setting up plugin spellcheck from appearing on public website (#64113)

(cherry picked from commit ab512fcf88)

Co-authored-by: Andriy <andriy.urbanas@grafana.com>
2023-03-03 10:55:31 +01:00
Grot (@grafanabot)
0d7de2bbda Release: Bump version to 9.4.4 (#64101)
"Release: Updated versions in package to 9.4.4"
2023-03-03 03:17:28 -05:00
Grot (@grafanabot)
1ad9362310 [v9.4.x] Changelog: Updated changelog for 9.4.3 (#64100)
Changelog: Updated changelog for 9.4.3 (#64099)

(cherry picked from commit a7a658ed1b)
2023-03-03 09:10:08 +01:00
Grot (@grafanabot)
8861a8a977 [v9.4.x] SQLStore: Enable clientFoundRows for MySQL connections (#64083)
SQLStore: Enable clientFoundRows for MySQL connections (#64070)

Enable clientFoundRows for MySQL connections

(cherry picked from commit 8ea71d37c2)

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

Stop using the folder path before the name path

(cherry picked from commit 177aa254c5)

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

(cherry picked from commit e760f22402)

# Conflicts:
#	pkg/services/ngalert/notifier/alertmanager.go
2023-03-02 14:45:27 -05:00
Grot (@grafanabot)
3fe53ab222 [v9.4.x] StatPanel: Fix issue where sparkline chart was not being shown on resize (#64012) 2023-03-02 12:58:48 +01:00
Emil Tullstedt
4e687dfb6f [v9.4.x] Chore: Upgrade Go to 1.20.1 and Alpine to 3.17 (#63891) 2023-03-02 11:53:45 +01:00
Grot (@grafanabot)
eab26273d6 [v9.4.x] Docs [Search] update _index.md by replacing dashboardPreviews for panelTitleSearch feature toggle (#64003)
Co-authored-by: beateguia <70489000+beateguia@users.noreply.github.com>
2023-03-02 11:21:56 +01:00
Grot (@grafanabot)
35fe167f0d Release: Bump version to 9.4.3 (#64002)
"Release: Updated versions in package to 9.4.3"
2023-03-02 11:05:48 +01:00
Grot (@grafanabot)
5e48a1ad06 [v9.4.x] Changelog: Updated changelog for 9.4.2 (#64001)
Changelog: Updated changelog for 9.4.2 (#64000)

(cherry picked from commit ae90f73b78)
2023-03-02 10:54:28 +01:00
Grot (@grafanabot)
225128a5d9 [v9.4.x] Fix redirect from /setup-grafana/upgrade-grafana/ to /upgrade-guide/ (#63999)
Fix redirect from /setup-grafana/upgrade-grafana/ to /upgrade-guide/ (#63914)

Additionally fix redirect from `/installation/upgrading/` to
`/setup-grafana/upgrade-grafana/`.

The alias proposed in
https://github.com/grafana/grafana/pull/62402#discussion_r1090526464
was incorrect. It used the `../installation/upgrading/` alias as
reference but I did not check the redirect. As this page itself has
moved from `/setup-grafana/upgrade-grafana/` to `/upgrade-guide/` the
relative alias needed updating also.

To verify that this alias is working as expected:

1. Checkout this branch.
2. Run `make docs`
3. Browse to
http://localhost:3002/docs/grafana/latest/setup-grafana/upgrade-grafana/
4. Verify that you have been redirected to
http://localhost:3002/docs/grafana/latest/upgrade-guide/
5. Browse to
http://localhost:3002/docs/grafana/latest/installation/upgrading/
6. Verify that you have been redirected to
http://localhost:3002/docs/grafana/latest/upgrade-guide/

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-03-02 04:13:05 -05:00
Grot (@grafanabot)
64412b1195 [v9.4.x] BarChart: Only apply radius to topmost bar segment when stacking (#63986)
BarChart: Only apply radius to topmost bar segment when stacking (#63906)

(cherry picked from commit 9314fe1056)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2023-03-01 18:28:14 -05:00
Grot (@grafanabot)
0299b18b88 [v9.4.x] Reqcontext: Use err status code instead of always fallback (#63977)
Reqcontext: Use err status code instead of always fallback (#63974)

(cherry picked from commit 8bd4e2cb25)

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

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

(cherry picked from commit 030f6c948f)

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

Fix boolean default in migration from false to 0

(cherry picked from commit a05bf41ff9)

Co-authored-by: Alex Moreno <alexander.moreno@grafana.com>
2023-03-01 17:34:53 +00:00
Grot (@grafanabot)
0de3ceb47c [v9.4.x] TimeSeries: Ignore invalid, user-defined log-y-axis min/max limits (#63967)
TimeSeries: Ignore invalid, user-defined log-y-axis min/max limits (#59758)

(cherry picked from commit 5510fdc3ce)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2023-03-01 12:25:54 -05:00
Grot (@grafanabot)
bb25297a9d [v9.4.x] Profile: Fix session table overflowing page layout in mobile (#63965)
Profile: Fix session table overflowing page layout in mobile (#63858)

handle table overflowing in mobile layout

(cherry picked from commit 4f01d55a3c)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-01 12:16:59 -05:00
Ashley Harrison
b5135d8144 Command Palette: Sign out link now works correctly (#63742) (#63960)
* pass target to command palette urls so sign out link works correctly

* improve types

(cherry picked from commit a534119c44)
2023-03-01 12:00:22 -05:00
Grot (@grafanabot)
1b0d442ca2 [v9.4.x] Navigation: Fix broken layout at 544px (#63950)
Navigation: Fix broken layout at 544px (#63793)

* ensure media queries transition properly

* fix unit tests

(cherry picked from commit 8e9ccfc66e)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-03-01 10:40:42 -05:00
Grot (@grafanabot)
38b5dd4486 [v9.4.x] Fix wrong texts in titles when cloning templates (#63944)
Fix wrong texts in titles when cloning templates (#63930)

(cherry picked from commit fa35ed8141)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-03-01 09:47:52 -05:00
Grot (@grafanabot)
66b94cd468 [v9.4.x] [DOC] Change APM dashboard to Service Graph view (#63903)
[DOC] Change APM dashboard to Service Graph view (#63818)

* Change APM dashboard to Service View graph

* Apply suggestions from code review

* Update docs/sources/explore/trace-integration.md

* Update docs/sources/explore/trace-integration.md

(cherry picked from commit ac5dbf2632)

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2023-02-28 16:37:53 -05:00
Grot (@grafanabot)
a7c1598ca6 [v9.4.x] Navigation: reserve horizontal space for img in SectionNavItem to avoid layout shift (#63865)
Navigation: reserve horizontal space for img in SectionNavItem to avoid layout shift (#63722)

(cherry picked from commit 429d693a4a)

Co-authored-by: Uladzimir Dzmitračkoŭ <3773351+going-confetti@users.noreply.github.com>
2023-02-28 16:04:35 +01:00
Grot (@grafanabot)
437cf15105 [v9.4.x] TimeSeries: Fix legend and tooltip colors changing after data refreshes (#63871)
TimeSeries: Fix legend and tooltip colors changing after data refreshes (#63823)

(cherry picked from commit b2c0175777)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2023-02-28 09:24:51 -05:00
Grot (@grafanabot)
6cab7f956c [v9.4.x] Alerting: Fix width in alerts table columns on EditGroupModal (#63849)
Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
Fix width in alerts table columns on EditGroupModal (#63845)
2023-02-28 08:48:50 -05:00
Grot (@grafanabot)
b23f3964e9 Release: Bump version to 9.4.2 (#63844)
"Release: Updated versions in package to 9.4.2"
2023-02-28 05:44:19 -05:00
Grot (@grafanabot)
0b98b4d241 [v9.4.x] Changelog: Updated changelog for 9.4.1 (#63843)
Changelog: Updated changelog for 9.4.1 (#63841)

* Changelog: Updated changelog for 9.4.1

---------

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
(cherry picked from commit 71d64f95da)
2023-02-28 05:32:43 -05:00
Grot (@grafanabot)
04a4774d4c [v9.4.x] Changelog: Updated changelog for 9.4.0 (#63839)
Changelog: Updated changelog for 9.4.0 (#63838)

(cherry picked from commit 321e4c0f99)
2023-02-28 11:20:23 +01:00
Grot (@grafanabot)
3c58b2c176 [v9.4.x] TraceView: Add key and url escaping of json tag values (#761)
TraceView: Add key and url escaping of json tag values (#751)

(cherry picked from commit 8b53b448bc24fbfc4492ce1f4e2b1708218f70b7)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2023-02-28 11:02:22 +01:00
Grot (@grafanabot)
a1bceeb1d3 [v9.4.x] Geomap: Sanitize the attribution string (#755)
Geomap: Sanitize the attribution string (#745)

* SAML: Update grafana/saml library (#691)

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

* SVG: Add dompurify preprocessor step (#698)

* add sanitized SVG component

* add sanitize

* Fix frontend build

* Remove unnecessary yarn.lock changes

* Fix formatting

* Re-add yarn.lock message as I guess it is needed

---------

Co-authored-by: dsotirakis <dimitrios.sotirakis@grafana.com>
Co-authored-by: jguer <joao.guerreiro@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
(cherry picked from commit 37b4af7ffacfc24d5f24d190356a9ef32d99aa6f)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-02-28 11:02:18 +01:00
Grot (@grafanabot)
bb7a485dbf [v9.4.x] Alerting: Fix AlertLabelDropdown to be case sensitive (#63832)
Alerting: Fix AlertLabelDropdown to be case sensitive (#63787)

Fix AlertLabelDropdown to be case sensitive

(cherry picked from commit 526cac60e5)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-02-28 04:05:09 -05:00
Grot (@grafanabot)
b3682d498c [v9.4.x] Alerting: Improve Alertmanager data source docs (#63721)
Alerting: Improve Alertmanager data source docs (#63611)

Improve Alertmanager data source docs

(cherry picked from commit 6e39b7403d)

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2023-02-28 08:29:17 +01:00
Timur Olzhabayev
183f9317c5 fix(dashboard version service): add DashboardUID to query and respons… (#63821)
fix(dashboard version service): add DashboardUID to query and responses (#60800)

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

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

(cherry picked from commit 42be0e106f)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
2023-02-27 23:01:48 +01:00
Grot (@grafanabot)
194dbead83 [v9.4.x] Alerting: Fix available labels in the alert panel groupby dropdown (#63799)
Alerting: Fix available labels in the alert panel groupby dropdown (#63573)

(cherry picked from commit 5f35995cd4)

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2023-02-27 17:58:52 +01:00
Grot (@grafanabot)
53b5cf5288 [v9.4.x] AzureMonitor: Fix template variables in ARG subscription field (#63758)
AzureMonitor: Fix template variables in ARG subscription field (#63731)

Add support for template variables in sub field

(cherry picked from commit 823aaaeb7c)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-02-27 05:56:15 -05:00
Jo
7900e795f1 [9.4.x] Users: Fix org user always getting org id = 1 (#63759)
Users: Fix org user always getting org id = 1 on auto assign false (#63708)

* fix org user always getting org id = 1 on auto assign false

* make tests explicit

* use correct cfg in service accounts

* fix api tests

* fix database test of ac

* fix InsertOrgUser returning affected rows as orgID

(cherry picked from commit c8db771939)
2023-02-27 10:31:53 +01:00
Jack Baldry
0f1f842015 [v9.4.x] fix link to explore with logs and headings (#63665) (#63701)
* [v9.4.x] Logs: Rename dedup to deduplication (#62944)

* fix: rename dedup with deduplication

* docs: update documentation

* fix: update names

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

* [v9.4.x] fix link to explore with logs and headings (#63665)

fixed links and eadings

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

---------

Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-02-25 07:26:22 +00:00
Alexander Weaver
7e017790d2 Alerting: Instrument outgoing state history requests using weaveworks/common (#63689)
* Alerting: Instrument outgoing state history requests using weaveworks/common (#63600)

* Loki backend and client depend on a requester

* Instrument all requests to loki using weaveworks TimedClient

* Construct collector in metrics package

(cherry picked from commit e77621649d)

* Revert all changes to gomod and gosum
2023-02-24 15:49:36 -06:00
Grot (@grafanabot)
3531683e87 [v9.4.x] CloudMonitor: Add missing logger to TimeSeriesQuery (#63132)
CloudMonitor: Add missing logger to TimeSeriesQuery (#63110)

(cherry picked from commit ac9639daf8)

Co-authored-by: Alyssa Bull <58453566+alyssabull@users.noreply.github.com>
2023-02-24 21:32:06 +00:00
Grot (@grafanabot)
b5747d397d [v9.4.x] CloudMonitoring: Fix crash when inspecting data for MQL queries (#63756)
CloudMonitoring: Fix crash when inspecting data for MQL queries (#63747)

CloudMonitoring: Fix missing Field name

This happened for MQL queries that used an [aggregate function][1], e.g.
`sum`.

[1]: https://cloud.google.com/monitoring/mql/reference#aggr-function-group

(cherry picked from commit 3672e44c1c)

Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2023-02-24 13:30:38 -05:00
Grot (@grafanabot)
f8120e9152 [v9.4.x] Bump coverage versions (#63757)
Bump coverage versions (#63755)

- Includes a fix to ensure only ts/tsx files have coverage generated

(cherry picked from commit 0a7474ac5c)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-02-24 13:27:31 -05:00
Grot (@grafanabot)
ae94a60981 [v9.4.x] Plugins: Fix plugins CDN not working when plugins are not in domain's root path (#63729)
Plugins: Fix plugins CDN not working when plugins are not in domain's root path (#63202)

* Plugins CDN: Add support for different CDN root path

* Plugins CDN: Make frontendsettings return the correct CDN base path

* Update comments

* Fix version detection

* Undo frontend changes

* Fix system.js asset path construction

* fix(plugins): translate all plugin css asset paths loaded via cdn

* refactor(plugins): rename extractPluginNameVersionFromUrl and add comments

* Fix typo in comment

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>

* Hardcode CDN URL structure

/{id}/{version}/public/plugins/{id}/{assetPath} is not required anymore in the cdn url template config

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
(cherry picked from commit 966bcd3545)

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
2023-02-24 08:50:29 -05:00
Grot (@grafanabot)
65c2b4fea2 [v9.4.x] TestData: Fix bug when selecting "Log" streaming (#63725)
TestData: Fix bug when selecting "Log" streaming (#63190)

* fix wrong fields getting populated

* fix bug not being able to select another streaming type

* add correct arg type

* remove unused import

(cherry picked from commit b3c0e7e977)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-02-24 08:21:25 -05:00
Grot (@grafanabot)
f18c84af5a [v9.4.x] Alerting: Fix changing datasource and creating new query not using defaults. (#63720)
Alerting: Fix changing datasource and creating new query not  using defaults. (#63092)

* Set default query when changing data source or adding new alert query

* Set default query when creating new alert rule

* Set fefault query for cloud and recording rules

* Create hook for getting defaults in AlertRuleForm

* fixing tests

* Use conditionals with 'if' for more clarity and rename lazy to async

* Add loading indicator for default queries

* Fix tests

* Make newModel a sync method and fix tests error

* Use useAsync instead of useEffect for an async call

(cherry picked from commit b42f973a7a)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-02-24 07:52:46 -05:00
Grot (@grafanabot)
c10b18d06e [v9.4.x] Datasource Onboarding: Prevent flickering of onboarding page after first load (#63715)
Datasource Onboarding: Prevent flickering of onboarding page after first load (#63360)

* Datasource Onboarding: Prevent flickering of onboarding page after first load

* add loading state to loadDatasources & refactor

* fix test

* avoid loading state when loading datasources on add

* fix test

* add explainer on why fetching datasources is needed

(cherry picked from commit c136ad1f16)

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-02-24 12:00:25 +00:00
Grot (@grafanabot)
a3b692e1c5 [v9.4.x] Loki ds: Interpolation breaks in Loki queries when no scoped vars (#63700)
Loki ds: Interpolation breaks in Loki queries when no scoped vars (#63694)

(cherry picked from commit 14e29451cf)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2023-02-24 10:28:34 +01:00
Grot (@grafanabot)
30f3f63bd6 [v9.4.x] InfluxDB datasource: Query variable breaks trying to interpolate __interval (#63685)
InfluxDB ds: Query variable breaks trying to interpolate `__interval` (#63682)

(cherry picked from commit ca4cd85504)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2023-02-23 14:42:20 -05:00
Grot (@grafanabot)
758783a2e2 [v9.4.x] Docs: Disambiguate auto_assign_org_role configuration option descriptions (#63681)
Docs: Disambiguate auto_assign_org_role configuration option descriptions (#61827)

(cherry picked from commit 5687d23b52)

Co-authored-by: zsrv <95176387+zsrv@users.noreply.github.com>
2023-02-23 13:41:49 -05:00
Grot (@grafanabot)
5585dc0ba1 [v9.4.x] Docs: Fix of typo and delete of unnecessary sentence in 'Sign a plugin' doc (#63683)
Docs: Fix of typo and delete of unnecessary sentence in 'Sign a plugin' doc (#63538)

* Typo fix, minor edit

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

* Prettier fixes

Signed-off-by: Joe Perez <joseph.perez@grafana.com>

---------

Signed-off-by: Joe Perez <joseph.perez@grafana.com>
(cherry picked from commit dd5b115164)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-02-23 13:33:31 -05:00
Grot (@grafanabot)
2012cd7954 [v9.4.x] Docs: Update old default values for configuration options (#63678)
Docs: Update old default values for configuration options (#61826)

(cherry picked from commit 0481c12bd5)

Co-authored-by: zsrv <95176387+zsrv@users.noreply.github.com>
2023-02-23 13:01:24 -05:00
Grot (@grafanabot)
77263b8e65 [v9.4.x] Docs: Update default value for geomaps enable_custom_baselayers option (#63675)
Docs: Update default value for geomaps enable_custom_baselayers option (#61880)

Docs: Update default value for geomaps disable_custom_baselayers option

The `disable_custom_baselayers` configuration option name and default
value were inverted in commit e604e69d93,
but the update to the description in the documentation was missed.

(cherry picked from commit 22f51602ba)

Co-authored-by: zsrv <95176387+zsrv@users.noreply.github.com>
2023-02-23 17:46:01 +00:00
Grot (@grafanabot)
3e30c2024c [v9.4.x] InfluxDB: Fix getting empty response when querying fields with retention policy (#63671)
InfluxDB: Fix getting empty response when querying fields with retention policy (#63669)

Revert "InfluxDB: Send retention policy with InfluxQL queries if its been specified. (#62149)"

This reverts commit a5a85e0398.

(cherry picked from commit ffed779879)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-02-23 12:28:43 -05:00
Grot (@grafanabot)
cb13b75c6b [v9.4.x] Docs: Clarify command palette changes are not behind feature flag (#63667)
Docs: Clarify command palette changes are not behind feature flag (#63576)

(cherry picked from commit 63ae343ba9)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2023-02-23 17:08:09 +00:00
Grot (@grafanabot)
242e05f448 [v9.4.x] CloudWatch Logs: Fix query editor freezing (#63666)
CloudWatch Logs: Fix query editor freezing (#63661)

(cherry picked from commit 22537bec2e)

Co-authored-by: Isabella Siu <Isabella.siu@grafana.com>
2023-02-23 12:06:34 -05:00
Grot (@grafanabot)
7f6319393d [v9.4.x] Navigation: Add plugin upgrade guide to docs (#63616)
Navigation: Add plugin upgrade guide to docs (#63449)

* initial attempt at plugin upgrade guide

* fix link

* small tweaks based on feedback

* add basic skeleton for tabs documentation

(cherry picked from commit f6e92da402)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-02-23 05:15:05 -05:00
Grot (@grafanabot)
57ecd3d3d3 [v9.4.x] TimeRangeInput: Fix positioning of dropdown menu (#63612)
TimeRangeInput: Fix positioning of dropdown menu (#63472)

fix TimeRangeInput positioning

(cherry picked from commit bcaf4dc0b1)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-02-23 05:01:03 -05:00
Grot (@grafanabot)
edd755b834 [v9.4.x] Docs: Improved docs for templating labels and annotations (#63606)
Docs: Improved docs for templating labels and annotations (#63539)

(cherry picked from commit c9497dc533)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-23 03:58:52 -05:00
Grot (@grafanabot)
db978cd48a [v9.4.x] MSSQL Datasource: Revert functions within macros change (#63598)
MSSQL Datasource: Revert functions within macros change (#63592)

* Revert functions within macros change
* Add tests for function and macro for mssql
* Remove macro support tests

---------

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
(cherry picked from commit 356e2e1933)

Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
2023-02-22 16:23:47 -05:00
Grot (@grafanabot)
6162e6f823 [v9.4.x] Docs: Fix numbering in templating docs (#63587)
Docs: Fix numbering in templating docs (#63577)

(cherry picked from commit 18fec707fd)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-22 12:38:28 -05:00
Grot (@grafanabot)
8e4fa99ec7 [v9.4.x] Authn: Add separate context for session tagging (#63571)
Authn: Add separate context for session tagging  (#63561)

add context

(cherry picked from commit 635a456fa4)

Co-authored-by: Jo <joao.guerreiro@grafana.com>
2023-02-22 17:17:44 +01:00
Grot (@grafanabot)
8aaca53a32 [v9.4.x] Docs: fix typo in 9.4 what's new (#63580)
Docs: fix typo in 9.4 what's new (#63545)

provides -> providers

(cherry picked from commit 33277fccde)

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2023-02-22 09:15:51 -06:00
Grot (@grafanabot)
9eefd2e42a [v9.4.x] Prometheus: Handle annotation query with empty fields (#63574)
Prometheus: Handle annotation query with empty fields (#63560)

Handle annotation query with empty fields

(cherry picked from commit 3d75dbc31e)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-02-22 08:57:47 -05:00
Grot (@grafanabot)
045aff4009 [v9.4.x] Add --init to all podman invocations to ensure ^C works on MacOS (#63552)
[v9.4.x] Add --init to all podman invocations to ensure ^C works on MacOS (#61745)

(cherry picked from commit 5f5f51b3bf)

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-02-22 11:19:05 +00:00
Grot (@grafanabot)
e9b269a5b8 [v9.4.x] Docs: Delete old templating notifications docs page (#63549)
Docs: Delete old templating notifications docs page (#63547)

(cherry picked from commit 740bcf64ce)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-22 05:16:21 -05:00
Grot (@grafanabot)
fcc6c7c486 [v9.4.x] CloudWatch: Remove error for multi-value variable in logs runner (#63546)
CloudWatch: Remove error for multi-value variable in logs runner (#63522)

Remove error for multi template variable in CW logs runner

(cherry picked from commit 3a57304ef0)

Co-authored-by: Shirley <4163034+fridgepoet@users.noreply.github.com>
2023-02-22 04:43:44 -05:00
Jo
92ac380621 [v9.4.x] Authn: Anon session service (#63520)
* Authn: Anon session service (#63052)

* add anon sessions package

* add usage stat fn

* implement count for cache

* add anonservice to authn broker

* lint

* add tests for remote cache count

* move anon service to services

* wrap tagging in goroutine

* make func used

(cherry picked from commit ff78103a24)

* add local cache to protect multiple writes to DB cache

(cherry picked from commit bdb084736b)
2023-02-22 09:55:17 +01:00
Grot (@grafanabot)
98489d5f81 [v9.4.x] Geomap: Fix default opacity for layers (#63526) 2023-02-21 22:04:03 +02:00
Grot (@grafanabot)
60e88ffcb7 [v9.4.x] CloudMonitor: Fix query migration (#63519)
CloudMonitor: Fix query migration (#63491)

* Update query and set required fields for explore queries

* Update test case

- Validate onChange is called with the new query

(cherry picked from commit 20591cc42b)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-02-21 17:11:00 +00:00
Grot (@grafanabot)
249c5b013e [v9.4.x] Alerting: Fix incorrect comment in eval.go (#63513)
Alerting: Fix incorrect comment in eval.go (#63510)

This commit fixes an incorrect comment in the Result struct in eval.go
that I had written some time ago. The comment now documents the
actual behaviour and content of this field.

(cherry picked from commit f93a9c794d)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-21 11:15:55 -05:00
Jo
4ddc76f73e Authn: Stat registration [9.4.x] (#63504)
Authn: Stat registration (#62934)

* reorganize auth usage stats

* usage stat privilege elevators

* stat count of modified role

* cfg related info

* add authn anon client

* kv store

* ensure anon enabled is collected even if client is not registered

* fix usage stats test

(cherry picked from commit 14a78b58e9)
2023-02-21 16:21:09 +01:00
Grot (@grafanabot)
b6dc902ec0 [v9.4.x] Alerting: Get alert rules on faults (#61248) (#63505)
Alerting: Get alert rules on faults (#61248) (#63051)

* Alerting: get alert rules on faults (#61248)

Two functions used to fetch alert rules from DB are updated:
- GetAlertRulesForScheduling
- ListAlertRules
Rows are scanned one by one so good ones are returned.
Common Error is logged with indication how many
rules failed on deserialization.

Resolved: #61248

* updates from review comments

(cherry picked from commit 56c8661929)

Co-authored-by: bla2ej <123992384+bla2ej@users.noreply.github.com>
2023-02-21 10:15:40 -05:00
Grot (@grafanabot)
479360e6bf [v9.4.x] Update navigationAppConfig to use new k6 plugin id (#63459)
Update navigationAppConfig to use new k6 plugin id (#63002)

(cherry picked from commit f9f80cff89)

Co-authored-by: Simon <simon.legander@gmail.com>
2023-02-21 09:30:34 +01:00
Grot (@grafanabot)
f9845a6d70 [v9.4.x] Docs: Remove duplicate docs on images in notifications (#63475)
Docs: Remove duplicate docs on images in notifications (#63474)

(cherry picked from commit 85457156e3)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-20 18:01:28 +00:00
Grot (@grafanabot)
96121adda2 [v9.4.x] Docs: Uploading images from disk supported in Slack (#63473)
Docs: Uploading images from disk supported in Slack (#63443)

(cherry picked from commit 0e9201c522)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-20 12:43:02 -05:00
Grot (@grafanabot)
56b478f84d [v9.4.x] Docs: Upload images from disk supported in Telegram (#63471)
Docs: Upload images from disk supported in Telegram (#63442)

(cherry picked from commit 92248fe977)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-20 12:37:20 -05:00
Grot (@grafanabot)
7451db3f26 [v9.4.x] Prometheus: Fix missing abs operation to query builder (#63462)
Prometheus: Fix missing abs operation to query builder (#63139)

Add abs operator to prometheus query builder

(cherry picked from commit 80292d3d1e)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-02-20 09:58:23 -05:00
Grot (@grafanabot)
0bddceb24c [v9.4.x] Alerting: Fix confusing comment about screenshots in default.ini and docs (#63440)
Alerting: Fix confusing comment about screenshots in default.ini and docs (#63346)

(cherry picked from commit 005f5ca1df)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-20 05:25:36 -05:00
Yuri Tseretyan
65de5b497b Chore: update alerting package to head of 9.4.x (508391225cd4) (#63210)
update alerting package to 9.4.x 508391225cd4
2023-02-10 17:41:10 +01:00
Grot (@grafanabot)
edd529c2cf [v9.4.x] Loki Context UI: Do not disable last label (#63253)
Loki Context UI: Do not disable last label (#62866)

* improved text

* prevent all labels removed

* use `structuredClone` instead of lodash

* update test

* get `structuredClone` in test?

* fix using structuredClone

(cherry picked from commit 00edc1c6b1)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-02-10 08:35:00 -05:00
Grot (@grafanabot)
17605f97af [v9.4.x] PanelChrome: Make loading animation speed the same across panels (#63242)
PanelChrome: Make loading animation speed the same across panels  (#62997)

Revert devenv dashboard change

(cherry picked from commit ed626427de)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-02-10 10:20:35 +01:00
Grot (@grafanabot)
e5d80f21e9 [v9.4.x] Alerting: Fix a bug taking screenshots with Dashboard UID (#63222)
Alerting: Fix a bug taking screenshots with Dashboard UID (#63220)

This commit fixes a bug where Grafana would fail to take a screenshot if
the same Dashboard UID was present across two or more different orgs.

(cherry picked from commit 1f984409a2)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-09 21:24:05 +00:00
Grot (@grafanabot)
f69374abbd [v9.4.x] Docs: Fix redaction error in notification policies docs (#63140)
Docs: Fix redaction error in notification policies docs (#63112)

fix redaction error in notification policies docs

(cherry picked from commit f43993d43f)

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2023-02-09 13:03:59 -03:00
Grot (@grafanabot)
ec2082c172 [v9.4.x] docs: adds what's new video (#63207)
docs: adds what's new video (#63206)

adds what's new video

(cherry picked from commit 52cc6a8651)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-09 09:56:38 -06:00
Horst Gutmann
3574fa5996 [9.4.x] Add missing PRs to 9.4.0-beta1 changelog (#62596) (#62600)
Add missing PRs to 9.4.0-beta1 changelog (#62596)

(cherry picked from commit addfd1b5cf)
2023-02-09 15:31:22 +01:00
Grot (@grafanabot)
982624f7b1 [v9.4.x] Provisioning: Parse boolean and numeric values from environment variables (#63192)
Provisioning: Parse boolean and numeric values from environment variables (#63085)

(cherry picked from commit a33e316f40)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-02-09 09:04:33 -05:00
Grot (@grafanabot)
69453133e7 [v9.4.x] Fix MSSQL queries failing because of bad interpolation (#63172)
Fix MSSQL queries failing because of bad interpolation (#63167)

fix failing mssql queries

(cherry picked from commit 62b078e4e4)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2023-02-09 03:32:11 -05:00
Grot (@grafanabot)
8a489712cc [v9.4.x] docs: comments out video (#63152)
docs: comments out video (#63150)

comments out video

(cherry picked from commit bc93f45e9d)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-08 14:43:40 -06:00
Grot (@grafanabot)
87f6fef9d7 [v9.4.x] docs: fixes video link in what's new 9.4 (#63146)
docs: fixes video link in what's new 9.4 (#63145)

fixes video link

(cherry picked from commit b405874166)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-08 13:51:02 -06:00
Grot (@grafanabot)
371149fa02 [v9.4.x] fix broken envelope encryption link (#63143)
fix broken envelope encryption link (#63135)

(cherry picked from commit 72ca7fe7fe)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-02-08 11:41:47 -08:00
Grot (@grafanabot)
845b797b5b [v9.4.x] What's New in v9.4 (#63137)
What's New in v9.4 (#59614)

* What's New in v9.4

* moves alert email templating to v9.4 release

* Add whats new for SAT (#61151)

* Add whats new for SAT

* Logs: Add logdetails redesign to "whats new" (#61361)

* update whats new

* update text and add image

* change `logline` to `log line`

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

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

* add: skip org role sync

* add note about oncall rbac to whats new 9.4 docs

* Loki Datasource: Add query validation to What's new (#62012)

Loki Datasource: add query validation to what's new

* Add note about SAML auto login (#61926)

* Add note about SAML auto login

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* run prettier

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

* What's New: Add image for the Loki Query Validation feature (#62358)

* What's new 9.4: add image for Loki query validation

* What's new 9.4: update image path

* Docs: Add logs sample to whats new in 9.4 (#62354)

* Add logs sample to whats new in 9.4

* Update path to image

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

Co-authored-by: Matias Chomicki <matyax@gmail.com>

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>

* Add datasource connection page to whatsnew

* Update datasource connection whats new 9.4

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

* Update datasource connection whats-new-in-v9-4.md

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

* Update whats-new-in-v9-4.md

Enterprise features add on

* Added command palette, navigation

* Update whats-new-in-v9-4.md

* Update whats-new-in-v9-4.md

* enterprise updates

* add panel header redesign content

* Adds alerting content to whats new

* Fix typo

Nav navigation -> New Navigation

* adds image to pause alerts

* Updated cmd palette screenshot

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

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

* adds alerting screenshots

* reorder and begin adding availability

Re-ordered updates into groups, and added availability descriptions to the first few updates.

* Updated command palette availability

* fix capitalization

* copy edit

* add before you upgrade section

* add docs relref links

* makes prettier

* added before you begin boilerplate

* Add Enterprise Datasource updates / highlights

* Add what's new section on updates to the canvas panel

* Update canvas demo vid src to correct location

* Canvas: add small shoutout for new server element in whats new

* copy edit final contributions

---------

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Co-authored-by: Joey Orlando <joseph.t.orlando@gmail.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: natellium <natalia.bernarte@grafana.com>
Co-authored-by: Natalia Bernarte Oses <74534993+natellium@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Fabrizia Rossano <117294258+frossano-grafana@users.noreply.github.com>
Co-authored-by: Zsofia <zsofia.komaromi@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: josiahg <jay@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 4dba927b3a)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-08 14:16:20 -05:00
Grot (@grafanabot)
45dd9f9a9f [v9.4.x] Navigation: add a link to starred dashboards in the megamenu (#63106)
Navigation: add a link to starred dashboards in the megamenu (#62685)

add a link to starred dashboards in the megamenu

(cherry picked from commit fc2f7f90f8)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-02-08 15:41:10 +00:00
Grot (@grafanabot)
8a8180c44d [v9.4.x] Docs: incorporates feedback from PR #62402 (#63101)
Docs: incorporates feedback from PR #62402 (#63065)

incorporates feedback from original PR

(cherry picked from commit a7ae05285c)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-08 09:36:07 -06:00
Ashley Harrison
532fc8dd2c Navigation: Backport 61103 to v9.4.x (#63097)
Navigation: Ensure command palette is correctly translated (#61103)

* Navigation: Translate nav tree in store

* Remove usage of getNavTitle

* properly translate children

* add pubdash translation

* remove extraneous calls to translation in PageHeader

* empty commit

* correctly allow subtitle to be overrwitten (thank you tests!)

---------

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

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2023-02-08 13:41:37 +00:00
Horst Gutmann
0d648ea977 [9.4.x] CI: Do not clone repo in artifact-page step (#63077) (#63087)
CI: Do not clone repo in artifact-page step (#63077)

(cherry picked from commit 470be140dc)
2023-02-08 15:19:53 +02:00
Horst Gutmann
23ac2de4d3 [9.4.x] CI: Running Redis integration tests without grabpl (#63028) (#63074)
This restores some changes from
https://github.com/grafana/grafana/pull/61920 that were accidentally
deleted.

(cherry picked from commit 2804acd264)
2023-02-08 04:35:40 -05:00
Grot (@grafanabot)
87497a1afc [v9.4.x] Prometheus: Table format throwing error on empty result (#63062)
Prometheus: Table format throwing error on empty result (#63053)

* fix bug in prometheus table view which is throwing error when a query returns no results

(cherry picked from commit 79b750a4b2)

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2023-02-07 16:10:00 -05:00
Grot (@grafanabot)
3c7cfecf50 [v9.4.x] CommandPalette: Move quick add actions to top level (#63049)
CommandPalette: Move quick add actions to top level (#62900)

* Move quick actions to top level

* Change quick action verb to "Create"

* create to 'new'

* fix comment

* update translations

* undo changing alerting

(cherry picked from commit 5564b93e2f)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2023-02-07 16:21:49 +00:00
Grot (@grafanabot)
63f1d95ed6 [v9.4.x] Update publishing workflows to use organization secret (#63046)
Update publishing workflows to use organization secret (#63001)

The new tokens are managed centrally and have a longer expiry.
Administrators of the grafanabot account will be
notified of the pending expiry and the secret can be rotated centrally
without the need for a repository administrator to update their
secrets.

The existing repository secrets can safely be removed. The tokens for
those secrets will be removed by the end of this week.

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-02-07 10:22:49 -05:00
Grot (@grafanabot)
238f51fb73 [v9.4.x] Docs: fix typo (#63038)
Docs: fix typo (#63032)

(cherry picked from commit c4909a6c2b)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-02-07 16:06:00 +01:00
Grot (@grafanabot)
88e8d97ad3 [v9.4.x] Search: Switch to list view when filtering by tags (#63017)
Search: Switch to list view when filtering by tags (#63004)

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

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2023-02-07 07:12:56 -05:00
Marcus Efraimsson
bd14abb309 [v9.4.x] Docs: Fix 404 links in build a plugin page (#63006) (#63010)
Docs: Fix 404 links in build a plugin page (#63006)

(cherry picked from commit a2f8dd7f1f)
2023-02-07 12:22:12 +01:00
Dimitris Sotirakis
96fa91e113 [v9.4.x] CI: Remove variants arg from package step (#62858) (#62999)
CI: Remove variants arg from `package` step (#62858)

* Remove variants arg from package step

* Fix starlark lint

* Default to releaseModeConfig.Variants

* Check for empty variants arg

(cherry picked from commit e5c48ac945)
2023-02-07 11:19:05 +02:00
Grot (@grafanabot)
0ca7d1e210 [v9.4.x] docs: upgrade guide refactor organizes releases into their own pages; moves upgrade guide to the root (#62987)
docs: upgrade guide refactor organizes releases into their own pages; moves upgrade guide to the root (#62402)

* organizes releases into their own pages; moves upgrade guide to the root

* adds and removes aliases

* Update docs/sources/upgrade-guide/upgrade-v8.0/index.md

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

* Update docs/sources/upgrade-guide/upgrade-v8.0/index.md

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

* Update docs/sources/upgrade-guide/upgrade-v8.0/index.md

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

* Update docs/sources/upgrade-guide/upgrade-v9.3/index.md

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

* Update docs/sources/shared/upgrade/upgrade-common-tasks.md

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

* Update docs/sources/shared/upgrade/upgrade-common-tasks.md

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

* Update docs/sources/shared/upgrade/upgrade-common-tasks.md

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

* corrects relrefs

---------

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

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-06 17:10:49 -06:00
Grot (@grafanabot)
200c94c722 [v9.4.x] Add canonical URL to all HTTP API docs (#62971)
Add canonical URL to all HTTP API docs (#62957)

Facilitates mounting these docs in the Grafana Cloud documentation set
without affecting SEO.

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-02-06 17:21:50 +00:00
Grot (@grafanabot)
7589dbe784 [v9.4.x] docs: fix broken annotations link (#62968)
docs: fix broken annotations link (#62834)

* docs: fix broken annotations link

Link to annotations section is broken because the section was never added. A placeholder for it was removed on this commit, but the link wasn't. This seems like the best place to point to.

* fix relref formatting

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

* removed TODOs from tables

* prettier linting

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 09943407e4)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-02-06 10:53:14 -06:00
Grot (@grafanabot)
005fb9586c [v9.4.x] Alerting: fix "policy" typo (#62955)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-02-06 16:58:22 +01:00
Grot (@grafanabot)
cb898dfe66 [v9.4.x] Docs: corrects typo (#62961)
Docs: corrects typo (#62954)

corrects typo

(cherry picked from commit cf272186fb)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-06 09:42:26 -06:00
Grot (@grafanabot)
3dffe4099b [v9.4.x] Refactor: Use data source UID rather than ID (#62937)
Refactor: Use data source UID rather than ID (#62781)

(cherry picked from commit 9893408af9)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-02-06 05:36:00 -05:00
Grot (@grafanabot)
d9710139e1 [v9.4.x] Prometheus: Refactor. Use data source UID rather than the deprecated ID (#62936)
Prometheus: Refactor. Use data source UID rather than the deprecated ID (#62795)

(cherry picked from commit 32e6af966f)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-02-06 11:12:24 +01:00
Grot (@grafanabot)
8e9fb8cf93 [v9.4.x] SAML: Update library (fix single logout) (#62933)
SAML: Update library (fix single logout) (#62880)

* SAML: update library (fix single logout)

* Run go mod tidy

(cherry picked from commit 5205cfb11c)

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2023-02-06 03:36:51 -05:00
Grot (@grafanabot)
fba376b347 [v9.4.x] Docs: removes Grafana Cloud CTA (#62905)
Docs: removes Grafana Cloud CTA (#62827)

removes Grafana Cloud CTA

(cherry picked from commit ebe54629e7)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-03 12:39:30 -06:00
Grot (@grafanabot)
6895e75f70 [v9.4.x] Canvas: Support color themes for arrows (#62896)
Canvas: Support color themes for arrows (#62829)

(cherry picked from commit db953c9a9c)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2023-02-03 12:47:27 -05:00
Grot (@grafanabot)
4f826bc76c [v9.4.x] Canvas: Improve anchor UX (#62898)
Canvas: Improve anchor UX (#62409)

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

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2023-02-03 12:09:51 -05:00
Grot (@grafanabot)
efaf4f5e09 [v9.4.x] Canvas: Update server element design (#62897)
Canvas: Update server element design (#62832)

(cherry picked from commit 43ce077133)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2023-02-03 12:07:29 -05:00
Grot (@grafanabot)
907381ed5c [v9.4.x] MSSQL: Add support for macro function calls (#62890)
MSSQL: Add support for macro function calls (#62742)

* MSSQL: Add support for macro function calls

* Add tests

(cherry picked from commit 9fc3b360a4)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
2023-02-03 11:03:24 -05:00
Grot (@grafanabot)
8c9cb8e839 [v9.4.x] PanelChrome: Implement hover header (#62875)
PanelChrome: Implement hover header (#61774)

Closes #59078

Co-authored-by: polinaboneva <polina.boneva@grafana.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
(cherry picked from commit 40ec4ef5b8)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2023-02-03 15:30:08 +00:00
Grot (@grafanabot)
028cc7e72b [v9.4.x] Navigation: move Connections plugin to be just after apps (#62871)
Navigation: move Connections plugin to be just after apps (#62801)

move connections plugin to be just after apps

(cherry picked from commit c819e95687)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-02-03 09:06:18 -05:00
Grot (@grafanabot)
00555606d5 [v9.4.x] Search: Fix not being able to clear sort value (#62869)
Search: Fix not being able to clear sort value (#62557)

* user essentials mob! 🔱

lastFile:public/app/features/search/state/SearchStateManager.ts

* user essentials mob! 🔱

lastFile:public/app/features/search/page/components/ActionRow.tsx

* user essentials mob! 🔱

* remove searchSort state from localStorage when cleared

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>
(cherry picked from commit f8809eef59)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2023-02-03 08:51:47 -05:00
Grot (@grafanabot)
9cf5b4eb9e [v9.4.x] Tempo: Fix span name being dropped from the query (#62846)
Tempo: Fix span name being dropped from the query (#62257)

(cherry picked from commit c3b476e1dc)

Co-authored-by: Hamas Shafiq <hamas.shafiq@grafana.com>
2023-02-03 05:34:09 -05:00
Grot (@grafanabot)
8637518540 [v9.4.x] Added pageZoomLevel option to image renderer setup documentation (#62842)
Added pageZoomLevel option to image renderer setup documentation (#59472)

* Added pageZoomLevel option to image renderer setup

* Update _index.md

* Update docs/sources/setup-grafana/image-rendering/_index.md

* chore: prettier run in docs

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 8b017f5aa4)

Co-authored-by: Gabriel Goller <gabrielgoller123@gmail.com>
2023-02-03 10:25:14 +01:00
Grot (@grafanabot)
0c27df8b8c [v9.4.x] Alerting docs: updates to alert rules docs for 9.4 (#62810)
Alerting docs: updates to alert rules docs for 9.4 (#62744)

* Alerting docs: updates to alert rules docs for 9.4

* Adds updates to oncall contact point and pause alerts

* Adds view read-only query update 9.4

(cherry picked from commit d19803a0f0)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-02-03 07:17:00 +00:00
Grot (@grafanabot)
8fd1547edb [v9.4.x] Alerting: Add label query parameters to state history endpoint (#62835)
Alerting: Add label query parameters to state history endpoint (#62831)

* Allow equality-only matching of arbitrary labels via query params

* Pre-initialize map

(cherry picked from commit 9eeea8f5ea)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-02-02 23:14:16 +00:00
Alexander Weaver
21f204d35a Alerting: implement loki query for alert state history (#62833)
Alerting: implement loki query for alert state history (#61992)

* Alerting: implement loki query for alert state history

* extract selector building

* add unit tests for selector creation

* backup

* give selectors their own type

* build dataframe

* add some tests

* small changes after manual testing

* use struct client

* golint

* more golint

* Make RuleUID optional for Loki implementation

* Drop initial assumption that we only have one series

* Pare down to three columns, fix timestamp overflows, improve failure cases in loki responses

* Embed structred log lines in the dataframe as objects rather than json strings

* Include state history label filter

* Remove dead code

---------

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2023-02-02 16:56:26 -06:00
Grot (@grafanabot)
84da688400 [v9.4.x] Alerting: Pause dash alerts on migration (#62830)
Alerting: Pause dash alerts on migration (#62798)

* Alerting: Pause dash alerts on migration

(cherry picked from commit f49efa6e27)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-02-02 22:07:06 +00:00
Grot (@grafanabot)
b742567ade [v9.4.x] Alerting: Fix template validation in provisioning api (#62825)
Alerting: Fix template validation in provisioning api (#62530)

* Alerting: Fix template validation in provisioning api

Fix issue where provisioning API accepts a malformed template having extra
text outside of definition block and template name matching definition name.

(cherry picked from commit f9ec16e74f)

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2023-02-02 20:45:21 +00:00
Grot (@grafanabot)
385b15bf69 [v9.4.x] Alerting: Add static label to all state history entries (#62819)
Alerting: Add static label to all state history entries (#62817)

* Add static label to all state history entries

* Separate label and value visually

(cherry picked from commit 647f73ddc5)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-02-02 14:00:09 -06:00
Grot (@grafanabot)
94ec932d29 [v9.4.x] Docs: corrects incorrect redirect and fixes link (#62820)
Docs: corrects incorrect redirect and fixes link (#62815)

corrects incorrect redirect and fixes link

(cherry picked from commit 060e0a4d18)

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-02-02 13:52:26 -06:00
Grot (@grafanabot)
2525b30803 [v9.4.x] Alerting: Add endpoint for querying state history (#62813)
Alerting: Add endpoint for querying state history (#62166)

* Define endpoint and generate

* Wire up and register endpoint

* Cleanup, define authorization

* Forgot the leading slash

* Wire up query and SignedInUser

* Wire up timerange query params

* Add todo for label queries

* Drop comment

* Update path to rules subtree

(cherry picked from commit 6ad1cfef38)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-02-02 12:32:30 -06:00
Grot (@grafanabot)
324964b86b [v9.4.x] Alerting: Usability adjustments to Loki representation of state history values (#62811)
Alerting: Usability adjustments to Loki representation of state history values (#62643)

* Extract label merge, add test file

* Extract error/NoData to first class fields, remove a layer from values

* Include dashUID and panelID as line-level fields

* Drop unnecessary object receiver

* Add tests for stream building

* Drop NoData field from log lines

(cherry picked from commit 9fa28c11c5)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-02-02 11:15:51 -06:00
Grot (@grafanabot)
d31f932800 [v9.4.x] Auth: Rotate token patch (#62782)
Auth: Rotate token patch (#62676)

* Use singleflight.Group

* Align tests

* Cleanup

(cherry picked from commit 7c1d9769ca)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2023-02-02 18:05:38 +01:00
Grot (@grafanabot)
363171b182 [v9.4.x] Alerting: Pass yaml as a query param in export request (#62806)
Alerting: Pass yaml as a query param in export request (#62751)

* Set YAML as default value for exporting alert rules

* use YAML format for rule list export

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>

* lint

* Add new format query param to swagger+docs

* Fix broken test

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Matt Jacobson <matthew.jacobson@grafana.com>
(cherry picked from commit 753c84f825)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-02-02 17:29:21 +01:00
Alexander Weaver
32e3cd7cbc Alerting: Refactor away a layer of indirection around the goroutine in Loki state history (#62802)
Alerting: Refactor away a layer of indirection around the goroutine in Loki state history (#62644)

Inline recordStreamsAsync in loki backend
2023-02-02 10:14:47 -06:00
Grot (@grafanabot)
2a223cbea2 [v9.4.x] Tempo: TraceQL syntax highlighting improvements (#62803)
Tempo: TraceQL syntax highlighting improvements (#62349)

* Better syntax highlighting for durations, floats and right-hand-side tags

* Remove hex rule in TraceQL syntax highlighting

(cherry picked from commit 60f2433a0f)

Co-authored-by: Andre Pereira <adrapereira@gmail.com>
2023-02-02 16:03:25 +00:00
Grot (@grafanabot)
c7a182e9d5 [v9.4.x] Tempo: Trace to logs update image (#62804)
Tempo: Trace to logs update image (#62796)

(cherry picked from commit 99a16d27c1)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2023-02-02 17:02:43 +01:00
Grot (@grafanabot)
d8f757cb8c [v9.4.x] Tempo: Inject status and status.code for tags autocomplete (#62800)
Tempo: Inject status and status.code for tags autocomplete (#62794)

* Tempo: Inject status for v2 and status.code for v1 in the tags list for autocomplete

* Small comment fix

(cherry picked from commit b78af0b0f0)

Co-authored-by: Andre Pereira <adrapereira@gmail.com>
2023-02-02 15:53:17 +00:00
Grot (@grafanabot)
bfe6b520d7 [v9.4.x] Tempo: Update docs for trace to logs functionality (#62793)
Tempo: Update docs for trace to logs functionality (#62338)

(cherry picked from commit 1aae808723)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2023-02-02 16:52:24 +01:00
Grot (@grafanabot)
190c3aad58 [v9.4.x] Plugins: Prefer to use the data source UID when querying (#62789)
Plugins: Prefer to use the data source UID when querying (#62776)

(cherry picked from commit 68862ce3e8)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-02-02 15:02:06 +00:00
Grot (@grafanabot)
022abcb47d [v9.4.x] SQLStore: Fix folder migration for MySQL < 5.7 (#62786)
SQLStore: Fix folder migration for MySQL < 5.7 (#62521)

* Nested folders: Do not skip integration tests

* SQLStore: Fix folder migration

It reduces the length of the title column to be equal with the respective
dashboard column.

(cherry picked from commit 4eaff63eda)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-02-02 14:40:51 +00:00
Horst Gutmann
5b305cb696 [9.4.x] CI: Allow other modules to register build sub-commands (PR #62741) (#62774)
CI: Allow other modules to register build sub-commands (#62741)

* Allow other modules to register build sub-commands

* CI: Fix retries on artifacts-page clone

* Fix linting errors

* Fix golint issues

* Update to grabpl 3.0.21

(cherry picked from commit 312ea59e6d)
2023-02-02 15:14:41 +01:00
Grot (@grafanabot)
a03069fb08 [v9.4.x] Alerting: Set YAML as default value for exporting alert rules (#62770)
Alerting: Set YAML as default value for exporting alert rules (#62760)

Set YAML as default value for exporting alert rules

(cherry picked from commit 517e614661)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-02-02 13:42:44 +01:00
Grot (@grafanabot)
0413fea8d2 [v9.4.x] Heatmap: Support heatmap rows with non-timeseries X axis (#62733)
Heatmap: Support heatmap rows with non-timeseries X axis (#60929)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit 4a8763d7b6)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-02-02 12:27:09 +01:00
Grot (@grafanabot)
30081ca04b [v9.4.x] Nested Folder: Fix for SQLite not to overwrite the parent on restarts (#62756)
Nested Folder: Fix for SQLite not to overwrite the parent on restarts (#62709)

Nested Folder: Fix for SQLite not to overwrite the arent on restarts

(cherry picked from commit adaf82ffb7)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-02-02 10:26:55 +00:00
Grot (@grafanabot)
53a1e5b7e6 [v9.4.x] Fix/60084/save and test (#62750)
Fix: Save and test error message does not persist across datasource instance settings anymore

(cherry picked from commit ce50168b70)

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2023-02-02 09:01:07 +00:00
Grot (@grafanabot)
29cc5f9c62 [v9.4.x] Elasticsearch: Fix consistent label order in alerting (#62743)
Elasticsearch: Fix consistent label order in alerting (#62497)

elasticsearch: backend: sort label-values
(cherry picked from commit d9fd807375)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2023-02-02 08:22:56 +00:00
Grot (@grafanabot)
b485d1cde9 [v9.4.x] Cloudwatch: Fix log group variable interpolation (#62713)
Cloudwatch: Fix log group variable interpolation (#62640)

(cherry picked from commit 1f09508d8c)

Co-authored-by: Isabella Siu <Isabella.siu@grafana.com>
2023-02-01 13:52:52 -05:00
Grot (@grafanabot)
045c2d4e59 [v9.4.x] docs: fix broken elasticsearch metrics play link (#62719)
docs: fix broken elasticsearch metrics play link (#62715)

fix broken elastic search play link

(cherry picked from commit 1225e8d6d8)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-02-01 12:05:00 -06:00
Grot (@grafanabot)
654af9a48d [v9.4.x] Explore: Fix graph not updating when changing config (#62706)
Explore: Fix graph not updating when changing config (#62473)

* Explore: Fix graph not updating when changing config

* move useStructureRev to a seprate hook and add specific tests

(cherry picked from commit 6b6b733229)

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-02-01 17:02:20 +00:00
Grot (@grafanabot)
5bb58c5172 [v9.4.x] Alerting docs: adds declare incident (#62710)
Alerting docs: adds declare incident (#62681)

* Alerting docs: adds declare incident

* adds alert detail view option

(cherry picked from commit 9d07b77532)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-02-01 16:59:26 +00:00
Grot (@grafanabot)
42b9c898bf [v9.4.x] Search: Fix alignment of checkbox in folder view (#62708) 2023-02-01 16:44:11 +00:00
Grot (@grafanabot)
795c86b045 [v9.4.x] Tempo: Remove tempoApmTable feature flag (#62702)
Tempo: Remove tempoApmTable feature flag (#62499)

Remove tempoApmTable feature flag

(cherry picked from commit 5e1506dea0)

Co-authored-by: Andre Pereira <adrapereira@gmail.com>
2023-02-01 16:15:58 +00:00
Grot (@grafanabot)
5d5e7f97e9 [v9.4.x] Navigation: wrap dashboard settings actions in ToolbarButtonRow for responsiveness (#62692)
Navigation: wrap dashboard settings actions in `ToolbarButtonRow` for responsiveness (#62475)

wrap dashboard actions in toolbarbuttonrow for responsiveness

(cherry picked from commit 0a780d978e)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-02-01 15:14:49 +00:00
Grot (@grafanabot)
c8cf18d8f6 [v9.4.x] Alerting: hide "silence" button for external AM setups (#62691)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-02-01 15:10:51 +00:00
Grot (@grafanabot)
70e4499f83 [v9.4.x] Loki: Fix label filter expression treating int as string (#62687)
Loki: Fix label filter expression treating int as string (#62496)

* fix: label filter expression treats int as string

* refactor: labelFilterRenderer

* test: add tests to labelFilterRenderer

* refactor: use backticks based on the operator not the value

* test: labelFilterRenderer uses the correct value type based on the operator

* test: use it.every rather than having multiple repetitive tests

(cherry picked from commit 42f8f5a9ea)

Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>
2023-02-01 14:52:46 +00:00
Grot (@grafanabot)
2e251a2b20 [v9.4.x] Alerting: Add support for "normal" as state filter in rule search (#62679)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-02-01 15:05:51 +01:00
Grot (@grafanabot)
cdec4eb6ab [v9.4.x] Alerting: Add Copy action to templates table (#62683)
Alerting: Add Copy action to templates table (#62135)

* Add duplicate action to templates table

Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>

* Move duplicate icon, and remove provenance when rendering TemplateForm

* Create generic generateCopiedName method to avoid duplication and use it also in the CloneRuleEditor

* Use 'Copy' for duplicating templates and cloning alert rules

* Improve updating the template content with new unique define values when copying

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>

* Fix typo

---------

Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: Konrad Lalik <konradlalik@gmail.com>
(cherry picked from commit 151e57df70)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-02-01 14:57:12 +01:00
Grot (@grafanabot)
71a18da270 [v9.4.x] Command palette: section styling tweaks (#62682)
Command palette: section styling tweaks (#62671)

section styling tweaks

(cherry picked from commit 8d7e7693f2)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-02-01 13:12:55 +00:00
Grot (@grafanabot)
40354c6b40 [v9.4.x] Alerting: Allow alert rule pausing from API (#62675)
Alerting: Allow alert rule pausing from API (#62326)

* Add is_paused attr to the POST alert rule group endpoint

* Add is_paused to alerting API POST alert rule group

* Fixed tests

* Add is_paused to alerting gettable endpoints

* Fix integration tests

* Alerting: allow to pause existing rules (#62401)

* Display Pause Rule switch in Editing Rule form

* add isPaused property to form interface and dto

* map isPaused prop with is_paused value from DTO

Also update test snapshots

* Append '(Paused)' text on alert list state column when appropriate

* Change Switch styles according to discussion with UX

Also adding a tooltip with info what this means

* Adjust styles

* Fix alignment and isPaused type definition

Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>

* Fix test

* Fix test

* Fix RuleList test

---------

Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>

* wip

* Fix tests and add comments to clarify AlertRuleWithOptionals

* Fix one more test

* Fix tests

* Fix typo in comment

* Fix alert rule(s) cannot be paused via API

* Add integration tests for alerting api pausing flow

* Remove duplicated integration test

---------

Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
Co-authored-by: George Robinson <george.robinson@grafana.com>
(cherry picked from commit 53945afedf)

Co-authored-by: Alex Moreno <alexander.moreno@grafana.com>
2023-02-01 12:33:24 +00:00
Grot (@grafanabot)
68fb4da24a [v9.4.x] Alerting: Show 'start typing' message in evaluation group folder in case of empty options. (#62665)
Alerting: Show 'start typing' message in evaluation group folder in case of empty options. (#62611)

Show start typing message in evaluation group folder in case of empty options

(cherry picked from commit c0865c863d)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2023-02-01 11:30:55 +00:00
Grot (@grafanabot)
89f9081658 [v9.4.x] CI: Replace grafana/grafana-oss with grafana-oss when publishing to dockerhub repo (#62653)
CI: Replace `grafana/grafana-oss` with `grafana-oss` when publishing to dockerhub repo (#62651)

Replace grafana/grafana-oss with grafana-oss

(cherry picked from commit 1a5b54cff3)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-02-01 12:26:17 +02:00
Grot (@grafanabot)
84d2814f7c [v9.4.x] PanelChrome: Adds display mode to support transparent option (#62654)
PanelChrome: Adds display mode to support transparent option (#62647)

* PanelChrome: Add transparent displayMode

* Remove comment

* Fixes to storybook and new example

* no background on TitleItem

---------

Co-authored-by: polinaboneva <polina.boneva@grafana.com>
(cherry picked from commit 533c8e4b7a)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-02-01 10:05:53 +00:00
Andreas Christou
193b671246 [v9.4.x] TemplateVariables: Fix custom variable function support (#62509) (#62573)
TemplateVariables: Fix custom variable function support (#62509)

Validate query values

(cherry picked from commit 3ac97dd396)

# Conflicts:
#	public/app/features/query/state/runRequest.ts
2023-02-01 10:25:03 +01:00
Grot (@grafanabot)
2bb672a7de [v9.4.x] Geomap: Ensure options work while in table view (#62635)
Geomap: Ensure options work while in table view (#62632)

(cherry picked from commit cf6952a963)

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2023-01-31 15:31:54 -08:00
Grot (@grafanabot)
c156621981 [v9.4.x] Transforms: Fix schema definition (#62623)
Transforms: Fix schema definition (#62619)

(cherry picked from commit 4186871390)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-01-31 15:31:28 -08:00
Grot (@grafanabot)
9a8983e8e9 [v9.4.x] Alerting: Fix handling of special floating-point cases when writing observed values to annotations (#62637)
Alerting: Fix handling of special floating-point cases when writing observed values to annotations (#61074)

* Fix json serialization of state values

* Simplify two of the tests

* Fix linter complaint

* Don't return error if we fail to look up dashboard, just log it and move on

* Address linter complaint

(cherry picked from commit 03f3fbec0d)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-01-31 21:51:52 +00:00
Grot (@grafanabot)
4bdfc2d926 [v9.4.x] Expressions: Fixes the issue showing expressions editor (#62622)
Expressions: Fixes the issue showing expressions editor (#62510)

* Use suggested value for uid

* update the snapshot

* use __expr__

* replace all -100 with __expr__

* update snapshot

* more changes

* revert redundant change

* Use expr.DatasourceUID where it's possible

* generate files

(cherry picked from commit 91221bc436)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-01-31 18:10:13 +00:00
Grot (@grafanabot)
bd9707e8f3 [v9.4.x] Use requires_buildifier build tag to avoid needing buildifier locally (#62621)
Use requires_buildifier build tag to avoid needing buildifier locally (#62597)

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-01-31 18:03:03 +00:00
Grot (@grafanabot)
3023a43d4f [v9.4.x] TestData: Remove references to TestData "DB" (#62613)
TestData: Remove references to TestData "DB" (#62603)

* remove refs testdatadb

* fix trailing semi-colon

* remove pluginName completely

(cherry picked from commit e7bfc4e749)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2023-01-31 18:02:42 +00:00
Grot (@grafanabot)
41b0393140 [v9.4.x] Transformations: Selectively apply transformation to queries (#62615)
Transformations: Selectively apply transformation to queries (#61735)

(cherry picked from commit bba80b6c7a)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-01-31 09:48:18 -08:00
Grot (@grafanabot)
90a4c84bc2 [v9.4.x] MySQL: Quote identifiers that include special characters (#62618)
MySQL: Quote identifiers that include special characters (#61135)

* SQL: toRawSQL required and escape table

* Fix autocomplete for MySQL

* Change the way we escape for builder

* Rework escape ident to be smart instead

* Fix A11y for alias

* Add first e2e test

* Add test for code editor

* Add doc

* Review comments

* Move functions to sqlUtil

(cherry picked from commit 62c30dea4d)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2023-01-31 17:26:44 +00:00
Grot (@grafanabot)
6749e8667d [v9.4.x] TopNav: Fix right padding on signin link (#62606)
TopNav: Fix right padding on signin link (#62537)

* TopNav: Fix right padding on signin link

* revert yarn lock

* Update package.json

* Update

(cherry picked from commit c0f0c3d485)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-01-31 16:31:45 +00:00
Grot (@grafanabot)
9727346e63 [v9.4.x] CI: Add artifacts publish build command (#62503)
CI: Add `artifacts publish` build command (#62445)

* CI: Add `artifacts publish` build command

* Lint release.star

(cherry picked from commit f23be415c5)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-01-31 16:29:34 +01:00
Grot (@grafanabot)
3683b7a5ff [v9.4.x] Alerting: Validate that tags are 100 characters or less (#62593)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: George Robinson <george.robinson@grafana.com>
2023-01-31 14:41:06 +00:00
Grot (@grafanabot)
f9ca726290 [v9.4.x] Navigation: add event tracking for dashboard save as events (#62588)
Navigation: add event tracking for dashboard save as events (#62568)

* add event tracking for dashboard save as events

* emit a grafana_dashboard_copied event instead

(cherry picked from commit 029253d5f6)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-01-31 14:01:08 +00:00
Grot (@grafanabot)
15ec06b593 [v9.4.x] Azure Monitor: Return query error for metrics (#62577)
Azure Monitor: Return query error for metrics (#62570)

(cherry picked from commit 13f8ea2656)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-01-31 14:41:21 +01:00
Grot (@grafanabot)
953d9db30d [v9.4.x] Azure Monitor: Fix selection when using a search term (#62572)
Azure Monitor: Fix selection when using a search term (#62562)

(cherry picked from commit a0c3dcb8c6)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-01-31 13:29:59 +00:00
Grot (@grafanabot)
a7b9dcdce8 [v9.4.x] Navigation: add event tracking for navigation elements (#62583)
Navigation: add event tracking for navigation elements (#62563)

add user tracking for navigation elements

(cherry picked from commit 77a186879d)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-01-31 13:13:34 +00:00
Grot (@grafanabot)
76f3ed3c3f [v9.4.x] AzureMonitor: Fix dimension migration (#62579)
AzureMonitor: Fix dimension migration (#62485)

Remove unneeded properties post migration

(cherry picked from commit f77853f91e)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2023-01-31 13:11:18 +00:00
Grot (@grafanabot)
2ad87ce213 [v9.4.x] Plugins: Fix circular reference in customOptions leading to MarshalJSON errors (#62565)
Plugins: Fix circular reference in customOptions leading to MarshalJSON errors (#62328)

* Plugins: test ds.JsonData.MarshalJSON()

* CustomOptions: copy to avoid cyclic marshal

(cherry picked from commit c41f97029e)

Co-authored-by: Yasir Ekinci <ekinci.yasir@gmail.com>
2023-01-31 13:29:23 +01:00
Grot (@grafanabot)
cc5b3c11c4 [v9.4.x] Login: Fix panic when UpsertUser is called without ReqContext (#62555)
Login: Fix panic when UpsertUser is called without ReqContext (#62539)

(cherry picked from commit b1151dd118)

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2023-01-31 12:25:11 +01:00
Grot (@grafanabot)
20731672ed [v9.4.x] Chore: Update latest.json to 9.4.0-beta1 (#62560)
Chore: Update latest.json to 9.4.0-beta1 (#62556)

Chore: update latest.json to 9.4.0-beta1
(cherry picked from commit ef7716d6b3)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-01-31 13:00:57 +02:00
Grot (@grafanabot)
f9ec04bbb7 [v9.4.x] PanelChrome: Styling issues (#62550)
PanelChrome: Styling issues  (#62466)

* all panel icons are 16x16 in size; allow ToolbarButton to have its icon size set from outside;

* use TitleItem for streaming too, so that the style of focus-visible is the same

* allow menu icon to be visible when panel is focused

* remove some styling of title icons in panel header

* panel alert notices are too big

* PanelHeaderNotice: Fix styling issue with background and hover when
feature toggle is not enable

---------

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
(cherry picked from commit d48a8fd227)

Co-authored-by: Polina Boneva <13227501+polibb@users.noreply.github.com>
2023-01-31 12:39:56 +02:00
Grot (@grafanabot)
0e6d038934 Release: Bump version to 9.4.0 (#62554)
"Release: Updated versions in package to 9.4.0"
2023-01-31 12:07:54 +02:00
Grot (@grafanabot)
b8c6ff611d [v9.4.x] Plugins: Update migration guide for 9.4/forwarded headers (#62549)
Plugins: Update migration guide for 9.4/forwarded headers (#62505)

Update plugin migration guide in regards to v9.4 and forwarding
of headers in grafana-plugin-sdk-go.

(cherry picked from commit 6c02c7079f)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2023-01-31 10:55:56 +01:00
Grot (@grafanabot)
ecfd92ed30 [v9.4.x] Navigation: Sign in button now works correctly when served under a sub path (#62548)
Navigation: Sign in button now works correctly when served under a sub path (#62504)

make sure getUrlForPartial always includes the basePath + unit tests

(cherry picked from commit fd2641a542)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-01-31 09:36:37 +00:00
Grot (@grafanabot)
8eb9971797 [v9.4.x] Azure Monitor: Docs update for multiple resources (#62543)
Azure Monitor: Docs update for multiple resources (#62454)

(cherry picked from commit d3897b612f)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-01-31 09:56:45 +01:00
Grot (@grafanabot)
c567e690ad [v9.4.x] Alerting: Clarify PagerDuty integrationKey format (#62513)
Alerting: Clarify PagerDuty integrationKey format (#62463)

**What is this feature?**

Simply a documentation update.

**Why do we need this feature?**

Clarify the doc, so people don't waste time integrating the wrong key,
e.g. #8979, #9036, https://community.librenms.org/t/19013

**Who is this feature for?**

Developers doing a PagerDuty integration.

(cherry picked from commit a7c4872bcd)

Co-authored-by: Andre Miras <AndreMiras@users.noreply.github.com>
2023-01-31 08:56:14 +00:00
Grot (@grafanabot)
acf1b1285b [v9.4.x] Canvas: Update connection info on element rename (#62536) 2023-01-31 04:44:52 +00:00
Grot (@grafanabot)
3d65500a4f [v9.4.x] Alerting: Allow separate read and write path URLs for Loki state history (#62528)
Alerting: Allow separate read and write path URLs for Loki state history (#62268)

Extract config parsing and add tests

(cherry picked from commit e7ace4ed62)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-01-30 17:01:53 -06:00
Grot (@grafanabot)
589284778a [v9.4.x] Canvas: Connections positioning ux improvements (#62525)
Canvas: Connections positioning ux improvements (#62516)

(cherry picked from commit a92c081a33)

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2023-01-30 13:59:51 -08:00
Grot (@grafanabot)
b9e989cbf2 [v9.4.x] Geomap: Maintain consistent control styling (#62522)
Geomap: Maintain consistent control styling (#62518)

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

Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2023-01-30 13:35:54 -08:00
Grot (@grafanabot)
f39c46a1b5 [v9.4.x] Alerting: Configurable externalLabels for Loki state history (#62517)
Alerting: Configurable externalLabels for Loki state history (#62404)

* Add config option for external labels

* Remove redundant nilcheck

(cherry picked from commit b4682fe3cb)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-01-30 15:34:40 -06:00
Grot (@grafanabot)
48bd8ebe92 [v9.4.x] Consider y coord when determining bottom collision (#62506)
Consider y coord when determining bottom collision (#62403)

(cherry picked from commit b6f477ae03)

Co-authored-by: Kristina <kristina.durivage@grafana.com>
2023-01-30 17:01:53 +00:00
Grot (@grafanabot)
34524d6dfa [v9.4.x] Azure Monitor: Enable multiple resource queries (#62502)
Azure Monitor: Enable multiple resource queries (#62467)

(cherry picked from commit 6d230d95eb)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-01-30 17:55:06 +01:00
Grot (@grafanabot)
6e861b19fa [v9.4.x] Alerting: allow to pause existing rules (#62491)
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
2023-01-30 17:21:27 +01:00
Grot (@grafanabot)
26f7b8ee65 [v9.4.x] Alerting: Add Rule UID and Clone button to the rule details page (#62487)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2023-01-30 11:16:47 -05:00
Grot (@grafanabot)
04dd4e7f7c [v9.4.x] Alerting: Allow pausing alerts from provisioning (#62492)
Alerting: Allow pausing alerts from provisioning (#62263)

* Allow pausing alerts from provisioning

* Update swagger

* Add IsPaused to provision export endpoints

* Add pause field in sample.yml

* Add exception for reset state in first loop iteration of scheduler if rule is paused

* Update provision definition and swagger docs

* Fix provisioning export tests

* Suggestion: Simplify if condition

* Add more context to a comment

(cherry picked from commit 7a465f42a6)

Co-authored-by: Alex Moreno <alexander.moreno@grafana.com>
2023-01-30 17:01:37 +01:00
Grot (@grafanabot)
992e5d72ff [v9.4.x] Docs: Update wording / text and copy (#62490)
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-01-30 15:46:25 +00:00
Grot (@grafanabot)
1b0f5f0a81 Release: Bump version to 9.4.0-beta1 (#62465)
"Release: Updated versions in package to 9.4.0-beta1"
2023-01-30 14:47:22 +02:00
1161 changed files with 30875 additions and 16087 deletions

View File

@@ -122,15 +122,14 @@ exports[`better eslint`] = {
],
"packages/grafana-data/src/datetime/moment_wrapper.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Do not use any type assertions.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"],
[0, 0, 0, "Do not use any type assertions.", "4"],
[0, 0, 0, "Do not use any type assertions.", "5"],
[0, 0, 0, "Do not use any type assertions.", "6"],
[0, 0, 0, "Do not use any type assertions.", "7"],
[0, 0, 0, "Do not use any type assertions.", "8"],
[0, 0, 0, "Do not use any type assertions.", "9"]
[0, 0, 0, "Do not use any type assertions.", "8"]
],
"packages/grafana-data/src/datetime/parser.test.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
@@ -575,8 +574,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"]
[0, 0, 0, "Unexpected any. Specify a different type.", "4"]
],
"packages/grafana-data/src/types/variables.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
@@ -719,17 +717,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
],
"packages/grafana-data/src/utils/location.test.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"]
],
"packages/grafana-data/src/utils/location.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
@@ -985,8 +972,9 @@ exports[`better eslint`] = {
"packages/grafana-schema/src/veneer/dashboard.types.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"]
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"],
[0, 0, 0, "Do not use any type assertions.", "4"]
],
"packages/grafana-toolkit/src/cli/tasks/component.create.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
@@ -2140,9 +2128,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"]
],
"public/app/angular/services/nav_model_srv.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/angular/services/ng_react.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"],
@@ -4292,27 +4277,20 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Do not use any type assertions.", "4"],
[0, 0, 0, "Do not use any type assertions.", "5"],
[0, 0, 0, "Do not use any type assertions.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Do not use any type assertions.", "8"],
[0, 0, 0, "Do not use any type assertions.", "9"],
[0, 0, 0, "Unexpected any. Specify a different type.", "10"],
[0, 0, 0, "Do not use any type assertions.", "11"],
[0, 0, 0, "Unexpected any. Specify a different type.", "9"],
[0, 0, 0, "Do not use any type assertions.", "10"],
[0, 0, 0, "Unexpected any. Specify a different type.", "11"],
[0, 0, 0, "Do not use any type assertions.", "12"],
[0, 0, 0, "Do not use any type assertions.", "13"],
[0, 0, 0, "Unexpected any. Specify a different type.", "14"],
[0, 0, 0, "Do not use any type assertions.", "14"],
[0, 0, 0, "Unexpected any. Specify a different type.", "15"],
[0, 0, 0, "Unexpected any. Specify a different type.", "16"],
[0, 0, 0, "Unexpected any. Specify a different type.", "17"],
[0, 0, 0, "Unexpected any. Specify a different type.", "18"],
[0, 0, 0, "Do not use any type assertions.", "19"],
[0, 0, 0, "Unexpected any. Specify a different type.", "20"],
[0, 0, 0, "Do not use any type assertions.", "21"],
[0, 0, 0, "Unexpected any. Specify a different type.", "22"],
[0, 0, 0, "Unexpected any. Specify a different type.", "23"],
[0, 0, 0, "Do not use any type assertions.", "24"]
[0, 0, 0, "Do not use any type assertions.", "17"]
],
"public/app/features/plugins/importPanelPlugin.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
@@ -5511,10 +5489,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"],
[0, 0, 0, "Unexpected any. Specify a different type.", "9"]
[0, 0, 0, "Unexpected any. Specify a different type.", "6"]
],
"public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
@@ -5863,7 +5838,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/datasource/influxdb/datasource.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
@@ -5875,23 +5850,27 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "9"],
[0, 0, 0, "Unexpected any. Specify a different type.", "10"],
[0, 0, 0, "Unexpected any. Specify a different type.", "11"],
[0, 0, 0, "Do not use any type assertions.", "12"],
[0, 0, 0, "Unexpected any. Specify a different type.", "12"],
[0, 0, 0, "Unexpected any. Specify a different type.", "13"],
[0, 0, 0, "Unexpected any. Specify a different type.", "14"],
[0, 0, 0, "Unexpected any. Specify a different type.", "15"],
[0, 0, 0, "Unexpected any. Specify a different type.", "16"],
[0, 0, 0, "Do not use any type assertions.", "17"],
[0, 0, 0, "Do not use any type assertions.", "16"],
[0, 0, 0, "Unexpected any. Specify a different type.", "17"],
[0, 0, 0, "Unexpected any. Specify a different type.", "18"],
[0, 0, 0, "Unexpected any. Specify a different type.", "19"],
[0, 0, 0, "Unexpected any. Specify a different type.", "20"],
[0, 0, 0, "Unexpected any. Specify a different type.", "21"],
[0, 0, 0, "Do not use any type assertions.", "21"],
[0, 0, 0, "Unexpected any. Specify a different type.", "22"],
[0, 0, 0, "Unexpected any. Specify a different type.", "23"],
[0, 0, 0, "Unexpected any. Specify a different type.", "24"],
[0, 0, 0, "Unexpected any. Specify a different type.", "25"],
[0, 0, 0, "Unexpected any. Specify a different type.", "26"],
[0, 0, 0, "Unexpected any. Specify a different type.", "27"],
[0, 0, 0, "Unexpected any. Specify a different type.", "28"]
[0, 0, 0, "Unexpected any. Specify a different type.", "28"],
[0, 0, 0, "Unexpected any. Specify a different type.", "29"],
[0, 0, 0, "Unexpected any. Specify a different type.", "30"],
[0, 0, 0, "Unexpected any. Specify a different type.", "31"],
[0, 0, 0, "Unexpected any. Specify a different type.", "32"]
],
"public/app/plugins/datasource/influxdb/influx_query_model.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
@@ -5913,8 +5892,28 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "16"],
[0, 0, 0, "Unexpected any. Specify a different type.", "17"],
[0, 0, 0, "Unexpected any. Specify a different type.", "18"],
[0, 0, 0, "Unexpected any. Specify a different type.", "19"],
[0, 0, 0, "Unexpected any. Specify a different type.", "20"]
[0, 0, 0, "Unexpected any. Specify a different type.", "19"]
],
"public/app/plugins/datasource/influxdb/influx_series.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"],
[0, 0, 0, "Unexpected any. Specify a different type.", "9"],
[0, 0, 0, "Unexpected any. Specify a different type.", "10"],
[0, 0, 0, "Unexpected any. Specify a different type.", "11"],
[0, 0, 0, "Unexpected any. Specify a different type.", "12"],
[0, 0, 0, "Unexpected any. Specify a different type.", "13"],
[0, 0, 0, "Unexpected any. Specify a different type.", "14"],
[0, 0, 0, "Unexpected any. Specify a different type.", "15"],
[0, 0, 0, "Unexpected any. Specify a different type.", "16"],
[0, 0, 0, "Unexpected any. Specify a different type.", "17"],
[0, 0, 0, "Unexpected any. Specify a different type.", "18"]
],
"public/app/plugins/datasource/influxdb/migrations.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
@@ -6036,6 +6035,11 @@ exports[`better eslint`] = {
"public/app/plugins/datasource/loki/LiveStreams.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/datasource/loki/components/LokiContextUi.test.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"public/app/plugins/datasource/loki/components/LokiLabelBrowser.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]

View File

@@ -1,4 +1,4 @@
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.7. DO NOT EDIT.
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.8. DO NOT EDIT.
# All tools are designed to be build inside $GOBIN.
BINGO_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
GOPATH ?= $(shell go env GOPATH)
@@ -35,11 +35,11 @@ $(DRONE): $(BINGO_DIR)/drone.mod
@echo "(re)installing $(GOBIN)/drone-v1.5.0"
@cd $(BINGO_DIR) && GOWORK=off $(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.50.1
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.51.2
$(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.50.1"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.50.1 "github.com/golangci/golangci-lint/cmd/golangci-lint"
@echo "(re)installing $(GOBIN)/golangci-lint-v1.51.2"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.51.2 "github.com/golangci/golangci-lint/cmd/golangci-lint"
JB := $(GOBIN)/jb-v0.5.1
$(JB): $(BINGO_DIR)/jb.mod

View File

@@ -2,4 +2,4 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.19
require github.com/golangci/golangci-lint v1.50.1 // cmd/golangci-lint
require github.com/golangci/golangci-lint v1.51.2 // cmd/golangci-lint

View File

@@ -1,5 +1,9 @@
4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA=
4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs=
4d63.com/gochecknoglobals v0.1.0 h1:zeZSRqj5yCg28tCkIV/z/lWbwvNm5qnKVS15PI8nhD0=
4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo=
4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc=
4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU=
bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
@@ -64,6 +68,8 @@ contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EU
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/Abirdcfly/dupword v0.0.7 h1:z14n0yytA3wNO2gpCD/jVtp/acEXPGmYu0esewpBt6Q=
github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk=
github.com/Abirdcfly/dupword v0.0.9 h1:MxprGjKq3yDBICXDgEEsyGirIXfMYXkLNT/agPsE1tk=
github.com/Abirdcfly/dupword v0.0.9/go.mod h1:PzmHVLLZ27MvHSzV7eFmMXSFArWXZPZmfuuziuUrf2g=
github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako=
github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU=
github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q=
@@ -110,6 +116,8 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/ashanbrown/forbidigo v1.3.0 h1:VkYIwb/xxdireGAdJNZoo24O4lmnEWkactplBlWTShc=
github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI=
github.com/ashanbrown/forbidigo v1.4.0 h1:spdPbupaSqtWORq1Q4eHBoPBmHtwVyLKwaedbSLc5Sw=
github.com/ashanbrown/forbidigo v1.4.0/go.mod h1:IvgwB5Y4fzqSAj/WVXKWigoTkB0dzI2FBbpKWuh7ph8=
github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s=
github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI=
github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
@@ -126,6 +134,8 @@ github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ
github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=
github.com/bombsimon/wsl/v3 v3.3.0 h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM=
github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc=
github.com/bombsimon/wsl/v3 v3.4.0 h1:RkSxjT3tmlptwfgEgTgU+KYKLI35p/tviNXNXiL2aNU=
github.com/bombsimon/wsl/v3 v3.4.0/go.mod h1:KkIB+TXkqy6MvK9BDZVbZxKNYsE1/oLRJbIFtf14qqo=
github.com/breml/bidichk v0.2.3 h1:qe6ggxpTfA8E75hdjWPZ581sY3a2lnl0IRxLQFelECI=
github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A=
github.com/breml/errchkjson v0.3.0 h1:YdDqhfqMT+I1vIxPSas44P+9Z9HzJwCeAzjB8PxP1xw=
@@ -143,6 +153,8 @@ github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy
github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg=
github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 h1:E7LT642ysztPWE0dfz43cWOvMiF42DyTRC+eZIaO4yI=
github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To=
github.com/chavacava/garif v0.0.0-20221024190013-b3ef35877348 h1:cy5GCEZLUCshCGCRRUjxHrDUqkB4l5cuUt3ShEckQEo=
github.com/chavacava/garif v0.0.0-20221024190013-b3ef35877348/go.mod h1:f/miWtG3SSuTxKsNK3o58H1xl+XV6ZIfbC6p7lPPB8U=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@@ -181,6 +193,8 @@ github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDU
github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc=
github.com/daixiang0/gci v0.8.1 h1:T4xpSC+hmsi4CSyuYfIJdMZAr9o7xZmHpQVygMghGZ4=
github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c=
github.com/daixiang0/gci v0.9.1 h1:jBrwBmBZTDsGsXiaCTLIe9diotp1X4X64zodFrh7l+c=
github.com/daixiang0/gci v0.9.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c=
github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -212,6 +226,8 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w=
github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg=
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y=
@@ -228,6 +244,8 @@ github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlya
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-critic/go-critic v0.6.5 h1:fDaR/5GWURljXwF8Eh31T2GZNz9X4jeboS912mWF8Uo=
github.com/go-critic/go-critic v0.6.5/go.mod h1:ezfP/Lh7MA6dBNn4c6ab5ALv3sKnZVLx37tr00uuaOY=
github.com/go-critic/go-critic v0.6.7 h1:1evPrElnLQ2LZtJfmNDzlieDhjnq36SLgNzisx06oPM=
github.com/go-critic/go-critic v0.6.7/go.mod h1:fYZUijFdcnxgx6wPjQA2QEjIRaNCT0gO8bhexy6/QmE=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -245,23 +263,39 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g=
github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4=
github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8=
github.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU=
github.com/go-toolsmith/astcopy v1.0.2 h1:YnWf5Rnh1hUudj11kei53kI57quN/VH6Hp1n+erozn0=
github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y=
github.com/go-toolsmith/astcopy v1.0.3 h1:r0bgSRlMOAgO+BdQnVAcpMSMkrQCnV6ZJmIkrJgcJj0=
github.com/go-toolsmith/astcopy v1.0.3/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y=
github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4=
github.com/go-toolsmith/astequal v1.0.3 h1:+LVdyRatFS+XO78SGV4I3TCEA0AC7fKEGma+fH+674o=
github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4=
github.com/go-toolsmith/astequal v1.1.0 h1:kHKm1AWqClYn15R0K1KKE4RG614D46n+nqUQ06E1dTw=
github.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ=
github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k=
github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw=
github.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco=
github.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4=
github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg=
github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI=
github.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA=
github.com/go-toolsmith/astp v1.1.0/go.mod h1:0T1xFGz9hicKs8Z5MfAqSUitoUYS30pDMsRVIDHs8CA=
github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM=
github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4=
github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8=
github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQiyP2Bvw=
github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ=
github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk=
github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus=
github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig=
github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo=
github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U=
github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
@@ -317,12 +351,16 @@ github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 h1:amWTbTGqOZ71ruzr
github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs=
github.com/golangci/golangci-lint v1.50.1 h1:C829clMcZXEORakZlwpk7M4iDw2XiwxxKaG504SZ9zY=
github.com/golangci/golangci-lint v1.50.1/go.mod h1:AQjHBopYS//oB8xs0y0M/dtxdKHkdhl0RvmjUct0/4w=
github.com/golangci/golangci-lint v1.51.2 h1:yIcsT1X9ZYHdSpeWXRT1ORC/FPGSqDHbHsu9uk4FK7M=
github.com/golangci/golangci-lint v1.51.2/go.mod h1:KH9Q7/3glwpYSknxUgUyLlAv46A8fsSKo1hH2wDvkr8=
github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA=
github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA=
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o=
github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo=
github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA=
github.com/golangci/misspell v0.4.0 h1:KtVB/hTK4bbL/S6bs64rYyk8adjmh1BygbBiaAiX+a0=
github.com/golangci/misspell v0.4.0/go.mod h1:W6O/bwV6lGDxUCChm2ykw9NQdd5bYd1Xkjo88UcWyJc=
github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ=
github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs=
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys=
@@ -388,6 +426,8 @@ github.com/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHP
github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU=
github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U=
github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0=
github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 h1:9alfqbrhuD+9fLZ4iaAVwhlp5PEhmnBt7yvK2Oy5C1U=
github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0=
github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
@@ -466,6 +506,7 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:
github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc=
github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM=
github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
@@ -495,12 +536,16 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY=
github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0=
github.com/junk1tm/musttag v0.4.5 h1:d+mpJ1vn6WFEVKHwkgJiIedis1u/EawKOuUTygAUtCo=
github.com/junk1tm/musttag v0.4.5/go.mod h1:XkcL/9O6RmD88JBXb+I15nYRl9W4ExhgQeCBEhfMC8U=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c=
github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw=
github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8=
github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw=
github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kkHAIKE/contextcheck v1.1.3 h1:l4pNvrb8JSwRd51ojtcOxOeHJzHek+MtOyXbaR0uvmw=
@@ -525,12 +570,18 @@ github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M=
github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg=
github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ=
github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA=
github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA=
github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0=
github.com/ldez/tagliatelle v0.3.1 h1:3BqVVlReVUZwafJUwQ+oxbx2BEX2vUG4Yu/NOfMiKiM=
github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88=
github.com/ldez/tagliatelle v0.4.0 h1:sylp7d9kh6AdXN2DpVGHBRb5guTVAgOxqNGhbqc4b1c=
github.com/ldez/tagliatelle v0.4.0/go.mod h1:mNtTfrHy2haaBAw+VT7IBV6VXBThS7TCreYWbBcJ87I=
github.com/leonklingele/grouper v1.1.0 h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg=
github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY=
github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU=
github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY=
github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
@@ -569,6 +620,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
@@ -582,6 +635,8 @@ github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aks
github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg=
github.com/mgechev/revive v1.2.4 h1:+2Hd/S8oO2H0Ikq2+egtNwQsVhAeELHjxjIUFX5ajLI=
github.com/mgechev/revive v1.2.4/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q=
github.com/mgechev/revive v1.2.5 h1:UF9AR8pOAuwNmhXj2odp4mxv9Nx2qUIwVz8ZsU+Mbec=
github.com/mgechev/revive v1.2.5/go.mod h1:nFOXent79jMTISAfOAasKfy0Z2Ejq0WX7Qn/KAdYopI=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
@@ -622,9 +677,13 @@ github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJ
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nishanths/exhaustive v0.8.3 h1:pw5O09vwg8ZaditDp/nQRqVnrMczSJDxRDJMowvhsrM=
github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg=
github.com/nishanths/exhaustive v0.9.5 h1:TzssWan6orBiLYVqewCG8faud9qlFntJE30ACpzmGME=
github.com/nishanths/exhaustive v0.9.5/go.mod h1:IbwrGdVMizvDcIxPYGVdQn5BqWJaOwpCvg4RGb8r/TA=
github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ=
github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk=
github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c=
github.com/nunnatsa/ginkgolinter v0.8.1 h1:/y4o/0hV+ruUHj4xXh89xlFjoaitnI4LnkpuYs02q1c=
github.com/nunnatsa/ginkgolinter v0.8.1/go.mod h1:FYYLtszIdmzCH8XMaMPyxPVXZ7VCaIm55bA+gugx+14=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
@@ -674,6 +733,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/polyfloyd/go-errorlint v1.0.5 h1:AHB5JRCjlmelh9RrLxT9sgzpalIwwq4hqE8EkwIwKdY=
github.com/polyfloyd/go-errorlint v1.0.5/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI=
github.com/polyfloyd/go-errorlint v1.1.0 h1:VKoEFg5yxSgJ2yFPVhxW7oGz+f8/OVcuMeNvcPIi6Eg=
github.com/polyfloyd/go-errorlint v1.1.0/go.mod h1:Uss7Bc/izYG0leCMRx3WVlrpqWedSZk7V/FUQW6VJ6U=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
@@ -708,12 +769,16 @@ github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3
github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30=
github.com/quasilyte/go-ruleguard v0.3.18 h1:sd+abO1PEI9fkYennwzHn9kl3nqP6M5vE7FiOzZ+5CE=
github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs=
github.com/quasilyte/go-ruleguard v0.3.19 h1:tfMnabXle/HzOb5Xe9CUZYWXKfkS1KwRmZyPmD9nVcc=
github.com/quasilyte/go-ruleguard v0.3.19/go.mod h1:lHSn69Scl48I7Gt9cX3VrbsZYvYiBYszZOZW4A+oTEw=
github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc=
github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50=
github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f h1:6Gtn2i04RD0gVyYf2/IUMTIs+qYleBt4zxDqkLTcu4U=
github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng=
github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo=
github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng=
github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY=
github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0=
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs=
@@ -733,20 +798,30 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4=
github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M=
github.com/ryancurrah/gomodguard v1.3.0 h1:q15RT/pd6UggBXVBuLps8BXRvl5GPBcwVA7BJHMLuTw=
github.com/ryancurrah/gomodguard v1.3.0/go.mod h1:ggBxb3luypPEzqVtq33ee7YSN35V28XeGnid8dnni50=
github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw=
github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA=
github.com/ryanrolds/sqlclosecheck v0.4.0 h1:i8SX60Rppc1wRuyQjMciLqIzV3xnoHB7/tXbr6RGYNI=
github.com/ryanrolds/sqlclosecheck v0.4.0/go.mod h1:TBRRjzL31JONc9i4XMinicuo+s+E8yKZ5FN8X3G6CKQ=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig=
github.com/sagikazarmark/crypt v0.6.0/go.mod h1:U8+INwJo3nBv1m6A/8OBXAq7Jnpspk5AxSgDyEQcea8=
github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA=
github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI=
github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc=
github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI=
github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw=
github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ=
github.com/sashamelentyev/usestdlibvars v1.20.0 h1:K6CXjqqtSYSsuyRDDC7Sjn6vTMLiSJa4ZmDkiokoqtw=
github.com/sashamelentyev/usestdlibvars v1.20.0/go.mod h1:0GaP+ecfZMXShS0A94CJn6aEuPRILv8h/VuWI9n1ygg=
github.com/sashamelentyev/usestdlibvars v1.23.0 h1:01h+/2Kd+NblNItNeux0veSL5cBF1jbEOPrEhDzGYq0=
github.com/sashamelentyev/usestdlibvars v1.23.0/go.mod h1:YPwr/Y1LATzHI93CqoPUN/2BzGQ/6N/cl/KwgR0B/aU=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM=
github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo=
github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgIAtw=
github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU=
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs=
@@ -766,11 +841,15 @@ github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt
github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY=
github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE=
github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg=
github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak=
github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY=
github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI=
github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ=
github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=
github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0=
github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
@@ -786,6 +865,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL
github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4=
github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI=
github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA=
github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
@@ -805,6 +886,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@@ -818,11 +901,15 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F
github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs=
github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo=
github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8=
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk=
github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A=
github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
@@ -831,6 +918,8 @@ github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw=
github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro=
github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e h1:MV6KaVu/hzByHP0UvJ4HcMGE/8a6A4Rggc/0wx2AvJo=
github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ=
github.com/timonwong/loggercheck v0.9.3 h1:ecACo9fNiHxX4/Bc02rW2+kaJIAMAes7qJ7JKxt0EZI=
github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw=
github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=
@@ -840,6 +929,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tomarrell/wrapcheck/v2 v2.7.0 h1:J/F8DbSKJC83bAvC6FoZaRjZiZ/iKoueSdrEkmGeacA=
github.com/tomarrell/wrapcheck/v2 v2.7.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg=
github.com/tomarrell/wrapcheck/v2 v2.8.0 h1:qDzbir0xmoE+aNxGCPrn+rUSxAX+nG6vREgbbXAR81I=
github.com/tomarrell/wrapcheck/v2 v2.8.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg=
github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4=
github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw=
github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=
@@ -951,6 +1042,8 @@ golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl
golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91 h1:Ic/qN6TEifvObMGQy72k0n1LlJr7DjWWEi+MOsDOiSk=
golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9 h1:6WHiuFL9FNjg8RljAaT7FNUuKDbvMqS1i5cr2OE2sLQ=
golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -982,6 +1075,9 @@ golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I=
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1044,6 +1140,9 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su
golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1080,6 +1179,8 @@ golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc=
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
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=
@@ -1192,10 +1293,18 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
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=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1209,6 +1318,9 @@ golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
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=
@@ -1318,6 +1430,11 @@ golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1/go.mod h1:SgwaegtQh8clI
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE=
golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=
golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k=
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
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=
@@ -1553,6 +1670,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA=
honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw=
honnef.co/go/tools v0.4.2 h1:6qXr+R5w+ktL5UkwEbPp+fEvfyoMPche6GkOpGHZcLc=
honnef.co/go/tools v0.4.2/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA=
mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=
mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ=
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I=
@@ -1561,6 +1680,8 @@ mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphD
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 h1:seuXWbRB1qPrS3NQnHmFKLJLtskWyueeIzmLXghMGgk=
mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk=
mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d h1:3rvTIIM22r9pvXk+q3swxUQAQOxksVMGK7sml4nG57w=
mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d/go.mod h1:IeHQjmn6TOD+e4Z3RFiZMMsLVL+A96Nvptar8Fj71is=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

View File

@@ -1,4 +1,4 @@
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.7. DO NOT EDIT.
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.8. DO NOT EDIT.
# All tools are designed to be build inside $GOBIN.
# Those variables will work only until 'bingo get' was invoked, or if tools were installed via Makefile's Variables.mk.
GOBIN=${GOBIN:=$(go env GOBIN)}
@@ -14,7 +14,7 @@ CUE="${GOBIN}/cue-v0.5.0-beta.2"
DRONE="${GOBIN}/drone-v1.5.0"
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.50.1"
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.51.2"
JB="${GOBIN}/jb-v0.5.1"

View File

@@ -11,21 +11,28 @@ load("scripts/drone/events/pr.star", "pr_pipelines")
load("scripts/drone/events/main.star", "main_pipelines")
load(
"scripts/drone/events/release.star",
"artifacts_page_pipeline",
"enterprise2_pipelines",
"enterprise_pipelines",
"oss_pipelines",
"integration_test_pipelines",
"publish_artifacts_pipelines",
"publish_npm_pipelines",
"publish_packages_pipeline",
)
load(
"scripts/drone/rgm.star",
"rgm",
)
load(
"scripts/drone/pipelines/publish_images.star",
"publish_image_pipelines_public",
"publish_image_pipelines_security",
)
load("scripts/drone/pipelines/github.star", "publish_github_pipeline")
load("scripts/drone/pipelines/aws_marketplace.star", "publish_aws_marketplace_pipeline")
load(
"scripts/drone/pipelines/ci_images.star",
"publish_ci_build_container_image_pipeline",
"publish_ci_windows_test_image_pipeline",
)
load(
"scripts/drone/pipelines/windows.star",
"windows_test_backend",
)
load("scripts/drone/version.star", "version_branch_pipelines")
load("scripts/drone/events/cron.star", "cronjobs")
load("scripts/drone/vault.star", "secrets")
@@ -34,24 +41,19 @@ def main(_ctx):
return (
pr_pipelines() +
main_pipelines() +
oss_pipelines() +
enterprise_pipelines() +
enterprise2_pipelines() +
enterprise2_pipelines(
prefix = "custom-",
trigger = {"event": ["custom"]},
) +
publish_image_pipelines_public() +
publish_image_pipelines_security() +
publish_github_pipeline("public") +
publish_github_pipeline("security") +
publish_aws_marketplace_pipeline("public") +
publish_artifacts_pipelines("security") +
publish_artifacts_pipelines("public") +
publish_npm_pipelines() +
publish_packages_pipeline() +
artifacts_page_pipeline() +
rgm() +
[windows_test_backend({
"event": ["promote"],
"target": ["test-windows"],
}, "oss", "testing")] +
version_branch_pipelines() +
integration_test_pipelines() +
publish_ci_windows_test_image_pipeline() +
publish_ci_build_container_image_pipeline() +
cronjobs() +
secrets()
)

4739
.drone.yml

File diff suppressed because it is too large Load Diff

90
.github/CODEOWNERS vendored
View File

@@ -34,19 +34,25 @@ SUPPORT.md @torkelo
UPGRADING_DEPENDENCIES.md @grafana/docs-grafana
WORKFLOW.md @torkelo
# Set up, dashboards/visualization, best practices: Chris Moyer
# Alerting: Brenda Muir
/docs/sources/administration/ @Eve832 @GrafanaWriter
/docs/sources/alerting/ @brendamuir
/docs/sources/dashboards/ @chri2547
/docs/sources/datasources/ @Eve832 @GrafanaWriter
/docs/sources/explore/ @Eve832 @GrafanaWriter
/docs/sources/getting-started/ @chri2547
/docs/sources/old-alerting/ @brendamuir
/docs/sources/release-notes/ @Eve832 @GrafanaWriter
/docs/sources/setup-grafana/ @chri2547
/docs/sources/whatsnew/ @Eve832 @GrafanaWriter
# Technical documentation
/docs/ @Eve832 @jdbaldry
/docs/sources/ @Eve832
/docs/sources/administration/ @Eve832 @GrafanaWriter
/docs/sources/alerting/ @brendamuir
/docs/sources/dashboards/ @imatwawana
/docs/sources/datasources/ @Eve832 @GrafanaWriter
/docs/sources/explore/ @Eve832 @GrafanaWriter
/docs/sources/fundamentals @chri2547
/docs/sources/getting-started/ @chri2547
/docs/sources/introduction/ @chri2547
/docs/sources/old-alerting/ @brendamuir
/docs/sources/panels-visualizations/ @imatwawana
/docs/sources/release-notes/ @Eve832 @GrafanaWriter
/docs/sources/setup-grafana/ @chri2547
/docs/sources/upgrade-guide/ @chri2547 @imatwawana
/docs/sources/whatsnew/ @chri2547 @imatwawana
/docs/sources/developers/plugins/ @Eve832 @josmperez @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/developers/plugins/backend/ @Eve832 @grafana/plugins-platform-backend
# Backend code
/go.mod @grafana/backend-platform
@@ -133,6 +139,7 @@ WORKFLOW.md @torkelo
/pkg/services/validations/ @grafana/backend-platform
/pkg/setting/ @grafana/backend-platform
/pkg/tests/ @grafana/backend-platform
/pkg/tests/api/correlations/ @grafana/explore-squad
/pkg/tsdb/grafanads/ @grafana/backend-platform
/pkg/tsdb/intervalv2/ @grafana/backend-platform
/pkg/tsdb/legacydata/ @grafana/backend-platform
@@ -219,14 +226,15 @@ WORKFLOW.md @torkelo
# Continuous Integration
.drone.yml @grafana/grafana-release-eng
.drone.star @grafana/grafana-release-eng
/scripts/drone/ @grafana/grafana-release-eng
/pkg/build/ @grafana/grafana-release-eng
/.dockerignore @grafana/grafana-release-eng
/Dockerfile @grafana/grafana-release-eng
/Makefile @grafana/grafana-release-eng
/scripts/build/ @grafana/grafana-release-eng
.drone.yml @grafana/grafana-delivery
.drone.star @grafana/grafana-delivery
/scripts/drone/ @grafana/grafana-delivery
/pkg/build/ @grafana/grafana-delivery
/.dockerignore @grafana/grafana-delivery
/Dockerfile @grafana/grafana-delivery
/Makefile @grafana/grafana-delivery
/scripts/build/ @grafana/grafana-delivery
/scripts/list-release-artifacts.sh @grafana/grafana-delivery
# OSS Plugin Partnerships backend code
/pkg/tsdb/cloudwatch/ @grafana/aws-plugins
@@ -452,25 +460,25 @@ lerna.json @grafana/frontend-ops
/scripts/benchmark-access-control.sh @grafana/grafana-authnz-team
/scripts/check-breaking-changes.sh @grafana/plugins-platform-frontend
/scripts/ci-* @grafana/grafana-release-eng
/scripts/circle-* @grafana/grafana-release-eng
/scripts/ci-* @grafana/grafana-delivery
/scripts/circle-* @grafana/grafana-delivery
/scripts/ci-frontend-metrics.sh @grafana/user-essentials @grafana/plugins-platform-frontend @grafana/grafana-bi-squad
/scripts/cli/ @grafana/user-essentials
/scripts/clean-git-or-error.sh @grafana/grafana-as-code
/scripts/grafana-server/ @grafana/user-essentials
/scripts/helpers/ @grafana/grafana-release-eng
/scripts/helpers/ @grafana/grafana-delivery
/scripts/import_many_dashboards.sh @torkelo
/scripts/mixin-check.sh @bergquist
/scripts/openapi3/ @grafana/grafana-partnerships-team
/scripts/prepare-packagejson.js @grafana/frontend-ops
/scripts/protobuf-check.sh @grafana/plugins-platform-backend
/scripts/stripnulls.sh @grafana/grafana-as-code
/scripts/tag_release.sh @grafana/grafana-release-eng
/scripts/trigger_docker_build.sh @grafana/grafana-release-eng
/scripts/trigger_grafana_packer.sh @grafana/grafana-release-eng
/scripts/trigger_windows_build.sh @grafana/grafana-release-eng
/scripts/validate-devenv-dashboards.sh @grafana/grafana-release-eng
/scripts/verify-repo-update/ @grafana/grafana-release-eng
/scripts/tag_release.sh @grafana/grafana-delivery
/scripts/trigger_docker_build.sh @grafana/grafana-delivery
/scripts/trigger_grafana_packer.sh @grafana/grafana-delivery
/scripts/trigger_windows_build.sh @grafana/grafana-delivery
/scripts/validate-devenv-dashboards.sh @grafana/grafana-delivery
/scripts/verify-repo-update/ @grafana/grafana-delivery
/scripts/webpack/ @grafana/frontend-ops
/scripts/generate-a11y-report.sh @grafana/user-essentials
@@ -518,18 +526,19 @@ lerna.json @grafana/frontend-ops
# Grafana authentication and authorization
/pkg/login/ @grafana/grafana-authnz-team
/pkg/services/accesscontrol/ @grafana/grafana-authnz-team
/pkg/services/anonymous/ @grafana/grafana-authnz-team
/pkg/services/auth/ @grafana/grafana-authnz-team
/pkg/services/authn/ @grafana/grafana-authnz-team
/pkg/services/dashboards/accesscontrol.go @grafana/grafana-authnz-team
/pkg/services/datasources/permissions/ @grafana/grafana-authnz-team
/pkg/services/guardian/ @grafana/grafana-authnz-team
/pkg/services/ldap/ @grafana/grafana-authnz-team
/pkg/services/login/ @grafana/grafana-authnz-team
/pkg/services/multildap/ @grafana/grafana-authnz-team
/pkg/services/oauthtoken/ @grafana/grafana-authnz-team
/pkg/services/teamguardian/ @grafana/grafana-authnz-team
/pkg/services/serviceaccounts/ @grafana/grafana-authnz-team
/pkg/services/loginattempt/ @grafana/grafana-authnz-team
/pkg/services/authn/ @grafana/grafana-authnz-team
/pkg/services/oauthtoken/ @grafana/grafana-authnz-team
/pkg/services/serviceaccounts/ @grafana/grafana-authnz-team
/pkg/services/teamguardian/ @grafana/grafana-authnz-team
# Support bundles
/public/app/features/support-bundles/ @grafana/grafana-authnz-team
@@ -568,9 +577,10 @@ embed.go @grafana/grafana-as-code
/.github/pr-commands.json @marefr
/.github/renovate.json5 @grafana/frontend-ops
/.github/teams.yml @armandgrillet
/.github/workflows/backport.yml @grafana/grafana-release-eng
/.github/workflows/bump-version.yml @grafana/grafana-release-eng
/.github/workflows/close-milestone.yml @grafana/grafana-release-eng
/.github/workflows/auto-milestone.yml @grafana/grafana-delivery
/.github/workflows/backport.yml @grafana/grafana-delivery
/.github/workflows/bump-version.yml @grafana/grafana-delivery
/.github/workflows/close-milestone.yml @grafana/grafana-delivery
/.github/workflows/cloud-data-sources-code-coverage.yml @grafana/partner-plugins @grafana/aws-plugins
/.github/workflows/codeowners-validator.yml @tolzhabayev
/.github/workflows/codeql-analysis.yml @DanCech
@@ -590,6 +600,8 @@ embed.go @grafana/grafana-as-code
/.github/workflows/pr-codeql-analysis-python.yml @DanCech
/.github/workflows/pr-commands-closed.yml @tolzhabayev
/.github/workflows/pr-commands.yml @marefr
/.github/workflows/pr-patch-check.yml @grafana/grafana-delivery
/.github/workflows/sync-mirror.yml @grafana/grafana-delivery
/.github/workflows/publish-technical-documentation-next.yml @grafana/docs-grafana
/.github/workflows/publish-technical-documentation-release.yml @grafana/docs-grafana
/.github/workflows/remove-milestone.yml @grafana/user-essentials
@@ -597,8 +609,8 @@ embed.go @grafana/grafana-as-code
/.github/workflows/scripts/json-file-to-job-output.js @grafana/plugins-platform-frontend
/.github/workflows/scripts/pr-get-job-link.js @grafana/plugins-platform-frontend
/.github/workflows/stale.yml @grafana/user-essentials
/.github/workflows/update-changelog.yml @grafana/grafana-release-eng
/.github/workflows/update-changelog.yml @grafana/grafana-delivery
/.github/workflows/snyk.yml @grafana/security-team
# Conf
/conf/defaults.ini @torkelo

View File

@@ -46,4 +46,4 @@
},
"targetUrl": "https://github.com/grafana/grafana/blob/main/contribute/merge-pull-request.md#include-in-changelog-and-release-notes"
}
]
]

22
.github/workflows/auto-milestone.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Auto-milestone
on:
pull_request:
types:
- closed
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 auto-milestone
uses: grafana/grafana-github-actions-go/auto-milestone@main
with:
pr: ${{ github.event.pull_request.number }}
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -17,10 +17,16 @@ jobs:
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- 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 backport
uses: ./actions/backport
with:
metricsWriteAPIKey: ${{secrets.GRAFANA_MISC_STATS_API_KEY}}
token: ${{secrets.GH_BOT_ACCESS_TOKEN}}
token: ${{ steps.generate_token.outputs.token }}
labelsToAdd: "backport,no-changelog"
title: "[{{base}}] {{originalTitle}}"

View File

@@ -6,12 +6,12 @@ on:
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch or major.minor.patch-beta<number> format. example: 7.4.3 or 7.4.3-beta1'
required: true
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
YARN_ENABLE_IMMUTABLE_INSTALLS: false
jobs:
main:
runs-on: ubuntu-latest
steps:
# This is a basic workflow to help you get started with Actions
# 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
@@ -68,8 +68,14 @@ jobs:
node-version: '16'
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run bump version (manually invoked)
- 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: ${{ secrets.GH_BOT_ACCESS_TOKEN }}
token: ${{ steps.generate_token.outputs.token }}
metricsWriteAPIKey: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}

View File

@@ -11,9 +11,7 @@ on:
description: Needs to match, exactly, the name of a milestone
required: true
type: string
secrets:
token:
required: true
jobs:
main:
runs-on: ubuntu-latest
@@ -26,14 +24,20 @@ jobs:
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- 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: Close milestone (manually invoked)
if: ${{ github.event.inputs.version != '' }}
uses: ./actions/close-milestone
with:
token: ${{ secrets.GH_BOT_ACCESS_TOKEN }}
token: ${{ steps.generate_token.outputs.token }}
- name: Close milestone (workflow invoked)
if: ${{ inputs.version_call != '' }}
uses: ./actions/close-milestone
with:
version_call: ${{ inputs.version_call }}
token: ${{ secrets.token }}
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -14,7 +14,7 @@ on:
jobs:
workflow-call:
uses: grafana/code-coverage/.github/workflows/code-coverage.yml@v0.1.17
uses: grafana/code-coverage/.github/workflows/code-coverage.yml@v0.1.18
with:
frontend-path-regexp: public\/app\/plugins\/datasource\/(grafana-azure-monitor-datasource|cloud-monitoring|cloudwatch)
backend-path-regexp: pkg\/tsdb\/(azuremonitor|cloudmonitoring|cloudwatch)

View File

@@ -3,7 +3,7 @@ on:
workflow_dispatch:
inputs:
version:
required: true
required: true
description: Needs to match, exactly, the name of a milestone (NO v prefix)
jobs:
main:
@@ -14,11 +14,17 @@ jobs:
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- 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 github release action
uses: ./actions/github-release
with:
token: ${{secrets.GH_BOT_ACCESS_TOKEN}}
token: ${{ steps.generate_token.outputs.token }}
metricsWriteAPIKey: ${{secrets.GRAFANA_MISC_STATS_API_KEY}}

View File

@@ -10,12 +10,10 @@ jobs:
uses: grafana/grafana/.github/workflows/remove-milestone.yml@main
with:
version_call: ${{ github.event.inputs.version_input }}
secrets:
token: ${{ secrets.GH_BOT_ACCESS_TOKEN }}
secrets: inherit
call-close-milestone:
uses: grafana/grafana/.github/workflows/close-milestone.yml@main
with:
version_call: ${{ github.event.inputs.version_input }}
secrets:
token: ${{ secrets.GH_BOT_ACCESS_TOKEN }}
needs: call-remove-milestone
secrets: inherit
needs: call-remove-milestone

View File

@@ -15,7 +15,7 @@ on:
jobs:
workflow-call:
uses: grafana/code-coverage/.github/workflows/code-coverage.yml@v0.1.17
uses: grafana/code-coverage/.github/workflows/code-coverage.yml@v0.1.18
with:
frontend-path-regexp: public\/app\/features\/(explore|correlations)|public\/app\/plugins\/datasource\/(loki|elasticsearch)
backend-path-regexp: pkg\/services\/(queryhistory)|pkg\/tsdb\/(loki|elasticsearch)

24
.github/workflows/pr-patch-check.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
# Owned by grafana-delivery-squad
# Intended to be dropped into the base repo Ex: grafana/grafana
name: Check for patch conflicts
run-name: check-patch-conflicts-${{ github.base_ref }}-${{ github.head_ref }}
on:
pull_request_target:
types:
- opened
branches:
- "main"
- "v*.*.*"
- "release-*"
# Since this is run on a pull request, we want to apply the patches intended for the
# target branch onto the source branch, to verify compatibility before merging.
jobs:
trigger_downstream_patch_check:
uses: grafana/security-patch-actions/.github/workflows/test-patches.yml@main
with:
src_repo: "${{ github.repository }}"
src_ref: "${{ github.head_ref }}" # this is the source branch name, Ex: "feature/newthing"
patch_repo: "${{ github.repository }}-security-patches"
patch_ref: "${{ github.base_ref }}" # this is the target branch name, Ex: "main"
secrets: inherit

View File

@@ -16,9 +16,11 @@ jobs:
uses: "actions/checkout@v3"
- name: "Clone website-sync Action"
# WEBSITE_SYNC_GRAFANA is a fine-grained GitHub Personal Access Token that expires.
# It must be updated in the grafanabot GitHub account.
run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.WEBSITE_SYNC_GRAFANA }}@github.com/grafana/website-sync ./.github/actions/website-sync"
# WEBSITE_SYNC_TOKEN is a fine-grained GitHub Personal Access Token that expires.
# It must be regenerated in the grafanabot GitHub account and requires a Grafana organization
# GitHub administrator to update the organization secret.
# The IT helpdesk can update the organization secret.
run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.WEBSITE_SYNC_TOKEN }}@github.com/grafana/website-sync ./.github/actions/website-sync"
- name: "Publish to website repository (next)"
uses: "./.github/actions/website-sync"
@@ -27,8 +29,10 @@ jobs:
repository: "grafana/website"
branch: "master"
host: "github.com"
# PUBLISH_TO_WEBSITE_GRAFANA is a fine-grained GitHub Personal Access Token that expires.
# It must be updated in the grafanabot GitHub account.
github_pat: "grafanabot:${{ secrets.PUBLISH_TO_WEBSITE_GRAFANA }}"
# PUBLISH_TO_WEBSITE_TOKEN is a fine-grained GitHub Personal Access Token that expires.
# It must be regenerated in the grafanabot GitHub account and requires a Grafana organization
# GitHub administrator to update the organization secret.
# The IT helpdesk can update the organization secret.
github_pat: "grafanabot:${{ secrets.PUBLISH_TO_WEBSITE_TOKEN }}"
source_folder: "docs/sources"
target_folder: "content/docs/grafana/next"

View File

@@ -45,9 +45,11 @@ jobs:
- name: "Clone website-sync Action"
if: "steps.has-matching-release-tag.outputs.bool == 'true'"
# WEBSITE_SYNC_GRAFANA is a fine-grained GitHub Personal Access Token that expires.
# It must be updated in the grafanabot GitHub account.
run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.WEBSITE_SYNC_GRAFANA }}@github.com/grafana/website-sync ./.github/actions/website-sync"
# WEBSITE_SYNC_TOKEN is a fine-grained GitHub Personal Access Token that expires.
# It must be regenerated in the grafanabot GitHub account and requires a Grafana organization
# GitHub administrator to update the organization secret.
# The IT helpdesk can update the organization secret.
run: "git clone --single-branch --no-tags --depth 1 -b master https://grafanabot:${{ secrets.WEBSITE_SYNC_TOKEN }}@github.com/grafana/website-sync ./.github/actions/website-sync"
- name: "Publish to website repository (release)"
if: "steps.has-matching-release-tag.outputs.bool == 'true'"
@@ -57,8 +59,10 @@ jobs:
repository: "grafana/website"
branch: "master"
host: "github.com"
# PUBLISH_TO_WEBSITE_GRAFANA is a fine-grained GitHub Personal Access Token that expires.
# It must be updated in the grafanabot GitHub account.
github_pat: "grafanabot:${{ secrets.PUBLISH_TO_WEBSITE_GRAFANA }}"
# PUBLISH_TO_WEBSITE_TOKEN is a fine-grained GitHub Personal Access Token that expires.
# It must be regenerated in the grafanabot GitHub account and requires a Grafana organization
# GitHub administrator to update the organization secret.
# The IT helpdesk can update the organization secret.
github_pat: "grafanabot:${{ secrets.PUBLISH_TO_WEBSITE_TOKEN }}"
source_folder: "docs/sources"
target_folder: "content/docs/grafana/${{ steps.target.outputs.target }}"

View File

@@ -11,9 +11,7 @@ on:
description: Needs to match, exactly, the name of a milestone
required: true
type: string
secrets:
token:
required: true
jobs:
main:
runs-on: ubuntu-latest
@@ -26,14 +24,20 @@ jobs:
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- 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: Remove milestone from open issues (manually invoked)
if: ${{ github.event.inputs.version != '' }}
uses: ./actions/remove-milestone
with:
token: ${{ secrets.GH_BOT_ACCESS_TOKEN }}
token: ${{ steps.generate_token.outputs.token }}
- name: Remove milestone from open issues (workflow invoked)
if: ${{ inputs.version_call != '' }}
uses: ./actions/remove-milestone
with:
version_call: ${{ inputs.version_call }}
token: ${{ secrets.token }}
token: ${{ steps.generate_token.outputs.token }}

25
.github/workflows/sync-mirror.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
# Owned by grafana-delivery-squad
# Intended to be dropped into the base repo, Ex: grafana/grafana
name: Sync to mirror
run-name: sync-to-mirror-${{ github.ref_name }}
on:
workflow_dispatch:
push:
branches:
- "main"
- "v*.*.*"
- "release-*"
# This is run after the pull request has been merged, so we'll run against the target branch
jobs:
trigger_downstream_patch_mirror:
concurrency: patch-mirror-${{ github.ref_name }}
uses: grafana/security-patch-actions/.github/workflows/mirror-branch-and-apply-patches.yml@main
if: github.repository == 'grafana/grafana'
with:
ref: "${{ github.ref_name }}" # this is the target branch name, Ex: "main"
src_repo: "${{ github.repository }}"
dest_repo: "${{ github.repository }}-security-mirror"
patch_repo: "${{ github.repository }}-security-patches"
secrets: inherit

View File

@@ -9,6 +9,12 @@ 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: Checkout Actions
uses: actions/checkout@v3
with:
@@ -17,8 +23,8 @@ jobs:
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run update changelog (manually invoked)
- name: Run update changelog (manually invoked)
uses: ./actions/update-changelog
with:
token: ${{ secrets.GH_BOT_ACCESS_TOKEN }}
token: ${{ steps.generate_token.outputs.token }}
metricsWriteAPIKey: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}

5
.gitignore vendored
View File

@@ -79,6 +79,8 @@ public/css/*.min.css
/devenv/docker-compose.override.yaml
/devenv/.env
/devenv/docker/blocks/tempo/tempo-data/
/devenv/docker/ha-test-unified-alerting/logs/webhook/dumps/
/devenv/docker/ha-test-unified-alerting/logs/webhook/webhook-listener.log
conf/custom.ini
/conf/provisioning/**/custom.yaml
@@ -184,3 +186,6 @@ public/locales/*/grafana_old.json
deployment_tools_config.json
.betterer.cache
# Temporary file for backporting PRs
.pr-body.txt

View File

@@ -57,7 +57,6 @@ enable = [
"typecheck",
"asciicheck",
"errorlint",
"sqlclosecheck",
"revive",
]

View File

@@ -1,3 +1,429 @@
<!-- 9.4.13 START -->
# 9.4.13 (2023-06-22)
### Bug fixes
- **Auth:** Fixed CVE-2023-3128. [#70579](https://github.com/grafana/grafana/issues/70579), [@zerok](https://github.com/zerok)
<!-- 9.4.13 END -->
<!-- 9.4.12 START -->
# 9.4.12 (2023-06-06)
### Bug fixes
- **Query:** Prevent crash while executing concurrent mixed queries
- **Alerting:** Require alert.notifications:write permissions to test receivers and templates
- **RBAC:** Remove legacy AC editor and admin role on new dashboard route. [#68775](https://github.com/grafana/grafana/issues/68775), [@grafanabot](https://github.com/grafanabot)
- **Revert:** Allow editors to access GET /datasources. [#68653](https://github.com/grafana/grafana/issues/68653), [@grafanabot](https://github.com/grafanabot)
- **Explore:** Remove data source onboarding page. [#68642](https://github.com/grafana/grafana/issues/68642), [@grafanabot](https://github.com/grafanabot)
<!-- 9.4.12 END -->
<!-- 9.4.10 START -->
# 9.4.10 (2023-05-08)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.4. [#67760](https://github.com/grafana/grafana/issues/67760), [@papagian](https://github.com/papagian)
### Bug fixes
- **AzureMonitor:** Fix logs query multi-resource and timespan values. [#67931](https://github.com/grafana/grafana/issues/67931), [@grafanabot](https://github.com/grafanabot)
- **TimeSeries:** Fix leading null-fill for missing intervals. [#67572](https://github.com/grafana/grafana/issues/67572), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Fix misleading status code in provisioning API. [#67357](https://github.com/grafana/grafana/issues/67357), [@grafanabot](https://github.com/grafanabot)
- **Azure Monitor:** Fix bug that was not showing resources for certain locations. [#66617](https://github.com/grafana/grafana/issues/66617), [@grafanabot](https://github.com/grafanabot)
<!-- 9.4.10 END -->
<!-- 9.4.9 START -->
# 9.4.9 (2023-04-24)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.3. [#66836](https://github.com/grafana/grafana/issues/66836), [@sakjur](https://github.com/sakjur)
### Bug fixes
- **Expressions/threshold:** Fix incorrect thresholds args length. [#66925](https://github.com/grafana/grafana/issues/66925), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix share URL for Prometheus rules on subpath (#66752). [#66802](https://github.com/grafana/grafana/issues/66802), [@gillesdemey](https://github.com/gillesdemey)
- **Trace View:** Update the queryType to traceql for checking if same trace when clicking span link. [#66670](https://github.com/grafana/grafana/issues/66670), [@ericmustin](https://github.com/ericmustin)
- **Google Cloud Monitoring:** Fix project variable. [#66602](https://github.com/grafana/grafana/issues/66602), [@asimpson](https://github.com/asimpson)
- **InfluxDB:** Fix querying with hardcoded retention policy. [#66587](https://github.com/grafana/grafana/issues/66587), [@itsmylife](https://github.com/itsmylife)
- **Auth:** Remove the session cookie only if it's invalid or revoked. [#66430](https://github.com/grafana/grafana/issues/66430), [@mgyongyosi](https://github.com/mgyongyosi)
- **AccessControl:** Allow editors to access GET /api/datasources. [#66375](https://github.com/grafana/grafana/issues/66375), [@mgyongyosi](https://github.com/mgyongyosi)
- **CloudMonitoring:** Add project selector for MQL editor[fix]. [#65844](https://github.com/grafana/grafana/issues/65844), [@alyssabull](https://github.com/alyssabull)
<!-- 9.4.9 END -->
<!-- 9.4.7 START -->
# 9.4.7 (2023-03-16)
### Bug fixes
- **Alerting:** Update scheduler to receive rule updates only from database. [#64780](https://github.com/grafana/grafana/pull/64780), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Influxdb:** Re-introduce backend migration feature toggle. [#64842](https://github.com/grafana/grafana/pull/64842), [@itsmylife](https://github.com/itsmylife)
- **Security:** Fixes for CVE-2023-1410. [#65278](https://github.com/grafana/grafana/pull/65278), [@itsmylife](https://github.com/itsmylife)
### Breaking changes
The InfluxDB backend migration feature toggle (influxdbBackendMigration) has been reintroduced in this version as issues were discovered with backend processing of InfluxDB data. Unless this feature toggle is enabled, all InfluxDB data will be parsed in the frontend. This frontend processing is the default behavior.
In Grafana 9.4.4, InfluxDB data parsing started to be handled in the backend. If you have upgraded to 9.4.4 and then added new transformations on InfluxDB data, those panels will fail to render. To resolve this either:
- Remove the affected panel and re-create it
- Edit the `time` field as `Time` in `panel.json` or `dashboard.json` Issue [#64842](https://github.com/grafana/grafana/issues/64842)
<!-- 9.4.7 END -->
<!-- 9.4.3 START -->
# 9.4.3 (2023-03-02)
### Bug fixes
- **Alerting:** Use background context for maintenance function. [#64065](https://github.com/grafana/grafana/pull/64065), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Report Settings:** Fix URL validation. (Enterprise)
<!-- 9.4.3 END -->
<!-- 9.4.2 START -->
# 9.4.2 (2023-03-02)
### Bug fixes
- **Alerting:** Fix boolean default in migration from false to 0. [#63952](https://github.com/grafana/grafana/pull/63952), [@alexmobo](https://github.com/alexmobo)
<!-- 9.4.2 END -->
<!-- 9.4.1 START -->
# 9.4.1 (2023-02-28)
<!-- 9.4.1 END -->
<!-- 9.4.0 START -->
# 9.4.0 (2023-02-28)
### Features and enhancements
- **Alerting:** Add endpoint for querying state history. [#62166](https://github.com/grafana/grafana/pull/62166), [@alexweav](https://github.com/alexweav)
- **Alerting:** Add label query parameters to state history endpoint. [#62831](https://github.com/grafana/grafana/pull/62831), [@alexweav](https://github.com/alexweav)
- **Alerting:** Add static label to all state history entries. [#62817](https://github.com/grafana/grafana/pull/62817), [@alexweav](https://github.com/alexweav)
- **Alerting:** Mark AM configuration as applied. [#61330](https://github.com/grafana/grafana/pull/61330), [@santihernandezc](https://github.com/santihernandezc)
- **Azure Monitor:** Enable multiple resource queries. [#62467](https://github.com/grafana/grafana/pull/62467), [@andresmgot](https://github.com/andresmgot)
- **InfluxDB:** Move database information into jsondata. [#62308](https://github.com/grafana/grafana/pull/62308), [@itsmylife](https://github.com/itsmylife)
- **Query Caching:** Add per-panel query caching TTL. [#61968](https://github.com/grafana/grafana/pull/61968), [@mmandrus](https://github.com/mmandrus)
- **Table:** Add row number column option. [#62256](https://github.com/grafana/grafana/pull/62256), [@baldm0mma](https://github.com/baldm0mma)
- **Tempo:** Remove tempoApmTable feature flag. [#62499](https://github.com/grafana/grafana/pull/62499), [@adrapereira](https://github.com/adrapereira)
- **Transformations:** Selectively apply transformation to queries. [#61735](https://github.com/grafana/grafana/pull/61735), [@ryantxu](https://github.com/ryantxu)
### Bug fixes
- **AccessControl:** Clear user permission cache for update org user role. [#62745](https://github.com/grafana/grafana/pull/62745), [@Jguer](https://github.com/Jguer)
- **Alerting:** Fix handling of special floating-point cases when writing observed values to annotations. [#61074](https://github.com/grafana/grafana/pull/61074), [@alexweav](https://github.com/alexweav)
- **Auth:** Rotate token patch. [#62676](https://github.com/grafana/grafana/pull/62676), [@mgyongyosi](https://github.com/mgyongyosi)
- **ContextMenu:** Consider y coord when determining bottom collision. [#62403](https://github.com/grafana/grafana/pull/62403), [@gelicia](https://github.com/gelicia)
- **Elasticsearch:** Fix consistent label order in alerting. [#62497](https://github.com/grafana/grafana/pull/62497), [@gabor](https://github.com/gabor)
- **Explore:** Fix graph not updating when changing config. [#62473](https://github.com/grafana/grafana/pull/62473), [@Elfo404](https://github.com/Elfo404)
- **Heatmap:** Support heatmap rows with non-timeseries X axis. [#60929](https://github.com/grafana/grafana/pull/60929), [@ryantxu](https://github.com/ryantxu)
- **Login:** Fix panic when a user is upserted by a background process. [#62539](https://github.com/grafana/grafana/pull/62539), [@sakjur](https://github.com/sakjur)
- **MSSQL:** Add support for macro function calls. [#62742](https://github.com/grafana/grafana/pull/62742), [@mdvictor](https://github.com/mdvictor)
- **MySQL:** Quote identifiers that include special characters. [#61135](https://github.com/grafana/grafana/pull/61135), [@zoltanbedi](https://github.com/zoltanbedi)
- **Navigation:** Sign in button now works correctly when served under a sub path. [#62504](https://github.com/grafana/grafana/pull/62504), [@ashharrison90](https://github.com/ashharrison90)
- **Nested Folder:** Fix for SQLite not to overwrite the parent on restarts. [#62709](https://github.com/grafana/grafana/pull/62709), [@papagian](https://github.com/papagian)
- **PanelChrome:** Adds display mode to support transparent option. [#62647](https://github.com/grafana/grafana/pull/62647), [@torkelo](https://github.com/torkelo)
- **Plugins:** Case-sensitive routes for standalone pages. [#62779](https://github.com/grafana/grafana/pull/62779), [@leventebalogh](https://github.com/leventebalogh)
- **Plugins:** Prefer to use the data source UID when querying. [#62776](https://github.com/grafana/grafana/pull/62776), [@andresmgot](https://github.com/andresmgot)
- **SQLStore:** Fix folder migration for MySQL < 5.7. [#62521](https://github.com/grafana/grafana/pull/62521), [@papagian](https://github.com/papagian)
- **Search:** Fix not being able to clear sort value. [#62557](https://github.com/grafana/grafana/pull/62557), [@joshhunt](https://github.com/joshhunt)
- **Tempo:** Fix span name being dropped from the query. [#62257](https://github.com/grafana/grafana/pull/62257), [@CrypticSignal](https://github.com/CrypticSignal)
### Plugin development fixes & changes
- **PanelChrome:** Implement hover header. [#61774](https://github.com/grafana/grafana/pull/61774), [@kaydelaney](https://github.com/kaydelaney)
<!-- 9.4.0 END -->
<!-- 9.4.0-beta1 START -->
# 9.4.0-beta1 (2023-01-30)
### Features and enhancements
- **API:** Change how Cache-Control and related headers are set. [#62021](https://github.com/grafana/grafana/pull/62021), [@kylebrandt](https://github.com/kylebrandt)
- **AccessControl:** Add high availability support to access control seeder. (Enterprise)
- **Accessibility:** Make QueryEditorHelp examples keyboard interactive. [#59355](https://github.com/grafana/grafana/pull/59355), [@idastambuk](https://github.com/idastambuk)
- **Admin:** Combine org and admin user pages. [#59365](https://github.com/grafana/grafana/pull/59365), [@Clarity-89](https://github.com/Clarity-89)
- **Admin:** Remove navigation subheaders. [#61344](https://github.com/grafana/grafana/pull/61344), [@Clarity-89](https://github.com/Clarity-89)
- **AlertGroups:** Generate models.gen.ts from models.cue. [#61227](https://github.com/grafana/grafana/pull/61227), [@Clarity-89](https://github.com/Clarity-89)
- **Alerting:** Access query details of provisioned alerts. [#59626](https://github.com/grafana/grafana/pull/59626), [@konrad147](https://github.com/konrad147)
- **Alerting:** Add alert rule cloning action. [#59200](https://github.com/grafana/grafana/pull/59200), [@konrad147](https://github.com/konrad147)
- **Alerting:** Add dashboard and panel picker to the rule form. [#58304](https://github.com/grafana/grafana/pull/58304), [@konrad147](https://github.com/konrad147)
- **Alerting:** Add discord as a possible receiver in cloud rules. [#59366](https://github.com/grafana/grafana/pull/59366), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Add export button for exporting all alert rules in alert list view. [#62416](https://github.com/grafana/grafana/pull/62416), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Add header X-Grafana-Org-Id to evaluation requests. [#58972](https://github.com/grafana/grafana/pull/58972), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Add landing page. [#59050](https://github.com/grafana/grafana/pull/59050), [@konrad147](https://github.com/konrad147)
- **Alerting:** Add maxdatapoints in alert rule form. [#61904](https://github.com/grafana/grafana/pull/61904), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Add provisioning endpoint to fetch all rules. [#59989](https://github.com/grafana/grafana/pull/59989), [@alexweav](https://github.com/alexweav)
- **Alerting:** Add support for settings parse_mode and disable_notifications to Telegram receiver. [#60198](https://github.com/grafana/grafana/pull/60198), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Add support for tracing to alerting scheduler. [#61057](https://github.com/grafana/grafana/pull/61057), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Adds evaluation interval to group view. [#59974](https://github.com/grafana/grafana/pull/59974), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Alert rules search improvements. [#61398](https://github.com/grafana/grafana/pull/61398), [@konrad147](https://github.com/konrad147)
- **Alerting:** Allow state history to be disabled through configuration. [#61006](https://github.com/grafana/grafana/pull/61006), [@alexweav](https://github.com/alexweav)
- **Alerting:** Bump Prometheus Alertmanager to v0.25. [#60764](https://github.com/grafana/grafana/pull/60764), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Choose a previous valid AM configuration in case of error. [#58472](https://github.com/grafana/grafana/pull/58472), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Create endpoints for exporting in provisioning file format. [#58623](https://github.com/grafana/grafana/pull/58623), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Declare incident from a firing alert. [#61178](https://github.com/grafana/grafana/pull/61178), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Do not maintain Normal state. [#56336](https://github.com/grafana/grafana/pull/56336), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Improve UI for making more clear that evaluation interval belongs to the group. [#56397](https://github.com/grafana/grafana/pull/56397), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Improve legacy migration to include send reminder & frequency. [#60275](https://github.com/grafana/grafana/pull/60275), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** PagerDuty receiver to let user configure fields Source, Client and Client URL. [#59895](https://github.com/grafana/grafana/pull/59895), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Recognise & change UI for OnCall notification policy + contact point. [#60259](https://github.com/grafana/grafana/pull/60259), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Rename contact point type to receiver in the user interface. [#59589](https://github.com/grafana/grafana/pull/59589), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Rule evaluator to get cached data source info. [#61305](https://github.com/grafana/grafana/pull/61305), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Support customizable timeout for screenshots. [#60981](https://github.com/grafana/grafana/pull/60981), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** UI changes required to support v3 and Auth in Kafka Contact Point. [#61123](https://github.com/grafana/grafana/pull/61123), [@MohammadGhazanfar](https://github.com/MohammadGhazanfar)
- **Alerting:** Update Alerting and Alertmanager to v0.25.1. [#61233](https://github.com/grafana/grafana/pull/61233), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Upload images to Slack via files.upload. [#59163](https://github.com/grafana/grafana/pull/59163), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Auditing/Usage Insights:** Loki support for multi-tenancy. (Enterprise)
- **Auth forwarding:** Pass tokens without refresh. [#61634](https://github.com/grafana/grafana/pull/61634), [@Jguer](https://github.com/Jguer)
- **Auth:** Add expiry date for service accounts access tokens. [#58885](https://github.com/grafana/grafana/pull/58885), [@linoman](https://github.com/linoman)
- **Auth:** Add plugin roles to RolePicker. [#59667](https://github.com/grafana/grafana/pull/59667), [@linoman](https://github.com/linoman)
- **Auth:** Add skip_org_role_sync for AzureAD OAuth. [#60322](https://github.com/grafana/grafana/pull/60322), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add skip_org_role_sync for Okta. [#62106](https://github.com/grafana/grafana/pull/62106), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add skip_org_role_sync setting for GrafanaCom. [#60553](https://github.com/grafana/grafana/pull/60553), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add skip_org_role_sync setting for github. [#61673](https://github.com/grafana/grafana/pull/61673), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add skip_org_role_sync setting to OAuth integration Google. [#61572](https://github.com/grafana/grafana/pull/61572), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add skip_org_role_sync to GitLab OAuth. [#62055](https://github.com/grafana/grafana/pull/62055), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add sub claim check to JWT Auth pre-checks. [#61417](https://github.com/grafana/grafana/pull/61417), [@mgyongyosi](https://github.com/mgyongyosi)
- **Auth:** Disable team sync for JWT Authentication. [#62191](https://github.com/grafana/grafana/pull/62191), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Display id Provider label in orgs/users view. [#58033](https://github.com/grafana/grafana/pull/58033), [@linoman](https://github.com/linoman)
- **Auth:** Implement skip org role sync for jwt. [#61647](https://github.com/grafana/grafana/pull/61647), [@linoman](https://github.com/linoman)
- **Auth:** Log a more useful msg if no OAuth provider configured. [#56722](https://github.com/grafana/grafana/pull/56722), [@someone-stole-my-name](https://github.com/someone-stole-my-name)
- **Auth:** Set service account access token limit on expiry dates. [#56467](https://github.com/grafana/grafana/pull/56467), [@linoman](https://github.com/linoman)
- **Azure Monitor:** Add variable function to list regions. [#62297](https://github.com/grafana/grafana/pull/62297), [@andresmgot](https://github.com/andresmgot)
- **Backend:** Consistently use context RemoteAddr function to determine remote address. [#60201](https://github.com/grafana/grafana/pull/60201), [@DanCech](https://github.com/DanCech)
- **BarChart:** Highlight bars option for easier interaction. [#60530](https://github.com/grafana/grafana/pull/60530), [@mdvictor](https://github.com/mdvictor)
- **BarChartPanel:** Custom tooltips. [#60148](https://github.com/grafana/grafana/pull/60148), [@mdvictor](https://github.com/mdvictor)
- **Canvas:** Add server element. [#61104](https://github.com/grafana/grafana/pull/61104), [@drew08t](https://github.com/drew08t)
- **Canvas:** Add support for basic arrows. [#57561](https://github.com/grafana/grafana/pull/57561), [@nmarrs](https://github.com/nmarrs)
- **Canvas:** Add tooltip for data links. [#61648](https://github.com/grafana/grafana/pull/61648), [@adela-almasan](https://github.com/adela-almasan)
- **Canvas:** Improve placement when adding an element via context menu. [#61071](https://github.com/grafana/grafana/pull/61071), [@adela-almasan](https://github.com/adela-almasan)
- **Canvas:** Update context menu actions for multiple elements selected. [#61108](https://github.com/grafana/grafana/pull/61108), [@adela-almasan](https://github.com/adela-almasan)
- **Canvas:** Update element(s) selection after action. [#61204](https://github.com/grafana/grafana/pull/61204), [@adela-almasan](https://github.com/adela-almasan)
- **Chore:** Add deprecation warnings for Sentry. [#60165](https://github.com/grafana/grafana/pull/60165), [@domasx2](https://github.com/domasx2)
- **CloudMonitor:** Improve detail of MQL series labels. [#59747](https://github.com/grafana/grafana/pull/59747), [@aangelisc](https://github.com/aangelisc)
- **CloudWatch Logs:** Set default logs query and disable button when empty. [#61956](https://github.com/grafana/grafana/pull/61956), [@iwysiu](https://github.com/iwysiu)
- **CloudWatch:** Add CloudWatchSynthetics dimension. [#60832](https://github.com/grafana/grafana/pull/60832), [@jangaraj](https://github.com/jangaraj)
- **CloudWatch:** Add MaxProvisionedTableReadCapacityUtilization AWS/DynamoDB metric name. [#60829](https://github.com/grafana/grafana/pull/60829), [@jangaraj](https://github.com/jangaraj)
- **CloudWatch:** Add RDS dimension. [#61027](https://github.com/grafana/grafana/pull/61027), [@jangaraj](https://github.com/jangaraj)
- **CloudWatch:** Add macro for resolving period in SEARCH expressions. [#60435](https://github.com/grafana/grafana/pull/60435), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Add feedback labels to log groups selector. [#60619](https://github.com/grafana/grafana/pull/60619), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Add run query button. [#60089](https://github.com/grafana/grafana/pull/60089), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Add support for template variables in new log group picker. [#61243](https://github.com/grafana/grafana/pull/61243), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Define and use getDefaultquery instead of calling onChange on mount. [#60221](https://github.com/grafana/grafana/pull/60221), [@idastambuk](https://github.com/idastambuk)
- **Cloudwatch:** Refactor log group model. [#60873](https://github.com/grafana/grafana/pull/60873), [@sunker](https://github.com/sunker)
- **Cloudwatch:** Set CloudwatchCrossAccountQuery feature to stable. [#62348](https://github.com/grafana/grafana/pull/62348), [@sarahzinger](https://github.com/sarahzinger)
- **Cloudwatch:** Use new log group picker also for non cross-account queries. [#60913](https://github.com/grafana/grafana/pull/60913), [@sunker](https://github.com/sunker)
- **CommandPalette:** Improve section header styling. [#61584](https://github.com/grafana/grafana/pull/61584), [@joshhunt](https://github.com/joshhunt)
- **CommandPalette:** Minor usability improvements. [#61567](https://github.com/grafana/grafana/pull/61567), [@joshhunt](https://github.com/joshhunt)
- **CommandPalette:** Search for dashboards using API. [#61090](https://github.com/grafana/grafana/pull/61090), [@joshhunt](https://github.com/joshhunt)
- **Config:** Support JSON list syntax. [#61288](https://github.com/grafana/grafana/pull/61288), [@alexanderzobnin](https://github.com/alexanderzobnin)
- **DataLinks:** Allow providing a dynamic data link builder. [#60452](https://github.com/grafana/grafana/pull/60452), [@dprokop](https://github.com/dprokop)
- **DataProxy:** Populate X-Grafana-Referer header. [#60040](https://github.com/grafana/grafana/pull/60040), [@neilfordyce](https://github.com/neilfordyce)
- **Database:** Adds support for enable/disable SQLite Write-Ahead Logging (WAL) via configuration. [#58268](https://github.com/grafana/grafana/pull/58268), [@marefr](https://github.com/marefr)
- **Dataplane:** Deprecate timeseries-many in favor of timeseries-multi. [#59070](https://github.com/grafana/grafana/pull/59070), [@bohandley](https://github.com/bohandley)
- **Datasource settings:** Add deprecation notice for database field. [#58647](https://github.com/grafana/grafana/pull/58647), [@zoltanbedi](https://github.com/zoltanbedi)
- **Datasources:** Add support for getDetDefaultQuery in variable editor. [#62026](https://github.com/grafana/grafana/pull/62026), [@idastambuk](https://github.com/idastambuk)
- **Devenv:** OpenLDAP-Mac improvements. [#60229](https://github.com/grafana/grafana/pull/60229), [@mgyongyosi](https://github.com/mgyongyosi)
- **Docs:** Rename Message templates to Notification templates. [#59477](https://github.com/grafana/grafana/pull/59477), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Docs:** Unified Alerting is now compatible with AWS Aurora. [#61001](https://github.com/grafana/grafana/pull/61001), [@alexweav](https://github.com/alexweav)
- **Elastic:** Remove experimental tag from v8.0+. [#61359](https://github.com/grafana/grafana/pull/61359), [@gwdawson](https://github.com/gwdawson)
- **Elasticsearch:** Deprecate raw document mode. [#62236](https://github.com/grafana/grafana/pull/62236), [@gabor](https://github.com/gabor)
- **Elasticsearch:** Support nested aggregation. [#62301](https://github.com/grafana/grafana/pull/62301), [@gabor](https://github.com/gabor)
- **Email:** Use MJML email template. (Enterprise)
- **Email:** Use MJML email templates. [#57751](https://github.com/grafana/grafana/pull/57751), [@gillesdemey](https://github.com/gillesdemey)
- **Explore:** Add feature to open log sample in split view. [#62097](https://github.com/grafana/grafana/pull/62097), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore:** Enable resize of split pane. [#58683](https://github.com/grafana/grafana/pull/58683), [@gelicia](https://github.com/gelicia)
- **Explore:** Implement logs sample in Explore. [#61864](https://github.com/grafana/grafana/pull/61864), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore:** Keyboard shortcut to go to explore. [#61837](https://github.com/grafana/grafana/pull/61837), [@torkelo](https://github.com/torkelo)
- **Explore:** Notify when compact URL is used. [#58684](https://github.com/grafana/grafana/pull/58684), [@gelicia](https://github.com/gelicia)
- **Explore:** Use Datasource Onboarding page when visiting without any datasource set up. [#60399](https://github.com/grafana/grafana/pull/60399), [@Elfo404](https://github.com/Elfo404)
- **FileDropzone:** Format the file size limit in the error message when the max file size is exceeded (1000 => 1 kB). [#62290](https://github.com/grafana/grafana/pull/62290), [@oscarkilhed](https://github.com/oscarkilhed)
- **Flame graph:** Search with uFuzzy. [#61748](https://github.com/grafana/grafana/pull/61748), [@joey-grafana](https://github.com/joey-grafana)
- **GRPC Server:** Add query service. [#55781](https://github.com/grafana/grafana/pull/55781), [@toddtreece](https://github.com/toddtreece)
- **Geomap panel:** Generate types. [#61636](https://github.com/grafana/grafana/pull/61636), [@Clarity-89](https://github.com/Clarity-89)
- **Geomap:** Add color gradients to route layer. [#59062](https://github.com/grafana/grafana/pull/59062), [@drew08t](https://github.com/drew08t)
- **Glue:** Validate target query in correlations page. [#57245](https://github.com/grafana/grafana/pull/57245), [@L-M-K-B](https://github.com/L-M-K-B)
- **Heatmap:** Remove legacy angular based implementation. [#59249](https://github.com/grafana/grafana/pull/59249), [@ryantxu](https://github.com/ryantxu)
- **InfluxDB:** Send retention policy with InfluxQL queries if its been specified. [#62149](https://github.com/grafana/grafana/pull/62149), [@brettbuddin](https://github.com/brettbuddin)
- **Influxdb:** Remove backend migration feature toggle. [#61308](https://github.com/grafana/grafana/pull/61308), [@itsmylife](https://github.com/itsmylife)
- **Internationalization:** Translate page headers and Search dashboard actions. [#60727](https://github.com/grafana/grafana/pull/60727), [@TaitChan](https://github.com/TaitChan)
- **LDAP:** Make LDAP attribute mapping case-insensitive. [#58992](https://github.com/grafana/grafana/pull/58992), [@markkrj](https://github.com/markkrj)
- **LoginAttempts:** Reset attempts on successfull password reset. [#59215](https://github.com/grafana/grafana/pull/59215), [@kalleep](https://github.com/kalleep)
- **Logs Panel:** Add support for keyboard interactions with log lines. [#60561](https://github.com/grafana/grafana/pull/60561), [@matyax](https://github.com/matyax)
- **Logs:** Add possibility to download logs in JSON format. [#61394](https://github.com/grafana/grafana/pull/61394), [@svennergr](https://github.com/svennergr)
- **Logs:** Make `no logs found` text more visible in Explore. [#61651](https://github.com/grafana/grafana/pull/61651), [@svennergr](https://github.com/svennergr)
- **Logs:** Unify detected fields and labels in Log Details. [#60448](https://github.com/grafana/grafana/pull/60448), [@svennergr](https://github.com/svennergr)
- **Loki Autocomplete:** Suggest only possible labels for unwrap. [#61411](https://github.com/grafana/grafana/pull/61411), [@matyax](https://github.com/matyax)
- **Loki Editor Autocomplete:** Suggest unique history items. [#60262](https://github.com/grafana/grafana/pull/60262), [@matyax](https://github.com/matyax)
- **Loki Query Editor:** Add support to display query parsing errors to users. [#59427](https://github.com/grafana/grafana/pull/59427), [@matyax](https://github.com/matyax)
- **Loki Query Editor:** Autocompletion and suggestions improvements (unwrap, parser, extracted labels). [#59103](https://github.com/grafana/grafana/pull/59103), [@matyax](https://github.com/matyax)
- **Loki Query Editor:** Update history items with successive queries. [#60327](https://github.com/grafana/grafana/pull/60327), [@matyax](https://github.com/matyax)
- **Loki:** Add format explanation to regex operations. [#60518](https://github.com/grafana/grafana/pull/60518), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Add hints for query filters. [#60293](https://github.com/grafana/grafana/pull/60293), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Add improvements to loki label browser. [#59387](https://github.com/grafana/grafana/pull/59387), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Change format of query builder hints. [#60228](https://github.com/grafana/grafana/pull/60228), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Make label browser accessible in query builder. [#58525](https://github.com/grafana/grafana/pull/58525), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Push support for multi-tenancy mode. [#60866](https://github.com/grafana/grafana/pull/60866), [@joanlopez](https://github.com/joanlopez)
- **Loki:** Remove raw query toggle. [#59125](https://github.com/grafana/grafana/pull/59125), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Rename "explain" toggle to "explain query". [#61150](https://github.com/grafana/grafana/pull/61150), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Set custom width for modals in the loki query editor. [#59714](https://github.com/grafana/grafana/pull/59714), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Show configured log line limit. [#61291](https://github.com/grafana/grafana/pull/61291), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Show query size approximation. [#62109](https://github.com/grafana/grafana/pull/62109), [@gwdawson](https://github.com/gwdawson)
- **Middleware:** Add Custom Headers to HTTP responses. [#59018](https://github.com/grafana/grafana/pull/59018), [@jcalisto](https://github.com/jcalisto)
- **Navigation:** Open command palette from search box. [#61667](https://github.com/grafana/grafana/pull/61667), [@joshhunt](https://github.com/joshhunt)
- **NodeGraph:** Allow usage with single dataframe. [#58448](https://github.com/grafana/grafana/pull/58448), [@aocenas](https://github.com/aocenas)
- **OAuth:** Support pagination for GitHub orgs. [#58648](https://github.com/grafana/grafana/pull/58648), [@sdague](https://github.com/sdague)
- **PanelChrome:** Allow panel to be dragged if set as draggable from the outside. [#61698](https://github.com/grafana/grafana/pull/61698), [@axelavargas](https://github.com/axelavargas)
- **PanelChrome:** Refactor and refine items next to title. [#60514](https://github.com/grafana/grafana/pull/60514), [@axelavargas](https://github.com/axelavargas)
- **PanelRenderer:** Interpolate variables in applyFieldOverrides. [#59844](https://github.com/grafana/grafana/pull/59844), [@connorlindsey](https://github.com/connorlindsey)
- **Performance:** Preallocate slices. [#61580](https://github.com/grafana/grafana/pull/61580), [@peakle](https://github.com/peakle)
- **Phlare:** Reset flame graph after query is run. [#59609](https://github.com/grafana/grafana/pull/59609), [@joey-grafana](https://github.com/joey-grafana)
- **Phlare:** Transition from LogQL/PromQL to Phlare should keep the query. [#60217](https://github.com/grafana/grafana/pull/60217), [@joey-grafana](https://github.com/joey-grafana)
- **Plugins:** Add file permission error check when attempting to verify plugin signature. [#61860](https://github.com/grafana/grafana/pull/61860), [@wbrowne](https://github.com/wbrowne)
- **Plugins:** Automatically forward plugin request HTTP headers in outgoing HTTP requests. [#60417](https://github.com/grafana/grafana/pull/60417), [@marefr](https://github.com/marefr)
- **Plugins:** Forward user header (X-Grafana-User) in backend plugin requests. [#58646](https://github.com/grafana/grafana/pull/58646), [@marefr](https://github.com/marefr)
- **Plugins:** Pass through dashboard/contextual HTTP headers to plugins/datasources. [#60301](https://github.com/grafana/grafana/pull/60301), [@GiedriusS](https://github.com/GiedriusS)
- **Plugins:** Refactor forward of cookies, OAuth token and header modifications by introducing client middlewares. [#58132](https://github.com/grafana/grafana/pull/58132), [@marefr](https://github.com/marefr)
- **Plugins:** Remove connection/hop-by-hop request/response headers for call resource. [#60077](https://github.com/grafana/grafana/pull/60077), [@marefr](https://github.com/marefr)
- **Plugins:** Unsigned chromium file should not invalidate signature for Renderer plugin. [#59104](https://github.com/grafana/grafana/pull/59104), [@wbrowne](https://github.com/wbrowne)
- **Preferences:** Add pagination to org configuration page. [#60896](https://github.com/grafana/grafana/pull/60896), [@alexanderzobnin](https://github.com/alexanderzobnin)
- **Preferences:** Add theme preference to match system theme. [#61986](https://github.com/grafana/grafana/pull/61986), [@joshhunt](https://github.com/joshhunt)
- **Prometheus:** Kickstart your query, formerly query patterns. [#60718](https://github.com/grafana/grafana/pull/60718), [@bohandley](https://github.com/bohandley)
- **Prometheus:** New instant query results view in Explore. [#60479](https://github.com/grafana/grafana/pull/60479), [@gtk-grafana](https://github.com/gtk-grafana)
- **Prometheus:** Remove buffered client and feature toggle related to it. [#59898](https://github.com/grafana/grafana/pull/59898), [@itsmylife](https://github.com/itsmylife)
- **Public Dashboards:** Time range for public dashboard in NavToolbar. [#60689](https://github.com/grafana/grafana/pull/60689), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** A unique page for public dashboards. [#60744](https://github.com/grafana/grafana/pull/60744), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Add react-hook-form for Public Dashboard modal. [#60249](https://github.com/grafana/grafana/pull/60249), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Add share column to public dashboards table. [#61102](https://github.com/grafana/grafana/pull/61102), [@owensmallwood](https://github.com/owensmallwood)
- **PublicDashboards:** Adds middleware for email sharing. (Enterprise)
- **PublicDashboards:** Adds tables and models for email sharing. (Enterprise)
- **PublicDashboards:** Checkboxes list refactor. [#61947](https://github.com/grafana/grafana/pull/61947), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Create API for sharing by email. (Enterprise)
- **PublicDashboards:** Enterprise service skeleton for public dashboards with feature flag. (Enterprise)
- **PublicDashboards:** Modal warns when using unsupported datasources. [#58926](https://github.com/grafana/grafana/pull/58926), [@owensmallwood](https://github.com/owensmallwood)
- **PublicDashboards:** Page to request access to protected pubdash. (Enterprise)
- **PublicDashboards:** Remove unnecessary css style in Audit Table. [#60546](https://github.com/grafana/grafana/pull/60546), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Revert Time range setting added. [#60698](https://github.com/grafana/grafana/pull/60698), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Time range conditionally shown. [#60425](https://github.com/grafana/grafana/pull/60425), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Time range setting added. [#60487](https://github.com/grafana/grafana/pull/60487), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Time range settings. [#61585](https://github.com/grafana/grafana/pull/61585), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Time range switch added. [#60257](https://github.com/grafana/grafana/pull/60257), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Time range wording changed. [#60473](https://github.com/grafana/grafana/pull/60473), [@juanicabanas](https://github.com/juanicabanas)
- **RBAC:** Add an endpoint to search through assignments. (Enterprise)
- **RBAC:** Add config option to reset basic roles on start up. [#59598](https://github.com/grafana/grafana/pull/59598), [@gamab](https://github.com/gamab)
- **RBAC:** Add config option to reset basic roles on start up. (Enterprise)
- **RBAC:** Add permission to get usage report preview. [#61570](https://github.com/grafana/grafana/pull/61570), [@alexanderzobnin](https://github.com/alexanderzobnin)
- **RBAC:** Permission check performance improvements for the new search. [#60729](https://github.com/grafana/grafana/pull/60729), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **RBAC:** Register plugin permissions's action and its accepted scopes. (Enterprise)
- **RBAC:** Runtime plugin role registration and update. (Enterprise)
- **Report Settings:** Add UI to upload logo files. (Enterprise)
- **Reporting:** Allow to upload report branding images. (Enterprise)
- **RolePicker:** Align groupHeader to the list items horizontally. [#61060](https://github.com/grafana/grafana/pull/61060), [@mgyongyosi](https://github.com/mgyongyosi)
- **SAML:** Support auto login. [#61685](https://github.com/grafana/grafana/pull/61685), [@alexanderzobnin](https://github.com/alexanderzobnin)
- **SMTP:** Update SMTP TemplatesPatterns to do an 'or' filter instead of 'and'. [#61421](https://github.com/grafana/grafana/pull/61421), [@mmandrus](https://github.com/mmandrus)
- **SQL Datasources:** Move database setting to jsonData. [#58649](https://github.com/grafana/grafana/pull/58649), [@zoltanbedi](https://github.com/zoltanbedi)
- **SQL Datasources:** Use health check for config test. [#59867](https://github.com/grafana/grafana/pull/59867), [@zoltanbedi](https://github.com/zoltanbedi)
- **SQL:** Return no data response when no rows returned. [#59121](https://github.com/grafana/grafana/pull/59121), [@zoltanbedi](https://github.com/zoltanbedi)
- **Search:** Remember sorting preference between visits. [#62248](https://github.com/grafana/grafana/pull/62248), [@joshhunt](https://github.com/joshhunt)
- **Segment:** Individual segments are now keyboard accessible. [#60555](https://github.com/grafana/grafana/pull/60555), [@ashharrison90](https://github.com/ashharrison90)
- **Server:** Switch from separate server & cli to a unified grafana binary. [#58286](https://github.com/grafana/grafana/pull/58286), [@DanCech](https://github.com/DanCech)
- **SharePDF:** Add zoom select. (Enterprise)
- **Slugify:** Replace gosimple/slug with a simple function. [#59517](https://github.com/grafana/grafana/pull/59517), [@ryantxu](https://github.com/ryantxu)
- **Snapshots:** Add snapshot enable config. [#61587](https://github.com/grafana/grafana/pull/61587), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Table Panel:** Refactor Cell Options to Allow for Options per Cell Type. [#59363](https://github.com/grafana/grafana/pull/59363), [@codeincarnate](https://github.com/codeincarnate)
- **Table panel:** Use link elements instead of div elements with on click events to aid with keyboard accessibility. [#59393](https://github.com/grafana/grafana/pull/59393), [@oscarkilhed](https://github.com/oscarkilhed)
- **TablePanel:** Improve and align table styles with the rest of Grafana. [#60365](https://github.com/grafana/grafana/pull/60365), [@torkelo](https://github.com/torkelo)
- **Teams:** Support paginating and filtering more then 1000 teams. [#58761](https://github.com/grafana/grafana/pull/58761), [@kalleep](https://github.com/kalleep)
- **Teams:** Use generated TS types. [#60618](https://github.com/grafana/grafana/pull/60618), [@Clarity-89](https://github.com/Clarity-89)
- **Tempo:** Trace to logs custom query with interpolation. [#61702](https://github.com/grafana/grafana/pull/61702), [@aocenas](https://github.com/aocenas)
- **Tempo:** Update column width for Loki search. [#61924](https://github.com/grafana/grafana/pull/61924), [@joey-grafana](https://github.com/joey-grafana)
- **Tempo:** Update docs and default Tempo metrics query. [#62185](https://github.com/grafana/grafana/pull/62185), [@joey-grafana](https://github.com/joey-grafana)
- **TestDatasource:** Add scenario for generating trace data. [#59299](https://github.com/grafana/grafana/pull/59299), [@aocenas](https://github.com/aocenas)
- **TextPanel:** Refactor to functional component. [#60885](https://github.com/grafana/grafana/pull/60885), [@ryantxu](https://github.com/ryantxu)
- **Theme:** Use `Inter` font by default. [#59544](https://github.com/grafana/grafana/pull/59544), [@ashharrison90](https://github.com/ashharrison90)
- **Trace View:** Disallow a span colour that is the same or looks similar to previous colour. [#58146](https://github.com/grafana/grafana/pull/58146), [@joey-grafana](https://github.com/joey-grafana)
- **Tracing:** Add keyboard accessibility to SpanDetailRow. [#59412](https://github.com/grafana/grafana/pull/59412), [@joey-grafana](https://github.com/joey-grafana)
- **Transformations:** Add context parameter to transformDataFrame and operators. [#60694](https://github.com/grafana/grafana/pull/60694), [@torkelo](https://github.com/torkelo)
- **Transformations:** Extract JSON Paths. [#59400](https://github.com/grafana/grafana/pull/59400), [@NiklasCi](https://github.com/NiklasCi)
- **Transformations:** Grouping to matrix empty value option. [#55591](https://github.com/grafana/grafana/pull/55591), [@hugo082](https://github.com/hugo082)
- **UsageInsights:** Record events for Explore queries. [#59931](https://github.com/grafana/grafana/pull/59931), [@daniellee](https://github.com/daniellee)
- **Variables:** Support for colons in time variables custom format. [#61404](https://github.com/grafana/grafana/pull/61404), [@yesoreyeram](https://github.com/yesoreyeram)
### Bug fixes
- **Alerting:** Fix ConditionsCmd No Data for "has no value". [#58634](https://github.com/grafana/grafana/pull/58634), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Fix evaluation timeout. [#61303](https://github.com/grafana/grafana/pull/61303), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Redo refactoring from reverted fix in #56812. [#61051](https://github.com/grafana/grafana/pull/61051), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Set Dashboard and Panel IDs on rule group replacement. [#60374](https://github.com/grafana/grafana/pull/60374), [@alexmobo](https://github.com/alexmobo)
- **Alerting:** Store alertmanager configuration history in a separate table in the database. [#60197](https://github.com/grafana/grafana/pull/60197), [@alexweav](https://github.com/alexweav)
- **Azure Monitor:** Fix health check for empty default subscription. [#60569](https://github.com/grafana/grafana/pull/60569), [@andresmgot](https://github.com/andresmgot)
- **Barchart:** Fix erroneous tooltip value. [#61455](https://github.com/grafana/grafana/pull/61455), [@mdvictor](https://github.com/mdvictor)
- **Candlestick:** Fix showing hidden legend values. [#60971](https://github.com/grafana/grafana/pull/60971), [@zoltanbedi](https://github.com/zoltanbedi)
- **CloudWatch:** Fix logs insights deeplink. [#59906](https://github.com/grafana/grafana/pull/59906), [@fridgepoet](https://github.com/fridgepoet)
- **Cloudmonitor:** Refactor query builder. [#61410](https://github.com/grafana/grafana/pull/61410), [@aangelisc](https://github.com/aangelisc)
- **Command Palette:** Links now work when grafana is served under a subpath. [#60033](https://github.com/grafana/grafana/pull/60033), [@ashharrison90](https://github.com/ashharrison90)
- **CommandPalette:** Fix long dashboard names freezing the browser. [#61278](https://github.com/grafana/grafana/pull/61278), [@joshhunt](https://github.com/joshhunt)
- **DataFrame:** Add explicit histogram frame type. [#61195](https://github.com/grafana/grafana/pull/61195), [@leeoniya](https://github.com/leeoniya)
- **Dropdown:** Make escape close a dropdown. [#62098](https://github.com/grafana/grafana/pull/62098), [@ashharrison90](https://github.com/ashharrison90)
- **Explore:** Fix a11y issue with show all series button in Graph. [#58943](https://github.com/grafana/grafana/pull/58943), [@Elfo404](https://github.com/Elfo404)
- **Explore:** Fixes explore page height and margin issues. [#59865](https://github.com/grafana/grafana/pull/59865), [@torkelo](https://github.com/torkelo)
- **Explore:** Re-initialize graph when number of series to show changes. [#60499](https://github.com/grafana/grafana/pull/60499), [@Elfo404](https://github.com/Elfo404)
- **Fix:** Unlocking the UI for AuthProxy users. [#59507](https://github.com/grafana/grafana/pull/59507), [@gamab](https://github.com/gamab)
- **GrafanaUI:** Checkbox description fix. [#61929](https://github.com/grafana/grafana/pull/61929), [@juanicabanas](https://github.com/juanicabanas)
- **LDAP:** Disable user in case it has been removed from LDAP directory. [#60231](https://github.com/grafana/grafana/pull/60231), [@mgyongyosi](https://github.com/mgyongyosi)
- **LibraryPanels:** Fix issue where viewer with folder edit permissions could not update library panel. [#58420](https://github.com/grafana/grafana/pull/58420), [@kaydelaney](https://github.com/kaydelaney)
- **Loki Query Builder:** Fix bug parsing range params. [#61678](https://github.com/grafana/grafana/pull/61678), [@matyax](https://github.com/matyax)
- **MultiSelect:** Fix `actionMeta` not available in `onChange` callback. [#62339](https://github.com/grafana/grafana/pull/62339), [@svennergr](https://github.com/svennergr)
- **Navigation:** Fix finding the active nav item for plugins. [#62123](https://github.com/grafana/grafana/pull/62123), [@leventebalogh](https://github.com/leventebalogh)
- **PanelChrome:** Allow hovering on description when status error is visible. [#61757](https://github.com/grafana/grafana/pull/61757), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **PanelEditor:** Fixes issue where panel edit would show the panel plugin options of the previous edit panel. [#59861](https://github.com/grafana/grafana/pull/59861), [@torkelo](https://github.com/torkelo)
- **PublicDashboards:** Footer alignment fix for Firefox browser. [#62108](https://github.com/grafana/grafana/pull/62108), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Footer position fix. [#61954](https://github.com/grafana/grafana/pull/61954), [@juanicabanas](https://github.com/juanicabanas)
- **RBAC:** Fix DeleteUserPermissions not being called on Upsert org sync. [#60531](https://github.com/grafana/grafana/pull/60531), [@Jguer](https://github.com/Jguer)
- **RBAC:** Handle edge case where there is duplicated acl entries for a role on a single dashboard. [#58079](https://github.com/grafana/grafana/pull/58079), [@kalleep](https://github.com/kalleep)
- **Resource Query Cache:** Do not store 207 status codes. (Enterprise)
- **SAML:** Do not register SAML support bundle collector when SAML is disabled. (Enterprise)
- **SSE:** Fix math expression to support NoData results. [#61721](https://github.com/grafana/grafana/pull/61721), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Security:** Fix XSS in runbook URL. [#59540](https://github.com/grafana/grafana/pull/59540), [@dsotirakis](https://github.com/dsotirakis)
- **TimeSeries:** Better y-axis ticks for IEC units. [#59984](https://github.com/grafana/grafana/pull/59984), [@leeoniya](https://github.com/leeoniya)
- **TimeSeries:** Fix rendering when zooming to time ranges between datapoints. [#59444](https://github.com/grafana/grafana/pull/59444), [@leeoniya](https://github.com/leeoniya)
- **TimeSeries:** Fix y-axis Yes/No and On/Off boolean units. [#61207](https://github.com/grafana/grafana/pull/61207), [@leeoniya](https://github.com/leeoniya)
- **Traces:** Fix for multiple $\_\_tags in trace to metrics. [#59641](https://github.com/grafana/grafana/pull/59641), [@joey-grafana](https://github.com/joey-grafana)
- **Variables:** Allow user to filter values in dropdown using white space. [#60622](https://github.com/grafana/grafana/pull/60622), [@yusuf-multhan](https://github.com/yusuf-multhan)
### Breaking changes
Removes the non-functional feature toggle `influxdbBackendMigration`. InfluxDB is working %100 with server access mode. You can keep using your dashboards, and data sources as you have been using. This won't affect them. If you are upgrading from older versions of Grafana please be sure to check your dashboard config and check for warnings. Issue [#61308](https://github.com/grafana/grafana/issues/61308)
Removes support for "detected fields" in the details of a log line, however all supported interactions (filter, statistics, visibility) are now supported for all fields. If you are using Loki you can get those fields back by using a parser operation like `logfmt` or `json`.
Issue [#60448](https://github.com/grafana/grafana/issues/60448)
### Deprecations
In the elasticsearch data source, the "Raw document" display mode is deprecated. We recommend using the "Raw Data" mode instead. Issue [#62236](https://github.com/grafana/grafana/issues/62236)
Sentry frontend logging provider will be removed with next major version. Issue [#60165](https://github.com/grafana/grafana/issues/60165)
### Plugin development fixes & changes
- **FileDropzone:** Display max file size. [#62334](https://github.com/grafana/grafana/pull/62334), [@oscarkilhed](https://github.com/oscarkilhed)
- **Chore:** Bump d3-color to 3.1.0. [#61609](https://github.com/grafana/grafana/pull/61609), [@jackw](https://github.com/jackw)
- **UI/Alert:** Infer the `role` property based on the `severity`. [#61242](https://github.com/grafana/grafana/pull/61242), [@leventebalogh](https://github.com/leventebalogh)
- **PanelChrome:** Menu is wrapped in a render prop for full outside control. [#60537](https://github.com/grafana/grafana/pull/60537), [@polibb](https://github.com/polibb)
- **Toolkit:** Deprecate all plugin related commands. [#60290](https://github.com/grafana/grafana/pull/60290), [@academo](https://github.com/academo)
- **Grafana UI:** Add experimental InteractiveTable component. [#58223](https://github.com/grafana/grafana/pull/58223), [@Elfo404](https://github.com/Elfo404)
<!-- 9.4.0-beta1 END -->
<!-- 9.3.6 START -->
# 9.3.6 (2023-01-26)

View File

@@ -1,8 +1,8 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=alpine:3.15
ARG JS_IMAGE=node:18-alpine3.15
ARG GO_IMAGE=golang:1.19.4-alpine3.17
ARG BASE_IMAGE=alpine:3.17
ARG JS_IMAGE=node:18-alpine3.17
ARG GO_IMAGE=golang:1.20.4-alpine3.17
ARG GO_SRC=go-builder
ARG JS_SRC=js-builder
@@ -47,6 +47,7 @@ RUN go mod download && \
COPY embed.go Makefile build.go package.json ./
COPY cue.mod cue.mod
COPY kinds kinds
COPY local local
COPY packages/grafana-schema packages/grafana-schema
COPY public/app/plugins public/app/plugins
COPY public/api-spec.json public/api-spec.json
@@ -54,6 +55,7 @@ COPY pkg pkg
COPY scripts scripts
COPY conf conf
COPY .github .github
COPY LICENSE ./
RUN make build-go
@@ -97,7 +99,7 @@ RUN if grep -i -q alpine /etc/issue; then \
elif grep -i -q ubuntu /etc/issue; then \
DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y ca-certificates curl tzdata && \
apt-get install -y ca-certificates curl tzdata musl && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*; \
else \
@@ -106,11 +108,12 @@ RUN if grep -i -q alpine /etc/issue; then \
# glibc support for alpine x86_64 only
RUN if grep -i -q alpine /etc/issue && [ `arch` = "x86_64" ]; then \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk \
-O /tmp/glibc-2.35-r0.apk && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-bin-2.35-r0.apk \
-O /tmp/glibc-bin-2.35-r0.apk && \
apk add --no-cache --allow-untrusted /tmp/glibc-2.35-r0.apk /tmp/glibc-bin-2.35-r0.apk && \
apk add --force-overwrite --no-cache /tmp/glibc-2.35-r0.apk /tmp/glibc-bin-2.35-r0.apk && \
rm -f /lib64/ld-linux-x86-64.so.2 && \
ln -s /usr/glibc-compat/lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 && \
rm -f /tmp/glibc-2.35-r0.apk && \
@@ -151,6 +154,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=go-src /tmp/grafana/LICENSE ./
EXPOSE 3000

View File

@@ -173,7 +173,7 @@ build-docker-full-ubuntu: ## Build Docker image based on Ubuntu for development.
DOCKER_BUILDKIT=1 \
docker build \
--build-arg BASE_IMAGE=ubuntu:20.04 \
--build-arg GO_IMAGE=golang:1.19.4 \
--build-arg GO_IMAGE=golang:1.20.4 \
--tag grafana/grafana:dev-ubuntu .
##@ Services

View File

@@ -262,6 +262,9 @@ rudderstack_sdk_url =
# Rudderstack Config url, optional, used by Rudderstack SDK to fetch source config
rudderstack_config_url =
# Intercom secret, optional, used to hash user_id before passing to Intercom via Rudderstack
intercom_secret =
# Application Insights connection string. Specify an URL string to enable this feature.
application_insights_connection_string =
@@ -501,6 +504,9 @@ sigv4_verbose_logging = false
# Set to true to enable Azure authentication option for HTTP-based datasources
azure_auth_enabled = false
# Use email lookup in addition to the unique ID provided by the IdP
oauth_allow_insecure_email_lookup = false
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
@@ -532,6 +538,11 @@ allowed_organizations =
role_attribute_path =
role_attribute_strict = false
allow_assign_grafana_admin = false
skip_org_role_sync = false
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
#################################### GitLab Auth #########################
[auth.gitlab]
@@ -954,7 +965,8 @@ max_attempts = 3
min_interval = 10s
[unified_alerting.screenshots]
# Enable screenshots in notifications. This option requires the Grafana Image Renderer plugin.
# Enable screenshots in notifications. You must have either installed the Grafana image rendering
# plugin, or set up Grafana to use a remote rendering service.
# For more information on configuration options, refer to [rendering].
capture = false

View File

@@ -11,7 +11,7 @@ apiVersion: 1
# folder: my_first_folder
# # <duration, required> interval of the rule group evaluation
# interval: 60s
# # <list, required> list of rules that are part of the rule group
# # <list, required> list of rules that are part of the rule group
# rules:
# # <string, required> unique identifier for the rule
# - uid: my_id_1
@@ -23,7 +23,7 @@ apiVersion: 1
# # evaluation - should be obtained via the API
# data:
# - refId: A
# datasourceUid: "-100"
# datasourceUid: "__expr__"
# model:
# conditions:
# - evaluator:
@@ -40,7 +40,7 @@ apiVersion: 1
# type: query
# datasource:
# type: __expr__
# uid: "-100"
# uid: "__expr__"
# expression: 1==0
# intervalMs: 1000
# maxDataPoints: 43200
@@ -53,7 +53,7 @@ apiVersion: 1
# # <string> state of the alert rule when no data is returned
# # possible values: "NoData", "Alerting", "OK", default = NoData
# noDataState: Alerting
# # <string> state of the alert rule when the query execution
# # <string> state of the alert rule when the query execution
# # fails - possible values: "Error", "Alerting", "OK"
# # default = Alerting
# executionErrorState: Alerting
@@ -62,10 +62,11 @@ apiVersion: 1
# # <map<string, string>> map of strings to attach arbitrary custom data
# annotations:
# some_key: some_value
# # <map<string, string> map of strings to filter and
# # <map<string, string> map of strings to filter and
# # route alerts
# labels:
# team: sre_team_1
# isPaused: false
# # List of alert rule UIDs that should be deleted
# deleteRules:
@@ -103,7 +104,7 @@ apiVersion: 1
# # <list<string>> The labels by which incoming alerts are grouped together. For example,
# # multiple alerts coming in for cluster=A and alertname=LatencyHigh would
# # be batched into a single group.
# #
# #
# # To aggregate by all possible labels, use the special value '...' as
# # the sole label name, for example:
# # group_by: ['...']
@@ -127,7 +128,7 @@ apiVersion: 1
# mute_time_intervals:
# - abc
# # <duration> How long to initially wait to send a notification for a group
# # of alerts. Allows to collect more initial alerts for the same group.
# # of alerts. Allows to collect more initial alerts for the same group.
# # (Usually ~0s to few minutes), default = 30s
# group_wait: 30s
# # <duration> How long to wait before sending a notification about new alerts that
@@ -138,7 +139,7 @@ apiVersion: 1
# # been sent successfully for an alert. (Usually ~3h or more), default = 4h
# repeat_interval: 4h
# # <list> Zero or more child routes
# routes:
# routes:
# ...
# # List of orgIds that should be reset to the default policy

View File

@@ -269,6 +269,9 @@
# Rudderstack Config url, optional, used by Rudderstack SDK to fetch source config
;rudderstack_config_url =
# Intercom secret, optional, used to hash user_id before passing to Intercom via Rudderstack
;intercom_secret =
# Controls if the UI contains any links to user feedback forms
;feedback_links_enabled = true
@@ -413,7 +416,7 @@
# Set this value to automatically add new users to the provided organization (if auto_assign_org above is set to true)
;auto_assign_org_id = 1
# Default role new users will be automatically assigned (if disabled above is set to true)
# Default role new users will be automatically assigned (if auto_assign_org above is set to true)
;auto_assign_org_role = Viewer
# Require email validation before sign up completes
@@ -505,6 +508,9 @@
# Set to skip the organization role from JWT login and use system's role assignment instead.
; skip_org_role_sync = false
# Use email lookup in addition to the unique ID provided by the IdP
;oauth_allow_insecure_email_lookup = false
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
@@ -536,6 +542,7 @@
;role_attribute_path =
;role_attribute_strict = false
;allow_assign_grafana_admin = false
;skip_org_role_sync = false
#################################### GitLab Auth #########################
[auth.gitlab]

View File

@@ -13,7 +13,6 @@ The following checklist/summary should give you a quick overview of what to ask/
- Reviewed and approved?
- All checks passed?
- Proper pull request title?
- Milestone assigned?
- Add to changelog/release notes?
- Needs backporting?
@@ -40,10 +39,18 @@ See [formatting guidelines](create-pull-request.md#formatting-guidelines) for mo
### Assign a milestone
A milestone **should** be added to every pull request. 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).
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).
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.
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.
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 targetting `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 requestss should use the version of the target branch (e.g. `9.4.x` for the `v9.4.x` branch).
### 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 somewhat complete picture of what changes a Grafana release actually includes.
@@ -78,15 +85,15 @@ The changelog/release notes are divided into sections and here's a description o
**Features and enhancements:**
Milestone assigned and labeled 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:**
Milestone assigned and labeled with `add to changelog` and either labeled 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 & changes:**
Milestone assigned and labeled with `area/grafana/toolkit`, `area/grafana/ui` or `area/grafana/runtime`.
Labeled with `area/grafana/toolkit`, `area/grafana/ui` or `area/grafana/runtime`.
**Deprecations:**

View File

@@ -29,11 +29,12 @@ function Foo(props: FooProps) {
const styles = useStyles2(getStyles);
// Use styles with className
}
```
const getStyles = (theme: GrafanaTheme2) => css({
padding: theme.spacing(1,2)
});
const getStyles = (theme: GrafanaTheme2) =>
css({
padding: theme.spacing(1, 2),
});
```
#### Get the theme object

View File

@@ -5,8 +5,7 @@
"label": "gdev-testdata",
"description": "",
"type": "datasource",
"pluginId": "testdata",
"pluginName": "TestData DB"
"pluginId": "testdata"
}
],
"__requires": [
@@ -19,7 +18,7 @@
{
"type": "datasource",
"id": "testdata",
"name": "TestData DB",
"name": "TestData",
"version": "1.0.0"
},
{

View File

@@ -0,0 +1,326 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 116,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto",
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 10,
"x": 0,
"y": 0
},
"id": 2,
"options": {
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "9.4.0-pre",
"targets": [
{
"csvContent": "x,y1,y2\n1,8,12\n2,6,13\n3,7,9\n5,9,7\n6,5,9",
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Raw heatmap rows",
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"scaleDistribution": {
"type": "linear"
}
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 14,
"x": 10,
"y": 0
},
"id": 4,
"options": {
"calculate": false,
"cellGap": 1,
"color": {
"exponent": 0.5,
"fill": "dark-orange",
"mode": "scheme",
"reverse": false,
"scale": "exponential",
"scheme": "Oranges",
"steps": 64
},
"exemplars": {
"color": "rgba(255,0,255,0.7)"
},
"filterValues": {
"le": 1e-9
},
"legend": {
"show": true
},
"rowsFrame": {
"layout": "auto"
},
"tooltip": {
"show": true,
"yHistogram": false
},
"yAxis": {
"axisPlacement": "left",
"reverse": false
}
},
"pluginVersion": "9.4.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 2,
"refId": "A"
}
],
"title": "Row heatmap",
"type": "heatmap"
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto",
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 10,
"x": 0,
"y": 9
},
"id": 5,
"options": {
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "9.4.0-pre",
"targets": [
{
"csvContent": "x,y,count\n1,4,10\n1,6,11\n2,5,30\n2,4,22\n3,6,17",
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Raw heatmap cells",
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"fieldConfig": {
"defaults": {
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"scaleDistribution": {
"type": "linear"
}
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 14,
"x": 10,
"y": 9
},
"id": 6,
"options": {
"calculate": false,
"cellGap": 1,
"color": {
"exponent": 0.5,
"fill": "dark-orange",
"mode": "scheme",
"reverse": false,
"scale": "exponential",
"scheme": "Oranges",
"steps": 64
},
"exemplars": {
"color": "rgba(255,0,255,0.7)"
},
"filterValues": {
"le": 1e-9
},
"legend": {
"show": true
},
"rowsFrame": {
"layout": "auto"
},
"tooltip": {
"show": true,
"yHistogram": false
},
"yAxis": {
"axisPlacement": "left",
"reverse": false
}
},
"pluginVersion": "9.4.0-pre",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "-- Dashboard --"
},
"panelId": 5,
"refId": "A"
}
],
"title": "Cells heatmap",
"type": "heatmap"
}
],
"revision": 1,
"schemaVersion": 37,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Heatmap X axis",
"uid": "5Y0jv6pVz",
"version": 3,
"weekStart": ""
}

View File

@@ -1156,11 +1156,195 @@
],
"title": "Boolean On/Off",
"type": "timeseries"
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"log": 2,
"type": "log"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 150,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 0,
"y": 31
},
"id": 16,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90.5,30,5,0"
}
],
"title": "Ignore invalid min/max opts when log scale",
"type": "timeseries"
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"log": 2,
"type": "symlog"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 200,
"min": -15,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 8,
"y": 31
},
"id": 17,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90.5,30,5,0"
}
],
"title": "Neg min opt with symlog scale",
"type": "timeseries"
}
],
"refresh": false,
"refresh": "",
"revision": 1,
"schemaVersion": 37,
"schemaVersion": 38,
"style": "dark",
"tags": [
"gdev",
@@ -1191,6 +1375,6 @@
"timezone": "",
"title": "Panel Tests - Graph NG - Y axis ticks",
"uid": "29Yjn62Gk",
"version": 1,
"version": 13,
"weekStart": ""
}

View File

@@ -299,7 +299,10 @@
"revision": 1,
"schemaVersion": 37,
"style": "dark",
"tags": [],
"tags": [
"gdev",
"transform"
],
"templating": {
"list": []
},
@@ -309,7 +312,7 @@
},
"timepicker": {},
"timezone": "",
"title": "Test extractFields JSON",
"title": "Transforms - Test extractFields JSON",
"uid": "pD4vPYhVz",
"version": 3,
"weekStart": ""

View File

@@ -0,0 +1,171 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 1394,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"uid": "PD8C576611E62080A",
"type": "testdata"
},
"fieldConfig": {
"defaults": {
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"color": {
"mode": "thresholds"
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"targets": [
{
"scenarioId": "csv_content",
"refId": "A",
"datasource": {
"uid": "PD8C576611E62080A",
"type": "testdata"
},
"csvContent": "AAA\n1\n2\n3\n4"
},
{
"scenarioId": "csv_content",
"refId": "B",
"datasource": {
"uid": "PD8C576611E62080A",
"type": "testdata"
},
"csvContent": "BBB\n1\n2\n3\n4\n",
"hide": false
}
],
"title": "Transformer query filters",
"type": "table",
"transformations": [
{
"id": "reduce",
"options": {
"reducers": [
"min"
],
"mode": "reduceFields",
"includeTimeField": false
},
"filter": {
"id": "byRefId",
"options": "A"
}
},
{
"id": "reduce",
"options": {
"reducers": [
"max"
],
"mode": "reduceFields",
"includeTimeField": false
},
"filter": {
"id": "byRefId",
"options": "B"
}
},
{
"id": "concatenate",
"options": {}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"AAA": "Min from Query A",
"BBB": "Max from Query B"
}
}
}
],
"options": {
"showHeader": true,
"footer": {
"show": false,
"reducer": [
"sum"
],
"countRows": false,
"fields": ""
},
"frameIndex": 0
},
"pluginVersion": "9.4.0-pre"
}
],
"schemaVersion": 37,
"style": "dark",
"tags": [
"gdev",
"transform"
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Transforms - Filters",
"uid": "fGWBVW4k"
}

View File

@@ -624,7 +624,7 @@
},
"timepicker": {},
"timezone": "",
"title": "Join by field",
"title": "Transforms - Join by field",
"uid": "gw0K4rmVz",
"version": 6,
"weekStart": ""

View File

@@ -347,7 +347,7 @@
},
"timepicker": {},
"timezone": "",
"title": "Join by labels",
"title": "Transforms - Join by labels",
"uid": "FVl-9CR4z",
"version": 10,
"weekStart": ""

View File

@@ -521,7 +521,10 @@
],
"schemaVersion": 37,
"style": "dark",
"tags": ["devenv"],
"tags": [
"gdev",
"transform"
],
"templating": {
"list": []
},
@@ -531,6 +534,6 @@
},
"timepicker": {},
"timezone": "",
"title": "Reuse dashboard queries",
"title": "Transforms - Reuse dashboard queries",
"uid": "fYGWTVW4k"
}

View File

@@ -0,0 +1,12 @@
FROM golang:1.19
ADD webhook-listener.go /go/src/webhook/webhook-listener.go
WORKDIR /go/src/webhook
RUN mkdir /tmp/logs
RUN go build -o /bin webhook-listener.go
ENV PORT 8080
ENTRYPOINT [ "/bin/webhook-listener" ]

View File

@@ -32,7 +32,7 @@ services:
environment:
- VIRTUAL_HOST=prometheus.loc
ports:
- 909
- 9090
nginx-proxy:
image: jwilder/nginx-proxy
ports:
@@ -43,48 +43,53 @@ services:
db:
condition: service_healthy
grafana1:
image: grafana/grafana:dev
volumes:
- ./grafana/provisioning/:/etc/grafana/provisioning/
environment:
- VIRTUAL_HOST=grafana.loc
- GF_FEATURE_TOGGLES_ENABLE=ngalert
- GF_UNIFIED_ALERTING_HA_PEERS=ha-test-unified-alerting_grafana2_1:9094,ha-test-unified-alerting_grafana1_1:9094
- GF_SERVER_ROOT_URL=http://grafana.loc
- GF_DATABASE_NAME=grafana
- GF_DATABASE_USER=grafana
- GF_DATABASE_PASSWORD=password
- GF_DATABASE_TYPE=mysql
- GF_DATABASE_HOST=db:3306
- GF_DATABASE_MAX_OPEN_CONN=300
- GF_SESSION_PROVIDER=mysql
- GF_SESSION_PROVIDER_CONFIG=grafana:password@tcp(db:3306)/grafana?allowNativePasswords=true
extends:
file: ./grafana-service.yml
service: grafana
ports:
- 3010:3000
depends_on:
db:
condition: service_healthy
grafana2:
image: grafana/grafana:dev
volumes:
- ./grafana/provisioning/:/etc/grafana/provisioning/
environment:
- VIRTUAL_HOST=grafana.loc
- GF_FEATURE_TOGGLES_ENABLE=ngalert
- GF_UNIFIED_ALERTING_HA_PEERS=ha-test-unified-alerting_grafana2_1:9094,ha-test-unified-alerting_grafana1_1:9094
- GF_SERVER_ROOT_URL=http://grafana.loc
- GF_DATABASE_NAME=grafana
- GF_DATABASE_USER=grafana
- GF_DATABASE_PASSWORD=password
- GF_DATABASE_TYPE=mysql
- GF_DATABASE_HOST=db:3306
- GF_DATABASE_MAX_OPEN_CONN=300
- GF_SESSION_PROVIDER=mysql
- GF_SESSION_PROVIDER_CONFIG=grafana:password@tcp(db:3306)/grafana?allowNativePasswords=true
extends:
file: ./grafana-service.yml
service: grafana
ports:
- 3020:3000
depends_on:
db:
condition: service_healthy
grafana1:
condition: service_healthy
grafana3:
extends:
file: ./grafana-service.yml
service: grafana
ports:
- 3030:3000
depends_on:
db:
condition: service_healthy
grafana2:
condition: service_healthy
grafana4:
extends:
file: ./grafana-service.yml
service: grafana
ports:
- 3040:3000
depends_on:
db:
condition: service_healthy
grafana3:
condition: service_healthy
webhook:
image: webhook-receiver
build:
context: .
dockerfile: Dockerfile
ports:
- "18081:8080"
volumes:
- "./logs/webhook:/tmp/logs:rw"

View File

@@ -0,0 +1,23 @@
services:
grafana:
image: grafana/grafana-dev:3a22eba17f23b18faa27436ab2f9c3ea977b550b
volumes:
- ./grafana/provisioning/:/etc/grafana/provisioning/
environment:
- VIRTUAL_HOST=grafana.loc
- GF_FEATURE_TOGGLES_ENABLE=ngalert
- GF_UNIFIED_ALERTING_HA_PEERS=ha-test-unified-alerting-grafana2-1:9094,ha-test-unified-alerting-grafana1-1:9094,ha-test-unified-alerting-grafana3-1:9094,ha-test-unified-alerting-grafana4-1:9094
- GF_SERVER_ROOT_URL=http://grafana.loc
- GF_DATABASE_NAME=grafana
- GF_DATABASE_USER=grafana
- GF_DATABASE_PASSWORD=password
- GF_DATABASE_TYPE=mysql
- GF_DATABASE_HOST=db:3306
- GF_DATABASE_MAX_OPEN_CONN=300
- GF_SESSION_PROVIDER=mysql
- GF_SESSION_PROVIDER_CONFIG=grafana:password@tcp(db:3306)/grafana?allowNativePasswords=true
healthcheck:
test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/3000' || exit 1
interval: 5s
timeout: 15s
retries: 3

View File

@@ -0,0 +1,181 @@
package main
import (
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"log"
"net/http"
"os"
"path"
"path/filepath"
"sync"
"time"
)
var (
fingerprints = make(Fingerprints)
mu sync.Mutex
waitSeconds int
logFile bool
logFileName = filepath.Join(os.TempDir(), "/logs/webhook-listener.log")
dumpDir = filepath.Join(os.TempDir(), "/logs/dumps")
)
type Alert struct {
Fingerprint string `json:"fingerprint"`
StartsAt time.Time `json:"startsAt"`
Status string `json:"status"`
}
type Data struct {
Receiver string `json:"receiver"`
Status string `json:"status"`
Alerts []Alert `json:"alerts"`
}
// Fingerprints keeps track of the number of alerts received
// by fingerprint and StartsAt time.
type Fingerprints map[string]map[time.Time]tracker
type tracker struct {
Updates int `json:"updates"`
Statuses []string `json:"statuses"`
}
func updateFingerprints(v Data) {
mu.Lock()
defer mu.Unlock()
for _, alert := range v.Alerts {
m, ok := fingerprints[alert.Fingerprint]
if !ok {
m = make(map[time.Time]tracker)
}
t, ok := m[alert.StartsAt]
if !ok {
t = tracker{
Updates: 0,
Statuses: []string{},
}
}
t.Updates += 1
t.Statuses = append(t.Statuses, alert.Status)
m[alert.StartsAt] = t
fingerprints[alert.Fingerprint] = m
}
}
func parseFlags() {
flag.BoolVar(&logFile, "log-file", true, "Whether to log to file")
flag.IntVar(&waitSeconds, "wait-seconds", 0, "The number of seconds to wait before sending an HTTP response")
flag.Parse()
}
func saveDump(data []byte) {
if !logFile {
return
}
if len(data) == 0 {
fmt.Println("empty dump - not saving")
return
}
ts := time.Now().UnixNano()
name := path.Join(dumpDir, fmt.Sprintf("%d.json", ts))
for i := 1; i <= 1000; i++ {
if _, err := os.Stat(name); os.IsNotExist(err) {
break
}
name = path.Join(dumpDir, fmt.Sprintf("%d_%04d.json", ts, i))
}
log.Printf("saving dump to %s", name)
err := os.WriteFile(name, data, os.ModePerm)
if err != nil {
log.Printf("cannot save to file %s: %s\n", name, err)
}
}
func main() {
parseFlags()
_, err := os.Stat(dumpDir)
if os.IsNotExist(err) {
err = os.MkdirAll(dumpDir, os.ModePerm)
if err != nil {
log.Panicf("can't create directory '%s'", dumpDir)
}
}
if logFile {
//create your file with desired read/write permissions
f, err := os.OpenFile(logFileName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
if err != nil {
log.Fatal(err)
}
defer f.Close()
log.SetOutput(f)
}
waitDuration := time.Duration(waitSeconds) * time.Second
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
writer.WriteHeader(http.StatusOK)
writer.Write([]byte(landingPage))
})
http.HandleFunc("/listen", func(w http.ResponseWriter, r *http.Request) {
log.Printf("got submission from: %s\n", r.RemoteAddr)
b, err := ioutil.ReadAll(r.Body)
if err != nil {
log.Println(err)
w.WriteHeader(http.StatusBadRequest)
return
}
saveDump(b)
v := Data{}
if err := json.Unmarshal(b, &v); err != nil {
log.Println(err)
w.WriteHeader(http.StatusBadRequest)
return
}
fmt.Printf("receiver: %s, status: %s\n", v.Receiver, v.Status)
updateFingerprints(v)
<-time.After(waitDuration)
})
http.HandleFunc("/fingerprints", func(w http.ResponseWriter, r *http.Request) {
b, err := func() ([]byte, error) {
mu.Lock()
defer mu.Unlock()
return json.Marshal(fingerprints)
}()
if err != nil {
log.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Header().Add("Content-Type", "application/json")
w.Write(b)
})
log.Println("Listening")
log.Printf("Wait Duration %v\n", waitDuration)
http.ListenAndServe("0.0.0.0:8080", nil)
}
const landingPage = `
<!doctype html>
<html>
<head>
<title>Webhook listener</title>
</head>
<body>
<h1>Webhook Listener<h1>
<p> For setup, please point your webhook configuration to the "/listen" endpoint. </p>
<p> For debugging, please use the "/fingerprints" endpoint. </p>
</body>
</html>
`

View File

@@ -184,6 +184,13 @@ local dashboard = grafana.dashboard;
id: 0,
}
},
dashboard.new('filter', import '../dev-dashboards/transforms/filter.json') +
resource.addMetadata('folder', 'dev-dashboards') +
{
spec+: {
id: 0,
}
},
dashboard.new('gauge-multi-series', import '../dev-dashboards/panel-gauge/gauge-multi-series.json') +
resource.addMetadata('folder', 'dev-dashboards') +
{
@@ -296,6 +303,13 @@ local dashboard = grafana.dashboard;
id: 0,
}
},
dashboard.new('heatmap-x', import '../dev-dashboards/panel-heatmap/heatmap-x.json') +
resource.addMetadata('folder', 'dev-dashboards') +
{
spec+: {
id: 0,
}
},
dashboard.new('histogram_tests', import '../dev-dashboards/panel-histogram/histogram_tests.json') +
resource.addMetadata('folder', 'dev-dashboards') +
{

View File

@@ -1,28 +1,8 @@
.PHONY: pull docs docs-quick docs-no-pull docs-test docs-local-static
.ONESHELL:
.DELETE_ON_ERROR:
export SHELL := bash
export SHELLOPTS := pipefail:errexit
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rule
PODMAN = $(shell if command -v podman &>/dev/null; then echo podman; else echo docker; fi)
IMAGE = grafana/docs-base:latest
CONTENT_PATH = /hugo/content/docs/grafana/next
LOCAL_STATIC_PATH = ../../website/static
PORT = 3002:3002
pull:
$(PODMAN) pull $(IMAGE)
docs: pull
$(PODMAN) run -v $(shell pwd)/sources:$(CONTENT_PATH):Z -p $(PORT) --rm -it $(IMAGE) /bin/bash -c "make server"
docs-preview: pull
$(PODMAN) run -v $(shell pwd)/sources:$(CONTENT_PATH):Z -p $(PORT) --rm -it $(IMAGE) /bin/bash -c "make server BUILD_DRAFTS=true"
docs-no-pull:
$(PODMAN) run -v $(shell pwd)/sources:$(CONTENT_PATH):Z -p $(PORT) --rm -it $(IMAGE) /bin/bash -c "make server"
docs-test: pull
$(PODMAN) run -v $(shell pwd)/sources:$(CONTENT_PATH):Z --rm -it $(IMAGE) /bin/bash -c 'make prod'
# expects that you have grafana/website checked out in same path as the grafana repo.
docs-local-static: pull
if [ ! -d "$(LOCAL_STATIC_PATH)" ]; then echo "local path (website project) $(LOCAL_STATIC_PATH) not found"]; exit 1; fi
$(PODMAN) run -v $(shell pwd)/sources:$(CONTENT_PATH):Z \
-v $(shell pwd)/$(LOCAL_STATIC_PATH):/hugo/static:Z -p $(PORT) --rm -it $(IMAGE)
include docs.mk

View File

@@ -1,16 +1,21 @@
# Building the docs locally
When you contribute to documentation, it is a good practice to build the docs on your local machine to make sure your changes appear as you expect. This README explains the process for doing that.
When you contribute to documentation, it's a good practice to build the docs on your local machine to make sure your changes appear as you expect. This README explains the process for doing that.
To build a local version, you need to run a process in a Docker container.
Grafana periodically updates the Docker image, [`docs-base`](https://hub.docker.com/r/grafana/docs-base), to update the styling of the Docs.
## Requirements
Docker >= 2.1.0.3
Yarn >= 1.22.4
- Docker >= 2.1.0.3
- Yarn >= 1.22.4
## Build the doc site
First, make sure the Docker daemon is running on your machine. Then, follow these steps:
1. On the command line, first change to the docs folder: `cd docs`.
1. Run `make docs`. This launches a preview of the website with the current grafana docs at `http://localhost:3002/docs/grafana/next/` which will refresh automatically when changes are made to content in the `sources` directory.
1. Run `make docs`. This launches a preview of the website with the current grafana docs at `http://localhost:3002/docs/grafana/latest/` which will refresh automatically when changes are made to content in the `sources` directory.
If you have the grafana/website repo checked out in the same directory as the grafana repo, then you can run `make docs-local-static` to use local assets (such as images).
@@ -52,7 +57,7 @@ To specify different menu text from the page title, use the front matter paramet
### Add images
Images are currently hosted in the grafana/website repo.
Please see our help documentation on [Image, diagram, and screenshot guidelines](https://grafana.com/docs/writers-toolkit/writing-guide/image-guidelines/) for comprehensive information.
---

117
docs/docs.mk Normal file
View File

@@ -0,0 +1,117 @@
# The source of this file is https://raw.githubusercontent.com/grafana/writers-toolkit/main/docs/docs.mk.
# 4.0.0 (2023-06-06)
include variables.mk
-include variables.mk.local
.ONESHELL:
.DELETE_ON_ERROR:
export SHELL := bash
export SHELLOPTS := pipefail:errexit
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rule
.DEFAULT_GOAL: help
# Adapted from https://www.thapaliya.com/en/writings/well-documented-makefiles/
.PHONY: help
help: ## Display this help.
help:
@awk 'BEGIN { \
FS = ": ##"; \
printf "Usage:\n make <target>\n\nTargets:\n" \
} \
/^[a-zA-Z0-9_\.\-\/%]+: ##/ { printf " %-15s %s\n", $$1, $$2 }' \
$(MAKEFILE_LIST)
GIT_ROOT := $(shell git rev-parse --show-toplevel)
PODMAN := $(shell if command -v podman >/dev/null 2>&1; then echo podman; else echo docker; fi)
ifeq ($(PROJECTS),)
$(error "PROJECTS variable must be defined in variables.mk")
endif
# First project is considered the primary one used for doc-validator.
PRIMARY_PROJECT := $(subst /,-,$(firstword $(subst :, ,$(firstword $(PROJECTS)))))
# Name for the container.
ifeq ($(origin DOCS_CONTAINER), undefined)
export DOCS_CONTAINER := $(PRIMARY_PROJECT)-docs
endif
# Host port to publish container port to.
ifeq ($(origin DOCS_HOST_PORT), undefined)
export DOCS_HOST_PORT := 3002
endif
# Container image used to perform Hugo build.
ifeq ($(origin DOCS_IMAGE), undefined)
export DOCS_IMAGE := grafana/docs-base:latest
endif
# Container image used for doc-validator linting.
ifeq ($(origin DOC_VALIDATOR_IMAGE), undefined)
export DOC_VALIDATOR_IMAGE := grafana/doc-validator:latest
endif
# Container image used for vale linting.
ifeq ($(origin VALE_IMAGE), undefined)
export VALE_IMAGE := grafana/vale:latest
endif
# PATH-like list of directories within which to find projects.
# If all projects are checked out into the same directory, ~/repos/ for example, then the default should work.
ifeq ($(origin REPOS_PATH), undefined)
export REPOS_PATH := $(realpath $(GIT_ROOT)/..)
endif
# How to treat Hugo relref errors.
ifeq ($(origin HUGO_REFLINKSERRORLEVEL), undefined)
export HUGO_REFLINKSERRORLEVEL := WARNING
endif
.PHONY: docs-rm
docs-rm: ## Remove the docs container.
$(PODMAN) rm -f $(DOCS_CONTAINER)
.PHONY: docs-pull
docs-pull: ## Pull documentation base image.
$(PODMAN) pull -q $(DOCS_IMAGE)
make-docs: ## Fetch the latest make-docs script.
make-docs:
if [[ ! -f "$(PWD)/make-docs" ]]; then
echo 'WARN: No make-docs script found in the working directory. Run `make update` to download it.' >&2
exit 1
fi
.PHONY: docs
docs: ## Serve documentation locally, which includes pulling the latest `DOCS_IMAGE` (default: `grafana/docs-base:latest`) container image. See also `docs-no-pull`.
docs: docs-pull make-docs
$(PWD)/make-docs $(PROJECTS)
.PHONY: docs-no-pull
docs-no-pull: ## Serve documentation locally without pulling the `DOCS_IMAGE` (default: `grafana/docs-base:latest`) container image.
docs-no-pull: make-docs
$(PWD)/make-docs $(PROJECTS)
.PHONY: docs-debug
docs-debug: ## Run Hugo web server with debugging enabled. TODO: support all SERVER_FLAGS defined in website Makefile.
docs-debug: make-docs
WEBSITE_EXEC='hugo server --bind 0.0.0.0 --port 3002 --debug' $(PWD)/make-docs $(PROJECTS)
.PHONY: doc-validator
doc-validator: ## Run doc-validator on the entire docs folder.
doc-validator: make-docs
DOCS_IMAGE=$(DOC_VALIDATOR_IMAGE) $(PWD)/make-docs $(PROJECTS)
.PHONY: vale
vale: ## Run vale on the entire docs folder.
vale: make-docs
DOCS_IMAGE=$(VALE_IMAGE) $(PWD)/make-docs $(PROJECTS)
.PHONY: update
update: ## Fetch the latest version of this Makefile and the `make-docs` script from Writers' Toolkit.
curl -s -LO https://raw.githubusercontent.com/grafana/writers-toolkit/main/docs/docs.mk
curl -s -LO https://raw.githubusercontent.com/grafana/writers-toolkit/main/docs/make-docs
chmod +x make-docs

515
docs/make-docs Executable file
View File

@@ -0,0 +1,515 @@
#!/bin/sh
# The source of this file is https://raw.githubusercontent.com/grafana/writers-toolkit/main/docs/make-docs.
# 4.1.0 (2023-06-16)
set -ef
readonly DOCS_CONTAINER="${DOCS_CONTAINER:-make-docs}"
readonly DOCS_HOST_PORT="${DOCS_HOST_PORT:-3002}"
readonly DOCS_IMAGE="${DOCS_IMAGE:-grafana/docs-base:latest}"
readonly DOC_VALIDATOR_INCLUDE="${DOC_VALIDATOR_INCLUDE:-.+\.md$}"
readonly DOC_VALIDATOR_SKIP_CHECKS="${DOC_VALIDATOR_SKIP_CHECKS:-^image-}"
readonly HUGO_REFLINKSERRORLEVEL="${HUGO_REFLINKSERRORLEVEL:-WARNING}"
readonly VALE_MINALERTLEVEL="${VALE_MINALERTLEVEL:-error}"
readonly WEBSITE_EXEC="${WEBSITE_EXEC:-make server-docs}"
# If set, the docs-base image will run a prebuild script that sets up Hugo mounts.
readonly WEBSITE_MOUNTS="${WEBSITE_MOUNTS:-}"
PODMAN="$(if command -v podman >/dev/null 2>&1; then echo podman; else echo docker; fi)"
if ! command -v curl >/dev/null 2>&1; then
if ! command -v wget >/dev/null 2>&1; then
errr 'either `curl` or `wget` must be installed for this script to work.'
exit 1
fi
fi
if ! command -v "${PODMAN}" >/dev/null 2>&1; then
errr 'either `podman` or `docker` must be installed for this script to work.'
exit 1
fi
about() {
cat <<EOF
Test documentation locally with multiple source repositories.
The REPOS_PATH environment variable is a colon (:) separated list of paths in which to look for project repositories.
EOF
}
usage() {
cat <<EOF
Usage:
REPOS_PATH=<PATH[:<PATH>...]> $0 [<PROJECT>[:<VERSION>[:<REPO>[:<DIR>]]]...]
Examples:
REPOS_PATH=~/ext/grafana/ $0 writers-toolkit tempo:latest helm-charts/mimir-distributed:latest:mimir:docs/sources/mimir-distributed
EOF
}
if [ $# -lt 1 ]; then
cat <<EOF >&2
ERRR: arguments required but not supplied.
$(about)
$(usage)
EOF
exit 1
fi
readonly REPOS_PATH="${REPOS_PATH:-$(realpath "$(git rev-parse --show-toplevel)/..")}"
if [ -z "${REPOS_PATH}" ]; then
cat <<EOF >&2
ERRR: REPOS_PATH environment variable is required but has not been provided.
$(usage)
EOF
exit 1
fi
SOURCES_as_code='as-code-docs'
SOURCES_enterprise_metrics='backend-enterprise'
SOURCES_enterprise_metrics_='backend-enterprise'
SOURCES_grafana_cloud='website'
SOURCES_grafana_cloud_k6='k6-docs'
SOURCES_grafana_cloud_data_configuration_integrations='cloud-onboarding'
SOURCES_grafana_cloud_frontend_observability_faro_web_sdk='faro-web-sdk'
SOURCES_grafana_cloud_machine_learning='machine-learning'
SOURCES_helm_charts_mimir_distributed='mimir'
SOURCES_helm_charts_tempo_distributed='tempo'
SOURCES_opentelemetry='opentelemetry-docs'
VERSIONS_as_code='UNVERSIONED'
VERSIONS_grafana_cloud='UNVERSIONED'
VERSIONS_grafana_cloud_k6='UNVERSIONED'
VERSIONS_grafana_cloud_data_configuration_integrations='UNVERSIONED'
VERSIONS_grafana_cloud_frontend_observability_faro_web_sdk='UNVERSIONED'
VERSIONS_grafana_cloud_machine_learning='UNVERSIONED'
VERSIONS_opentelemetry='UNVERSIONED'
VERSIONS_technical_documentation='UNVERSIONED'
VERSIONS_website='UNVERSIONED'
VERSIONS_writers_toolkit='UNVERSIONED'
PATHS_grafana_cloud='content/docs/grafana-cloud'
PATHS_helm_charts_mimir_distributed='docs/sources/helm-charts/mimir-distributed'
PATHS_helm_charts_tempo_distributed='docs/sources/helm-charts/tempo-distributed'
PATHS_mimir='docs/sources/mimir'
PATHS_tempo='docs/sources/tempo'
PATHS_website='content/docs'
# identifier STR
# Replace characters that are not valid in an identifier with underscores.
identifier() {
echo "$1" | tr -C '[:alnum:]_\n' '_'
}
# aget ARRAY KEY
# Get the value of KEY from associative array ARRAY.
# Characters that are not valid in an identifier are replaced with underscores.
aget() {
eval echo '$'"$(identifier "$1")_$(identifier "$2")"
}
# new_proj populates a new project structure.
new_proj() {
_project="$1"
_version="$2"
_repo="$3"
_path="$4"
# If version is not set, use the script mapping of project to default versions if it exists.
# Fallback to 'latest'.
if [ -z "${_version}" ]; then
if [ -z "$(aget VERSIONS "${_project}")" ]; then
_version=latest
else
_version="$(aget VERSIONS "${_project}")"
fi
fi
# If repo is not set, use the script mapping of project to repo name if it exists.
# Fallback to using the project name.
if [ -z "${_repo}" ]; then
if [ -z "$(aget SOURCES "${_project}")" ]; then
_repo="${_project}"
else
_repo="$(aget SOURCES "${_project}")"
fi
fi
# If path is not set, use the script mapping of project to docs sources path if it exists.
# Fallback to using 'docs/sources'.
if [ -z "${_path}" ]; then
if [ -z "$(aget PATHS "${_project}")" ]; then
_path="docs/sources"
else
_path="$(aget PATHS "${_project}")"
fi
fi
echo "${_project}:${_version}:${_repo}:${_path}"
unset _project _version _repo _path
}
# proj_url returns the webserver URL for a project.
# It expects a complete project structure as input.
proj_url() {
IFS=: read -r _project _version _ _ <<POSIX_HERESTRING
$1
POSIX_HERESTRING
if [ "${_project}" = 'website' ]; then
echo "http://localhost:${DOCS_HOST_PORT}/docs/"
unset _project _version
return
fi
if [ -z "${_version}" ] || [ "${_version}" = 'UNVERSIONED' ]; then
echo "http://localhost:${DOCS_HOST_PORT}/docs/${_project}/"
else
echo "http://localhost:${DOCS_HOST_PORT}/docs/${_project}/${_version}/"
fi
unset _project _version
}
# proj_ver returns the version for a project.
# It expects a complete project structure as input.
proj_ver() {
IFS=: read -r _ _ver _ _ <<POSIX_HERESTRING
$1
POSIX_HERESTRING
echo "${_ver}"
unset _ver
}
# proj_dst returns the container path to content source for a project.
# It expects a complete project structure as input.
proj_dst() {
IFS=: read -r _project _version _ _ <<POSIX_HERESTRING
$1
POSIX_HERESTRING
if [ "${_project}" = 'website' ]; then
echo '/hugo/content/docs'
unset _project _version
return
fi
if [ -z "${_version}" ] || [ "${_version}" = 'UNVERSIONED' ]; then
echo "/hugo/content/docs/${_project}"
else
echo "/hugo/content/docs/${_project}/${_version}"
fi
unset _project _version
}
# repo_path returns the host path to the project repository.
# It looks for the provided repository name in each of the paths specified in the REPOS_PATH environment variable.
repo_path() {
_repo="$1"
IFS=:
for lookup in ${REPOS_PATH}; do
if [ -d "${lookup}/${_repo}" ]; then
echo "${lookup}/${_repo}"
unset _path _repo
return
fi
done
unset IFS
errr "could not find project '${_repo}' in any of the paths in REPOS_PATH '${REPOS_PATH}'."
note "you must have a checkout of the project '${_repo}' at '${REPOS_PATH##:*}/${_repo}'."
note "if you have cloned the repository into a directory with a different name, consider changing it to ${_repo}."
unset _repo
exit 1
}
# proj_src returns the host path to content source for a project.
# It expects a complete project structure as input.
# It looks for the provided repository name in each of the paths specified in the REPOS_PATH environment variable.
proj_src() {
IFS=: read -r _ _ _repo _path <<POSIX_HERESTRING
$1
POSIX_HERESTRING
_repo="$(repo_path "${_repo}")"
echo "${_repo}/${_path}"
unset _path _repo
}
# proj_canonical returns the canonical absolute path partial URI for a project.
# It expects a complete project structure as input.
proj_canonical() {
IFS=: read -r _project _version _ _ <<POSIX_HERESTRING
$1
POSIX_HERESTRING
if [ "${_project}" = 'website' ]; then
echo '/docs'
unset _project _version
return
fi
if [ -z "${_version}" ] || [ "${_version}" = 'UNVERSIONED' ]; then
echo "/docs/${_project}"
else
echo "/docs/${_project}/${_version}"
fi
unset _project _version
}
proj_to_url_src_dst_ver() {
_url="$(proj_url "$1")"
_src="$(proj_src "$1")"
_dst="$(proj_dst "$1")"
_ver="$(proj_ver "$1")"
echo "${_url}^${_src}^${_dst}^${_ver}"
unset _url _src _dst _ver
}
url_src_dst_vers() {
for arg in "$@"; do
IFS=: read -r _project _version _repo _path <<POSIX_HERESTRING
$arg
POSIX_HERESTRING
case "${_project}" in
# Workaround for arbitrary mounts where the version field is expected to be the local directory
# and the repo field is expected to be the container directory.
arbitrary)
echo "${_project}^${_version}^${_repo}^" # TODO
;;
logs)
proj_to_url_src_dst_ver "$(new_proj loki "${_version}")"
proj_to_url_src_dst_ver "$(new_proj enterprise-logs "${_version}")"
;;
metrics)
proj_to_url_src_dst_ver "$(new_proj mimir "${_version}")"
proj_to_url_src_dst_ver "$(new_proj helm-charts/mimir-distributed "${_version}")"
proj_to_url_src_dst_ver "$(new_proj enterprise-metrics "${_version}")"
;;
traces)
proj_to_url_src_dst_ver "$(new_proj tempo "${_version}")"
proj_to_url_src_dst_ver "$(new_proj enterprise-traces "${_version}")"
;;
*)
proj_to_url_src_dst_ver "$(new_proj "${_project}" "${_version}" "${_repo}" "${_path}")"
;;
esac
done
unset _project _version _repo _path
}
await_build() {
url="$1"
req="$(if command -v curl >/dev/null 2>&1; then echo 'curl -s -o /dev/null'; else echo 'wget -q'; fi)"
sleep 2
if ${req} "${url}"; then
echo
echo "View documentation locally:"
for x in ${url_src_dst_vers}; do
IFS='^' read -r url _ _ <<POSIX_HERESTRING
$x
POSIX_HERESTRING
if [ -n "${url}" ]; then
if [ "${_url}" != "arbitrary" ]; then
echo " ${url}"
fi
fi
done
echo
echo 'Press Ctrl+C to stop the server'
else
echo
errr 'The build was interrupted or a build error occurred, check the previous logs for possible causes.'
fi
unset url req
}
debg() {
if [ -n "${DEBUG}" ]; then
echo "DEBG: $1" >&2
fi
}
errr() {
echo "ERRR: $1" >&2
}
note() {
echo "NOTE: $1" >&2
}
url_src_dst_vers="$(url_src_dst_vers "$@")"
volumes=""
redirects=""
for arg in "$@"; do
IFS=: read -r _project _ _repo _ <<POSIX_HERESTRING
${arg}
POSIX_HERESTRING
if [ "${_project}" = website ]; then
_repo="$(repo_path website)"
volumes="--volume=${_repo}/config:/hugo/config"
volumes="${volumes} --volume=${_repo}/layouts/partials:/hugo/layouts/partials"
volumes="${volumes} --volume=${_repo}/layouts/shortcodes:/hugo/layouts/shortcodes"
fi
unset _project _repo
done
for x in ${url_src_dst_vers}; do
IFS='^' read -r _url _src _dst _ver <<POSIX_HERESTRING
$x
POSIX_HERESTRING
if [ "${_url}" != "arbitrary" ]; then
if [ ! -f "${_src}/_index.md" ]; then
errr "Index file '${_src}/_index.md' does not exist."
note "Is '${_src}' the correct source directory?"
exit 1
fi
fi
debg "DEBG: Mounting '${_src}' at container path '${_dst}'"
if [ -z "${volumes}" ]; then
volumes="--volume=${_src}:${_dst}"
else
volumes="${volumes} --volume=${_src}:${_dst}"
fi
if [ -n "${_ver}" ] && [ "${_ver}" != 'UNVERSIONED' ]; then
if [ -z "${redirects}" ]; then
redirects="${_dst}^${_ver}"
else
redirects="${redirects} ${_dst}^${_ver}"
fi
fi
unset _url _src _dst _ver
done
IFS=':' read -r image _ <<POSIX_HERESTRING
${DOCS_IMAGE}
POSIX_HERESTRING
case "${image}" in
'grafana/doc-validator')
proj="$(new_proj "$1")"
echo
"${PODMAN}" run \
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
"--include=${DOC_VALIDATOR_INCLUDE}" \
"--skip-checks=${DOC_VALIDATOR_SKIP_CHECKS}" \
/hugo/content/docs \
"$(proj_canonical "${proj}")" | sed "s#$(proj_dst "${proj}")#sources#"
;;
'grafana/vale')
proj="$(new_proj "$1")"
echo
"${PODMAN}" run \
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
"--minAlertLevel=${VALE_MINALERTLEVEL}" \
--config=/etc/vale/.vale.ini \
--output=line \
/hugo/content/docs | sed "s#$(proj_dst "${proj}")#sources#"
;;
*)
tempfile="$(mktemp -t make-docs.XXX)"
cat <<EOF >"${tempfile}"
#!/usr/bin/env bash
for redirect in ${redirects}; do
IFS='^' read -r path ver <<<"\${redirect}"
echo -e "---\\nredirectURL: \"\${path/\/hugo\/content/}\"\\ntype: redirect\\nversioned: true\\n---\\n" > "\${path/\${ver}/_index.md}"
done
for x in "${url_src_dst_vers}"; do
IFS='^' read -r _ _ dst _ <<<"\${x}"
while [[ -n "\${dst}" ]]; do
touch "\${dst}/_index.md"
dst="\${dst%/*}"
done
done
if [[ -n "${WEBSITE_MOUNTS}" ]]; then
unset WEBSITE_SKIP_MOUNTS
fi
${WEBSITE_EXEC}
EOF
chmod +x "${tempfile}"
volumes="${volumes} --volume=$(realpath "${tempfile}"):/entrypoint"
readonly volumes
IFS='' read -r cmd <<EOF
${PODMAN} run \
--env=HUGO_REFLINKSERRORLEVEL=${HUGO_REFLINKSERRORLEVEL} \
--init \
--interactive \
--name=${DOCS_CONTAINER} \
--platform=linux/amd64 \
--publish=${DOCS_HOST_PORT}:3002 \
--publish=3003:3003 \
--rm \
--tty \
${volumes} \
${DOCS_IMAGE} \
/entrypoint
EOF
await_build http://localhost:3002 &
if [ -n "${DEBUG}" ]; then
${cmd}
else
${cmd} 2>&1| sed \
-e '/Web Server is available at http:\/\/localhost:3003\/ (bind address 0.0.0.0)/ d' \
-e '/^hugo server/ d' \
-e '/fatal: not a git repository (or any parent up to mount point \/)/ d' \
-e '/Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)./ d' \
-e "/Makefile:[0-9]*: warning: overriding recipe for target 'docs'/ d" \
-e "/docs.mk:[0-9]*: warning: ignoring old recipe for target 'docs'/ d" \
-e '/\/usr\/bin\/make -j 2 proxy hserver-docs HUGO_PORT=3003/ d' \
-e '/website-proxy/ d' \
-e '/rm -rf dist*/ d' \
-e '/Press Ctrl+C to stop/ d' \
-e '/make/ d' || echo
fi
;;
esac

View File

@@ -40,7 +40,7 @@ title: Grafana documentation
</div>
<h5>Grafana Cloud</h5>
</a>
<a href="https://grafana.com/grafana/download" class="nav-cards__item nav-cards__item--install">
<a href="https://grafana.com/grafana/nightly?edition=oss" class="nav-cards__item nav-cards__item--install">
<div class="nav-cards__icon fa fa-moon-o">
</div>
<h5>Nightly builds</h5>
@@ -70,8 +70,8 @@ title: Grafana documentation
<h4>Provisioning</h4>
<p>Learn how to automate your Grafana configuration.</p>
</a>
<a href="{{< relref "whatsnew/whats-new-in-v9-2/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v9.2</h4>
<a href="{{< relref "whatsnew/whats-new-in-v9-4/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v9.4</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>

View File

@@ -1,4 +1,10 @@
---
cascade:
labels:
products:
- cloud
- enterprise
- oss
description: Administration
title: Administration
weight: 40

View File

@@ -79,10 +79,12 @@ After you have enabled permissions for a data source you can assign query permis
**Assign query permission to users and teams:**
1. Navigate to **Configuration > Data Sources**.
1. Select the data source you want to assign query permissions for.
1. On the Permissions tab, click **Add Permission**.
1. Select **Team** or **User**.
1. Select the entity you want to allow query access and then click **Save**.
1. Select the data source you want to assign query permissions to.
1. On the **Permissions** tab, click **Add Permission**.
1. Select **Team**, **User**, or **Role**.
1. Select the entity you want to modify permissions for.
1. Select the **Query** or **Edit** permission.
1. Click **Save**.
<div class="clearfix"></div>

View File

@@ -8,6 +8,10 @@ aliases:
- ../enterprise/license/license-expiration/
- ../enterprise/license/license-restrictions/
- license-restrictions/
cascade:
labels:
products:
- enterprise
description: Activate and manage a Grafana Enterprise license
keywords:
- grafana
@@ -99,7 +103,7 @@ GF_SERVER_ROOT_URL=https://grafana.example.com/
### Step 4. Restart Grafana
To finalize the installation of Grafana Enterprise, restart Grafana to enable all Grafana Enterprise features. Refer to [restart Grafana]({{< relref "../../setup-grafana/restart-grafana/" >}}) for more information.
To finalize the installation of Grafana Enterprise, restart Grafana to enable all Grafana Enterprise features. Refer to [restart Grafana]({{< relref "../../setup-grafana/start-restart-grafana/" >}}) for more information.
## License expiration
@@ -121,7 +125,7 @@ If your license has expired, most of Grafana keeps working as normal. Some enter
2. Log in to your [Grafana Cloud Account](/login) and make sure you're in the correct organization in the dropdown at the top of the page.
3. Under the **Grafana Enterprise** section in the menu bar to the left, choose licenses and download the currently valid license with which you want to run Grafana. If you cannot see a valid license on Grafana.com, please contact your account manager at Grafana Labs to renew your subscription.
4. Replace the current `license.jwt`-file with the one you've just downloaded.
5. [Restart Grafana]({{< relref "../../setup-grafana/restart-grafana/" >}}).
5. [Restart Grafana]({{< relref "../../setup-grafana/start-restart-grafana/" >}}).
### If your license expires

View File

@@ -121,6 +121,6 @@ To restart Grafana on a Kubernetes cluster,
1. After you update the service, navigate to your Grafana instance, sign in with Grafana Admin credentials, and navigate to the Statistics and Licensing page to validate that your license is active.
For more information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../../setup-grafana/restart-grafana/" >}}).
For more information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../../setup-grafana/start-restart-grafana/" >}}).
> If you experience issues when you update the EKS cluster, refer to [Amazon EKS troubleshooting](https://docs.aws.amazon.com/eks/latest/userguide/troubleshooting.html).

View File

@@ -127,4 +127,4 @@ Choose one of the following options to update the [license_validation_type]({{<
To activate Grafana Enterprise features, start (or restart) Grafana.
For information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../../setup-grafana/restart-grafana/" >}}).
For information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../../setup-grafana/start-restart-grafana/" >}}).

View File

@@ -8,6 +8,10 @@ description: Describes how to use organizations to isolate dashboard to users an
keywords:
- organizations
- dashboards
labels:
products:
- enterprise
- oss
menuTitle: Manage organizations
title: Manage organizations
weight: 200

View File

@@ -5,6 +5,10 @@ description: Describes provisioning settings for Grafana using configuration fil
keywords:
- grafana
- provisioning
labels:
products:
- enterprise
- oss
title: Provision Grafana
weight: 600
---
@@ -57,7 +61,7 @@ Currently we do not provide any scripts/manifests for configuring Grafana. Rathe
| --------- | -------------------------------------------------------------------------------------------------------------- |
| Puppet | [https://forge.puppet.com/puppet/grafana](https://forge.puppet.com/puppet/grafana) |
| Ansible | [https://github.com/cloudalchemy/ansible-grafana](https://github.com/cloudalchemy/ansible-grafana) |
| Chef | [https://github.com/JonathanTron/chef-grafana](https://github.com/JonathanTron/chef-grafana) |
| Chef | [https://github.com/sous-chefs/chef-grafana](https://github.com/sous-chefs/chef-grafana) |
| Saltstack | [https://github.com/salt-formulas/salt-formula-grafana](https://github.com/salt-formulas/salt-formula-grafana) |
| Jsonnet | [https://github.com/grafana/grafonnet-lib/](https://github.com/grafana/grafonnet-lib/) |

View File

@@ -7,6 +7,10 @@ keywords:
- query
- queries
- recorded
labels:
products:
- cloud
- enterprise
title: Recorded queries
weight: 300
---

View File

@@ -3,6 +3,11 @@ aliases:
- ../../enterprise/access-control/
- ../../enterprise/access-control/about-rbac/
- ../../enterprise/access-control/roles/
cascade:
labels:
products:
- cloud
- enterprise
description: Role-based access control (RBAC) provides a standardized way of granting,
changing, and revoking access so that users can view and modify Grafana resources,
such as users and reports.

View File

@@ -10,7 +10,9 @@ weight: 80
# RBAC permissions, actions, and scopes
> **Note:** Available in [Grafana Enterprise]({{< relref "../../../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud Advanced](/docs/grafana-cloud).
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud Advanced](/docs/grafana-cloud).
{{% /admonition %}}
A permission is comprised of an action and a scope. When creating a custom role, consider the actions the user can perform and the resource(s) on which they can perform those actions.
@@ -23,128 +25,129 @@ 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. 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. 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. 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. 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: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. |
| `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. |
| `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. |
| `folders.permissions:read` | `folders:*`<br>`folders:uid:*` | Read permissions for one or more folders. |
| `folders.permissions:write` | `folders:*`<br>`folders:uid:*` | Update permissions for one or more folders. |
| `folders:create` | n/a | Create folders. |
| `folders:delete` | `folders:*`<br>`folders:uid:*` | Delete one or more folders. |
| `folders:read` | `folders:*`<br>`folders:uid:*` | Read one or more folders. |
| `folders:write` | `folders:*`<br>`folders:uid:*` | Update one or more 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. |
| `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:*` | 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. |
| `org:create` | n/a | Create an organization. |
| `orgs.preferences:read` | `orgs:*` <br> `orgs:id:*` | Read organization preferences. |
| `orgs.preferences:write` | `orgs:*` <br> `orgs:id:*` | Update organization preferences. |
| `orgs.quotas:read` | `orgs:*` <br> `orgs:id:*` | Read organization quotas. |
| `orgs.quotas:write` | `orgs:*` <br> `orgs:id:*` | Update organization quotas. |
| `orgs:delete` | `orgs:*` <br> `orgs:id:*` | Delete one or more organizations. |
| `orgs:read` | `orgs:*` <br> `orgs:id:*` | Read one or more organizations. |
| `orgs:write` | `orgs:*` <br> `orgs:id:*` | 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:*` | List all available reports or get a specific report. |
| `reports:send` | `reports:*` | 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 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. |
| `serviceaccounts:write` | `serviceaccounts:*` | Create Grafana service accounts. |
| `serviceaccounts:create` | n/a | Update Grafana service accounts. |
| `serviceaccounts:delete` | `serviceaccounts:*` | Delete Grafana service accounts. |
| `serviceaccounts:read` | `serviceaccounts:*` | Read Grafana service accounts. |
| `serviceaccounts.permissions:write` | `serviceaccounts:*` | Update Grafana service account permissions to control who can do what with the service account. |
| `serviceaccounts.permissions:read` | `serviceaccounts:*` | 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" >}}). |
| `status:accesscontrol` | `services:accesscontrol` | Get access-control enabled status. |
| `teams.permissions:read` | `teams:*`<br>`teams:id:*` | Read members and External Group Synchronization setup for teams. |
| `teams.permissions:write` | `teams:*`<br>`teams:id:*` | Add, remove and update members and manage External Group Synchronization setup for teams. |
| `teams.roles:add` | `permissions:type:delegate` | Assign a role to a team. |
| `teams.roles:read` | `teams:*` | 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. |
| `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: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. |
| `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. |
| `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:*` | 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. |
| `org:create` | n/a | Create an organization. |
| `orgs.preferences:read` | `orgs:*` <br> `orgs:id:*` | Read organization preferences. |
| `orgs.preferences:write` | `orgs:*` <br> `orgs:id:*` | Update organization preferences. |
| `orgs.quotas:read` | `orgs:*` <br> `orgs:id:*` | Read organization quotas. |
| `orgs.quotas:write` | `orgs:*` <br> `orgs:id:*` | Update organization quotas. |
| `orgs:delete` | `orgs:*` <br> `orgs:id:*` | Delete one or more organizations. |
| `orgs:read` | `orgs:*` <br> `orgs:id:*` | Read one or more organizations. |
| `orgs:write` | `orgs:*` <br> `orgs:id:*` | 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:*` | List all available reports or get a specific report. |
| `reports:send` | `reports:*` | 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 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. |
| `serviceaccounts:write` | `serviceaccounts:*` | Create Grafana service accounts. |
| `serviceaccounts:create` | n/a | Update Grafana service accounts. |
| `serviceaccounts:delete` | `serviceaccounts:*` | Delete Grafana service accounts. |
| `serviceaccounts:read` | `serviceaccounts:*` | Read Grafana service accounts. |
| `serviceaccounts.permissions:write` | `serviceaccounts:*` | Update Grafana service account permissions to control who can do what with the service account. |
| `serviceaccounts.permissions:read` | `serviceaccounts:*` | 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" >}}). |
| `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:*` | 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. |
| `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)
@@ -193,7 +196,7 @@ The following list contains role-based access control scopes.
| `apikeys:*`<br>`apikeys:id:*` | Restrict an action to a set of API keys. For example, `apikeys:*` matches any API key, `apikey:id:1` matches the API key whose id is `1`. |
| `dashboards:*`<br>`dashboards:uid:*` | Restrict an action to a set of dashboards. For example, `dashboards:*` matches any dashboard, and `dashboards:uid:1` matches the dashboard whose UID is `1`. |
| `datasources:*`<br>`datasources:uid:*` | Restrict an action to a set of data sources. For example, `datasources:*` matches any data source, and `datasources:uid:1` matches the data source whose UID is `1`. |
| `folders:*`<br>`folders:uid:*` | Restrict an action to a set of folders. For example, `folders:*` matches any folder, and `folders:uid:1` matches the folder whose UID is `1`. |
| `folders:*`<br>`folders:uid:*` | Restrict an action to a set of folders. For example, `folders:*` matches any folder, and `folders:uid:1` matches the folder whose UID is `1`. Note that permissions granted to a folder cascade down to subfolders located under it |
| `global.users:*` <br> `global.users:id:*` | Restrict an action to a set of global users. For example, `global.users:*` matches any user and `global.users:id:1` matches the user whose ID is `1`. |
| `orgs:*` <br> `orgs:id:*` | Restrict an action to a set of organizations. For example, `orgs:*` matches any organization and `orgs:id:1` matches the organization whose ID is `1`. |
| `permissions:type:delegate` | The scope is only applicable for roles associated with the Access Control itself and indicates that you can delegate your permissions only, or a subset of it, by creating a new role or making an assignment. |
@@ -207,3 +210,4 @@ The following list contains role-based access control scopes.
| `settings:*` | Restrict an action to a subset of settings. For example, `settings:*` matches all settings, `settings:auth.saml:*` matches all SAML settings, and `settings:auth.saml:enabled` matches the enable property on the SAML settings. |
| `teams:*` <br> `teams:id:*` | Restrict an action to a set of teams from an organization. For example, `teams:*` matches any team and `teams:id:1` matches the team whose ID is `1`. |
| `users:*` <br> `users:id:*` | Restrict an action to a set of users from an organization. For example, `users:*` matches any user and `users:id:1` matches the user whose ID is `1`. |
| `n/a` | `n/a` means not applicable. If an action has `n/a` specified for the scope, then the action does not require a scope. For example, the `teams:create` action does not require a scope and allows users to create teams. |

View File

@@ -82,7 +82,7 @@ We've compiled the following permissions rollout scenarios based on current Graf
### Provide internal viewer employees with the ability to use Explore, but prevent external viewer contractors from using Explore
1. In Grafana, create a team with the name `Internal employees`.
1. Assign the `fixed:datasources:querier` role to the `Internal employees` team.
1. Assign the `fixed:datasources:explorer` role to the `Internal employees` team.
1. Add internal employees to the `Internal employees` team, or map them from a SAML, LDAP, or Oauth team using [Team Sync]({{< relref "../../../../setup-grafana/configure-security/configure-team-sync/" >}}).
1. Assign the viewer role to both internal employees and contractors.

View File

@@ -11,7 +11,11 @@ keywords:
- configuration
- server
- settings
title: Stats and license
labels:
products:
- enterprise
- oss
title: View server statistics and license
weight: 400
---
@@ -21,11 +25,11 @@ This setting contains information about tools that Grafana Server Admins can use
## View Grafana server settings
> Refer to [Role-based access control]({{< relref "../roles-and-permissions/access-control/" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
> Refer to [Role-based access control]({{< relref "../roles-and-permissions/access-control" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../../setup-grafana/configure-grafana/#config-file-locations" >}}) file and any environmental variables.
If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../../setup-grafana/configure-grafana#configuration-file-location" >}}) file and any environmental variables.
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [Roles and permissions]({{< relref "../roles-and-permissions/#grafana-server-administrators" >}}).
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [Roles and permissions]({{< relref "../roles-and-permissions#grafana-server-administrators" >}}).
### View server settings
@@ -34,15 +38,15 @@ If you are a Grafana server administrator, use the Settings tab to view the sett
### Available settings
For a full list of server settings, refer to [Configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}).
For a full list of server settings, refer to [Configuration]({{< relref "../../setup-grafana/configure-grafana#server" >}}).
## View Grafana server stats
> Refer to [Role-based access control]({{< relref "../roles-and-permissions/access-control/" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
> Refer to [Role-based access control]({{< relref "../roles-and-permissions/access-control" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
If you are a Grafana server admin, then you can view useful statistics about your Grafana server in the Stats & Licensing tab.
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [Roles and permissions]({{< relref "../roles-and-permissions/#grafana-server-administrators" >}}).
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [Roles and permissions]({{< relref "../roles-and-permissions#grafana-server-administrators" >}}).
### View server stats

View File

@@ -2,6 +2,11 @@
aliases:
- about-alerting/
- unified-alerting/alerting/
cascade:
labels:
products:
- cloud
- oss
title: Alerting
weight: 114
---
@@ -64,8 +69,8 @@ With mute timings, you can specify a time interval when you dont want new not
## Useful links
- [Fundamental concepts]({{< relref "fundamentals/" >}}) of Grafana Alerting.
- [Fundamental concepts]({{< relref "/docs/grafana/latest/alerting/fundamentals" >}}) of Grafana Alerting.
- [Role-based access control]({{< relref "../administration/roles-and-permissions/access-control/" >}}) in Grafana Enterprise.
- [Role-based access control]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/access-control" >}}) in Grafana Enterprise.
- [High availability](https://grafana.com/docs/grafana/next/alerting/fundamentals/high-availability/)
- [High availability]({{< relref "/docs/grafana/latest/alerting/fundamentals/high-availability" >}})

View File

@@ -21,22 +21,28 @@ Watch this video to learn more about creating alerts: {{< vimeo 720001934 >}}
## Add Grafana managed rule
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **New alert rule**. The new alerting rule page opens where the Grafana managed alerts option is selected by default.
1. Click **Create alert rule**. The new alerting rule page opens where the Grafana managed alerts option is selected by default.
1. In Step 1, add the rule name.
- In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule.
1. In Step 2, add queries and expressions to evaluate, and then select the alert condition.
- For queries, select a data source from the drop-down.
- Add one or more [queries]({{< relref "../../panels-visualizations/query-transform-data/#add-a-query/" >}}) or [expressions]({{< relref "../../panels-visualizations/query-transform-data/expression-queries/" >}}).
- Add one or more [queries]({{< relref "/docs/grafana/latest/panels-visualizations/query-transform-data#add-a-query" >}}) or [expressions]({{< relref "/docs/grafana/latest/panels-visualizations/query-transform-data/expression-queries" >}}).
- For each expression, select either **Classic condition** to create a single alert rule, or choose from **Math**, **Reduce**, **Resample** options to generate separate alert for each series. For details on these options, see [Single and multi dimensional rule](#single-and-multi-dimensional-rule).
- Click **Run queries** to verify that the query is successful.
- Next, select the query or expression for your alert condition.
1. In Step 3, specify the alert evaluation interval.
- From the **Condition** drop-down, select the query or expression to trigger the alert rule.
- For **Evaluate every**, specify the frequency of evaluation. Must be a multiple of 10 seconds. For examples, `1m`, `30s`.
- For **Evaluate for**, specify the duration for which the condition must be true before an alert fires.
> **Note:** Once a condition is breached, the alert goes into the Pending state. If the condition remains breached for the duration specified, the alert transitions to the `Firing` state, otherwise it reverts back to the `Normal` state.
- In **Configure no data and error handling**, configure alerting behavior in the absence of data. Use the guidelines in [No data and error handling](#no-data-and-error-handling).
- Click **Preview alerts** to check the result of running the query at this moment. Preview excludes no data and error handling.
**Note:**
You can pause alert rule evaluation to prevent noisy alerting while tuning your alerts. Pausing stops alert rule evaluation and does not create any alert instances. This is different to mute timings, which stop notifications from being delivered, but still allow for alert rule evaluation and the creation of alert instances.
1. In Step 4, add the storage location, rule group, as well as additional metadata associated with the rule.
- From the **Folder** drop-down, select the folder where you want to store the rule.
- For **Group**, specify a pre-defined group. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
@@ -68,7 +74,7 @@ To generate a separate alert for each series, create a multi-dimensional rule. U
#### Rule with classic condition
For more information, see [expressions documentation]({{< relref "../../panels-visualizations/query-transform-data/expression-queries/" >}}).
For more information, see [expressions documentation]({{< relref "/docs/grafana/latest/panels-visualizations/query-transform-data/expression-queries" >}}).
### No data and error handling
@@ -81,7 +87,7 @@ Configure alerting behavior in the absence of data using information in the foll
| Ok | Set alert rule state to `Normal`. |
| Error or timeout option | Description |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Alerting | Set alert rule state to `Alerting`. From Grafana 8.5, the alert rule waits for the entire duration for which the condition is true before firing. |
| OK | Set alert rule state to `Normal` |
| Error | Create a new alert `DatasourceError` with the name and UID of the alert rule, and UID of the datasource that returned no data as labels. |
| re | Error | Create a new alert `DatasourceError` with the name and UID of the alert rule, and UID of the datasource that returned no data as labels. |

View File

@@ -35,7 +35,7 @@ You can create and manage recording rules for an external Grafana Mimir or Loki
To create a Grafana Mimir or Loki managed recording rule
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **New alert rule**. The new alerting rule page opens where the **Grafana managed alert** option is selected by default.
1. Click **Create alert rule**. The new alerting rule page opens where the **Grafana managed alert** option is selected by default.
1. In Step 1, add the rule name. The recording name must be a Prometheus metric name and contain no whitespace.
- In **Rule name**, add a descriptive name.
1. In Step 2, select **Mimir or Loki recording rule** option.
@@ -49,7 +49,7 @@ To create a Grafana Mimir or Loki managed recording rule
1. Click **Save** to save the recording rule or **Save and exit** to save the recording rule and go back to the Alerting page.
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **New alert rule**.
1. Click **Create alert rule**.
1. In Step 1, add the rule name.
- In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule.
1. In Step 2, add the type, and storage location.

View File

@@ -35,7 +35,7 @@ Watch this video to learn more about how to create a Mimir managed alert rule: {
## Add a Grafana Mimir or Loki managed alerting rule
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **New alert rule**. The new alerting rule page opens where the Grafana managed alerts option is selected by default.
1. Click **Create alert rule**. The new alerting rule page opens where the Grafana managed alerts option is selected by default.
1. In Step 1, add the rule name.
- In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule.
1. In Step 2, select **Mimir or Loki alert** option.

View File

@@ -0,0 +1,49 @@
---
aliases:
description: Declare an incident from a firing alert
keywords:
- grafana
- alert rules
- incident
title: Declare an incident from a firing alert
weight: 430
---
# Declare incidents from firing alerts
Declare an incident from a firing alert to streamline your alert to incident workflow.
## Before you begin
- Ensure you have Grafana Incident installed
- You must have a firing alert
## Procedure
To declare an incident from a firing alert, complete the following steps.
1. Navigate to Alerts & Incidents -> Alerting -> Alert rules.
2. From the Alert rules list view, click the firing alert that you want to declare an incident for.
**Note:**
You can also access **Declare Incident** from the alert details page.
3. Click **Declare Incident**.
The **Declare Incident** pop-up opens in the Grafana Incident application.
4. In the **Declare Incident** pop-up, enter what's going on.
**Note**: This field is pre-filled with the name of the alert rule, but you can edit it as required.
The alert rule is also linked to the incident.
5. Select a severity.
6. Add labels, as required.
7. Click **More options** to include a channel prefix and status.
8. Click **Declare Incident**.
## Next steps
View and track the incident in the Grafana Incident application.
For more information, refer to [Grafana Incident documentation.](https://grafana.com/docs/grafana-cloud/incident/configure-settings/)

View File

@@ -20,8 +20,12 @@ The Alerting page lists all existing alert rules. By default, rules are grouped
The Mimir/Cortex/Loki rules section lists all rules for Mimir, Cortex, or Loki data sources. Cloud alert rules are also listed in this section.
When managing large volumes of alerts, you can use extended alert rule search capabilities to filter on folders, evaluation groups, and rules. Additionally, you can filter alert rules by their properties like labels, state, type, and health.
- [View and filter alert rules](#view-and-filter-alert-rules)
- [View alert rules](#view-alert-rules)
- [Export alert rules](#export-alert-rules)
- [View query definitions for provisioned alerts](#view-query-definitions-for-provisioned-alerts)
- [Grouped view](#grouped-view)
- [State view](#state-view)
- [Filter alert rules](#filter-alert-rules)
@@ -36,6 +40,18 @@ To view alerting details:
{{< figure src="/static/img/docs/alerting/unified/rule-details-8-0.png" max-width="650px" caption="Alerting rule details" >}}
From the Alert list page, you can also make copies of alert rules to help you reuse existing alert rules.
## Export alert rules
Click **Export** to create and tune an alert rule in the UI, then export to YAML or JSON, and use in the provisioning API or files. You can also export an entire rule group to review or use.
**Note:** This is supported in both the UI and provisioning API.
## View query definitions for provisioned alerts
View read-only query definitions for provisioned alerts. Check quickly if your alert rule queries are correct, without diving into your "as-code" repository for rule definitions.
### Grouped view
Grouped view shows Grafana alert rules grouped by folder and Loki or Prometheus alert rules grouped by `namespace` + `group`. This is the default rule list view, intended for managing rules. You can expand each group to view a list of rules in this group. Expand a rule further to view its details. You can also expand action buttons and alerts resulting from the rule to view their details.

View File

@@ -6,7 +6,7 @@ title: Explore Alerting
weight: 105
---
# Explore Alerting
# Introduction to Alerting
Whether youre starting or expanding your implementation of Grafana Alerting, learn more about the key concepts and available features that help you create, manage, and take action on your alerts and improve your teams ability to resolve issues quickly.

View File

@@ -16,7 +16,7 @@ Grafana supports several alert rule types, the following sections will explain t
Grafana-managed rules are the most flexible alert rule type. They allow you to create alerts that can act on data from any of your existing data sources.
In additional to supporting any datasource you can also add additional [expressions]({{< relref "../../../panels-visualizations/query-transform-data/expression-queries/" >}}) to transform your data and express alert conditions.
In addition to supporting any data source, you can add [expressions]({{< relref "/docs/grafana/latest/panels-visualizations/query-transform-data/expression-queries" >}}) to transform your data and express alert conditions.
## Mimir, Loki and Cortex rules

View File

@@ -16,7 +16,9 @@ weight: 415
# Notification templating
Notifications sent via contact points are built using notification templates. Grafana's default templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML (which can affect escaping). The default template, defined in [default_template.go](https://github.com/grafana/alerting/blob/main/alerting/notifier/channels/default_template.go), is a useful reference for custom templates.
Notifications sent via contact points are built using notification templates. Grafana's default templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML (which can affect escaping).
The default template [default_template.go](https://github.com/grafana/alerting/blob/main/templates/default_template.go) is a useful reference for custom templates.
Since most of the contact point fields can be templated, you can create reusable custom templates and use them in multiple contact points.

View File

@@ -17,7 +17,7 @@ This topic explains why labels are a fundamental component of alerting.
- The Alertmanager uses labels to match alerts for silences and alert groups in notification policies.
- The alerting UI shows labels for every alert instance generated during evaluation of that rule.
- Contact points can access labels to dynamically generate notifications that contain information specific to the alert that is resulting in a notification.
- You can add labels to an [alerting rule]({{< relref "../../alerting-rules/" >}}). Labels are manually configurable, use template functions, and can reference other labels. Labels added to an alerting rule take precedence in the event of a collision between labels (except in the case of [Grafana reserved labels](#grafana-reserved-labels)).
- You can add labels to an [alerting rule]({{< relref "/docs/grafana/latest/alerting/alerting-rules" >}}). Labels are manually configurable, use template functions, and can reference other labels. Labels added to an alerting rule take precedence in the event of a collision between labels (except in the case of [Grafana reserved labels](#grafana-reserved-labels)).
{{< figure src="/static/img/docs/alerting/unified/rule-edit-details-8-0.png" max-width="550px" caption="Alert details" >}}
@@ -38,7 +38,7 @@ Example: A label key/value pair `Alert! 🔔="🔥"` will become `Alert_0x1f514=
# Grafana reserved labels
> **Note:** Labels prefixed with `grafana_` are reserved by Grafana for special use. If a manually configured label is added beginning with `grafana_` it may be overwritten in case of collision.
> To stop the Grafana Alerting engine from adding a reserved label, you can disable it via the `disabled_labels` option in [unified_alerting.reserved_labels]({{< relref "../../../setup-grafana/configure-grafana/#unified_alertingreserved_labels" >}}) configuration.
> To stop the Grafana Alerting engine from adding a reserved label, you can disable it via the `disabled_labels` option in [unified_alerting.reserved_labels]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana#unified_alertingreserved_labels" >}}) configuration.
Grafana reserved labels can be used in the same way as manually configured labels. The current list of available reserved labels are:

View File

@@ -3,249 +3,335 @@ description: Learn about templating of labels and annotations
keywords:
- grafana
- alerting
- guide
- fundamentals
- templating
- labels
- annotations
title: Templating labels and annotations
weight: 117
---
# Templating labels and annotations
In Grafana it is possible to template labels and annotations just like in Prometheus. Those who have used Prometheus before should be familiar with `$labels` and `$value` as these variables contain the labels and value of the alert. You can use the same variables in Grafana to template labels and annotations, even if the alert does not use a Prometheus datasource.
In Grafana you template labels and annotations just like you would in Prometheus. If you have used Prometheus before then you should be familiar with the `$labels` and `$value` variables which contain the labels and value of the alert. You can use the same variables in Grafana, even if the alert does not use a Prometheus datasource. If you haven't used Prometheus before then don't worry as each of these variables, and how to template them, will be explained as you follow the rest of this page.
For example, suppose you want to create an alert rule in Grafana that fires when one of your instances is down for more than 5 minutes, and that each alert fired should have a summary annotation to tell you which instance is down:
## Go's templating language
Templates for labels and annotations are written in Go's templating language, [text/template](https://pkg.go.dev/text/template).
### Opening and closing tags
In text/template, templates start with `{{` and end with `}}` irrespective of whether the template prints a variable or executes control structures such as if statements. This is different from other templating languages such as Jinja where printing a variable uses `{{` and `}}` and control structures use `{%` and `%}`.
### Print
To print the value of something use `{{` and `}}`. You can print the the result of a function or the value of a variable. For example, to print the `$labels` variable you would write the following:
```
{{ $labels }}
```
### Iterate over labels
To iterate over each label in `$labels` you can use a `range`. Here `$k` refers to the name and `$v` refers to the value of the current label. For example, if your query returned a label `instance=test` then `$k` would be `instance` and `$v` would be `test`.
```
{{ range $k, $v := $labels }}
{{ $k }}={{ $v }}
{{ end }}
```
## The labels, value and values variables
### The labels variable
The `$labels` variable contains the labels from the query. For example, a query that checks if an instance is down might return an instance label with the name of the instance that is down. For example, suppose you have an alert rule that fires when one of your instances has been down for more than 5 minutes. You want to add a summary to the alert that tells you which instance is down. With the `$labels` variable, you can create a summary that prints the instance label in the summary:
```
Instance {{ $labels.instance }} has been down for more than 5 minutes
```
## Labels with dots
### Labels with dots
If the label contains a dot (full stop or period) in its name then the following will not work:
If the label you want to print contains a dot (full stop or period) in its name using the same dot in the template will not work:
```
Instance {{ $labels.instance.name }} has been down for more than 5 minutes
```
This is because it is attempting to use a non-existing field `name` in `$labels.instance` rather than `instance.name` in `$labels`. Instead use the `index` function to print `instance.name`:
This is because the template is attempting to use a non-existing field called `name` in `$labels.instance`. You should instead use the `index` function, which prints the label `instance.name` in the `$labels` variable:
```
Instance {{ index $labels "instance.name" }} has been down for more than 5 minutes
```
## Use values in labels and annotations
### The value variable
Grafana supports `$value` when templating labels and annotations. However, while `$value` in Prometheus is a floating point number contains the value of the expression, `$value` in Grafana is a string containing the labels and values of all Threshold, Reduce and Maths expressions. It does not contain the value of queries as a single query can return anywhere from 1 to 10,000s of rows or metrics.
The `$value` variable works different from Prometheus. In Prometheus `$value` is a floating point number containing the value of the expression, but in Grafana it is a string containing the labels and values of all Threshold, Reduce and Math expressions, and Classic Conditions for this alert rule. It does not contain the results of queries, as these can return anywhere from 10s to 10,000s of rows or metrics.
This `$value` variable is called the Value String. If you were to use it in the template of a summary annotation:
If you were to use the `$value` variable in the summary of an alert:
```
{{ $labels.instance }} has an average 95th percentile request latency above 1s: {{ $value }})
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $value }})
```
you will get the following summary:
The summary might look something like the following:
```
http_server has an average 95th percentile request latency above 1s: [ var='B' labels={instance=http_server} value=10 ]
api has an over 5% of responses with 5xx errors: [ var='B' labels={service=api} value=6.789 ]
```
To get just the value of `B` you can instead use `$values`:
Here `var='B'` refers to the expression with the RefID B. In Grafana, all queries and expressions are identified by a RefID that identifies each query and expression in an alert rule. Similarly `labels={service=api}` refers to the labels, and `value=6.789` refers to the value.
You might have observed that there is no RefID A. That is because in most alert rules the RefID A refers to a query, and since queries can return many rows or time series they are not included in `$value`.
### The values variable
If the `$value` variable contains more information than you need, you can instead print the labels and value of individual expressions using `$values`. Unlike `$value`, the `$values` variable is a table of objects containing the labels and floating point values of each expression, indexed by their RefID.
If you were to print the value of the expression with RefID `B` in the summary of the alert:
```
{{ $labels.instance }} has an average 95th percentile request latency above 1s: {{ $values.B }}
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $values.B }}%
```
and then you will get this summary:
The summary will contain just the value:
```
http_server has an average 95th percentile request latency above 1s: 11
api has an over 5% of responses with 5xx errors: 6.789%
```
## Alert rules with multiple queries, or expressions
If you have an alert rule with multiple queries and expressions, or a single query with a Reduce and Math expression, like in the following example:
{{< figure src="/static/img/docs/alerting/unified/grafana-alerting-histogram-quantile.png" class="docs-image--no-shadow" caption="An alert rule that uses histogram_quantile to compute 95th percentile" >}}
Then the Value String will not just include the value of the alert condition, but the labels and values of all Threshold, Reduce and Maths expressions.
**Example 1**: The Value String of an alert rule with a single query and Reduce expression `B`:
However, while `{{ $values.B }}` prints the number 6.789, it is actually a string as you are printing the object that contains both the labels and value for RefID B, not the floating point value of B. To use the floating point value of RefID B you must use the `Value` field from `$values.B`. If you were to humanize the floating point value in the summary of an alert:
```
[ var='B' labels={instance=http_server} value=11 ]
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanize $values.B.Value }}%
```
**Example 2**: The Value String of an alert rule with a single query, Reduce expression `B` and a Math expression `C`:
### No data, execution errors and timeouts
If the query in your alert rule returns no data, or fails because of a datasource error or timeout, then any Threshold, Reduce or Math expressions that use that query will also return no data or an error. When this happens these expression will be absent from `$values`. It is good practice to check that a RefID is present before using it as otherwise your template will break should your query return no data or an error. You can do this using an if statement:
```
[ var='B' labels={instance=http_server} value=11, var='C' labels={instance=http_server} value=1 ]
```
If you were to write a summary annotation such as:
```
{{ $labels.instance }} has an average 95th percentile request latency above 1s: {{ $values.C }})
```
You would find that because the condition of the alert `C` is a Math expression with a boolean comparison, it must return either a `0` or a `1`. What you want instead is the average of the 95th percentile, and you can get this from the reduce expression `B`:
```
{{ $labels.instance }} has an average 95th percentile request latency above 1s: {{ $values.B }})
```
## No data and execution errors or timeouts
Should query `A` return no data then the reduce expression `B` will also return no data. This means that
`{{ $values.B }}` will be nil. To ensure that labels and annotations can still be templated even when a query returns no data, we can use an if statement to check for this condition:
```
{{ if $values.B }}{{ $labels.instance }} has a 95th percentile request latency above 1s: {{ $values.B }}){{ end }}
{{ if $values.B }}{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanizePercentage $values.B.Value }}{{ end }}
```
## Classic Conditions
If the rule uses Classic Conditions instead of Reduce and Math expressions, then `$values` contains the combination of the Ref ID and position of the condition. For example, `{{ $values.A0 }}` and `{{ $values.A1 }}`.
If the rule uses Classic Conditions instead of Threshold, Reduce and Math expressions, then the `$values` variable is indexed by both the Ref ID and position of the condition in the Classic Condition. For example, if you have a Classic Condition with RefID B containing two conditions, then `$values` will contain two conditions `B0` and `B1`.
## Reference
```
The first condition is {{ $values.B0 }}, and the second condition is {{ $values.B1 }}
```
### Variables
The following template variables are available when expanding labels and annotations:
| Name | Description |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $labels | The labels from the query or condition. For example, `{{ $labels.instance }}` and `{{ $labels.job }}`. This is unavailable when the rule uses a [classic condition]({{< relref "../../alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule" >}}). |
| $values | The values of all reduce and math expressions that were evaluated for this alert rule. For example, `{{ $values.A }}`, `{{ $values.A.Labels }}` and `{{ $values.A.Value }}` where `A` is the `refID` of the reduce or math expression. If the rule uses a classic condition instead of a reduce and math expression, then `$values` contains the combination of the `refID` and position of the condition. |
| $value | The value string of the alert instance. For example, `[ var='A' labels={instance=foo} value=10 ]`. |
### Functions
## Functions
The following functions are also available when expanding labels and annotations:
| Name | Argument type | Return type | Description |
| ----------------------------------------- | ------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| [humanize](#humanize) | number or string | string | Converts a number to a more readable format, using metric prefixes. |
| [humanize1024](#humanize1024) | number or string | string | Like humanize, but uses 1024 as the base rather than 1000. |
| [humanizeDuration](#humanizeduration) | number or string | string | Converts a duration in seconds to a more readable format. |
| [humanizePercentage](#humanizepercentage) | number or string | string | Converts a ratio value to a fraction of 100. |
| [humanizeTimestamp](#humanizetimestamp) | number or string | string | Converts a Unix timestamp in seconds to a more readable format. |
| [title](#title) | string | string | strings.Title, capitalises first character of each word. |
| [toUpper](#toupper) | string | string | strings.ToUpper, converts all characters to upper case. |
| [toLower](#tolower) | string | string | strings.ToLower, converts all characters to lower case. |
| [match](#match) | pattern, text | boolean | regexp.MatchString Tests for a unanchored regexp match. |
| [reReplaceAll](#rereplaceall) | pattern, replacement, text | string | Regexp.ReplaceAllString Regexp substitution, unanchored. |
| [graphLink](#graphlink) | string - JSON Object with `"expr"` and `"datasource"` fields | string | Returns the path to graphical view in [Explore](https://grafana.com/docs/grafana/latest/explore/) for the given expression and data source. |
| [tableLink](#tablelink) | string- JSON Object with `"expr"` and `"datasource"` fields | string | Returns the path to tabular view in [Explore](https://grafana.com/docs/grafana/latest/explore/) for the given expression and data source. |
| [args](#args) | []interface{} | map[string]interface{} | Converts a list of objects to a map with keys, for example, arg0, arg1. Use this function to pass multiple arguments to templates. |
| [externalURL](#externalurl) | nothing | string | Returns a string representing the external URL. |
| [pathPrefix](#pathprefix) | nothing | string | Returns the path of the external URL. |
### args
#### humanize
The `args` function translates a list of objects to a map with keys arg0, arg1 etc. This is intended to allow multiple arguments to be passed to templates.
**Template string** `{ humanize $value }`
#### Example
**Input** `1234567.0`
```
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}
```
**Expected** `1.235M`
```
1 2
```
#### humanize1024
### externalURL
**TemplateString** `{ humanize1024 $value } `
The `externalURL` function returns the external URL of the Grafana server as configured in the ini file(s).
**Input** `1048576.0`
#### Example
**Expected** `1Mi`
```
{{ externalURL }}
```
#### humanizeDuration
```
https://example.com/grafana
```
**TemplateString** `{ humanizeDuration $value }`
### graphLink
**Input** `899.99`
The `graphLink` function returns the path to the graphical view in [Explore](https://grafana.com/docs/grafana/latest/explore/) for the given expression and data source.
**Expected** `14m 59s`
#### Example
#### humanizePercentage
```
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```
**TemplateString** `{ humanizePercentage $value }`
```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]
```
**Input** `0.1234567`
### humanize
**Expected** `12.35%`
The `humanize` function humanizes decimal numbers.
#### humanizeTimestamp
#### Example
**TemplateString** `{ $value | humanizeTimestamp }`
```
{{ humanize 1000.0 }}
```
**Input** `1435065584.128`
```
1k
```
**Expected** `2015-06-23 13:19:44.128 +0000 UTC`
### humanize1024
#### title
The `humanize1024` works similar to `humanize` but but uses 1024 as the base rather than 1000.
**TemplateString** `{ $value | title }`
#### Example
**Input** `aa bb CC`
```
{{ humanize1024 1024.0 }}
```
**Expected** `Aa Bb Cc`
```
1ki
```
#### toUpper
### humanizeDuration
**TemplateString** `{ $value | toUpper }`
The `humanizeDuration` function humanizes a duration in seconds.
**Input** `aa bb CC`
#### Example
**Expected** `AA BB CC`
```
{{ humanizeDuration 60.0 }}
```
#### toLower
```
1m 0s
```
**TemplateString** `{ $value | toLower }`
### humanizePercentage
**Input** `aA bB CC`
The `humanizePercentage` function humanizes a ratio value to a percentage.
**Expected** `aa bb cc`
#### Example
#### match
```
{{ humanizePercentage 0.2 }}
```
**TemplateString** `{ match "a+" $labels.instance }`
```
20%
```
**Input** `aa`
### humanizeTimestamp
**Expected** `true`
The `humanizeTimestamp` function humanizes a Unix timestamp.
#### reReplaceAll
#### Example
**TemplateString** `{{ reReplaceAll "localhost:(.*)" "my.domain:$1" $labels.instance }}`
```
{{ humanizeTimestamp 1577836800.0 }}
```
**Input** `localhost:3000`
```
2020-01-01 00:00:00 +0000 UTC
```
**Expected** `my.domain:3000`
### match
#### graphLink
The `match` function matches the text against a regular expression pattern.
**TemplateString** `{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}`
#### Example
**Expected** `/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]`
```
{{ match "a.*" "abc" }}
```
#### tableLink
```
true
```
**TemplateString** `{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}`
### pathPrefix
**Expected** `/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]`
The `pathPrefix` function returns the path of the Grafana server as configured in the ini file(s).
#### args
#### Example
**TemplateString** `{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}`
```
{{ pathPrefix }}
```
**Expected** `1 2`
```
/grafana
```
#### externalURL
### tableLink
**TemplateString** `{ externalURL }`
The `tableLink` function returns the path to the tabular view in [Explore](https://grafana.com/docs/grafana/latest/explore/) for the given expression and data source.
**Expected** `http://localhost/path/prefix`
#### Example
#### pathPrefix
```
{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```
**TemplateString** `{ pathPrefix }`
```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]
```
**Expected** `/path/prefix`
### title
The `title` function capitalizes the first character of each word.
#### Example
```
{{ title "hello, world!" }}
```
```
Hello, World!
```
### toLower
The `toLower` function returns all text in lowercase.
#### Example
```
{{ toLower "Hello, world!" }}
```
```
hello, world!
```
### toUpper
The `toUpper` function returns all text in uppercase.
#### Example
```
{{ toUpper "Hello, world!" }}
```
```
HELLO, WORLD!
```
### reReplaceAll
The `reReplaceAll` function replaces text matching the regular expression.
#### Example
```
{{ reReplaceAll "localhost:(.*)" "example.com:$1" "localhost:8080" }}
```
```
example.com:8080
```

View File

@@ -21,9 +21,13 @@ Use contact points to define how your contacts are notified when an alert rule f
You can also use notification templating to customize notification messages for contact point types.
## Supported contact point types
**Note:**
The following table lists the contact point types supported by Grafana.
If you've created an OnCall contact point in the Grafana OnCall application, you can view it in the Alerting application.
## Supported contact point integrations
The following table lists the contact point integrations supported by Grafana.
| Name | Type | Grafana Alertmanager | Other Alertmanagers |
| ------------------------------------------------ | ------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------- |
@@ -50,6 +54,6 @@ The following table lists the contact point types supported by Grafana.
## Useful links
[Manage contact points](https://grafana.com/docs/grafana/next/alerting/manage-notifications/create-contact-point/)
[Manage contact points](/docs/grafana/latest/alerting/manage-notifications/create-contact-point/)
[Create and edit notification templates](https://grafana.com/docs/grafana/next/alerting/manage-notifications/create-message-template/)
[Create and edit notification templates](/docs/grafana/latest/alerting/manage-notifications/template-notifications/create-notification-templates/)

View File

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

View File

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

View File

@@ -24,13 +24,13 @@ Complete the following steps to add a contact point.
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **Contact points** to open the page listing existing contact points.
1. Click **New contact point**.
1. Click **Add contact point**.
1. From the **Alertmanager** dropdown, select an Alertmanager. By default, Grafana Alertmanager is selected.
1. In **Name**, enter a descriptive name for the contact point.
1. From **Contact point integration**, select a type and fill out mandatory fields. For example, if you choose email, enter the email addresses. Or if you choose Slack, enter the Slack channel(s) and users who should be contacted.
1. Some contact point integrations, like email or webhook, have optional settings. In **Optional settings**, specify additional settings for the selected contact point integration.
1. In Notification settings, optionally select **Disable resolved message** if you do not want to be notified when an alert resolves.
1. To add another contact point integration, click **New contact point integration** and repeat steps 6 through 8.
1. To add another contact point integration, click **Add contact point integration** and repeat steps 6 through 8.
1. Click **Save contact point** to save your changes.
## Edit a contact point

View File

@@ -1,175 +0,0 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/create-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/delete-message-template/
- /docs/grafana/latest/alerting/contact-points/message-templating/edit-message-template/
- /docs/grafana/latest/alerting/manage-notifications/create-message-template/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/contact-points/message-templating/example-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
- /docs/grafana/latest/alerting/fundamentals/contact-points/example-template/
- /docs/grafana/latest/alerting/contact-points/message-templating/template-data/
- /docs/grafana/latest/alerting/message-templating/template-data/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/template-data/
- /docs/grafana/latest/alerting/fundamentals/contact-points/template-data/
keywords:
- grafana
- alerting
- guide
- contact point
- templating
title: Create and edit notification templates
weight: 200
---
# Create and edit notification templates
You can use notification templates to customize notification messages for the contact point types.
## Create a notification template:
To create a notification template, complete the following steps.
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
2. In the Alerting page, click **Contact points** to open the page listing existing contact points.
3. From Alertmanager drop-down, select an external Alertmanager to create and manage templates for the external data source. Otherwise, keep the default option of Grafana.
{{< figure max-width="250px" src="/static/img/docs/alerting/unified/contact-points-select-am-8-0.gif" caption="Select Alertmanager" >}}
4. Click **Add template**.
5. In **Name**, add a descriptive name.
6. In **Content**, add the content of the template.
7. Click **Save template** button at the bottom of the page.
<img src="/static/img/docs/alerting/unified/templates-create-8-0.png" width="600px">
The `define` tag in the Content section assigns the template name. This tag is optional, and when omitted, the template name is derived from the **Name** field. When both are specified, it is a best practice to ensure that they are the same.
## Edit a notification template:
To edit a notification template, complete the following steps.
1. In the Alerting page, click **Contact points** to open the page listing existing contact points.
1. In the Template table, find the template you want to edit, then click the **Edit** (pen icon).
1. Make your changes, then click **Save template**.
## Delete a notification template:
To delete a notification template, complete the following steps.
1. In the Alerting page, click **Contact points** to open the page listing existing contact points.
1. In the Template table, find the template you want to delete, then click the **Delete** (trash icon).
1. In the confirmation dialog, click **Yes, delete** to delete the template.
Use caution when deleting a template since Grafana does not prevent you from deleting templates that are in use.
## Create a custom template
Here's an example of how to use a custom template. You can also use the default template included in the setup.
Step 1: Configure a template to render a single alert.
```
{{ define "myalert" }}
[{{.Status}}] {{ .Labels.alertname }}
Labels:
{{ range .Labels.SortedPairs }}
{{ .Name }}: {{ .Value }}
{{ end }}
{{ if gt (len .Annotations) 0 }}
Annotations:
{{ range .Annotations.SortedPairs }}
{{ .Name }}: {{ .Value }}
{{ end }}
{{ end }}
{{ if gt (len .SilenceURL ) 0 }}
Silence alert: {{ .SilenceURL }}
{{ end }}
{{ if gt (len .DashboardURL ) 0 }}
Go to dashboard: {{ .DashboardURL }}
{{ end }}
{{ end }}
```
Step 2: Configure a template to render entire notification message.
```
{{ define "mymessage" }}
{{ if gt (len .Alerts.Firing) 0 }}
{{ len .Alerts.Firing }} firing:
{{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }}
{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}
{{ len .Alerts.Resolved }} resolved:
{{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }}
{{ end }}
{{ end }}
```
Step 3: Add `mymessage` in the notification message field.
```
Alert summary:
{{ template "mymessage" . }}
```
## Template data
Template data is passed on to notification templates as well as sent as payload to webhook pushes.
| Name | Type | Notes |
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| Receiver | string | Name of the contact point that the notification is being sent to. |
| Status | string | `firing` if at least one alert is firing, otherwise `resolved`. |
| Alerts | Alert | List of alert objects that are included in this notification (see below). |
| GroupLabels | KeyValue | Labels these alerts were grouped by. |
| CommonLabels | KeyValue | Labels common to all the alerts included in this notification. |
| CommonAnnotations | KeyValue | Annotations common to all the alerts included in this notification. |
| ExternalURL | string | Back link to the Grafana that sent the notification. If using external Alertmanager, back link to this Alertmanager. |
The `Alerts` type exposes functions for filtering alerts:
- `Alerts.Firing` returns a list of firing alerts.
- `Alerts.Resolved` returns a list of resolved alerts.
## Alert
| Name | Type | Notes |
| ------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Status | string | `firing` or `resolved`. |
| Labels | KeyValue | A set of labels attached to the alert. |
| Annotations | KeyValue | A set of annotations attached to the alert. |
| StartsAt | time.Time | Time the alert started firing. |
| EndsAt | time.Time | Only set if the end time of an alert is known. Otherwise set to a configurable timeout period from the time since the last alert was received. |
| GeneratorURL | string | A back link to Grafana or external Alertmanager. |
| SilenceURL | string | Link to grafana silence for with labels for this alert pre-filled. Only for Grafana managed alerts. |
| DashboardURL | string | Link to grafana dashboard, if alert rule belongs to one. Only for Grafana managed alerts. |
| PanelURL | string | Link to grafana dashboard panel, if alert rule belongs to one. Only for Grafana managed alerts. |
| Fingerprint | string | Fingerprint that can be used to identify the alert. |
| ValueString | string | A string that contains the labels and value of each reduced expression in the alert. |
## KeyValue
`KeyValue` is a set of key/value string pairs that represent labels and annotations.
Here is an example containing two annotations:
```json
{
"summary": "alert summary",
"description": "alert description"
}
```
In addition to direct access of data (labels and annotations) stored as KeyValue, there are also methods for sorting, removing and transforming.
| Name | Arguments | Returns | Notes |
| ----------- | --------- | --------------------------------------- | ----------------------------------------------------------- |
| SortedPairs | | Sorted list of key & value string pairs |
| Remove | []string | KeyValue | Returns a copy of the Key/Value map without the given keys. |
| Names | | []string | List of label names |
| Values | | []string | List of label values |

View File

@@ -16,7 +16,7 @@ weight: 300
# Manage notification policies
Notification policies determine how alerts are routed to contact points. Policies have a tree structure, where each policy can have one or more child policies. Each policy, except for the root policy, can also match specific alert labels. Each alert is evaluated by the root policy and subsequently by each child policy. If you enable the `Continue matching subsequent sibling nodes` option is enabled for a specific policy, then evaluation continues even after one or more matches. A parent policys configuration settings and contact point information govern the behavior of an alert that does not match any of the child policies. A root policy governs any alert that does not match a specific policy.
Notification policies determine how alerts are routed to contact points. Policies have a tree structure, where each policy can have one or more child policies. Each policy, except for the root policy, can also match specific alert labels. Each alert is evaluated by the root policy and subsequently by each child policy. If the `Continue matching subsequent sibling nodes` option is enabled for a specific policy, then evaluation continues even after one or more matches. A parent policys configuration settings and contact point information govern the behavior of an alert that does not match any of the child policies. A root policy governs any alert that does not match a specific policy.
You can configure Grafana managed notification policies as well as notification policies for an external Alertmanager data source.
@@ -76,6 +76,23 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. Make any changes using instructions in [Add new specific policy](#add-new-specific-policy).
1. Click **Save policy**.
## Searching for policies
Grafana allows you to search within the tree of policies by the following:
- **Label matchers**
- **Contact Points**
To search by contact point, simply enter a part or full name you are looking for.
To search by label matchers simply enter a valid matcher in the **Search by matchers** input field. Multiple matchers can be combined with a comma (`,`).
An example of a valid matchers search input is:
`severity=high, region=~EMEA|NASA`
> All matched policies will be **exact** matches, we currently do not support regex-style or partial matching.
## Example
An example of an alert configuration.

View File

@@ -28,7 +28,7 @@ To add a silence, complete the following steps.
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
2. On the Alerting page, click **Silences** to open the page listing existing silences.
3. From Alertmanager drop-down, select an external Alertmanager to create and manage silences for the external data source. Otherwise, keep the default option of Grafana.
4. Click **New Silence** to open the Create silence page.
4. Click **Add Silence** to open the Create silence page.
5. In **Silence start and end**, select the start and end date to indicate when the silence should go into effect and expire.
6. Optionally, in **Duration**, specify how long the silence is enforced. This automatically updates the end time in the **Silence start and end** field.
7. In the **Name** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to.

View File

@@ -13,39 +13,42 @@ weight: 500
Images in notifications helps recipients of alert notifications better understand why an alert has fired or resolved by including a screenshot of the panel associated with the alert.
> **Note**: This feature is not supported for Mimir or Loki rules, or when Grafana sends alert notifications to an external Alertmanager.
> **Note**: This feature is not supported in Mimir or Loki, or when Grafana is configured to send alerts to other Alertmanagers such as the Prometheus Alertmanager
When an alert is fired or resolved Grafana takes a screenshot of the panel associated with the alert. This is determined via the Dashboard UID and Panel ID annotations of the rule. Grafana cannot take a screenshot for alerts that are not associated with a panel.
Because a number of contact points, such as email, do not support uploading screenshots at the time of sending a notification; Grafana can also upload the screenshot to a cloud storage service such as Amazon S3, Azure Blob Storage and Google Cloud Storage, where a link to the uploaded screenshot can be added to the notification. However, if using a cloud storage service is not an option then Grafana can be its own cloud storage service such that the screenshot is available under the same domain as Grafana.
Grafana takes at most two screenshots for each alert: once when the alert fires and again when the alert is resolved. Screenshots are not re-taken over the lifetime of the alert, instead you should open the panel in Grafana to follow the data in real time. In addition, depending on how alerts are grouped in your notification policies, Grafana might send a notification with many screenshots of the same panel. This happens because Grafana does not know how your alerts are grouped at the time a screenshot is taken, and so acts conservatively by taking a screenshot for every alert.
Should either the cloud storage service, or Grafana if acting as its own cloud storage service, be protected by a firewall, gateway service or VPN, then screenshots might not be shown in notifications.
Once a screenshot has been taken Grafana can either upload it to a cloud storage service such as Amazon S3, Azure Blob Storage or Google Cloud Storage; upload the screenshot to it's internal web server; or upload it to the service that is receiving the notification, such as Slack. Which option you should choose depends on how your Grafana is managed and which integrations you use. More information on this can be found in Requirements.
How to choose between uploading screenshots at the time of sending the notification, using a cloud storage service, or using Grafana as its own cloud storage service, depends on which contact points you plan to use and whether you use a firewall, gateway service or VPN.
For example, if a contact point supports uploading images at the time of notification is it not required to use cloud storage. Cloud storage is required when a contact point does not support uploading images at the time of sending a notification, such as email. We don't recommend using cloud storage if the cloud storage service is behind a firewall, gateway service, or VPN, as screenshots might not be shown in notifications.
Please refer to the table at the end of this page for a list of contact points and their support for images in notifications.
Refer to the table at the end of this page for a list of contact points and their support for images in notifications.
## Requirements
To use images in notifications, Grafana must be set up to use [image rendering](https://grafana.com/docs/grafana/next/setup-grafana/image-rendering/). You can either install the image rendering plugin or run it as a remote rendering service.
1. To use images in notifications, Grafana must be set up to use [image rendering]({{< relref "/docs/grafana/latest/setup-grafana/image-rendering" >}}). You can either install the image rendering plugin or run it as a remote rendering service.
When a screenshot is taken it is saved to the [data]({{< relref "../../setup-grafana/configure-grafana/#paths" >}}) path. This is where screenshots are stored before being sent in a notification or uploaded to a cloud storage service. Grafana must have write-access to this path. If Grafana cannot write to this path then screenshots cannot be saved to disk and an error will be logged for each failed screenshot attempt.
2. When a screenshot is taken it is saved to the [data]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana#paths" >}}) folder, even if Grafana is configured to upload screenshots to a cloud storage service. Grafana must have write-access to this folder otherwise screenshots cannot be saved to disk and an error will be logged for each failed screenshot attempt.
If using a [cloud storage service](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#external_image_storage) such as Amazon S3, Azure Blob Storage or Google Cloud Storage, uploaded images need to be accessible outside of a firewall, gateway service or VPN for screenshots to be shown in notifications. Grafana will not delete screenshots from cloud storage. We recommend configuring a retention policy on the bucket to delete screenshots older than 1 month.
3. You should use a cloud storage service unless sending alerts to Discord, Email, Pushover, Slack or Telegram. These integrations support either embedding screenshots in the email or attaching screenshots to the notification, while other integrations must link screenshots uploaded to a cloud storage bucket. If a cloud storage service has been configured then integrations that support both will link screenshots from the cloud storage bucket instead of embedding or attaching screenshots to the notification.
If using Grafana as its own cloud storage service then screenshots will be saved to `static_root_path/img/attachments`. `static_root_path` is a configuration option for Grafana and can be found in `defaults.ini`. However, like when using a cloud storage service, images need to be accessible outside of a firewall, gateway service or VPN for screenshots to be shown in notifications.
4. If uploading screenshots to a cloud storage service such as Amazon S3, Azure Blob Storage or Google Cloud Storage; and accessing screenshots in the bucket requires authentication, logging into a VPN or corporate network; then image previews might not work in all instant messaging and communication platforms as some services rewrite URLs to use their CDN. If this happens we recommend using [integrations which support uploading images]({{<relref "#supported-contact-points">}}) or [disabling images in notifications]({{<relref "#configuration">}}) altogether.
When using Grafana as its own cloud storage service screenshots are copied from [data]({{< relref "../../setup-grafana/configure-grafana/#paths" >}}) to `static_root_path/img/attachments`. Screenshots older than `temp_data_lifetime` are deleted from [data]({{< relref "../../setup-grafana/configure-grafana/#paths" >}}) but not from `static_root_path/images/attachments`. To delete screenshots from `static_root_path` after a certain amount of time we recommend setting up a CRON job.
5. When uploading screenshots to a cloud storage service Grafana uses a random 20 character (30 characters for Azure Blob Storage) filename for each image. This makes URLs hard to guess but not impossible.
6. Grafana does not delete screenshots from cloud storage. We recommend configuring a retention policy with your cloud storage service to delete screenshots older than 1 month.
7. If Grafana is configured to upload screenshots to its internal web server, and accessing Grafana requires logging into a VPN or corporate network; image previews might not work in all instant messaging and communication platforms as some services rewrite URLs to use their CDN. If this happens we recommend using [integrations which support uploading images]({{<relref "#supported-contact-points">}}) or [disabling images in notifications]({{<relref "#configuration">}}) altogether.
8. Grafana does not delete screenshots uploaded to its internal web server. To delete screenshots from `static_root_path/images/attachments` after a certain amount of time we recommend setting up a CRON job.
## Configuration
> **Note:** Grafana Cloud users can request this feature by [opening a support ticket in the Cloud Portal](https://grafana.com/profile/org#support).
> **Note:** Grafana Cloud users can request this feature by [opening a support ticket in the Cloud Portal](/profile/org#support).
Having installed either the image rendering plugin, or set up Grafana to use a remote rendering service, set `capture` in `[unified_alerting.screenshots]` to `true`:
# Enable screenshots in notifications. This option requires the Grafana Image Renderer plugin.
# Enable screenshots in notifications. You must have either installed the Grafana image rendering
# plugin, or set up Grafana to use a remote rendering service.
# For more information on configuration options, refer to [rendering].
capture = false
@@ -56,9 +59,9 @@ If screenshots should be uploaded to cloud storage then `upload_external_image_s
# will be persisted to disk for up to temp_data_lifetime.
upload_external_image_storage = false
Please see [`[external_image_storage]`](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#external_image_storage) for instructions on how to configure cloud storage. Grafana will not start if `upload_external_image_storage` is `true` and `[external_image_storage]` contains missing or invalid configuration.
Please see [`[external_image_storage]`]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana#external_image_storage" >}}) for instructions on how to configure cloud storage. Grafana will not start if `upload_external_image_storage` is `true` and `[external_image_storage]` contains missing or invalid configuration.
If Grafana is acting as its own cloud storage then `[upload_external_image_storage]` should be set to `true` and the `local` provider should be set in [`[external_image_storage]`](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#external_image_storage).
If Grafana is acting as its own cloud storage then `[upload_external_image_storage]` should be set to `true` and the `local` provider should be set in [`[external_image_storage]`]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana#external_image_storage" >}}).
Restart Grafana for the changes to take effect.
@@ -72,37 +75,36 @@ We recommended that `max_concurrent_screenshots` is less than or equal to `concu
# the total number of concurrent screenshots across all Grafana services.
max_concurrent_screenshots = 5
## Support for images in contact points
## Supported contact points
Grafana supports a wide range of contact points with varied support for images in notifications. The table below shows the list of all contact points supported in Grafana and their support for uploading images at the time of sending the notification and images uploaded to cloud storage, including when Grafana is acting as its own cloud storage service.
Grafana supports a wide range of contact points with varied support for images in notifications. The table below shows the list of all contact points supported in Grafana and their support for uploading screenshots to the receiving service and referencing screenshots that have been uploaded to a cloud storage service.
| Name | Upload image at time of notification | Cloud storage |
| ----------------------- | ------------------------------------ | ------------- |
| DingDing | No | No |
| Discord | Yes | Yes |
| Email | Yes | Yes |
| Google Hangouts Chat | No | Yes |
| Kafka | No | No |
| Line | No | No |
| Microsoft Teams | No | Yes |
| Opsgenie | No | Yes |
| Pagerduty | No | Yes |
| Prometheus Alertmanager | No | No |
| Pushover | Yes | No |
| Sensu Go | No | No |
| Slack | No (will be available in 9.4) | Yes |
| Telegram | Yes | No |
| Threema | No | No |
| VictorOps | No | No |
| Webhook | No | Yes |
| Cisco Webex Teams | No | Yes |
| Name | Upload from disk | Reference from cloud storage |
| ----------------------- | ---------------------------------------------------------- | -------------------------------------------------------- |
| DingDing | No | No |
| Discord | Yes (Maximum of 10 per notification) | Yes (Maximum of 10 per notification) |
| Email | Yes (Embedded in the email) | Yes |
| Google Hangouts Chat | No | Yes |
| Kafka | No | No |
| Line | No | No |
| Microsoft Teams | No | Yes |
| Opsgenie | No | Yes |
| Pagerduty | No | Yes |
| Prometheus Alertmanager | No | No |
| Pushover | Yes (Maximum of 1 per notification) | No |
| Sensu Go | No | No |
| Slack | Yes (when using Bot tokens, maximum of 5 per notification) | Yes (when using webhooks, maximum of 1 per notification) |
| Telegram | Yes | No |
| Threema | No | No |
| VictorOps | No | No |
| Webhook | No | Yes |
## Limitations
- This feature is not supported for Mimir or Loki rules, or when Grafana sends alert notifications to an external Alertmanager.
- When multiple alerts are sent in a single notification a screenshot might be included for each alert. The order the images are shown in random.
- Some contact points support at most one image per notification. In this case, the first image associated with an alert will be attached.
- We don't recommend using cloud storage if the cloud storage service is behind a firewall, gateway service, or VPN, as screenshots might not be shown in notifications.
- This feature is not supported in Mimir or Loki, or when Grafana is configured to send alerts to other Alertmanagers such as the Prometheus Alertmanager.
- A number of contact points support at most one image per notification. In this case, just the first image is either uploaded to the receiving service or referenced from cloud storage per notification.
- When multiple alerts are sent in a single notification a screenshot might be included for each alert. The order the images are shown is random.
- If uploading screenshots to a cloud storage service such as Amazon S3, Azure Blob Storage or Google Cloud Storage; and accessing screenshots in the bucket requires authentication, logging into a VPN or corporate network; image previews might not work in all instant messaging and communication platforms as some services rewrite URLs to use their CDN.
## Troubleshooting
@@ -113,9 +115,7 @@ If Grafana has been set up to send images in notifications, however notification
3. If the alert is not associated with a dashboard there will be logs for `Cannot take screenshot for alert rule as it is not associated with a dashboard`.
4. If the alert is associated with a dashboard, but no panel in the dashboard, there will be logs for `Cannot take screenshot for alert rule as it is not associated with a panel`.
5. If images cannot be taken because of mis-configuration or an issue with image rendering there will be logs for `Failed to take an image` including the Dashboard UID, Panel ID, and the error message.
6. Check that the contact point supports images in notifications, and the present configuration, as per the table.
7. If the image was uploaded to cloud storage make sure it is public.
8. If images are made available via Grafana's built in web server make sure it is accessible via the Internet.
6. Check that the contact point supports images in notifications and whether it supports uploading images to the receiving service or referencing images that have been uploaded to a cloud storage service.
## Metrics

View File

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

View File

@@ -24,15 +24,15 @@ In the Contact points tab, you can see a list of your notification templates.
To create a template, complete the following steps.
1. Click New template.
1. Click **Add template**.
2. Choose a name for the notification template.
3. Write the content of the template in the content field.
{{< figure max-width="940px" src="/static/img/docs/alerting/unified/new-notification-template-email-subject-9-4.png" caption="New notification template email.subject" >}}
{{< figure max-width="940px" src="/static/img/docs/alerting/unified/new-notification-template-email-subject-9-4.png" caption="New notification template email.subject" >}}
5. Click Save.
4. Click Save.
`{{ define "email.subject" }}` and `{{ end }}` is automatically added to the start and end of the content:
@@ -40,15 +40,15 @@ To create a template, complete the following steps.
To create a notification template that contains more than one template:
1. Click New Template.
1. Click **Add Template**.
2. Enter a name for the notification template.
3. Write each template in the Content field, including `{{ define "name-of-template" }}` and `{{ end }}` at the start and end of each template.
{{< figure max-width="940px" src="/static/img/docs/alerting/unified/new-notification-template-email-9-4.png" caption="New notification template" >}}
{{< figure max-width="940px" src="/static/img/docs/alerting/unified/new-notification-template-email-9-4.png" caption="New notification template" >}}
5. Click Save.
4. Click Save.
## Template the subject of an email
@@ -60,17 +60,17 @@ Template the subject of an email to contain the number of firing and resolved al
1. Create a template called `email.subject` with the following content:
```
{{ define "email.subject" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
```
```
{{ define "email.subject" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
```
2. Execute the template from the subject field in your contact point integration:
```
{{ template "email.subject" . }}
```
```
{{ template "email.subject" . }}
```
## Template the message of an email
@@ -93,37 +93,37 @@ Resolved alerts:
The `email.message_alert` template is used to print the labels and values for each firing and resolved alert while the `email.message` template contains the structure of the email.
```
{{- define "email.message_alert" -}}
{{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s)
{{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }}
{{- end -}}
```
{{- define "email.message_alert" -}}
{{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s)
{{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }}
{{- end -}}
{{ define "email.message" }}
There are {{ len .Alerts.Firing }} firing alert(s), and {{ len .Alerts.Resolved }} resolved alert(s)
{{ define "email.message" }}
There are {{ len .Alerts.Firing }} firing alert(s), and {{ len .Alerts.Resolved }} resolved alert(s)
{{ if .Alerts.Firing -}}
Firing alerts:
{{- range .Alerts.Firing }}
- {{ template "email.message_alert" . }}
{{- end }}
{{- end }}
{{ if .Alerts.Firing -}}
Firing alerts:
{{- range .Alerts.Firing }}
- {{ template "email.message_alert" . }}
{{- end }}
{{- end }}
{{ if .Alerts.Resolved -}}
Resolved alerts:
{{- range .Alerts.Resolved }}
- {{ template "email.message_alert" . }}
{{- end }}
{{- end }}
{{ if .Alerts.Resolved -}}
Resolved alerts:
{{- range .Alerts.Resolved }}
- {{ template "email.message_alert" . }}
{{- end }}
{{- end }}
{{ end }}
```
{{ end }}
```
2. Execute the template from the message field in your contact point integration:
```
{{ template "email.message" . }}
```
```
{{ template "email.message" . }}
```
## Template the title of a Slack message
@@ -135,17 +135,17 @@ Template the title of a Slack message to contain the number of firing and resolv
1. Create a template called `slack.title` with the following content:
```
{{ define "slack.title" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
```
```
{{ define "slack.title" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
```
2. Execute the template from the title field in your contact point integration:
```
{{ template "slack.title" . }}
```
```
{{ template "slack.title" . }}
```
## Template the content of a Slack message
@@ -179,48 +179,48 @@ Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1
The `slack.print_alert` template is used to print the labels, annotations, SilenceURL and DashboardURL while the `slack.message` template contains the structure of the notification.
```
{{ define "slack.print_alert" -}}
[{{.Status}}] {{ .Labels.alertname }}
Labels:
{{ range .Labels.SortedPairs -}}
- {{ .Name }}: {{ .Value }}
{{ end -}}
{{ if .Annotations -}}
Annotations:
{{ range .Annotations.SortedPairs -}}
- {{ .Name }}: {{ .Value }}
{{ end -}}
{{ end -}}
{{ if .SilenceURL -}}
Silence: {{ .SilenceURL }}
{{ end -}}
{{ if .DashboardURL -}}
Go to dashboard: {{ .DashboardURL }}
{{- end }}
{{- end }}
```
{{ define "slack.print_alert" -}}
[{{.Status}}] {{ .Labels.alertname }}
Labels:
{{ range .Labels.SortedPairs -}}
- {{ .Name }}: {{ .Value }}
{{ end -}}
{{ if .Annotations -}}
Annotations:
{{ range .Annotations.SortedPairs -}}
- {{ .Name }}: {{ .Value }}
{{ end -}}
{{ end -}}
{{ if .SilenceURL -}}
Silence: {{ .SilenceURL }}
{{ end -}}
{{ if .DashboardURL -}}
Go to dashboard: {{ .DashboardURL }}
{{- end }}
{{- end }}
{{ define "slack.message" -}}
{{ if .Alerts.Firing -}}
{{ len .Alerts.Firing }} firing alert(s):
{{ range .Alerts.Firing }}
{{ template "slack.print_alert" . }}
{{ end -}}
{{ end }}
{{ if .Alerts.Resolved -}}
{{ len .Alerts.Resolved }} resolved alert(s):
{{ range .Alerts.Resolved }}
{{ template "slack.print_alert" .}}
{{ end -}}
{{ end }}
{{- end }}
```
{{ define "slack.message" -}}
{{ if .Alerts.Firing -}}
{{ len .Alerts.Firing }} firing alert(s):
{{ range .Alerts.Firing }}
{{ template "slack.print_alert" . }}
{{ end -}}
{{ end }}
{{ if .Alerts.Resolved -}}
{{ len .Alerts.Resolved }} resolved alert(s):
{{ range .Alerts.Resolved }}
{{ template "slack.print_alert" .}}
{{ end -}}
{{ end }}
{{- end }}
```
2. Execute the template from the text body field in your contact point integration:
```
{{ template "slack.message" . }}
```
```
{{ template "slack.message" . }}
```
## Template both email and Slack with shared templates
@@ -234,20 +234,20 @@ For example, if you want to send an email with this subject and Slack message wi
1. Create a template called `common.subject_title` with the following content:
```
{{ define "common.subject_title" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
```
```
{{ define "common.subject_title" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
```
2. For email, execute the template from the subject field in your email contact point integration:
```
{{ template "common.subject_title" . }}
```
```
{{ template "common.subject_title" . }}
```
3. For Slack, execute the template from the title field in your Slack contact point integration:
```
{{ template "common.subject_title" . }}
```
```
{{ template "common.subject_title" . }}
```

View File

@@ -22,8 +22,8 @@ In the Contact points tab, you can see a list of your contact points.
2. Execute a template from one or more fields such as Message and Subject:
{{< figure max-width="940px" src="/static/img/docs/alerting/unified/use-notification-template-9-4.png" caption="Use notification template" >}}
{{< figure max-width="940px" src="/static/img/docs/alerting/unified/use-notification-template-9-4.png" caption="Use notification template" >}}
For more information on how to write and execute templates, refer to [Using Go's templating language]({{< relref "./using-go-templating-language" >}}) and [Create notification templates]({{< relref "./create-notification-templates" >}}).
For more information on how to write and execute templates, refer to [Using Go's templating language]({{< relref "./using-go-templating-language" >}}) and [Create notification templates]({{< relref "./create-notification-templates" >}}).
4. Click Save template.
3. Click Save template.

View File

@@ -71,6 +71,16 @@ The name of the annotation is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
```
## The index function
To print a specific annotation or label use the `index` function.
```
{{ range .Alerts }}
The name of the alert is {{ index .Labels "alertname" }}
{{ end }}
```
## If statements
You can use if statements in templates. For example, to print `There are no alerts` if there are no alerts in `.Alerts` you would write the following:

View File

@@ -0,0 +1,147 @@
---
aliases:
- meta-monitoring/
description: Meta monitoring
keywords:
- grafana
- alerting
- meta-monitoring
title: Meta monitoring
weight: 500
---
# Meta monitoring
Meta monitoring is the process of monitoring your monitoring, and alerting when your monitoring is not working as it should. Whether you use Grafana Managed Alerts or Mimir, meta monitoring is possible both on-premise and in Grafana Cloud.
## Grafana Managed Alerts
Meta monitoring of Grafana Managed Alerts requires having a Prometheus server, or other metrics database, collecting and storing metrics exported by Grafana. For example, if using Prometheus you should add a `scrape_config` to Prometheus to scrape metrics from your Grafana server.
Here is an example of how this might look:
```
- job_name: grafana
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
follow_redirects: true
static_configs:
- targets:
- grafana:3000
```
The Grafana ruler, which is responsible for evaluating alert rules, and the Grafana Alertmanager, which is responsible for sending notifications of firing and resolved alerts, provide a number of metrics that let you observe them.
#### grafana_alerting_alerts
This metric is a counter that shows you the number of `normal`, `pending`, `alerting`, `nodata` and `error` alerts. For example, you might want to create an alert that fires when `grafana_alerting_alerts{state="error"}` is greater than 0.
#### grafana_alerting_schedule_alert_rules
This metric is a gauge that shows you the number of alert rules scheduled. An alert rule is scheduled unless it is paused, and the value of this metric should match the total number of non-paused alert rules in Grafana.
#### grafana_alerting_schedule_periodic_duration_seconds_bucket
This metric is a histogram that shows you the time it takes to process an individual tick in the scheduler that evaluates alert rules. If the scheduler takes longer than 10 seconds to process a tick then pending evaluations will start to accumulate such that alert rules might later than expected.
#### grafana_alerting_schedule_query_alert_rules_duration_seconds_bucket
This metric is a histogram that shows you how long it takes the scheduler to fetch the latest rules from the database. If this metric is elevated then so will `schedule_periodic_duration_seconds`.
#### grafana_alerting_scheduler_behind_seconds
This metric is a gauge that shows you the number of seconds that the scheduler is behind where it should be. This number will increase if `schedule_periodic_duration_seconds` is longer than 10 seconds, and decrease when it is less than 10 seconds. The smallest possible value of this metric is 0.
#### grafana_alerting_notification_latency_seconds_bucket
This metric is a histogram that shows you the number of seconds taken to send notifications for firing and resolved alerts. This metric will let you observe slow or over-utilized integrations, such as an SMTP server that is being given emails faster than it can send them.
> These metrics are not available at present in Grafana Cloud.
## Grafana Mimir
Meta monitoring in Grafana Mimir requires having a Prometheus/Mimir server, or other metrics database, collecting and storing metrics exported by the Mimir ruler.
#### cortex_prometheus_rule_evaluation_failures_total
This metric is a counter that shows you the total number of rule evaluation failures.
## Alertmanager
Meta monitoring in Alertmanager also requires having a Prometheus/Mimir server, or other metrics database, collecting and storing metrics exported by Alertmanager. For example, if using Prometheus you should add a `scrape_config` to Prometheus to scrape metrics from your Alertmanager.
Here is an example of how this might look:
```
- job_name: alertmanager
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
follow_redirects: true
static_configs:
- targets:
- alertmanager:9093
```
#### alertmanager_alerts
This metric is a counter that shows you the number of active, suppressed and unprocessed alerts in Alertmanager. Suppressed alerts are silenced alerts, and unprocessed alerts are alerts that have been sent to the Alertmanager but have not been processed.
#### alertmanager_alerts_invalid_total
This metric is a counter that shows you the number of invalid alerts that were sent to Alertmanager. This counter should not exceed 0, and so in most cases you will want to create an alert that fires if whenever this metric increases.
#### alertmanager_notifications_total
This metric is a counter that shows you how many notifications have been sent by Alertmanager. The metric uses a label "integration" to show the number of notifications sent by integration, such as email.
#### alertmanager_notifications_failed_total
This metric is a counter that shows you how many notifications have failed in total. This metric also uses a label "integration" to show the number of failed notifications by integration, such as failed emails. In most cases you will want to use the `rate` function to understand how often notifications are failing to be sent.
#### alertmanager_notification_latency_seconds_bucket
This metric is a histogram that shows you the amount of time it takes Alertmanager to send notifications and for those notifications to be accepted by the receiving service. This metric uses a label "integration" to show the amount of time by integration. For example, you can use this metric to show the 95th percentile latency of sending emails.
> In Grafana Cloud some of these metrics are available via the Prometheus usage datasource that is provisioned for all Grafana Cloud customers.
## Alertmanager in high availability mode
If using Alertmanager in high availability mode there are a number of additional metrics that you might want to create alerts for.
#### alertmanager_cluster_members
This metric is a gauge that shows you the current number of members in the cluster. The value of this gauge should be the same across all Alertmanagers. If different Alertmanagers are showing different numbers of members then this is indicative of an issue with your Alertmanager cluster. You should look at the metrics and logs from your Alertmanagers to better understand what might be going wrong.
#### alertmanager_cluster_failed_peers
This metric is a gauge that shows you the current number of failed peers.
#### alertmanager_cluster_health_score
This metric is a gauge showing the health score of the Alertmanager. Lower values are better, and zero means the Alertmanager is healthy.
#### alertmanager_cluster_peer_info
This metric is a gauge. It has a constant value `1`, and contains a label called "peer" containing the Peer ID of each known peer.
#### alertmanager_cluster_reconnections_failed_total
This metric is a counter that shows you the number of failed peer connection attempts. In most cases you will want to use the `rate` function to understand how often reconnections fail as this may be indicative of an issue or instability in your network.
> These metrics are not available in Grafana Cloud as it uses a different high availability strategy than on-premise Alertmanagers.
<!---
#### cortex_prometheus_rule_group_last_evaluation_timestamp_seconds
#### cortex_prometheus_rule_group_rules
This metric is a counter that shows
> In Grafana Cloud these metrics are available via the Prometheus usage datasource that is provisioned for all Grafana Cloud customers.
-->

View File

@@ -20,16 +20,21 @@ longer supported. We refer to these as [Differences]({{< relref "#differences" >
2. Read and write access to legacy dashboard alerts and Grafana alerts are governed by the permissions of the folders storing them. During migration, legacy dashboard alert permissions are matched to the new rules permissions as follows:
- If alert's dashboard has permissions, it will create a folder named like `Migrated {"dashboardUid": "UID", "panelId": 1, "alertId": 1}` to match permissions of the dashboard (including the inherited permissions from the folder).
- If there are no dashboard permissions and the dashboard is under a folder, then the rule is linked to this folder and inherits its permissions.
- If there are no dashboard permissions and the dashboard is under the General folder, then the rule is linked to the `General Alerting` folder, and the rule inherits the default permissions.
- If there are dashboard permissions, a folder named `Migrated {"dashboardUid": "UID", "panelId": 1, "alertId": 1}` is created to match the permissions of the dashboard (including the inherited permissions from the folder).
- If there are no dashboard permissions and the dashboard is in a folder, then the rule is linked to this folder and inherits its permissions.
- If there are no dashboard permissions and the dashboard is in the General folder, then the rule is linked to the `General Alerting` folder and the rule inherits the default permissions.
3. Since there is no `Keep Last State` option for [`No Data`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) in Grafana Alerting, this option becomes `NoData` during the legacy rules migration. Option "Keep Last State" for [`Error handling`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) is migrated to a new option `Error`. To match the behavior of the `Keep Last State`, in both cases, during the migration Grafana automatically creates a silence for each alert rule with a duration of 1 year.
3. `NoData` and `Error` settings are migrated as is to the corresponding settings in Grafana Alerting, except in two situations:
3.1. As there is no `Keep Last State` option for `No Data` in Grafana Alerting, this option becomes `NoData`. The `Keep Last State` option for `Error` is migrated to a new option `Error`. To match the behavior of the `Keep Last State`, in both cases, during the migration Grafana automatically creates a silence for each alert rule with a duration of 1 year.
3.2. Due to lack of validation, legacy alert rules imported via JSON or provisioned along with dashboards can contain arbitrary values for `NoData` and [`Error`](/docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md#configure-no-data-and-error-handling). In this situation, Grafana will use the default setting: `NoData` for No data, and `Error` for Error.
4. Notification channels are migrated to an Alertmanager configuration with the appropriate routes and receivers. Default notification channels are added as contact points to the default route. Notification channels not associated with any Dashboard alert go to the `autogen-unlinked-channel-recv` route.
5. Unlike legacy dashboard alerts where images in notifications are enabled per contact point, images in notifications for Grafana Alerting must be enabled in the Grafana configuration, either in the configuration file or environment variables, and are enabled for either all or no contact points. Refer to [images in notifications](https://grafana.com/docs/grafana/latest/alerting/manage-notifications/images-in-notifications/).
6. Grafana Alerting does not support pausing the evaluation of alert rules. After migration, all paused alert rules will become active, which may cause unexpected notifications to be sent.
5. Unlike legacy dashboard alerts where images in notifications are enabled per contact point, images in notifications for Grafana Alerting must be enabled in the Grafana configuration, either in the configuration file or environment variables, and are enabled for either all or no contact points. Refer to [images in notifications]({{< relref "../manage-notifications/images-in-notifications" >}}).
6. The JSON format for webhook notifications has changed in Grafana Alerting and uses the format from [Prometheus Alertmanager](https://prometheus.io/docs/alerting/latest/configuration/#webhook_config).
## Limitations

View File

@@ -26,12 +26,11 @@ External alertmanagers should now be configured as data sources using Grafana Co
To add an external Alertmanager, complete the following steps.
1. Click Configuration and then Data sources.
2. Search for Alertmanager.
3. Choose your Implementation and fill out the fields on the page, as required.
1. Search for Alertmanager.
1. Choose your Implementation and fill out the fields on the page, as required.
If you are provisioning your data source, set the flag `handleGrafanaManagedAlerts` in the `jsonData` field to `true` to send Grafana-managed alerts to this Alertmanager.
If you are provisioning your data source, set the flag `handleGrafanaManagedAlerts` in the `jsonData` field to `true` to send Grafana-managed alerts to this Alertmanager.
**Note:**
Prometheus, Grafana Mimir, and Cortex implementations of Alertmanager are supported. For Prometheus, contact points and notification policies are read-only in the Grafana Alerting UI.
**Note:**: Prometheus, Grafana Mimir, and Cortex implementations of Alertmanager are supported. For Prometheus, contact points and notification policies are read-only in the Grafana Alerting UI.
4. Click Save & test.
1. Click Save & test.

View File

@@ -85,7 +85,7 @@ spec:
app: grafana
```
4. Make sure your grafana deployment has the label matching the selector, e.g. `app:grafana`.
4. Make sure your grafana deployment has the label matching the selector, e.g. `app:grafana`:
5. Add in the grafana.ini:

View File

@@ -69,7 +69,7 @@ groups:
# evaluation - should be obtained trough the API
data:
- refId: A
datasourceUid: '-100'
datasourceUid: '__expr__'
model:
conditions:
- evaluator:
@@ -86,7 +86,7 @@ groups:
type: query
datasource:
type: __expr__
uid: '-100'
uid: '__expr__'
expression: 1==0
intervalMs: 1000
maxDataPoints: 43200
@@ -313,7 +313,7 @@ settings:
```yaml
type: pagerduty
settings:
# <string, required>
# <string, required> the 32-character Events API key https://support.pagerduty.com/docs/api-access-keys#events-api-keys
integrationKey: XXX
# <string> options: critical, error, warning, info
severity: critical

View File

@@ -282,7 +282,7 @@ resource "grafana_rule_group" "my_rule_group" {
// The query was configured to obtain data from the last 60 seconds. Let's alert on the average value of that series using a Reduce stage.
data {
datasource_uid = "-100"
datasource_uid = "__expr__"
// You can also create a rule in the UI, then GET that rule to obtain the JSON.
// This can be helpful when using more complex reduce expressions.
model = <<EOT
@@ -298,7 +298,7 @@ EOT
// Now, let's use a math expression as our threshold.
// We want to alert when the value of stage "B" above exceeds 70.
data {
datasource_uid = "-100"
datasource_uid = "__expr__"
ref_id = "C"
relative_time_range {
from = 0

View File

@@ -1,7 +0,0 @@
---
title: Copyright notice
---
# Copyright notice
Copyright &#169; 2021 Raintank, Inc. dba Grafana Labs. All Rights Reserved.

View File

@@ -1,6 +1,12 @@
---
aliases:
- features/dashboard/dashboards/
cascade:
labels:
products:
- cloud
- enterprise
- oss
title: Dashboards
weight: 70
---

View File

@@ -14,85 +14,124 @@ weight: 600
# Annotate visualizations
Annotations provide a way to mark points on the graph with rich events. When you hover over an annotation
you can get event description and event tags. The text field can include links to other systems with more detail.
Annotations provide a way to mark points on a visualization with rich events. They are visualized as vertical lines and icons on all graph panels. When you hover over an annotation, you can get event description and event tags. The text field can include links to other systems with more detail.
{{< figure src="/static/img/docs/v46/annotations.png" max-width="800px" >}}
## Native annotations
You can annotate visualizations in three ways:
Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the [HTTP API]({{< relref "../../../developers/http_api/annotations/" >}}).
- Directly in the panel, using the [built-in annotations query](#built-in-query)
- Using the HTTP API
- Configuring annotation queries in the dashboard settings
### Add annotation
In the first two cases, you're creating new annotations, while in the last you're querying existing annotations from data sources. The built-in annotation query also supports this.
1. In the dashboard click on the Time series panel. A context menu will appear.
1. In the context menu click on **Add annotation**.
This page explains the first and third options; for information about using the HTTP API, refer to [Annotations API]({{< relref "../../../developers/http_api/annotations/" >}}).
Annotations are supported for the following visualization types:
- Time series
- State timeline
- Candlestick
## Create annotations in panels
Grafana comes with the ability to add annotation events directly from a panel using the [built-in annotation query](#built-in-query) that exists on all dashboards. Annotations that you create this way are stored in Grafana.
To add annotations directly in the panel, the built-in query must be enabled. Learn more in [Built-in query](#built-in-query)
### Add an annotation
To add an annotation, complete the following steps:
1. In the dashboard click the panel to which you're adding the annotation. A context menu will appear.
1. In the context menu, click **Add annotation**.
![Add annotation context menu](/static/img/docs/time-series-panel/time-series-annotations-context-menu.png)
1. Add an annotation description and tags(optional).
![Add annotation popover](/static/img/docs/time-series-panel/time-series-annotations-add-annotation.png)
1. Click save.
1. Add an annotation description and tags (optional).
1. Click **Save**.
Alternatively, to add an annotation, Ctrl/Cmd+Click on the Time series panel and the Add annotation popover will appear
Alternatively, to add an annotation, press Ctrl/Cmd and click the panel, and the **Add annotation** popover will appear.
### Add region annotation
### Add a region annotation
1. In the dashboard Ctrl/Cmd+click and drag on the Time series panel.
1. In the dashboard press Ctrl/Cmd and click and drag on the panel.
![Add annotation popover](/static/img/docs/time-series-panel/time-series-annotations-add-region-annotation.gif)
1. Add an annotation description and tags(optional).
1. Click save.
1. Add an annotation description and tags (optional).
1. Click **Save**.
### Edit annotation
### Edit an annotation
1. In the dashboard hover over an annotation indicator on the Time series panel.
1. In the dashboard, hover over an annotation indicator on the Time series panel.
<!--![Add annotation popover](/static/img/docs/time-series-panel/time-series-annotations-edit-annotation.gif)-->
1. Click on the pencil icon in the annotation tooltip.
1. Modify the description and/or tags.
1. Click save.
### Delete annotation
### Delete an annotation
1. In the dashboard hover over an annotation indicator on the Time series panel.
1. In the dashboard hover over an annotation indicator on a panel.
<!--![Add annotation popover](/static/img/docs/time-series-panel/time-series-annotations-edit-annotation.gif)-->
1. Click on the trash icon in the annotation tooltip.
### Built-in query
## Fetch annotations through dashboard settings
After you added an annotation they will still be visible. This is due to the built in annotation query that exists on all dashboards. This annotation query will
fetch all annotation events that originate from the current dashboard and show them on the panel where they were created. This includes alert state history annotations. You can
stop annotations from being fetched and drawn by opening the **Annotations** settings (via Dashboard cogs menu) and modifying the query named `Annotations & Alerts (Built-in)`.
In the dashboard settings, under **Annotations**, you can add new queries to fetch annotations using any data source, including the built-in data annotation data source. Annotation queries return events that can be visualized as event markers in graphs across the dashboard.
When you copy a dashboard using the **Save As** feature it will get a new dashboard id so annotations created on source dashboard will no longer be visible on the copy. You
can still show them if you add a new **Annotation Query** and filter by tags. But this only works if the annotations on the source dashboard had tags to filter by.
### Add new annotation queries
### Query by tag
To add a new annotation query to a dashboard, take the following steps:
You can create new queries to fetch annotations from the native annotation store via the `-- Grafana --` data source by setting _Filter by_ to `Tags`.
1. Click the dashboard settings (gear) icon in the dashboard header to open the settings menu.
1. Select **Annotations**.
1. Click **Add annotation query**.
If you've added a query before, the **+ New query** button is displayed.
1. Enter a name for the annotation query.
This name is given to the toggle (checkbox) that will allow you to enable/disable showing annotation events from this query.
1. Select the data source for the annotations.
1. If you don't want to use the annotation query right away, clear the **Enabled** checkbox.
1. If you don't want the annotation query toggle to be displayed in the dashboard, select the **Hidden** checkbox.
1. Select a color for the event markers.
1. Configure the query.
The annotation query options are different for each data source. For information about annotations in a specific data source, refer to the specific [data source]({{< relref "../../../datasources/" >}}) topic.
## Built-in query
After you add an annotation, they will still be visible. This is due to the built-in annotation query that exists on all dashboards. This annotation query will fetch all annotation events that originate from the current dashboard, which are stored in Grafana, and show them on the panel where they were created. This includes alert state history annotations.
To add annotations directly to the dashboard, this query must be enabled.
To confirm if the built-in query is enabled, take the following steps:
1. Click the dashboard settings (gear) icon in the dashboard header to open the dashboard settings menu.
1. Click **Annotations**.
1. Find the **Annotations & Alerts (Built-in)** query.
If it says **Disabled** before the name of the query, then you'll need to click the query name to open it and update the setting.
You can stop annotations from being fetched and drawn by taking the following steps:
1. Click the dashboard settings (gear) icon in the dashboard header to open the settings menu.
1. Click **Annotations**.
1. Find and click the **Annotations & Alerts (Built-in)** query to open it.
1. Click the **Enabled** toggle to turn it off.
When you copy a dashboard using the **Save As** feature it will get a new dashboard id, so annotations created on source dashboard will no longer be visible on the copy. You can still show them if you add a new **Annotation Query** and filter by tags. However, this only works if the annotations on the source dashboard had tags to filter by.
### Filter queries by tag
You can create new queries to fetch annotations from the built-in annotation query using the `-- Grafana --` data source by setting _Filter by_ to `Tags`.
Grafana v8.1 and later versions also support typeahead of existing tags, provide at least one tag.
For example, create an annotation query name `outages` and specify a tag `outage`. This query will show all annotations (from any dashboard or via API) with the `outage` tag. If multiple tags are defined in an annotation query, then Grafana will only show annotations matching all the tags. To modify the behavior, enable `Match any`, and Grafana will show annotations that contain any one of the tags you provided.
{{< figure src="/static/img/docs/annotations/annotations_typeahead_support-8-1-0.png" max-width="600px" >}}
{{< figure src="/media/docs/grafana/dashboards/screenshot-annotations-typeahead-support-10.0.png" max-width="600px" >}}
In Grafana v5.3+ it's possible to use template variables in the tag query. So if you have a dashboard showing stats for different services and a template variable that dictates which services to show, you can now use the same template variable in your annotation query to only show annotations for those services.
You can also use template variables in the tag query. This means if you have a dashboard showing stats for different services and a template variable that dictates which services to show, you can use the same template variable in your annotation query to only show annotations for those services.
{{< figure src="/static/img/docs/annotations/annotation_tag_filter_variable-8-1-0.png" max-width="600px" >}}
## Querying other data sources
Annotation events are fetched via annotation queries. To add a new annotation query to a dashboard
open the dashboard settings menu, then select `Annotations`. This will open the dashboard annotations
settings view. To create a new annotation query hit the `New` button.
<!--![](/static/img/docs/v50/annotation_new_query.png)-->
{{< figure src="/static/img/docs/v50/annotation_new_query.png" max-width="600px" >}}
Specify a name for the annotation query. This name is given to the toggle (checkbox) that will allow
you to enable/disable showing annotation events from this query. For example you might have two
annotation queries named `Deploys` and `Outages`. The toggle will allow you to decide what annotations
to show.
### Annotation query details
The annotation query options are different for each data source. For information about annotations in a specific data source, refer to the specific [data source]({{< relref "../../../datasources/" >}}) topic.
{{< figure src="/media/docs/grafana/dashboards/screenshot-annotation-tag-filter-variable-10.0.png" max-width="600px" >}}

View File

@@ -65,7 +65,7 @@ The query parameter `var-adhoc=key|=|value` applies the ad hoc filter configured
### Example
See [https://play.grafana.org/d/000000002/influxdb-templated?orgId=1&var-datacenter=America&var-host=All&var-summarize=1m&var-adhoc=datacenter%7C%3D%7CAmerica] - this passes the ad hoc filter variable `adhoc` with the filter value `datacenter = America`.
[This example in Grafana Play](https://play.grafana.org/d/000000002/influxdb-templated?orgId=1&var-datacenter=America&var-host=All&var-summarize=1m&var-adhoc=datacenter%7C%3D%7CAmerica) passes the ad hoc filter variable `adhoc` with the filter value `datacenter = America`.
## Controlling time range using the URL

View File

@@ -30,7 +30,13 @@ Dashboards and panels allow you to show your data in visual form. Each panel nee
For more information about data sources, refer to [Data sources]({{< relref "../../../datasources/" >}}) for specific guidelines.
1. In the Visualization list, select a visualization type.
1. Click the Refresh dashboard icon to query the data source.
![Refresh dashboard icon](/media/docs/grafana/dashboards/screenshot-refresh-dashboard-9.5.png)
1. In the visualization list, select a visualization type.
![Visualization selector](/media/docs/grafana/dashboards/screenshot-select-visualization-9-5.png)
Grafana displays a preview of your query results with the visualization applied.
@@ -48,9 +54,12 @@ Dashboards and panels allow you to show your data in visual form. Each panel nee
- [Configure thresholds]({{< relref "../../../panels-visualizations/configure-thresholds/" >}})
- [Configure standard options]({{< relref "../../../panels-visualizations/configure-standard-options/" >}})
1. Add a note to describe the visualization (or describe your changes) and then click **Save** in the upper-right corner of the page.
1. When you've finished editing your panel, click **Save** to save the dashboard.
Notes can be helpful if you need to revert the dashboard to a previous version.
Alternatively, click **Apply** if you want to see your changes applied to the dashboard first. Then click the save icon in the dashboard header.
1. Enter a name for your dashboard and select a folder, if applicable.
1. Click **Save**.
## Configure repeating rows

View File

@@ -1,6 +1,6 @@
---
title: Modify dashboard settings
menuTitle: Dashboard settings
menuTitle: Modify dashboard settings
weight: 8
keywords:
- time settings
@@ -12,7 +12,7 @@ keywords:
# Modify dashboard settings
The dashboard settings page enables you to:
The dashboard settings page allows you to:
- Edit general dashboard properties, including time settings
- Add annotation queries
@@ -31,7 +31,7 @@ Adjust dashboard time settings when you want to change the dashboard timezone, t
1. On the **Dashboard settings** page, click **General**.
1. Navigate to the **Time Options** section.
1. Specify time settings according to the following descriptions.
1. Specify time settings as follows.
- **Timezone:** Specify the local time zone of the service or system that you are monitoring. This can be helpful when monitoring a system or service that operates across several time zones.
- **Default:** Grafana uses the default selected time zone for the user profile, team, or organization. If no time zone is specified for the user profile, a team the user is a member of, or the organization, then Grafana uses the local browser time.
@@ -62,7 +62,7 @@ the dashboard. These dropdowns make it easy to change the data being displayed i
For more information about variables, refer to [Variables]({{< relref "../../variables/" >}}).
1. On the **Dashboard settings** page, click **Variable** in the left side section menu and then the **Add variable** button.
1. In the **General** section, the the name of the variable. This is the name that you will later use in queries.
1. In the **General** section, the name of the variable. This is the name that you will later use in queries.
1. Select a variable **Type**.
> **Note:** The variable type you select impacts which fields you populate on the page.
@@ -74,7 +74,7 @@ For more information about variables, refer to [Variables]({{< relref "../../var
Dashboard links enable you to place links to other dashboards and web sites directly below the dashboard header. Links provide for easy navigation to other, related dashboards and content.
1. On the **Dashboard settings** page, click **Links** in the left side section menu and then the **Add link** button.
1. Enter title and and in the **Type** field, select **Dashboard** or **Link**.
1. Enter title and in the **Type** field, select **Dashboard** or **Link**.
1. To add a dashboard link:
a. Add an optional tag. Tags are useful creating a dynamic dropdown of dashboards that all have a specific tag.
b. Select any of the dashboard link **Options**.

View File

@@ -75,7 +75,7 @@ Each field in the dashboard JSON is explained below with its usage:
| **time** | time range for dashboard, i.e. last 6 hours, last 7 days, etc |
| **timepicker** | timepicker metadata, see [timepicker section](#timepicker) for details |
| **templating** | templating metadata, see [templating section](#templating) for details |
| **annotations** | annotations metadata, see [annotations section](#annotations) for details |
| **annotations** | annotations metadata, see [annotations]({{< relref "../annotate-visualizations" >}}) for how to add them |
| **refresh** | auto-refresh interval |
| **schemaVersion** | version of the JSON schema (integer), incremented each time a Grafana update brings changes to said schema |
| **version** | version of the dashboard (integer), incremented each time the dashboard is updated |
@@ -144,11 +144,11 @@ Usage of the fields is explained below:
| --------------------- | -------------------------------------- |
| **collapse** | whether timepicker is collapsed or not |
| **enable** | whether timepicker is enabled or not |
| **notice** | TODO |
| **now** | TODO |
| **refresh_intervals** | TODO |
| **status** | TODO |
| **type** | TODO |
| **notice** | |
| **now** | |
| **refresh_intervals** | |
| **status** | |
| **type** | |
### templating
@@ -236,6 +236,6 @@ Usage of the above mentioned fields in the templating section is explained below
| **name** | name of variable |
| **options** | array of variable text/value pairs available for selection on dashboard |
| **query** | data source query used to fetch values for a variable |
| **refresh** | TODO |
| **regex** | TODO |
| **refresh** | |
| **regex** | |
| **type** | type of variable, i.e. `custom`, `query` or `interval` |

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