PromLink: Fixes promlink test failing in CI and locally (#74299)
(cherry picked from commit 39b3b08926)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Docs: Remove docs reference to removed feature (#74139)
* Changed docs version in link
* Removed reference to dashboard previews docs
* Added back reference and replaced partial URL with relref
* Remove reference to removed docs
(cherry picked from commit b2f7476bb4)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* 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>
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>
* [LDAP] Disable removed users on login (#74016)
* [LDAP] Disable removed users on login
* Fix tests
* Add test for user disabling
* Add tests for disabling user behind auth proxy
* Linting.
* Rename setup func
* Account for reviews comments
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
(cherry picked from commit f900098cc9)
* manual backport of #74016
* LDAP: Fix active sync with large quantities of users (#73834)
* Fix middleware test
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
CI: Mount /root/.docker/ dir in authenticate-gcr step (#73977)
Mount /root/.docker/ dir
(cherry picked from commit eea4adea29)
# Conflicts:
# .drone.yml
Docs: Include Cloud support with RBAC API (#73522)
Update access_control.md
Update to show that RBAC HTTP API can be used with a Cloud account also.
(cherry picked from commit d8fd4c2cbe)
Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
access control api: Correction of typo in list your permissions endpoint (#64399)
Correction of API endpoint
Correction of an API endpoint in 'List your permissions' section. Current endpoint results in 404 page
(cherry picked from commit cb040a72bd)
Co-authored-by: bojankezele <79632099+bojankezele@users.noreply.github.com>
Docs: change headings on 2 data source pages for SEO (#73792)
* changed grafana alerting titles and headings
* changed H1 heading for SEO
(cherry picked from commit b654e5642c)
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* "Release: Updated versions in package to 10.0.5"
* Update version to 10.0.5 in gen.ts files
---------
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
Docs: Introduction topic title update (#73702)
updates introduction topic title to be consistent with Grafana Cloud and other products
(cherry picked from commit 2d388cfa55)
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* SSE: DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData) (#71246)
* introduce a function checkIfSeriesNeedToBeFixed to scan all value fields in the response and provide a function that updates Series so they can be uniquely identifiable. Only Graphite and TestData are checked.
* update `DSNode.Execute` to run this function and provide it to WideToMany
* update WideToMany to run the fix function if it is not nil
Codeowners: Add myself (Miki) as codeowner of connections and datasources (#73623)
add mikkancso as connections, datasources codeowner
(cherry picked from commit cf9da12975)
Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
disable a feature toggle that is on by default (#69438)
* disable a feature toggle that is on by default
We document how to enable a feature toggle, but not how to disable one. This adds the config setting to disable a toggle that is on by default.
* remove "alpha"
Alpha features are not the only ones that can be enabled, and we don't use the term "alpha" anymore.
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* makes prettier
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.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 4a6057db65)
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
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>
Docs: Fixed Grafana Fundamentals tutorial to match updated UI (#73168)
* Update index.md
The word `Configuration` was used to describe an action for getting started, when the actual UI has the word `Administration` and not Configuration. Updated the docs to reflect the actual environment created.
* Update index.md
Updated the tutorial to match the current UI options
* Made copy edits for styling and consistency with Cloud fundamentals tutorial
Made some copy edits to match our style guide and to make this tutorial a bit more consistent with the Cloud version. Also added the step for updating the legend back to the build dashboards section.
* Ran linter
* Edited text to match updated UI
Made edits to match UI behaviour as well as some further style edits.
* Made final copy edits
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit cc1ea31616)
Co-authored-by: C M <40527412+glitchwizard@users.noreply.github.com>
docs: remove Moogsoft from angular list, update version for helm (#73204)
(cherry picked from commit 63ffd95110)
Co-authored-by: David Harris <david.harris@grafana.com>
AzureMonitor: Allow `serviceTags` and `tags` to be empty for trace results (#73145)
Allow serviceTags and tags to be empty
(cherry picked from commit 95546551bc)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Docs: Update to include keycloak link in oauth docs (#72698)
Update to include keycloak link in oauth docs
(cherry picked from commit 3c289d8a08)
Co-authored-by: Jess Sartin <jdoherty513@gmail.com>
Add a warning in the documentation (#72975)
A partner complained in the name of a customer. They have 6k datasources and it took them some time to figure out why they only had 5k coming back.
This commit add a warning for this edge case, content is pretty clear.
(cherry picked from commit 5eef8291e2)
Co-authored-by: Clément Duveau <clement@duveau.eu>
Docs: Update screenshots for generating an access token for signing a plugin (#73031)
updated screenshots path and name
(cherry picked from commit 3c4d2edb61)
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
sign-plugin-docs: information of usage of a new token has been added to the docs (#72912)
* Documentation for signing a plugin has been updated
* changes after review
* small review change
(cherry picked from commit ba3cbbef7f)
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
Prometheus: Fix fetching label values when datasource has no labels match api support (#72960)
* interpolate match string
* provide unit test
* add the third parameter back to fix the unit test
(cherry picked from commit 29906847e1)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Update bind-net-capabilities.md (#65181)
This doc fragment is included on multiple pages including this one: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
the only flaw is it's missing "sudo". Modern linux practice suggests using sudo for all administrative edits like this, and this change reinforces parallel structure in the target docs page. There may potentially be some other context this fragment is used in where sudo isn't appropriate, but this makes it easier to copy/paste the command and have it work on modern linuxes.
(cherry picked from commit 0d6e911fff)
Co-authored-by: David Allen <david.allen@grafana.com>
Usage stats: Tune collector execution startup and interval (#72688)
* Do not update statistics at service collector startup
* Configurable collector interval
* Introduce initial random delay
* Prevent reporting metrics until the stats have been collected
* Apply suggestion from code review
(cherry picked from commit afb59af79b)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Tempo: Only get span_names when they are in the response (#72663)
* Only get span names when they are in the response
* Find span_name field/labels
(cherry picked from commit b4c55765fe)
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
Update _index.md (#72222)
The existing link will take new users to the Data Source Management page which falls under that administration section and is perhaps more advanced that we want for a new user. The updated link takes new users to what I think was the intended "Data Sources" page.
(cherry picked from commit b8118520e4)
Co-authored-by: Iain Finlayson <ruffiain@gmail.com>
Update all links that have destinations outside of /docs/grafana/latest/datasources/ to use `docs/reference` shortcode (#72051)
* Update all links that have destinations outside of /docs/grafana/latest/datasources/ to use docs/reference shortcode
* Fix typo
* Prettier
---------
(cherry picked from commit 2b14b2d564)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
docs: remove broken plugin from Angular guidance (#72614)
aceiot-svg-panel fails to load in G10 and is therefore (currently) an unviable alternative
(cherry picked from commit 01100f83ba)
Co-authored-by: David Harris <david.harris@grafana.com>
InfluxDB: Fix fetching retention policies after manually entering a non-existent retention policy (#72564)
Don't fetch tag keys before fetching policies
(cherry picked from commit 31f4eddbb6)
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)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
docs: fix broken links (#72582)
* docs: fix broken link
To reflect changes on plugin-tools site
* fix more links
(cherry picked from commit d250927850)
Co-authored-by: David Harris <david.harris@grafana.com>
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>
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)
Co-authored-by: Eva <ebuchala@gmail.com>
* Alerting: Fix state manager to not keep datasource_uid and ref_id labels in state after Error (#72216)
(cherry picked from commit 78fc3bcdf4)
* use old QueryError
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Docs: Loki data sources updates (#72041)
* added new configure loki doc
* finished first draft of config doc
* changed file name
* started updates to query editor
* updated config and qury editor
* updated index doc config doc and query editor
* updated query editor
* updates to query editor doc
* more updates to query editor and index doc
* one small update
* updates to query editor doc and index
* Update docs/sources/datasources/loki/_index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/loki/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* made changes suggested in PR
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 443b4b0327)
AzureMonitor: revert Variable Editor region changes (#72306)
* Revert "remove regions/locations from variable editor"
This reverts commit 41dc6a8bfb.
* Revert "remove region pieces from e2e"
This reverts commit 6b1f82f14a.
* e2e: open resource picker correctly
(cherry picked from commit 51b199e986)
Dashboard: New Datasource picker link is keyboard accessible (#72134)
* WIP
* fixes for readability
* fix
* WIP
* Keep tab index working with portal
* Use callback and clean up
* Fix linting errors
* Ignore clickable element
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
(cherry picked from commit cae68b955b)
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)
Chore: Remove topnav feature flag (#72337)
* Remove topnav feature flag
* Allow deprecated flags to be enabled by default
* change topnav feature flag to deprecated instead
* fix lint
(cherry picked from commit 488eac0e49)
"Release: Updated versions in package to 10.0.4"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
PluginExtensions: Allow to specify unkown properties in override but they will be ignored (#72273)
* fixed bug.
* Update public/app/features/plugins/extensions/getPluginExtensions.ts
Co-authored-by: Ben Sully <ben.sully@grafana.com>
* Update public/app/features/plugins/extensions/getPluginExtensions.test.ts
Co-authored-by: Ben Sully <ben.sully@grafana.com>
* Update public/app/features/plugins/extensions/getPluginExtensions.ts
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Update public/app/features/plugins/extensions/getPluginExtensions.test.ts
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
---------
Co-authored-by: Ben Sully <ben.sully@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
(cherry picked from commit 1755f8c7b7)
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Alerting: Fix contact point testing with secure settings (#72235)
Fixes double encryption of secure settings during contact point testing and removes code duplication
that helped cause the drift between alertmanager and test endpoint. Also adds integration tests to cover
the regression.
Note: provisioningStore is created to remove cycle and the unnecessary dependency.
(cherry picked from commit d31d175109)
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>
* Alerting: Improve performance of matching captures (#71828)
This commit updates eval.go to improve the performance of matching
captures in the general case. In some cases we have reduced the
runtime of the function from 10s of minutes to a couple 100ms.
In the case where no capture matches the exact labels, we revert to
the current subset/superset match, but with a reduced search space
due to grouping captures.
(cherry picked from commit 8dd3eb856d)
* Add label fingerprints from grafana-plugin-sdk-go
* Remove unsafe.StringData as we use Go 1.19
* Fix lint
---------
Co-authored-by: George Robinson <george.robinson@grafana.com>
* 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>
CloudMonitoring: Correctly set title and text fields for annotations (#71888)
Correctly set title and text fields
(cherry picked from commit c4d6509145)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Prometheus: Fix heatmap query format (#71971)
Check first numeric field instead of name: Value
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
(cherry picked from commit 1c358de190)
* fix conflicts in merge, add ts-ignore to ignore missing name in tests
Loki: Fix e2e flakiness (#69441)
fix loki e2e test flakiness by waiting for requests to finish
(cherry picked from commit b11c264df3)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
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>
Alerting: Add tests for matching captures (#71928)
This commit adds tests for matching captures, which we do not have
at present.
(cherry picked from commit f1af0502db)
Co-authored-by: George Robinson <george.robinson@grafana.com>
Alerting: Sort NumberCaptureValues in EvaluationString (#71927)
This commit changes extractEvalString to sort NumberCaptureValues
in ascending order of Var before building the output string. This
means that users will see EvaluationString in a consistent order,
but also make it possible to assert its output in tests.
(cherry picked from commit 89dcaaf049)
Co-authored-by: George Robinson <george.robinson@grafana.com>
AzureMonitor: Set timespan in Logs Portal URL link (#71841)
Set timespan in Logs Portal URL link
(cherry picked from commit 116e971af3)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Explicitly set all front matter labels in the source files (#71548)
* Set every page to have defaults of 'Enterprise' and 'Open source' labels
* Set administration pages to have of 'Cloud', 'Enterprise', and 'Open source' labels
* Set administration/enterprise-licensing pages to have 'Enterprise' labels
* Set administration/organization-management pages to have 'Enterprise' and 'Open source' labels
* Set administration/provisioning pages to have 'Enterprise' and 'Open source' labels
* Set administration/recorded-queries pages to have labels cloud,enterprise
* Set administration/roles-and-permissions/access-control pages to have labels cloud,enterprise
* Set administration/stats-and-license pages to have labels cloud,enterprise
* Set alerting pages to have labels cloud,enterprise,oss
* Set breaking-changes pages to have labels cloud,enterprise,oss
* Set dashboards pages to have labels cloud,enterprise,oss
* Set datasources pages to have labels cloud,enterprise,oss
* Set explore pages to have labels cloud,enterprise,oss
* Set fundamentals pages to have labels cloud,enterprise,oss
* Set introduction/grafana-cloud pages to have labels cloud
* Fix introduction pages products
* Set panels-visualizations pages to have labels cloud,enterprise,oss
* Set release-notes pages to have labels cloud,enterprise,oss
* Set search pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/audit-grafana pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-authentication pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/configure-authentication/enhanced-ldap pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-authentication/saml pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-request-security pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/configure-team-sync pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/export-logs pages to have labels cloud,enterprise
* Set troubleshooting pages to have labels cloud,enterprise,oss
* Set whatsnew pages to have labels cloud,enterprise,oss
* Apply updated labels from review
---------
(cherry picked from commit 7eb17bccca)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Docs: fix bullet lists for supported time interval (#67389)
* Docs: fix bullet lists for supported time interval
* Docs: run prettier
(cherry picked from commit b089281255)
Co-authored-by: Rodrigo Petter Daniel <rodrigopetterdaniel@gmail.com>
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>
Auth: Add support for custom signing keys in auth.azure_ad (#71365)
* fallthrough JWKS validation and caching for Azure
* remove unused field
(cherry picked from commit fbfdd6ba32)
Alerting: No longer silence paused alerts during legacy migration (#71596)
* Alerting: No longer silence paused alerts during legacy migration
Now that we migrate paused legacy alerts to paused UA alert rules, we no longer need to silence them.
(cherry picked from commit 8c6cdf51fc)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
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>
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>
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)
* 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)
* Add sync-mirror to codeowners
api: ignore /api/gnet proxy when gzipping responses (#71437)
This PR adds /api/gnet to the list of ignored paths in the gzip middleware.
Without this, when gzip is enabled (`server.enable_gzip = true`), responses
from the gnet proxy are double compressed: once by grafana.com and once by
Grafana itself. With this change we only do one round of compression for these
endpoints.
To test this out, try a request like this with `server.enable_gzip = true`
(after setting `GCOM_TOKEN` to a valid grafana.com token; you may need to
change the 'bsull' slug, too):
curl -v --user admin:admin \
-H "X-Api-Key: $GCOM_TOKEN" \
-H 'Accept-Encoding: gzip' \
localhost:3000/api/gnet/instances/bsull/provisioned-plugins/grafana-ml-app | gzip -d
Note that there are two Content-Encoding: gzip headers before this PR, and
the output is still compressed even after the `gzip -d`. After this PR things
look as expected.
(cherry picked from commit 51c94bccd7)
Co-authored-by: Ben Sully <ben.sully@grafana.com>
docs: update nodejs required version (#71469)
* docs: update nodejs required version
* docs: update nodejs version in plugin tutorials
* docs: update to LTS guidance
(cherry picked from commit 3a45f02ef3)
Co-authored-by: David Harris <david.harris@grafana.com>
Docs: Adding alias to package a plugin (#71478)
Adding alias to package a plugin
(cherry picked from commit 471c858e67)
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Update info for the Support Bundle (#69419)
* Update info for the Support Bundle
Add in a note that access to the Support Bundle requires Grafana 9.5 and above.
* Make the user/permission restriction more visible since it gets lost a little in the code block
* Run prettier
* Move the new content to Before you begin section
This is the pattern that we're following with other doc topics as well.
* fix a typo
* linting
---------
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
(cherry picked from commit 7f865f627a)
Co-authored-by: Zach Day <zachary.day@grafana.com>
"Release: Updated versions in package to 10.0.3"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Alerting: Fix Alertmanager change detection for receivers with secure settings (#71307)
* Alerting: Make ApplyAlertmanagerConfiguration only decrypt/encrypt new/changed secure settings
Previously, ApplyAlertmanagerConfiguration would decrypt and re-encrypt all secure settings. However, this caused re-encrypted secure settings to be included in the raw configuration when applied to the embedded alertmanager, resulting in changes to the hash. Consequently, even if no actual modifications were made, saving any alertmanager configuration triggered an apply/restart and created a new historical entry in the database.
To address the issue, this modifies ApplyAlertmanagerConfiguration, which is called by POST `api/alertmanager/grafana/config/api/v1/alerts`, to decrypt and re-encrypt only new and updated secure settings. Unchanged secure settings are loaded directly from the database without alteration.
We determine whether secure settings have changed based on the following (already in-use) assumption: Only new or updated secure settings are provided via the POST `api/alertmanager/grafana/config/api/v1/alerts` request, while existing unchanged settings are omitted.
* Ensure saving a grafana-managed contact point will only send new/changed secure settings
Previously, when saving a grafana-managed contact point, empty string values were transmitted for all unset secure settings. This led to potential backend issues, as it assumed that only newly added or updated secure settings would be provided.
To address this, we now exclude empty ('', null, undefined) secure settings, unless there was a pre-existing entry in secureFields for that specific setting. In essence, this means we only transmit an empty secure setting if a previously configured value was cleared.
* Fix linting
* refactor omitEmptyUnlessExisting
* fixup
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
(cherry picked from commit e3787de470)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Elasticsearch: Fix using multiple indexes with comma separated string (#71284)
* Revert "Elasticsearch: Use array of strings as index in backend queries (#67276)"
This reverts commit d0ced39847.
* updated tests
(cherry picked from commit e17540bdcd)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Update Public Dashboards documentation (#71276)
The documentation for how to support public dashboards is slightly incorrect.
(cherry picked from commit 899de865fc)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Transformations: Fix `extractFields` throwing Error if one value is undefined or null (#71070)
* fix extract fields with null values
* rename test
* check for null values
* revert changes
* improve position
(cherry picked from commit b05cc2d651)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* 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
* remove the cd command
* forgot to make drone :(
* idk
* reference script more specifically
* i guess we'll just cd /src
* Only show not found artifacts
(cherry picked from commit d5a4c81fa1)
AsyncSegment: Display no-options placeholder for no items status (#70995)
AsyncSegment: Display no options dropdown placeholder for no items status
(cherry picked from commit ad5a36e7a3)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
docs: remove kentik from angular plugins (#71191)
As of v1.7.0 this plugin no longer uses Angular
(cherry picked from commit a9368aab7a)
Co-authored-by: David Harris <david.harris@grafana.com>
Docs: Adding the right syntax highlighting in a few places (#71141)
Adding the right syntax highlighting in a few places
(cherry picked from commit 536146de5f)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Prometheus: Heatmap Format with No Data (#68938)
* Prometheus: Heatmap Format with No Data
* Simplify conditional logic
(cherry picked from commit 0fa991a4b9)
Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
DS Picker: Filter available DS based on component props (#70613)
* Apply filters consistently to every list in the picker
* Display all built-in DS when editing a panel
* Add `uploadFile` prop to toggle the CSV file DS
(cherry picked from commit 6ad9e386ad)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Graphite: Fix infinite loop in text editor when using graphite in a Mixed datasource (#70970)
Fix infinite react state loop exhibited in mixed datasource by stringifying objects in useEffect dependencies
(cherry picked from commit 4217c8057b)
Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
AzureMonitor: Fix metric names for multi-resources. (#70864)
When building a query for multiple resources only a subset of metrics
are valid and that selection is only available via the API version `2017-12-01-preview`.
fixes#68603
(cherry picked from commit f32f1859a0)
Co-authored-by: Adam Simpson <adam@adamsimpson.net>
docs/serviceaccount.md - Incorrect key "role" for creating token (#68809)
The key "role" in the JSON body doesn't make sense for creating service account *tokens* (and the method will happily create one without it). It is only required for creating the service account itself.
(cherry picked from commit ad8211cce7)
Co-authored-by: Frederic Hemberger <mail@frederic-hemberger.de>
Logs: Do not insert log-line into log-fields in json download (#70901)
* logs: do not insert log-line into log-fields in json download
* fixed test after merge
(cherry picked from commit 2084cc9955)
Fix: Change getExistingDashboardByTitleAndFolder to get dashboard by title, not slug (#70723)
* Fix: Change getExistingDashboardByTitleAndFolder to get dashboard by title, not slug
* test: add tests for get dashboard with existing name, get dashboard with non existing name, get dashboard with existing name in a folder
* Update pkg/services/dashboards/database/database_test.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* require specific error for Should be able to get dashboard with existing name
* Update pkg/services/dashboards/database/database_test.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* implement sofia suggestions to check for specific err, remove logs
* give test more specific name
* implement daniel suggestion of formatting documentation comment in safe way
* fix test title to refer to root directory not specific folder
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
(cherry picked from commit 67cdae4b7d)
Co-authored-by: Kat Yang <69819079+yangkb09@users.noreply.github.com>
* Alerting: Support concurrent queries for saving alert instances (#70525)
This commit adds support for concurrent queries when saving alert
instances to the database. This is an experimental feature in
response to some customers experiencing delays between rule evaluation
and sending alerts to Alertmanager, resulting in flapping. It is
disabled by default.
(cherry picked from commit 7edbe72483)
* remove changes in api_testing.go
---------
Co-authored-by: George Robinson <george.robinson@grafana.com>
Alerting: Convert 'Both' type Prometheus queries to 'Range' in migration (#70781)
* Alerting: Convert 'Both' type Prometheus queries to 'Range' in migration
(cherry picked from commit 00d5f7fed7)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Alerting: Add limit query parameter to Loki-based ASH api, drop default limit from 5000 to 1000, extend visible time range for new ASH UI (#70769)
* Add limit query parameter
* Drop copy paste comment
* Extend history query limit to 30 days and 250 entries
* Fix history log entries ordering
* Update no history message, add empty history test
---------
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
(cherry picked from commit f94fb765b5)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
* Chore: Generate plugin version and remove lineage version (#69781)
* Generate plugin version and remove lineage version
* Generate version for each major
* Remove pluginVersion from core plugins
* Remove code version generation
* Generate cue files
* Move grafana version into jenny
* fix go import
(cherry picked from commit b0893c29a7)
* Update versions
Variables: Detect a name for duplicated variable (#68110)
* Variables: Detect a name for duplicated variable
* Variables: create copies of copies
(cherry picked from commit db478ced45)
Co-authored-by: Jaryk <ugzuzg@gmail.com>
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>
Fix: Create store only once in cli mode (#70391)
fix: create store only once in cli mode
(cherry picked from commit 47b2e7f1d7)
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
* Candlestick: Migrate to schema (#62113)
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 39433b5b9a)
* Revert to old schema structure for 10.0.x to fix build
---------
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Correlations: Account for restricted datasource (#70717)
* Account for restricted datasource
* Allow for fetching datasource to return undefined and beef up filtering after to remove invalid datasources
* Revert "Account for restricted datasource"
This reverts commit 1087159b93.
* Empty-Commit
(cherry picked from commit 2738a3a6da)
Co-authored-by: Kristina <kristina.durivage@grafana.com>
Alerting: Move rule UID from Loki stream labels into log lines (#70637)
Move rule uid into log line to reduce cardinality
(cherry picked from commit 4aa477f48f)
Co-authored-by: William Wernert <william.wernert@gmail.com>
Alerting: Display correct results when using different filters on alerting panels (#70482)
* Trigger separate rules request for each alerting panel in a dashboard
* Add RTK method to fetch prom rules
* Use RTKQuery to get prom rules in UnifiedAlertList
* Fix lint
* Mock promRules call
* Address PR comments
* Fix tests
(cherry picked from commit f17c49e632)
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>
DS Picker: Add missing props and improve autoheight logic (#70393)
* DS Picker: Add `inputId` and `noDefault` options
* DS Picker: Add `disabled` state
* Add tests for `disabled`
* Select default DS if `current` is not provided
* Remove `width` from style
* Move types next to components
* Only calculate height when opening
(cherry picked from commit 3bf8dc1397)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
LogContext: Fix filtering out log lines with the same entry (#70538)
* fix bug with filtering out too many log lines
* fix acts
* remove unused line
(cherry picked from commit 9cf685cfda)
Navigation: Fix toolbar actions flickering on mobile (#70524)
* fix flickering overflow
* set everything to hidden by default
* extend intersectionobserver mock
(cherry picked from commit ff429c9af5)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
"Release: Updated versions in package to 10.0.2"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Explore: Clean up query subscriptions when a query is canceled (#70235)
* Ensure clean up functions are called when query subscriptions are canceled
* Fix unit tests
(cherry picked from commit cb2cc591da)
DataSourcePicker: refactor file drop out of query group (#68236)
* refactor file drop out of query group
* make sure we display errors when file upload fails
* refactor to make onChange take default queries
* let grafana datasource handle file -> query
* add dropdown tests
* add modal tests
* add filtering props to dropdown
---------
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
(cherry picked from commit cf4d86d95f)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
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>
Tracing: supply Grafana build version (#69733)
* tracing: supply Grafana build version
Not etcd client version.
* go mod tidy
(cherry picked from commit c45ff94806)
Co-authored-by: Bryan Boreham <bjboreham@gmail.com>
XYChart: Ensure color scale is field-local and synced with data updates (#70480)
(cherry picked from commit 3007e3b209)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Alerting: Fix TestIntegration_GetAlertRulesForScheduling to make sure rules are created in different org (#69088)
make sure rules are created in different org
(cherry picked from commit b57ef1f2c7)
* Alerting: Fix flaky TestIntegrationUpdateAlertRules (#69106)
Prevents duplicate alert rule ids and 0 value for BaseInterval and IntervalSeconds
(cherry picked from commit 97ae6ae6ef)
* Alerting: Fix unique violation when updating rule group with title chains/cycles (#67868)
* Alerting: Fix unique violation when updating rule group with title chains/cycles
The uniqueness constraint for titles within an org+folder is enforced on every update within a transaction instead of on commit (deferred constraint). This means that there could be a set of updates that will throw a unique constraint violation in an intermediate step even though the final state is valid. For example, a chain of updates RuleA -> RuleB -> RuleC could fail if not executed in the correct order, or a swap of titles RuleA <-> RuleB cannot be executed in any order without violating the constraint.
The exact solution to this is complex and requires determining directed paths and cycles in the update graph, adding in temporary updates to break cycles, and then executing the updates in reverse topological order (see first commit in PR if curious).
This is not implemented here.
Instead, we choose a simpler solution that works in all cases but might perform more updates than necessary. This simpler solution makes a determination of whether an intermediate collision could occur and if so, adds a temporary title on all updated rules to break any cycles and remove the need for specific ordering.
In addition, we make sure diffs are executed in the following order: DELETES, UPDATES, INSERTS.
(cherry picked from commit 0c688190f7)
* Linting
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Explore: Remove storing derived "loading" property (#70324)
* Remove storing derived state (loading property) and use a selector instead
* Remove redundant tests
There's no way to change the interval while live streaming
* Remove check for isLive when deriving waiting for data
It was introduced in #18804
* Remove unused props
(cherry picked from commit a94ba7784a)
Alerting: Add debug logs for EndsAt timestamp (#70336)
This commit adds debug logs for previous_ends_at and next_ends_at
to state.go to help us debug issues where alerts are resolved in
Alertmanager due to expiration. This change is in response to a
support escalation where this information was needed but unavailable.
(cherry picked from commit 815e98ed95)
Co-authored-by: George Robinson <george.robinson@grafana.com>
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>
Tempo: Use pipe in TraceQL by default for multi-value variables (#70051)
* Use pipe in traceQL by default for multi value variables
* Use constant
(cherry picked from commit 06a4b6da62)
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
Command palette: Include help links (#70234)
enrich help node with frontend links
(cherry picked from commit db44ba305e)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Variables: allow `{}` type in `VariableWithOptions.current ` (#64358)
(cherry picked from commit 6f880b713a)
Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
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.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit a4a16b62c7)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
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>
DS Picker: first item is always active when filtering (#70071)
(cherry picked from commit 6be0ca396f)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Alerting: Fix newlines in text/plain template (#70207)
Alerting: Fix newlines in text/plain template at last
(cherry picked from commit a773b722b1)
Co-authored-by: George Robinson <george.robinson@grafana.com>
Datasources: Extend optional reporting (#69061)
* feat: add default properties to the `reportInteraction()`
* chore: add more tracking events to the ds-config page
* refactor: adding the `path` to the `meta` instaed
(cherry picked from commit 6a995d526a)
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
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
Alerting: Fix email template for text/plain emails (#69951)
This commit fixes the email template for text/plain emails to
support custom messages. It also fixes the default template,
removing extra whitespace and showing Summary and Description
annotations separate from the other annotations.
(cherry picked from commit c1e3362e21)
Co-authored-by: George Robinson <george.robinson@grafana.com>
Explore: Fixed Starred query history tab to show all starred queries (#69914)
* Starred queries shouldn't have from and to params
* Update request id when starred is true
* Update tests
(cherry picked from commit a40e589db7)
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
DS Picker: Built-in datasources are not marked as selected (#70020)
(cherry picked from commit 908b248e10)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
CodeEditor: Ensure suggestions only apply to the instance of the editor that registered them (#69995)
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/CodeEditor.internal.story.tsx
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/suggestions.ts
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/CodeEditor.internal.story.tsx
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/suggestions.ts
* remove duplicate editor from story
* remove suggestions from story
---------
Co-authored-by: Laura Benz <laura.benz@grafana.com>
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
(cherry picked from commit 61dbad6905)
# Conflicts:
# packages/grafana-ui/src/components/Monaco/CodeEditor.tsx
* grafana/schema: Make composable types part of the package (#69678)
* grafana/schema: Make composable types part of the package
* Add glob as dev dependency
* Review
(cherry picked from commit cae3b4c6e6)
# Conflicts:
# packages/grafana-schema/package.json
# yarn.lock
* Fix cherry pick
NestedFolders: Fix select all in folder view selecting items out of folder (#69780)
* NestedFolders: Fix select all selecting items outside of folder when viewing a folder
* fix lint errors
(cherry picked from commit ff89217d66)
DS Picker: Fix React key issue for built-in data source list (#70018)
(cherry picked from commit bc48622919)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
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)
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
* docs: update angular list (#69912)
* docs: update angular list
* Update docs/sources/developers/angular_deprecation/angular-plugins.md
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
(cherry picked from commit 8926d616ac)
* docs: update angular list (#69912)
* docs: update angular list
* Update docs/sources/developers/angular_deprecation/angular-plugins.md
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
(cherry picked from commit 8926d616ac)
Dashboards: Remove Explore option from panel menu when panel's datasource uid is "-- Dashboard --" (#69017)
* Remove Explore option from panel menu when panel's datasource uid is "-- Dashboard --"
* Use the constant SHARED_DASHBOARD_QUERY
(cherry picked from commit 3fd04edd81)
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Command Palette: Links opened in a new tab now route correctly when Grafana is served under a subpath (#69845)
don't strip base from url since we're not using locationSrv.push anymore
(cherry picked from commit 9eb8ec9fa9)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Heatmap: Sort fields by numeric names when single frame (#69879)
(cherry picked from commit cc8bedc173)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Alerting: Add image URI annotation only when there's an image (#69825)
* Alerting: Add image URI annotation only when there's an image
* fix function name (changed on main branch)
(cherry picked from commit ff3e028a85)
* Update compat_test.go
---------
Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
* Tempo/ServiceGraph: Specify explicit field types (#69759)
Assign field types to service graph fields
(cherry picked from commit 1696bc201e)
* fix merge
Service accounts: API key migration refactoring to parse as json object of the results (#69771)
refactoring to parse as json object of the results
(cherry picked from commit 5dceb5dff3)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Prometheus: Fix series to rows frame name issue for custom name from legend option (#69343)
* use custom name from legend
* revert prometheus change
* fix issue in the transformer and not prometheus
* getFrameDisplayName falls back to getFieldDisplayName already
* run prettier
(cherry picked from commit 32f27d10ff)
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
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>
CloudMonitoring: Improve parsing of GCM labels (#69800)
Update parsing of GCM labels
- Include parsing of metadata labels
(cherry picked from commit 9fc1de62d5)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
docs: whats new breaking changes updates (#69489)
* make breaking changes note more prominent in whats new
* changed paragraph structure and added heading
* moved breaking changes section to after the template
* move deprecations to breaking changes page
* break up paragraph
* run prettier
(cherry picked from commit 365fd67c3f)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Alerting: Change text on cloud AM email addresses for contact points (#68143)
(cherry picked from commit e1ff434917)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Service accounts: UI migration results (#68789)
* ui migration WIP
* merge
* migration tests for api
* revert chagnes to align with main
* revert chagnes to align with main
* revert chagnes to align with main
* remove unused code and comments
* revert gen files
* retry logic inplace
* fix a any
* fixed types
* migraiton results now show only result if no failures
* review comments
* wording to make it more actionable
* add migraiton summary text onyl for failed apikeys
* fixed wording and added a close button to the modal
* made the button close the modal
* moved state into component
* fix based on review, naming and removed unused code
* service account migration state optional
* making migration result undefined
* showing total and migrated numbers for a successful migration
* fix payload const to take the payload
(cherry picked from commit 081f59feba)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
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>
docs: improvements to visualizations docs (#69503)
* made changes from PR 67118
* made changes from PR 67123
* made some changes from PR 67128
* made changes from PR 67129
* made changes from PR 67133
(cherry picked from commit 337ffd3015)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Alerting: Fix broken UI because of query being optional for some ExpressionQuer… (#69650)
* Fix broken UI because of query being optional for some ExpressionQuery coditions field
* Delete query field from conditions in utils.test.ts
(cherry picked from commit 848eb01a89)
Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
Auth: Skip org role sync moved in docs (#69676)
skip org role sync moved in docs
(cherry picked from commit 498f8ea4ea)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
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>
Backport: Schema: Improve Dashboard kind docs and remove deprecated props (#69359)
Removes unused properties:
* `FieldColorModeId.PaletteSaturated`: It doesn't exist and it is not a valid palette.
* `VariableModel.rootStateKey`: It is not persisted in the DB, so it shouldn't be in the schema. It is a property only used in the frontend to store the Redux store key.
* `VariableModel.error`: It is not persisted in the DB, so it shouldn't be in the schema. It is a property only used in the frontend to store fetching errors.
* `Panel.thresholds`: old property only existing in previous versions of the dashboard schema.
* `Panel.timeRegions`: old property only existing in previous versions of the dashboard schema.
(cherry picked from commit 819041c732)
[DOC] Tracing: Add doc for Tempo Search query (#68923)
* Add doc for Tempo Search query
* Updates for wording and images
* Add note to Explore about query editor for tracing
* Fix prettier
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/shared/datasources/tempo-search-traceql.md
* Changes from prettier
* Update docs/sources/shared/datasources/tempo-search-traceql.md
* Update docs/sources/shared/datasources/tempo-search-traceql.md
* Updates from prettier
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 34ba2ddd84)
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Prevent crash while executing concurrent mixed queries (#874)
limit parallel query execution to 1 at a time
(cherry picked from commit 96579a60e19e2a9f2d6bdaeba64e0e702211eb73)
Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
Require alert.notifications:write permissions to test receivers and templates (#865)
(cherry picked from commit 3c21ab70075256d4ba8e4fbfdcb15f5a394161fa)
Co-authored-by: George Robinson <george.robinson@grafana.com>
Use doc-validator v3.0.0 (#69544)
- Structured output for use with [`reviewdog`](https://github.com/reviewdog/reviewdog).
You can achieve the original error output by piping the output to the following `jq` expression: `jq -r '"ERROR: \(.location.path):\(.location.range.start.line):\(.location.range.start.column): \(.message)"'`.
- Suggestions for simple link fixes.
In GitHub, [`reviewdog`](https://github.com/reviewdog/reviewdog) comments these suggestions for convenient replacement.
- Support for anchors referring to repeated headings.
In the case that a page has multiple headings that share the same text, a zero indexed, the renderer appends a numbered suffix to the identifier.
For example, when there are two headings that are both "Heading text", the first anchor identifier is `heading-text` and the second is `heading-text-1`.- Error when running `doc-validator` on no files.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit c46395ad88)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
docs: add datasource selector content (#69280)
* updated create dashboard topic including adding screenshot of DS selector
* finished editing build dashboards - create dashboards
* finished data source selection edits'
:
* updated tutorials
* reverted tutorial to old nav to match reality and added that prom DS is preselected
* wording edits
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add that configure DS is only for admins
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 865636993f)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
CloudMonitoring: Correctly set new query on type change (#69573)
Correctly set new query on type change
(cherry picked from commit 7bd85faa7f)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
This commit adds heuristics back to datasource healthchecks as
it was removed in #66198. The healthcheck for Prometheus datasources
also returns the kind (Prometheus or Mimir) and a boolean if the
ruler is enabled or disabled.
SparklineCell: Allow specifying time range (#69130)
add timeRange optional prop to Table and TablePanel
(cherry picked from commit 283c1c7dbe)
Co-authored-by: Domas <domasx2@gmail.com>
Alerting: Fix provisioned templates being ignored by alertmanager (#69485)
* Alerting: Fix provisioned templates being ignored by alertmanager
Template provisioning sets the template in cfg.TemplateFiles while a recent change
made it so that alertmanager reads cfg.AlertmanagerConfig.Templates instead.
This change fixes the issue on both ends, by having provisioning set boths fields and
reverts the change on the alertmanager side so that it uses cfg.TemplateFiles.
(cherry picked from commit c16f1f5e99)
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>
Docs: Rename External Group Sync references to Team Sync (#69395)
(cherry picked from commit 8235f774aa)
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
Log Context: Fix split view button using the wrong query (#69369)
* fix wrong query used in split button
* refactor into one function
* don't act?
(cherry picked from commit cb4ad588b9)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Pyroscope: Fix wrong defaults when importing query from different datasource (#69307)
(cherry picked from commit fb904852af)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Alerting: Fix matching labels with spaces in their values (#68909)
Fix matching labels with spaces in their values
(cherry picked from commit fb7993d021)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Alerting: Smaller fixes for long namespace / group names (#69095)
(cherry picked from commit 7e924e0d74)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Grafana UI: Fix plugin unit test errors (#69210)
* fix(grafana-ui): import from package to prevent import errors occurring in plugin tests
* style(grafana-ui): add e2e-selectors path to restricted imports rule
(cherry picked from commit 82f353c696)
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
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>
PublicDashboards: Revoke public URL from audit table fix (#69032)
(cherry picked from commit 38fa41f51f)
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
SQLStore: Align SQLite IsUniqueConstraintViolation() with other backend implementations (#69224)
* Add integration test for primary key and unique constrain violation
* Align SQLite IsUniqueConstraintViolation implementation with other backends
(cherry picked from commit 74e87ccbbd)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
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>
Themes: Unify secondary button and ToolbarButton (#68250)
* Themes: Unify secondary button and ToolbarButton
* Update
* Update light theme
* fix test
* fix toolbar button border
* fix disabled outline button style
* Use transparent color instead of dynamic computed color for hover bg for text/outline versions. this is what figma components do
(cherry picked from commit d4df5e0519)
Query Editor: Ensure dropdown menus position correctly (#69062)
prevent showing menu until options have loaded
(cherry picked from commit c55c091145)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
[Timeseries] Place legend to bottom when on <lg display (#69045)
Place timeseries legend to bottom when on <lg display
(cherry picked from commit f515d2efac)
Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
TimeSeries: Fix centeredZero y axis ranging when all values are 0 (#69034)
(cherry picked from commit 014126a43e)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Alerting: Fix provenance guard checks for Alertmanager configuration to not cause panic when compared nested objects (#69009)
* fix current settings parsed as new
* replace map comparison with cmp.Diff and log the diff
(cherry picked from commit e00260465b)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Auth: Fix visibility of the Invite button on /admin/users page (#68991)
* Fix for invite button visibility
* Align test
(cherry picked from commit df4db412cb)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Alerting: Add support for Alert State History Loki primary (#69065)
add support for multiple ash targets with loki as primary
(cherry picked from commit 73681a251e)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Docs: Add JSON format for webhook notifications to differences (#68786)
(cherry picked from commit 65e2df7a2e)
Co-authored-by: George Robinson <george.robinson@grafana.com>
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>
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>
Plugins: Correct the usage of mutex for gRPC plugin implementation (#68555)
correct usage of mutex
(cherry picked from commit bb6ec1470d)
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
AzureMonitor: Support multi-resource aliases and subscription aliases (#68648)
Update legend aliases
- Add subscription response type
- Update AzureMonitorQuery type
- Update docs
- Update tests
- Add function to retrieve subscription display name if not present
(cherry picked from commit bca8428f63)
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>
OpenTSDB: use an effect to get aggregators and filters (#68785)
* only update state if it's different
* use an effect
(cherry picked from commit 2cbd7f1be6)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Alerting: Fix stale query preview error (#68619)
* Use mutable ref to keep queries to be previewed to prevent stale state
* Extract code related to AlertQueryRunner to a separate hook
* Use hooks form state to keep fresh queries, fix recording rules preview
* Remove unused import
* Update query update explanation
(cherry picked from commit b37a6e9d4c)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Prometheus: Update schema with legendFormat and intervalFactor (#68687)
add legendFormat and intervalFactor to the schema
(cherry picked from commit 670c987409)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Graph: Fix bug with showing/hiding the legend (#68774)
* don't unmount the root when hiding the legend
* update comment
(cherry picked from commit 0b6c5722a5)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Alerting: Add additional contact points for external AM (#67920)
(cherry picked from commit a44ac0ed63)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
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
# Conflicts:
# .drone.yml
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
fix: Use fall back alert type for data source healthcheck alert when status is not recognised (#68650)
(cherry picked from commit 39e57489a1)
Co-authored-by: Andriy <andriy.urbanas@grafana.com>
AzureMonitor: Ensure legacy properties containing template variables are correctly migrated (#68697)
* Update migration ordering
- Update migration in applyTemplateVariables to account for interpolation from expression datasource
- Update mock to ensure overrides are passed through correctly
- Update tests
- Update migrateQuery function name for clarity
* Fix tests
* Remove comment
(cherry picked from commit 0be29b4c78)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
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>
fixed broken table format in docs (#68711)
* fixed broken table format in docs
* added prettier version of doc
(cherry picked from commit dc656ecd8a)
Co-authored-by: Krishna Dutt Panchagnula <krishnadutt123@gmail.com>
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>
Nested folders: only stop recursing up the tree if we hit a folder (#68676)
only stop recursing up the tree if we hit a folder
(cherry picked from commit 0a44793390)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Service graph: Fix error when service graph metrics are aggregated (#68613)
make service graph work with aggregated metrics
(cherry picked from commit e1c2eb8c10)
Co-authored-by: Domas <domasx2@gmail.com>
Chore: Ignore unique constrain failure when creating the main organization (#68644)
Chore: Ignore unique constrain failure when creatin the main organization
(cherry picked from commit 633b7875e7)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
NodeGraph: Fix overlaps preventing opening an edge context menu when nodes were too close (#68571)
(cherry picked from commit 14936f85df)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Elasticsearch: Handle no-index case in backend mode (#68534)
* elastic: backend migration: fix no-index case
* improved code
(cherry picked from commit fcef387151)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Elasticsearch: Fix passing of limit and datalinks to logs data frame (#68554)
* Elasticsearch: Fix passing of limit and datalinks to logs data frame
* Update public/app/core/logsModel.ts
Co-authored-by: François Massot <francois.massot@gmail.com>
---------
Co-authored-by: François Massot <francois.massot@gmail.com>
(cherry picked from commit dbbbc46351)
* Add missing comment
TopNav: Tone down shadow a bit in light theme (#68282)
* TopNav: Tone down shadow a bit in light theme
* softer shadow
(cherry picked from commit 5f84dad7e4)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
NestedFolders: make sure DashboardPage code is feature toggled correctly (#68602)
make sure DashboardPage code is feature toggled correctly
(cherry picked from commit bbb6795757)
AzureMonitor: Traces updates (#68462)
* Use fully qualified resource identifiers
* Add additional data link to explore parent span
* Correctly order links to not break trace logs functionality
(cherry picked from commit bf75969794)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
elastic: more tests (#68533)
* elastic: more tests
* fix lint error
(cherry picked from commit 6189f48be7)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
NestedFolders: Show Dashboard and Folder full breadcrumb hierarchy (#68308)
* update FolderDTO to match backend struct
* hacky way to get folder page breadcrumbs working
* hacky way to get dashboard nested breadcrumbs working
* undo route changes, get url from folder
* fix breadcrumbs in dashboard settings
* add parent pages to navIndex
* adjust getRootSectionForNode to just return the parent of a leaf node
* undo changes to generated files
* undo changes to toggles_gen.go
* feature toggle dashboardInit code
* remove unnecessary code in home dashboard
* build navModel directly, don't use getNavModel
* don't need fallback here
* remove getLoadingNav since it's not used anymore
* don't need to hide tabs from breadcrumbs anymore
* use id to find dashboards tab
(cherry picked from commit 82114cb316)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Nested folders: Allow renaming a folder multiple times (#68379)
Return folder version in response that is required for updating
the entry in the dashboard table.
(cherry picked from commit d458292b66)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
DataLinks: Ensure replaceVariables provided to link.onBuildUrl is bound to data frame variables (#68371)
* bind variable replacer provided to link.onBuildUrl to data frame vars
* revert internal link change
(cherry picked from commit bb2cbd2e01)
PanelQueryRunner: Ensure same transformations before reusing lastProcessedFrames (#68498)
(cherry picked from commit 8ba1762618)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
AzureMonitor: Update docs with Traces information (#68104)
* Update docs for traces
- Include note on timespan changes for logs queries
* Review
* Review
(cherry picked from commit 778a09eaa7)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
ToolbarButtonRow: prevent closure of overflow menu when interacting with portal elements (#68319)
* don't close the overflow menu when interacting with something in a portal
* keep overflow ref logic
(cherry picked from commit 5d91ace745)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Nested folders: Clear selection state when navigating to a different folder (#68438)
* clear selection state when navigating to a different folder
* consolidate useEffects
(cherry picked from commit 7e3c68d3c1)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
FlameGraph: Fix table sort being reset when search changes (#68409)
(cherry picked from commit a0942bd1df)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Search: Fix Search returning results out of order (#68370)
* Search: Fix Search returning results out of order
* test
(cherry picked from commit 78afddebbf)
* Add/Edit Panel: Enable new DS picker toggle by default (#68380)
(cherry picked from commit ede8df846e)
---------
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Drawer: Introduce a size property that set's width percentage and minWidth (#67809)
* Drawer: Introduce drawer size that sets width and min-width
* media queries
* Change large drawer to 75%
* Change news drawer to medium as the news items have better layout then with images on the side
* Tweaks and fixed inline drawer issue
* review fixes
* Deprecate inline, update mdx docs
* remove inline var
(cherry picked from commit 20217db100)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Command Palette: Prevent stale search results from overwriting newer results (#68377)
* only update the state if this is the most recent request
* fix empty state as well
* improve perf of recent dashboards
(cherry picked from commit 446885bd1a)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Settings: Add ability to override `skip_org_role_sync` with Env variables (#68364)
Switch to using the SectionsWithOverride for settings for skip org role sync
(cherry picked from commit 1a79c8a601)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Navigation: Add keyboard shortcut to navigate directly to Dashboards (#68350)
* add go to dashboards keybinding
* add shortcut to keybindings modal
(cherry picked from commit 4f987a4a5d)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
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
SAML UI: Adds documentation link to the Authentication UI (#68062)
* adds documentation link to the saml ui
* add correct link
* add link to docuemntation
* add documentation etxt
* documentation update wordings
(cherry picked from commit 09d7d25c9f)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Pyroscope: Add authentication when calling backendType resource API (#67667)
(cherry picked from commit 8da90f624d)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Tempo: Escape regex-sensitive characters in span name before building promql query (#66301)
* Tempo: escape regex-sensitive characters in span name before building promql query
* Make gen-cue
* Add type
* Add tests
* Test
* Minor update
---------
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
(cherry picked from commit 8b1afb594d)
Co-authored-by: gordeevnm <gordeevnm@gmail.com>
SAML UI: configuration file tooltip info (#67861)
* adds icon and text to the card if enabled in inifile
* make use of verbose settings
* add state to enabledInIniFile
* rename to configFound and removal of default values
(cherry picked from commit 9b10664560)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
DS Picker: Do not create extra history entries for panel onboarding (#68227)
(cherry picked from commit 0565c3440f)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Candlestick: Fix panel not rendering in candles-only mode (#68279)
(cherry picked from commit b96a2c1b62)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Improve DS Advance Picker to give user context about the built in DS and CTA (#68203)
* Add description to DS built-in list of items
* Open the new DS view in a new tab
(cherry picked from commit cb293ecf1c)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Fix renaming columns when displayName or displayNameFromDS are present (#67751)
* Fix renaming columns when displayName or displayNameFromDS are present
* refactor
* Fix showing correct column header title
(cherry picked from commit d8dfef71e2)
Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
docs: Geomap: Update docs to include link to official github discussion (#67795)
(cherry picked from commit bcebb2cb60)
Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
HelpWizard: Show snapshot preview regardless of scenes feature toggle (#68157)
(cherry picked from commit 1f43c62d03)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Folders: return an error when listing folders if permission guardian returns an error (#68109)
return an error when listing folders if perm gaurdian returns an error
(cherry picked from commit e51b92991d)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Remove windows backend tests from release pipelines
These are run in other places so there is no benefit to also include
them here.
(cherry picked from commit 1e8cad625b)
Backport of https://github.com/grafana/grafana/pull/68166
AzureMonitor: Bump credential wait time (#68120)
Bump credential wait time as 15s seems too short
(cherry picked from commit 0d3a78d86d)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Nested folders: remove behaviour where selecting all children selects parent (#68084)
remove behaviour where selecting all children selects parent
(cherry picked from commit 765da9c841)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Settings: Do not hide sensitive values if it's empty (#68088)
* Settings: Do not hide sensitive values if it's empty
* Fix implementation
* Add tests for RedactedValue function
(cherry picked from commit 0b6ae0d119)
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
AzureMonitor: Correctly set resource parameter for Logs queries (#68133)
* Update to ensure the resources parameter is passed through for logs queries only
* Use string slices for resources to ensure order remains the same
* Fix lint
* clarify test
(cherry picked from commit e059ce9c8a)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Graph: Fix legend overlapping graph area (#67912)
use render callback instead of requestIdleTimeout
(cherry picked from commit 8e752439c6)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
AzureMonitor: Appropriately handle trace correlation resources (#67934)
* Appropriately handle correlation resources
- Retrieve resources in buildQueries step
- Build updated queries based off of correlation results
- Update tests
* Fix query building and tests
* Fix lint
* Ensure multiple resource queries will work
- Correctly set resources to ensure there is no overlapping between multiple resource selection and correlated resources
- Add tests for these specific cases
- Remove unnecessary pointers
- Build queries correctly
(cherry picked from commit 5ddc37ee21)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Alerting: Show export button for org admins (#67939)
Show export button for org admins
(cherry picked from commit e7f11f2456)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* 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)
Docs: Adds alert state history doc (#67976)
* Adds alert state history doc
* Adds config image
* Adds config as text
* correct spacing
(cherry picked from commit cb9d53708e)
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Alerting: Make two boxes in template form adaptative to the screen (#67967)
Make two boxes in template form adaptative to the screen width to be align in the same line when possible
(cherry picked from commit 97802e44a6)
Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
Alerting: Migration to not fail if alert_configuration table is not empty (#67924)
(cherry picked from commit 0ce7f7eaf4)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
AzureMonitor: Clear queries if header value changes (#67916)
Clear queries if header value changes
(cherry picked from commit 765ae6cd90)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
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>
Render analytics identifiers (#67860)
* Append analytics identifier upon authenticate session
* Add id and module upon syncing user to identity
* Add authModule & id to `IdentityFromSignedInUser`
* Allow req calls in test to use basic auth
* Add `intercom_secret` to grafana config in tests
* Add test for analytics render in html view
(cherry picked from commit 15e34505e2)
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Elasticsearch: Fix processing of logs with not-recognized time format (#67767)
* Elasticsearch: Fix parsing of invalid time
* Fix lint
* Add more test data to data.js
* Add tests
* Fix lint
* Update pkg/tsdb/elasticsearch/client/search_request.go
(cherry picked from commit 95cf598423)
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Connections: Show core datasource plugins as well (#67815)
fix: add a new hook & selector that can show core plugins by default
(cherry picked from commit 21459c7c97)
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Alerting: Use standard validation/error pattern on group selection (#67787)
(cherry picked from commit 3c42dea10b)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
RBAC: Do not search for parents of the root folder (#67746)
do not search for parents of the general folder
(cherry picked from commit b1382ac48e)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
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>
Cloudwatch: Fix description of plugin (#67744)
Fix description of Cloudwatch
(cherry picked from commit 43c7a5b603)
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
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>
Connections: Rename "Your data source" to "Data source" page (#67662)
rename "Your data source" to "Data source" page
This page was meant to be named "Data source" in the previous PR [0].
I just made a mistake by naming it wrongly.
[0]: https://github.com/grafana/grafana/pull/66813/files
(cherry picked from commit 76284ed3a6)
Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
Gauge: Set min and max for percent unit (#67517)
* Gauge: Set min and max for percent unit
* Remove exclamation mark
* Add parentheses around ternary
(cherry picked from commit 6570ec7afe)
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
PluginCatalog: Update message about insufficient permissions (#67664)
Changed so we map the enum into different message.
(cherry picked from commit 21d28c1cb5)
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Nested folders: hook up `getAffectedItems` to the backend count route (#67677)
* hook up getAffectedItems to the backend count route
* mock out backendSrv in unit tests
* Don't delete alert rules while API doesn't return counts
* Show alert rule counts when API returns them
* use components for modal styles
* Revert "use components for modal styles"
This reverts commit 80ac1152f8.
---------
Co-authored-by: joshhunt <josh@trtr.co>
(cherry picked from commit 5d5a54979c)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
docs: add nav and users info for public dashboards (#67674)
* add content re admin and public dashboards navigation
* added admin users section
(cherry picked from commit 765735092a)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
NestedFolders: Use new Browse Dashboards UI behind feature flag (#67416)
NestedFolders: Put feature flagged new Browse Dashboards UI at main route
(cherry picked from commit c4a31390ef)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Nested folders: hook up move/delete logic properly (#67648)
* clear selection post move/delete
* move actions out of rtk-query
* move findItems, create selectors, refetch children when moving/deleting
* cleaner syntax
* remove unnecessary function, just put logic in the selector
* handle moving/deleting from the root
* slightly cleaner
* handle when rootItems are undefined
* handle 'general' in the fetchChildren reducer
* only refresh at the end
* don't need thunk api
(cherry picked from commit 02086e843f)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
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>
NestedFolders: Add empty states for Browse and Search (#67423)
* NestedFolders: Add empty states for Browse and Search
* empty states
* fix types
* tests
(cherry picked from commit fd2c7594cf)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
NestedFolders: Indicate when folders have mixed-selection children (#67337)
* Show indeterminate checkbox for folders with partially selected children
* When selecting an item, check ancestors to see if all their children are now selected
* reword comment
* fix test
* fix lint
* Check all descendants for mixed state
* Use indeterminate checkbox
* fix test description
* make header checkbox select/unselect automatically
* mixed header checkbox:
* fix tests
* add tests
(cherry picked from commit 32d3e895b3)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2023-05-02 10:45:56 +00:00
1725 changed files with 47645 additions and 19296 deletions
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.3or 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
description: 'The version to be released please respect: major.minor.patch or major.minor.patch-beta<number> format. example:7.4.3or 7.4.3-beta1'
description: 'The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
- **Alerting:** Improve performance of matching captures. [#71999](https://github.com/grafana/grafana/issues/71999), [@grobinson-grafana](https://github.com/grobinson-grafana)
### Bug fixes
- **AzureMonitor:** Allow `serviceTags` and `tags` to be empty for trace results. [#73196](https://github.com/grafana/grafana/issues/73196), [@aangelisc](https://github.com/aangelisc)
- **Cloud Monitoring:** Support AliasBy property in MQL mode. [#73165](https://github.com/grafana/grafana/issues/73165), [@alyssabull](https://github.com/alyssabull)
- **Alerting:** Exclude expression refIDs from NoData state. [#72394](https://github.com/grafana/grafana/issues/72394), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Fix state manager to not keep datasource_uid and ref_id labels in state after Error. [#72393](https://github.com/grafana/grafana/issues/72393), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Dashboard:** New Datasource picker link is keyboard accessible. [#72371](https://github.com/grafana/grafana/issues/72371), [@polibb](https://github.com/polibb)
- **Alerting:** Fix refetching grafana rules on alert list panel. [#72333](https://github.com/grafana/grafana/issues/72333), [@konrad147](https://github.com/konrad147)
- **Alerting:** Fix contact point testing with secure settings. [#72282](https://github.com/grafana/grafana/issues/72282), [@JacobsonMT](https://github.com/JacobsonMT)
- **TimeSeries:** Fix zoom not working after editing panel. [#72224](https://github.com/grafana/grafana/issues/72224), [@leeoniya](https://github.com/leeoniya)
- **CloudMonitoring:** Correctly set title and text fields for annotations. [#72153](https://github.com/grafana/grafana/issues/72153), [@aangelisc](https://github.com/aangelisc)
<!-- 10.0.4 END -->
<!-- 10.0.3 START -->
# 10.0.3 (2023-07-26)
### Features and enhancements
- **Alerting:** Sort NumberCaptureValues in EvaluationString. [#71931](https://github.com/grafana/grafana/issues/71931), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** No longer silence paused alerts during legacy migration. [#71761](https://github.com/grafana/grafana/issues/71761), [@JacobsonMT](https://github.com/JacobsonMT)
- **Auth:** Add support for custom signing keys in auth.azure_ad. [#71708](https://github.com/grafana/grafana/issues/71708), [@Jguer](https://github.com/Jguer)
- **Chore:** Upgrade Go to 1.20.6. [#71445](https://github.com/grafana/grafana/issues/71445), [@sakjur](https://github.com/sakjur)
- **Auth:** Remove ldap init sync. (Enterprise)
- **Chore:** Upgrade Go to 1.20.6. (Enterprise)
### Bug fixes
- **Alerting:** Fix edit / view of webhook contact point when no authorization is set. [#71972](https://github.com/grafana/grafana/issues/71972), [@gillesdemey](https://github.com/gillesdemey)
- **AzureMonitor:** Set timespan in Logs Portal URL link. [#71910](https://github.com/grafana/grafana/issues/71910), [@aangelisc](https://github.com/aangelisc)
- **Plugins:** Only configure plugin proxy transport once. [#71742](https://github.com/grafana/grafana/issues/71742), [@wbrowne](https://github.com/wbrowne)
- **Elasticsearch:** Fix multiple max depth flatten of multi-level objects. [#71636](https://github.com/grafana/grafana/issues/71636), [@fridgepoet](https://github.com/fridgepoet)
- **Elasticsearch:** Fix histogram colors in backend mode. [#71447](https://github.com/grafana/grafana/issues/71447), [@gabor](https://github.com/gabor)
- **Alerting:** Fix state in expressions footer. [#71443](https://github.com/grafana/grafana/issues/71443), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **AppChromeService:** Fixes update to breadcrumb parent URL. [#71418](https://github.com/grafana/grafana/issues/71418), [@torkelo](https://github.com/torkelo)
- **Elasticsearch:** Fix using multiple indexes with comma separated string. [#71322](https://github.com/grafana/grafana/issues/71322), [@gabor](https://github.com/gabor)
- **Alerting:** Fix Alertmanager change detection for receivers with secure settings. [#71320](https://github.com/grafana/grafana/issues/71320), [@JacobsonMT](https://github.com/JacobsonMT)
- **Transformations:** Fix `extractFields` throwing Error if one value is undefined or null. [#71267](https://github.com/grafana/grafana/issues/71267), [@svennergr](https://github.com/svennergr)
- **XYChart:** Point size editor should reflect correct default (5). [#71229](https://github.com/grafana/grafana/issues/71229), [@Develer](https://github.com/Develer)
- **Annotations:** Fix database lock while updating annotations. [#71207](https://github.com/grafana/grafana/issues/71207), [@sakjur](https://github.com/sakjur)
- **TimePicker:** Fix issue with previous fiscal quarter not parsing correctly. [#71093](https://github.com/grafana/grafana/issues/71093), [@ashharrison90](https://github.com/ashharrison90)
- **AzureMonitor:** Fix metric names for multi-resources. [#70994](https://github.com/grafana/grafana/issues/70994), [@asimpson](https://github.com/asimpson)
- **Logs:** Do not insert log-line into log-fields in json download. [#70954](https://github.com/grafana/grafana/issues/70954), [@gabor](https://github.com/gabor)
- **License:** Enable FeatureUserLimit for all products. (Enterprise)
<!-- 10.0.3 END -->
<!-- 10.0.2 START -->
# 10.0.2 (2023-06-30)
### Features and enhancements
- **Alerting:** Add limit query parameter to Loki-based ASH api, drop default limit from 5000 to 1000, extend visible time range for new ASH UI. [#70857](https://github.com/grafana/grafana/issues/70857), [@alexweav](https://github.com/alexweav)
- **Alerting:** Move rule UID from Loki stream labels into log lines. [#70686](https://github.com/grafana/grafana/issues/70686), [@rwwiv](https://github.com/rwwiv)
- **Explore:** Clean up query subscriptions when a query is canceled. [#70516](https://github.com/grafana/grafana/issues/70516), [@ifrost](https://github.com/ifrost)
- **Alerting:** Allow selecting the same custom group when swapping folders. [#70369](https://github.com/grafana/grafana/issues/70369), [@gillesdemey](https://github.com/gillesdemey)
### Bug fixes
- **Fix:** Change getExistingDashboardByTitleAndFolder to get dashboard by title, not slug. [#70936](https://github.com/grafana/grafana/issues/70936), [@yangkb09](https://github.com/yangkb09)
- **Login:** Fix footer from displaying under the login box. [#70909](https://github.com/grafana/grafana/issues/70909), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Convert 'Both' type Prometheus queries to 'Range' in migration. [#70854](https://github.com/grafana/grafana/issues/70854), [@JacobsonMT](https://github.com/JacobsonMT)
- **Variables:** Detect a name for duplicated variable. [#70823](https://github.com/grafana/grafana/issues/70823), [@Ugzuzg](https://github.com/Ugzuzg)
- **Logs:** Fix wrong `before` and `after` texts in log context. [#70802](https://github.com/grafana/grafana/issues/70802), [@svennergr](https://github.com/svennergr)
- **Elasticsearch:** Make it compatible with the new log context functionality. [#70748](https://github.com/grafana/grafana/issues/70748), [@gabor](https://github.com/gabor)
- **Alerting:** Fix HA alerting membership sync. [#70700](https://github.com/grafana/grafana/issues/70700), [@jcalisto](https://github.com/jcalisto)
- **Alerting:** Display correct results when using different filters on alerting panels. [#70639](https://github.com/grafana/grafana/issues/70639), [@VikaCep](https://github.com/VikaCep)
- **XYChart:** Fix axis range and scale overrides. [#70614](https://github.com/grafana/grafana/issues/70614), [@leeoniya](https://github.com/leeoniya)
- **LogContext:** Fix filtering out log lines with the same entry. [#70569](https://github.com/grafana/grafana/issues/70569), [@svennergr](https://github.com/svennergr)
- **Dashboard:** Fix issue where a panel with a description and a cached response displays 2 info icons. [#70566](https://github.com/grafana/grafana/issues/70566), [@axelavargas](https://github.com/axelavargas)
- **Navigation:** Fix toolbar actions flickering on mobile. [#70564](https://github.com/grafana/grafana/issues/70564), [@ashharrison90](https://github.com/ashharrison90)
- **XYChart:** Ensure color scale is field-local and synced with data updates. [#70481](https://github.com/grafana/grafana/issues/70481), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Fix unique violation when updating rule group with title chains/cycles. [#70467](https://github.com/grafana/grafana/issues/70467), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Add file and rule_group query params in request for filtering the res…. [#70417](https://github.com/grafana/grafana/issues/70417), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **SAML UI:** Enforce one option for configuring IdP metadata. (Enterprise)
- **Command palette:** Include help links. [#70322](https://github.com/grafana/grafana/issues/70322), [@ashharrison90](https://github.com/ashharrison90)
- **Tempo:** Use pipe in TraceQL by default for multi-value variables. [#70321](https://github.com/grafana/grafana/issues/70321), [@joey-grafana](https://github.com/joey-grafana)
- **XYChart/Trend:** Fix min/max and units/decimals X field overrides. [#70261](https://github.com/grafana/grafana/issues/70261), [@leeoniya](https://github.com/leeoniya)
- **Plugins:** Wrap original check health error. [#70227](https://github.com/grafana/grafana/issues/70227), [@kousikmitra](https://github.com/kousikmitra)
- **XYChart:** Fix variable interpolation in datalinks/toggletip. [#70210](https://github.com/grafana/grafana/issues/70210), [@leeoniya](https://github.com/leeoniya)
- **Auth:** Show invite button if disable login form is set to false. [#70155](https://github.com/grafana/grafana/issues/70155), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Fix email template for text/plain emails. [#70111](https://github.com/grafana/grafana/issues/70111), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Explore:** Fixed Starred query history tab to show all starred queries. [#70092](https://github.com/grafana/grafana/issues/70092), [@harisrozajac](https://github.com/harisrozajac)
- **CodeEditor:** Ensure suggestions only apply to the instance of the edit…. [#70067](https://github.com/grafana/grafana/issues/70067), [@ashharrison90](https://github.com/ashharrison90)
- **Command Palette:** Links opened in a new tab now route correctly when Grafana is served under a subpath. [#69925](https://github.com/grafana/grafana/issues/69925), [@ashharrison90](https://github.com/ashharrison90)
- **Heatmap:** Sort fields by numeric names when single frame. [#69880](https://github.com/grafana/grafana/issues/69880), [@leeoniya](https://github.com/leeoniya)
- **CloudMonitoring:** Improve parsing of GCM labels. [#69812](https://github.com/grafana/grafana/issues/69812), [@aangelisc](https://github.com/aangelisc)
- **NestedFolders:** Fix select all in folder view selecting items out of folder. [#69783](https://github.com/grafana/grafana/issues/69783), [@joshhunt](https://github.com/joshhunt)
- **Templating:** Fix updating of definition to empty string. [#69767](https://github.com/grafana/grafana/issues/69767), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Support newer http_config struct. [#69719](https://github.com/grafana/grafana/issues/69719), [@gillesdemey](https://github.com/gillesdemey)
- **Loki:** Fix including of template variables in variable query editor. [#69709](https://github.com/grafana/grafana/issues/69709), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix broken UI because of query being optional for some ExpressionQuer…. [#69683](https://github.com/grafana/grafana/issues/69683), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Explore:** Run remaining queries when one is removed from a pane. [#69670](https://github.com/grafana/grafana/issues/69670), [@Elfo404](https://github.com/Elfo404)
- **Dashboards:** Variables - Improve slow template variable loading due same variable loaded multiple times on time range change. [#69641](https://github.com/grafana/grafana/issues/69641), [@axelavargas](https://github.com/axelavargas)
- **Alerting:** Add heuristics back to datasource healthchecks. [#69541](https://github.com/grafana/grafana/issues/69541), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Util:** Fix panic when generating UIDs concurrently. [#69538](https://github.com/grafana/grafana/issues/69538), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **Alerting:** Fix provisioned templates being ignored by alertmanager. [#69488](https://github.com/grafana/grafana/issues/69488), [@JacobsonMT](https://github.com/JacobsonMT)
- **Log Context:** Fix split view button using the wrong query. [#69416](https://github.com/grafana/grafana/issues/69416), [@svennergr](https://github.com/svennergr)
- **Pyroscope:** Fix wrong defaults when importing query from different datasource. [#69366](https://github.com/grafana/grafana/issues/69366), [@aocenas](https://github.com/aocenas)
- **SQLStore:** Align SQLite IsUniqueConstraintViolation() with other backend implementations. [#69227](https://github.com/grafana/grafana/issues/69227), [@papagian](https://github.com/papagian)
- **Dashboards:** Remove Explore option from panel menu when panel's datasource uid is "-- Dashboard --". [#69173](https://github.com/grafana/grafana/issues/69173), [@harisrozajac](https://github.com/harisrozajac)
- **Alerting:** Fix "show all instances". [#67837](https://github.com/grafana/grafana/issues/67837), [@gillesdemey](https://github.com/gillesdemey)
- **Usage Insights:** Fix last viewed date. (Enterprise)
- **Caching:** Fix issue in which caching can cause HTTP resource response bodies to be written twice. (Enterprise)
<!-- 10.0.1 END -->
<!-- 10.0.0 START -->
# 10.0.0 (2023-06-12)
### Features and enhancements
- **Themes:** Unify secondary button and ToolbarButton. [#69049](https://github.com/grafana/grafana/issues/69049), [@torkelo](https://github.com/torkelo)
- **PublicDashboards:** Email sharing users with active sessions added in Users list . (Enterprise)
- **Caching:** Ensure context-canceled are not reported as errors . (Enterprise)
- **SAML:** Configuration UI. (Enterprise)
### Bug fixes
- **Query Editor:** Ensure dropdown menus position correctly. [#69131](https://github.com/grafana/grafana/issues/69131), [@grafanabot](https://github.com/grafanabot)
- **SAML:** Fix IdP metadata caching so that invalid metadata doesn't get cached. (Enterprise)
<!-- 10.0.0 END -->
<!-- 10.0.0-preview START -->
# 10.0.0-preview (2023-05-31)
### Features and enhancements
- **Alerting:** Migrate unknown NoData\Error settings to the default. [#69010](https://github.com/grafana/grafana/issues/69010), [@grafanabot](https://github.com/grafanabot)
- **Drawer:** Position under nav & minor redesign . [#68396](https://github.com/grafana/grafana/issues/68396), [@grafanabot](https://github.com/grafanabot)
- **Navigation:** Add keyboard shortcut to navigate directly to Dashboards. [#68374](https://github.com/grafana/grafana/issues/68374), [@grafanabot](https://github.com/grafanabot)
- **Explore:** Promote exploreMixedDatasource to Stable & enable by default. [#68353](https://github.com/grafana/grafana/issues/68353), [@Elfo404](https://github.com/Elfo404)
- **Tempo:** Escape regex-sensitive characters in span name before building promql query. [#68313](https://github.com/grafana/grafana/issues/68313), [@grafanabot](https://github.com/grafanabot)
- **Drawer:** Introduce a size property that set's width percentage and minWidth . [#68128](https://github.com/grafana/grafana/issues/68128), [@grafanabot](https://github.com/grafanabot)
- **AngularDeprecation:** Show warnings in panel edit for angular panels. [#68083](https://github.com/grafana/grafana/issues/68083), [@grafanabot](https://github.com/grafanabot)
- **Dashboard:** Change add panel button to fill to remove outline border. [#68017](https://github.com/grafana/grafana/issues/68017), [@grafanabot](https://github.com/grafanabot)
- **CloudWatch:** Deprecate dynamic labels feature toggle, remove support for Alias in frontend. [#67222](https://github.com/grafana/grafana/issues/67222), [@fridgepoet](https://github.com/fridgepoet)
- **Loki:** Enable dataplane-compliant metric data by default. [#67137](https://github.com/grafana/grafana/issues/67137), [@gabor](https://github.com/gabor)
- **Loki:** Enable new log context query editor. [#67131](https://github.com/grafana/grafana/issues/67131), [@ivanahuckova](https://github.com/ivanahuckova)
- **Elasticsearch:** Deprecate index setting for annotation queries. [#67046](https://github.com/grafana/grafana/issues/67046), [@ivanahuckova](https://github.com/ivanahuckova)
- **Search:** Preserves search filters when navigating to another page. [#67021](https://github.com/grafana/grafana/issues/67021), [@khushijain21](https://github.com/khushijain21)
- **PanelContext:** Add functionality to update data from panel. [#66993](https://github.com/grafana/grafana/issues/66993), [@torkelo](https://github.com/torkelo)
- **Phlare:** Support both Phlare and Pyroscope backends and rename to Grafana Pyroscope. [#66989](https://github.com/grafana/grafana/issues/66989), [@aocenas](https://github.com/aocenas)
- **Packaging:** Added deprecation warnings when running `grafana-cli` or `grafana-server`; the `grafana` command should be used instead. [#66976](https://github.com/grafana/grafana/issues/66976), [@kminehart](https://github.com/kminehart)
- **Elasticsearch:** Update required database version to 7.16. [#66928](https://github.com/grafana/grafana/issues/66928), [@gabor](https://github.com/gabor)
- **Alert:** Redesign with tinted background . [#66918](https://github.com/grafana/grafana/issues/66918), [@torkelo](https://github.com/torkelo)
- **Auth:** Make GitHub auth's allowed_organizations be case insensitive. [#66879](https://github.com/grafana/grafana/issues/66879), [@consideRatio](https://github.com/consideRatio)
- **Elasticsearch:** Deprecate the usage of the database field in provisioning. [#66828](https://github.com/grafana/grafana/issues/66828), [@gwdawson](https://github.com/gwdawson)
- **CSRF middleware:** Add flag to skip login cookie check. [#66806](https://github.com/grafana/grafana/issues/66806), [@PoorlyDefinedBehaviour](https://github.com/PoorlyDefinedBehaviour)
- **Alerting:** Use URLs in image annotations. [#66804](https://github.com/grafana/grafana/issues/66804), [@santihernandezc](https://github.com/santihernandezc)
- **AppRootPage:** Reduce flickering while loading plugin. [#66799](https://github.com/grafana/grafana/issues/66799), [@torkelo](https://github.com/torkelo)
- **Alerting:** Make Loki & Prometheus instant vector by default. [#66797](https://github.com/grafana/grafana/issues/66797), [@gillesdemey](https://github.com/gillesdemey)
- **Log Context:** Add button to open the context query in a split view. [#66777](https://github.com/grafana/grafana/issues/66777), [@svennergr](https://github.com/svennergr)
- **APIkeys:** Add metrics for apikey endpoints. [#66732](https://github.com/grafana/grafana/issues/66732), [@eleijonmarck](https://github.com/eleijonmarck)
- **ServeFromSubPath:** Redirect to URL with subpath when subpath missing. [#66724](https://github.com/grafana/grafana/issues/66724), [@torkelo](https://github.com/torkelo)
- **RBAC:** Remove the option to disable RBAC and add automated permission migrations for instances that had RBAC disabled. [#66652](https://github.com/grafana/grafana/issues/66652), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Loki-based alert state history modal. [#66595](https://github.com/grafana/grafana/issues/66595), [@konrad147](https://github.com/konrad147)
- **Explore:** Promote exploreMixedDatasource feature toggle to beta. [#66552](https://github.com/grafana/grafana/issues/66552), [@ifrost](https://github.com/ifrost)
- **Chore:** Clean up NavModel interface. [#66548](https://github.com/grafana/grafana/issues/66548), [@ashharrison90](https://github.com/ashharrison90)
- **Alerting:** Scheduler use rule fingerprint instead of version. [#66531](https://github.com/grafana/grafana/issues/66531), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **CloudWatch:** Deprecate dynamic labels feature toggle, remove support for Alias in backend. [#66494](https://github.com/grafana/grafana/issues/66494), [@fridgepoet](https://github.com/fridgepoet)
- **RBAC:** Make access control metadata for folders work with nested folders. [#66464](https://github.com/grafana/grafana/issues/66464), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Tracing:** Add links to documentation in config pages. [#66442](https://github.com/grafana/grafana/issues/66442), [@joey-grafana](https://github.com/joey-grafana)
- **Datagrid Panel:** Edit data within your dashboards. [#66353](https://github.com/grafana/grafana/issues/66353), [@mdvictor](https://github.com/mdvictor)
- **Annotations:** Support filtering the target panels. [#66325](https://github.com/grafana/grafana/issues/66325), [@ryantxu](https://github.com/ryantxu)
- **Alerting:** Use default page size of 5000 when querying Loki for state history. [#66315](https://github.com/grafana/grafana/issues/66315), [@alexweav](https://github.com/alexweav)
- **Chore:** Upgrade Go to 1.20.3. [#66264](https://github.com/grafana/grafana/issues/66264), [@sakjur](https://github.com/sakjur)
- **Design System:** Set TextArea to display: block in order to remove spacing below. [#66262](https://github.com/grafana/grafana/issues/66262), [@L-M-K-B](https://github.com/L-M-K-B)
- **Logs Navigation:** Scroll to first log when using pagination. [#66214](https://github.com/grafana/grafana/issues/66214), [@matyax](https://github.com/matyax)
- **Search:** Add clear search button to the input bar. [#66204](https://github.com/grafana/grafana/issues/66204), [@khushijain21](https://github.com/khushijain21)
- **Visualizations:** Choose color based on series name. [#66197](https://github.com/grafana/grafana/issues/66197), [@lukepalmer](https://github.com/lukepalmer)
- **FieldValues:** Use plain arrays instead of Vector (part 1 of 2). [#66187](https://github.com/grafana/grafana/issues/66187), [@ryantxu](https://github.com/ryantxu)
- **Users:** Enable case insensitive login by default. [#66134](https://github.com/grafana/grafana/issues/66134), [@Jguer](https://github.com/Jguer)
- **Loki Query Editor:** Increase autocomplete suggestions window with to 50%. [#66041](https://github.com/grafana/grafana/issues/66041), [@matyax](https://github.com/matyax)
- **Instrumentation:** Add support for instrumenting database queries. [#66022](https://github.com/grafana/grafana/issues/66022), [@bergquist](https://github.com/bergquist)
- **Loki:** Add feature flag to enable dataplane-compliant metric frames. [#66017](https://github.com/grafana/grafana/issues/66017), [@gabor](https://github.com/gabor)
- **Tempo:** Encode IDs as hexadecimal when downloading traces. [#66001](https://github.com/grafana/grafana/issues/66001), [@kousikmitra](https://github.com/kousikmitra)
- **Alerting:** Remove and revert flag alertingBigTransactions. [#65976](https://github.com/grafana/grafana/issues/65976), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Attach hash of instance labels to state history log lines. [#65968](https://github.com/grafana/grafana/issues/65968), [@alexweav](https://github.com/alexweav)
- **API keys:** Add deprecation to api keys. [#65948](https://github.com/grafana/grafana/issues/65948), [@eleijonmarck](https://github.com/eleijonmarck)
- **Logs:** Redesign and improve LogContext. [#65939](https://github.com/grafana/grafana/issues/65939), [@svennergr](https://github.com/svennergr)
- **Explore:** Run test datasource default selection when mounted. [#65864](https://github.com/grafana/grafana/issues/65864), [@gelicia](https://github.com/gelicia)
- **SQL Datasources:** Update Max Connection and Max Idle Connection Defaults to 100 and add auto mode. [#65834](https://github.com/grafana/grafana/issues/65834), [@codeincarnate](https://github.com/codeincarnate)
- **DashlistPanel:** Add options to include time range and variable values. [#65757](https://github.com/grafana/grafana/issues/65757), [@VictorColomb](https://github.com/VictorColomb)
- **Alerting:** Add endpoint to revert to a previous alertmanager configuration. [#65751](https://github.com/grafana/grafana/issues/65751), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Document state history config options in default and sample configuration files. [#65748](https://github.com/grafana/grafana/issues/65748), [@alexweav](https://github.com/alexweav)
- **Alerting:** Choose a previous valid AM configuration in case of error. [#65746](https://github.com/grafana/grafana/issues/65746), [@VikaCep](https://github.com/VikaCep)
- **Caching:** Refactor enterprise query caching middleware to a wire service. [#65616](https://github.com/grafana/grafana/issues/65616), [@mmandrus](https://github.com/mmandrus)
- **Alerting:** Implement template preview for Grafana AlertManager. [#65530](https://github.com/grafana/grafana/issues/65530), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Dropdown:** Stop Dropdown accepting a function as children. [#65467](https://github.com/grafana/grafana/issues/65467), [@ashharrison90](https://github.com/ashharrison90)
- **GrafanaDS:** Add support for annotation time regions. [#65462](https://github.com/grafana/grafana/issues/65462), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Add support for running HA using Redis. [#65267](https://github.com/grafana/grafana/issues/65267), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **Tempo:** Add kind to TraceQL intrinsics. [#65111](https://github.com/grafana/grafana/issues/65111), [@adrapereira](https://github.com/adrapereira)
- **EditDataSources:** Add EditDataSourceActions to EditDataSourcePages. [#64487](https://github.com/grafana/grafana/issues/64487), [@mikkancso](https://github.com/mikkancso)
- **Chore:** Upgrade to react 18. [#64428](https://github.com/grafana/grafana/issues/64428), [@ashharrison90](https://github.com/ashharrison90)
- **Canvas:** Connection properties based on data. [#64360](https://github.com/grafana/grafana/issues/64360), [@adela-almasan](https://github.com/adela-almasan)
- **Alerting:** Use configured headers for external alertmanager. [#63819](https://github.com/grafana/grafana/issues/63819), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **Dashboard:** Add series color shades. [#61300](https://github.com/grafana/grafana/issues/61300), [@jkraml-staffbase](https://github.com/jkraml-staffbase)
- **TimeSeries:** Fix centeredZero y axis ranging when all values are 0. [#69112](https://github.com/grafana/grafana/issues/69112), [@grafanabot](https://github.com/grafanabot)
- **StatusHistory:** Fix rendering of value-mapped null. [#69108](https://github.com/grafana/grafana/issues/69108), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Fix provenance guard checks for Alertmanager configuration to not cause panic when compared nested objects. [#69094](https://github.com/grafana/grafana/issues/69094), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Add support for Alert State History Loki primary. [#69077](https://github.com/grafana/grafana/issues/69077), [@grafanabot](https://github.com/grafanabot)
- **Dashboards:** Fix undefined aria labels in Annotation Checkboxes for Programmatic Access. [#68873](https://github.com/grafana/grafana/issues/68873), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Fix stale query preview error. [#68836](https://github.com/grafana/grafana/issues/68836), [@grafanabot](https://github.com/grafanabot)
- **RBAC:** Remove legacy AC editor and admin role on new dashboard route. [#68777](https://github.com/grafana/grafana/issues/68777), [@grafanabot](https://github.com/grafanabot)
- **Azure Monitor:** Fix bug with top value so more than 10 resources can be shown . [#68725](https://github.com/grafana/grafana/issues/68725), [@grafanabot](https://github.com/grafanabot)
- **NodeGraph:** Fix overlaps preventing opening an edge context menu when nodes were too close. [#68628](https://github.com/grafana/grafana/issues/68628), [@grafanabot](https://github.com/grafanabot)
- **Plugins:** Correct the usage of mutex for gRPC plugin implementation. [#68609](https://github.com/grafana/grafana/issues/68609), [@grafanabot](https://github.com/grafanabot)
- **Azure Monitor:** Fix bug that did not show alert rule preview. [#68581](https://github.com/grafana/grafana/issues/68581), [@grafanabot](https://github.com/grafanabot)
- **FlameGraph:** Fix table sort being reset when search changes. [#68454](https://github.com/grafana/grafana/issues/68454), [@grafanabot](https://github.com/grafanabot)
- **Command Palette:** Prevent stale search results from overwriting newer results. [#68392](https://github.com/grafana/grafana/issues/68392), [@grafanabot](https://github.com/grafanabot)
- **Search:** Fix Search returning results out of order. [#68387](https://github.com/grafana/grafana/issues/68387), [@joshhunt](https://github.com/joshhunt)
- **Explore:** Remove data source onboarding page. [#68381](https://github.com/grafana/grafana/issues/68381), [@grafanabot](https://github.com/grafanabot)
- **Histogram:** Respect min/max panel settings for x-axis. [#68245](https://github.com/grafana/grafana/issues/68245), [@grafanabot](https://github.com/grafanabot)
- **QueryRow:** Make toggle actions screen-readers accessible. [#68210](https://github.com/grafana/grafana/issues/68210), [@grafanabot](https://github.com/grafanabot)
- **Heatmap:** Fix color rendering for value ranges < 1. [#68164](https://github.com/grafana/grafana/issues/68164), [@grafanabot](https://github.com/grafanabot)
- **Heatmap:** Handle unsorted timestamps in calculate mode. [#68151](https://github.com/grafana/grafana/issues/68151), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Fixes Alert list panel "ungrouped" regression. [#68090](https://github.com/grafana/grafana/issues/68090), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Show export button for org admins. [#67995](https://github.com/grafana/grafana/issues/67995), [@grafanabot](https://github.com/grafanabot)
- **Navigation:** Fix 'Page not found' when sending or going back from 'Invitate user' page. [#67972](https://github.com/grafana/grafana/issues/67972), [@grafanabot](https://github.com/grafanabot)
- **InspectDrawer:** Fixes issue with double scrollbars. [#67888](https://github.com/grafana/grafana/issues/67888), [@grafanabot](https://github.com/grafanabot)
- **Connections:** Show core datasource plugins as well. [#67886](https://github.com/grafana/grafana/issues/67886), [@grafanabot](https://github.com/grafanabot)
- **Gauge:** Set min and max for percent unit. [#67719](https://github.com/grafana/grafana/issues/67719), [@grafanabot](https://github.com/grafanabot)
- **TimeSeries:** Fix leading null-fill for missing intervals. [#67570](https://github.com/grafana/grafana/issues/67570), [@leeoniya](https://github.com/leeoniya)
- **Pyroscope:** Fix autodetection in case of using Phlare backend. [#67536](https://github.com/grafana/grafana/issues/67536), [@aocenas](https://github.com/aocenas)
- **Dashboard:** Revert fixed header shown on mobile devices in the new panel header. [#67510](https://github.com/grafana/grafana/issues/67510), [@axelavargas](https://github.com/axelavargas)
- **Alerting:** Fix misleading status code in provisioning API. [#67331](https://github.com/grafana/grafana/issues/67331), [@usommerl](https://github.com/usommerl)
- **Explore:** Update table min height . [#67321](https://github.com/grafana/grafana/issues/67321), [@adrapereira](https://github.com/adrapereira)
- **Provisioning:** Fix provisioning issues with legacy alerting and data source permissions. [#67308](https://github.com/grafana/grafana/issues/67308), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Proxy:** Improve header handling for reverse proxy. [#67279](https://github.com/grafana/grafana/issues/67279), [@sakjur](https://github.com/sakjur)
- **Loki:** Fix log samples using `instant` queries. [#67271](https://github.com/grafana/grafana/issues/67271), [@svennergr](https://github.com/svennergr)
- **Alerting:** Fix panic when reparenting receivers to groups following an attempted rename via Provisioning. [#67167](https://github.com/grafana/grafana/issues/67167), [@alexweav](https://github.com/alexweav)
- **Loki:** Fix incorrect evaluation of real and extracted labels in context. [#67112](https://github.com/grafana/grafana/issues/67112), [@ivanahuckova](https://github.com/ivanahuckova)
- **Navigation:** Redirect to root page when switching organization. [#66655](https://github.com/grafana/grafana/issues/66655), [@ashharrison90](https://github.com/ashharrison90)
- **Trace View:** Update the queryType to traceql for checking if same trace when clicking span link. [#66645](https://github.com/grafana/grafana/issues/66645), [@ericmustin](https://github.com/ericmustin)
- **Explore:** Fix using data source line limit when opening logs sample in split view. [#66601](https://github.com/grafana/grafana/issues/66601), [@ivanahuckova](https://github.com/ivanahuckova)
- **Loki:** Fix ad hoc filters when used with number and > and < operators. [#66579](https://github.com/grafana/grafana/issues/66579), [@ivanahuckova](https://github.com/ivanahuckova)
- **Dashboards:** Fix broken internal data links. [#66567](https://github.com/grafana/grafana/issues/66567), [@ifrost](https://github.com/ifrost)
- **Azure Monitor:** Fix bug that was not showing resources for certain locations. [#66502](https://github.com/grafana/grafana/issues/66502), [@alyssabull](https://github.com/alyssabull)
- **Plugins:** Fs: Add option to access unallowed files in dev mode. [#66492](https://github.com/grafana/grafana/issues/66492), [@xnyo](https://github.com/xnyo)
- **Dashboard:** New panel in a dashboard is not deleted after "Discard"-ing changes in Panel Edit. [#66476](https://github.com/grafana/grafana/issues/66476), [@polibb](https://github.com/polibb)
- **InfluxDB:** Fix querying with hardcoded retention policy. [#66466](https://github.com/grafana/grafana/issues/66466), [@itsmylife](https://github.com/itsmylife)
- **Alerting:** Hide mute timing actions when dealing with vanilla prometheus. [#66457](https://github.com/grafana/grafana/issues/66457), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix creating a recording rule when having multiple datasources. [#66415](https://github.com/grafana/grafana/issues/66415), [@VikaCep](https://github.com/VikaCep)
- **AccessControl:** Allow editors to access GET /api/datasources. [#66343](https://github.com/grafana/grafana/issues/66343), [@mgyongyosi](https://github.com/mgyongyosi)
- **Navigation:** Scrolled hamburger menu links now navigate correctly in Safari. [#66261](https://github.com/grafana/grafana/issues/66261), [@ashharrison90](https://github.com/ashharrison90)
- **Annotations:** Improve get tags query performance. [#66182](https://github.com/grafana/grafana/issues/66182), [@papagian](https://github.com/papagian)
- **Query Splitting:** Fix for handling queries with no requestId. [#66161](https://github.com/grafana/grafana/issues/66161), [@domasx2](https://github.com/domasx2)
- **Cloudwatch:** Pass refId from query for expression queries. [#66147](https://github.com/grafana/grafana/issues/66147), [@idastambuk](https://github.com/idastambuk)
- **Alerting:** Fix explore link in alert detail view. [#66106](https://github.com/grafana/grafana/issues/66106), [@gillesdemey](https://github.com/gillesdemey)
- **Plugins:** Skip instrumenting plugin build info for core and bundled plugins. [#66105](https://github.com/grafana/grafana/issues/66105), [@wbrowne](https://github.com/wbrowne)
- **Fix:** DataLinks from data sources override user defined data link. [#65996](https://github.com/grafana/grafana/issues/65996), [@axelavargas](https://github.com/axelavargas)
- **Auth:** Remove the session cookie only if it's invalid or revoked. [#65984](https://github.com/grafana/grafana/issues/65984), [@mgyongyosi](https://github.com/mgyongyosi)
- **Transformations:** Improve UX and fix refId issues. [#65982](https://github.com/grafana/grafana/issues/65982), [@torkelo](https://github.com/torkelo)
- **SQL Datasources:** Fix variable throwing error if query returns no data. [#65937](https://github.com/grafana/grafana/issues/65937), [@mdvictor](https://github.com/mdvictor)
- **Annotations:** Ignore unique constraint violations for tags. [#65935](https://github.com/grafana/grafana/issues/65935), [@sakjur](https://github.com/sakjur)
- **PluginExtensions:** Fixed issue with incorrect type being exposed when configuring an extension. [#65910](https://github.com/grafana/grafana/issues/65910), [@mckn](https://github.com/mckn)
- **Annotation List:** Fix panel not updating when variable is changed. [#65899](https://github.com/grafana/grafana/issues/65899), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **Table:** Fix migrations from old angular table for cell color modes . [#65760](https://github.com/grafana/grafana/issues/65760), [@torkelo](https://github.com/torkelo)
- **PieChart:** Show long labels properly. [#65699](https://github.com/grafana/grafana/issues/65699), [@mdvictor](https://github.com/mdvictor)
- **Catalog:** Show install error with incompatible version. [#65059](https://github.com/grafana/grafana/issues/65059), [@andresmgot](https://github.com/andresmgot)
- **XYChart:** Add all dataset columns in tooltip. [#65027](https://github.com/grafana/grafana/issues/65027), [@mdvictor](https://github.com/mdvictor)
- **Alerting:** Use a completely isolated context for state history writes. [#64989](https://github.com/grafana/grafana/issues/64989), [@alexweav](https://github.com/alexweav)
- **Utils:** Reimplement util.GetRandomString to avoid modulo bias. [#64481](https://github.com/grafana/grafana/issues/64481), [@DanCech](https://github.com/DanCech)
- **Reports:** Add empty UID to not found dashboard. (Enterprise)
### Breaking changes
The deprecated `plugin:build` command in the Grafana Toolkit have been removed in this release. The replacement [`create-plugin`](https://github.com/grafana/plugin-tools/tree/main/packages/create-plugin/) tool is recommended for plugin development. Issue [#67485](https://github.com/grafana/grafana/issues/67485)
The deprecated `package:build`, `node-version-check` and `toolkit:build` commands in the Grafana Toolkit have been removed in this release. Issue [#67475](https://github.com/grafana/grafana/issues/67475)
The deprecated `plugin:github-publish` command in the Grafana Toolkit have been removed in this release. Issue [#67471](https://github.com/grafana/grafana/issues/67471)
The `/query-history/migrate` endpoint has been removed and query history entries will not be automatically migrated when switching from local storage to remote storage. Issue [#67470](https://github.com/grafana/grafana/issues/67470)
The deprecated `plugin:ci-build`, `plugin:ci-package`, `plugin:ci-report`, `plugin:update-circleci` and `plugin:bundle-managed` commands in the Grafana Toolkit have been removed in this release. Issue [#67212](https://github.com/grafana/grafana/issues/67212)
The data-format used by the Loki data source for metric (graph producing) queries was changed to be compliant with the recommended Grafana format. The change is very small, we do not expect it to cause problems: for instant-queries the dataframe-type changed from `timeseries-multi` to `numeric-multi`, the dataframe-name attribute is not used anymore. If you are affected by this, you can revert back to the old format by setting the feature flag `lokiMetricDataplane` to `false`. We recommend migrating to the new format, because the feature-flag will be removed at some point in the future. Issue [#67137](https://github.com/grafana/grafana/issues/67137)
The deprecated `plugin:sign` command in the Grafana Toolkit have been removed in this release. The replacement `sign-plugin` tool is recommended for [plugin signing](https://github.com/grafana/plugin-tools/tree/main/packages/sign-plugin). Issue [#67130](https://github.com/grafana/grafana/issues/67130)
The deprecated `plugin:test` and `plugin:dev` commands in the Grafana Toolkit have been removed in this release. Issue [#67125](https://github.com/grafana/grafana/issues/67125)
The type signature of the `testDatasource()` method on the `DataSourceWithBackend` class [has changed](https://github.com/grafana/grafana/pull/67014/files/a5608dc4f27ab4459e725b22ff60b8fc05390c08#diff-c58fc1a09e9b9b17e5f45efbfb646273e69145f7687facb134440da4edafc745R263), the returned Promise is now typed stricter, which is probably going to cause type-errors while building plugins against the latest Grafana versions.
Grafana requires an Elasticsearch version of 7.16 or newer. If you use an older Elasticsearch version, you will get warnings in the query editor and on the datasource configuration page. Issue [#66928](https://github.com/grafana/grafana/issues/66928)
The deprecated `plugin:create` and `component:create` commands in the Grafana Toolkit have been removed in this release. The replacement `create-plugin` tool is recommended for [scaffolding new plugins](https://grafana.github.io/plugin-tools/docs/getting-started/creating-a-plugin) and a migration guide for moving from the toolkit is available [here](https://grafana.github.io/plugin-tools/docs/getting-started/migrating-from-toolkit). Issue [#66729](https://github.com/grafana/grafana/issues/66729)
We've removed some now unused properties from the `NavModel` interface. Issue [#66548](https://github.com/grafana/grafana/issues/66548)
`default` named retention policies won't be used to query. Users who have a `default` named retention policy in their `influxdb` database, have to rename it to something else. Having `default` named retention policy is not breaking anything. We will make sure to use the actual default retention policy under the hood. To change the hardcoded retention policy in the `dashboard.json`, users must they select the right retention policy from dropdown and save the panel/dashboard. Issue [#66466](https://github.com/grafana/grafana/issues/66466)
We removed previously deprecated components from `@grafana/ui` : `LogLabels`, `LogMessageAnsi`, `LogRows`, `getLogRowStyles`. Issue [#66268](https://github.com/grafana/grafana/issues/66268)
We removed previously deprecated `DataSourceWithLogsVolumeSupport` that was replaced with `DataSourceWithSupplementaryQueriesSupport`. Both APIs are for internal use only. Issue [#66266](https://github.com/grafana/grafana/issues/66266)
Additional functions (map/filter/forEach/iterator) have been added to the root Vector interface. Any code using vectors will continue to work unchanged, but in the rare case that you have implemented Vector directly, it be missing these functions. The easiest fix is to extend [FunctionalVector](https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/vector/FunctionalVector.ts).
The `ArrayVector` class now extends the native JavaScript `Array` and gains all of its prototype/instance methods as a result. Issue [#66187](https://github.com/grafana/grafana/issues/66187)
We've removed the ability for functions to be passed as children to the `Dropdown` component. Previously, this was used to access the `isOpen` state of the dropdown. This can be now be achieved with the `onVisibleChange` prop.
(relevant for plugin developers) The deprecated internal `dashboardId` is now removed from the request context. For usage tracking use the `dashboardUid` Issue [#64786](https://github.com/grafana/grafana/issues/64786)
Grafana has been upgraded to React 18 and now leverages the new React client rendering API. Plugin authors in particular should be aware, as there could be unintended side effects due to the changes around automatic batching of state updates and consistent `useEffect` timings. Be sure to test your plugins and reference the React 18 upgrade docs here: https://react.dev/blog/2022/03/08/react-18-upgrade-guide Issue [#64428](https://github.com/grafana/grafana/issues/64428)
### Deprecations
For Elasticsearch annotation queries we are deprecating index field. Possibility to customise index for newly created annotations has already been removed in version 2.6.0 and since then we supported updating of index only for queries that customised index before 2.6.0. For users who would like to specify index for annotation queries we recommend to create a new Elasticsearch data source with specified index, and use that data source for annotations. Issue [#67046](https://github.com/grafana/grafana/issues/67046)
Scripts, systemd unit files and etc should stop using the `grafana-cli` and `grafana-server` programs, and instead use the `grafana` program. Uses of `grafana-server` should become `grafana server`, and uses of `grafana-cli` should become `grafana cli`. Issue [#66976](https://github.com/grafana/grafana/issues/66976)
The `database` field has been deprecated in the Elasticsearch datasource provisioning files, please use the `index` field in `jsonData` instead. Issue [#66828](https://github.com/grafana/grafana/issues/66828)
- **GrafanaUI:** Add indeterminate state to Checkbox. [#67312](https://github.com/grafana/grafana/issues/67312), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **Toolkit:** Remove `plugin:ci-build``plugin:ci-package``plugin:ci-report` and related files. [#67212](https://github.com/grafana/grafana/issues/67212), [@academo](https://github.com/academo)
- **Toolkit:** Remove plugin:create and component:create commands. [#66729](https://github.com/grafana/grafana/issues/66729), [@academo](https://github.com/academo)
- **InteractiveTable:** Updated design and minor tweak to Correlactions page. [#66443](https://github.com/grafana/grafana/issues/66443), [@torkelo](https://github.com/torkelo)
<!-- 10.0.0-preview END -->
<!-- 9.5.3 START -->
# 9.5.3 (2023-06-06)
### Bug fixes
- **Query:** Prevent crash while executing concurrent mixed queries
- **Alerting:** Require alert.notifications:write permissions to test receivers and templates
<!-- 9.5.3 END -->
<!-- 9.5.2 START -->
# 9.5.2 (2023-05-03)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.4. [#67757](https://github.com/grafana/grafana/issues/67757), [@papagian](https://github.com/papagian)
### Bug fixes
- **Explore:** Update table min height (#67321). [#67332](https://github.com/grafana/grafana/issues/67332), [@adrapereira](https://github.com/adrapereira)
@@ -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,11 +39,17 @@ 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.
Always assign the milestone for the version that a PR is merged into. PRs targetting `main` should use the next minor (or major) version and backport PRs should use the same value than the target branch.
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?
@@ -80,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`.
@@ -6,6 +6,10 @@ description: This section contains information about API keys in Grafana
keywords:
- API keys
- Service accounts
labels:
products:
- enterprise
- oss
menuTitle: API keys
title: API keys
weight: 700
@@ -17,7 +21,9 @@ An API key is a randomly generated string that external systems use to interact
When you create an API key, you specify a **Role** that determines the permissions associated with the API key. Role permissions control that actions the API key can perform on Grafana resources.
> **Note:** If you use Grafana v9.1 or newer, use service accounts instead of API keys. For more information, refer to [Grafana service accounts]({{< relref "../service-accounts/" >}}).
{{% admonition type="note" %}}
If you use Grafana v9.1 or newer, use service accounts instead of API keys. For more information, refer to [Grafana service accounts]({{< relref "../service-accounts/" >}}).
{{% /admonition %}}
{{< section >}}
@@ -61,7 +67,9 @@ For more information about the benefits of service accounts, refer to [Grafana s
The service account endpoints generate a machine user for authentication instead of using API keys. When you migrate an API key to a service account, a service account will be created with a service account token.
> **Note:** If you are using API keys for authentication, we recommend that you migrate your integration to the service account authentication method. The API key will continue to work. You can locate the API key in the [Grafana service account tokens]({{< relref "../service-accounts/#service-account-tokens" >}}) details.
{{% admonition type="note" %}}
If you're currently using API keys for authentication, we strongly recommend to use Grafana Service Accounts instead. Rest assured, when migrating to Service Accounts, your existing API keys will continue working as before. To find the migrated API keys, navigate to the Service Accounts section and select the Service Account Tokens tab. For more information, please refer to the [Grafana service account tokens]({{< relref "../service-accounts/#service-account-tokens" >}}) details.
This section shows you how to migrate your Terraform configuration for Grafana cloud stack API keys to Grafana cloud stack service accounts. For migration your cloud stack api keys, use the `grafana_cloud_stack_service_account` and `gafana_cloud_stack_service_account_token` resources see [Grafana Cloud Stack Service Accounts in Terraform](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/cloud_stack_service_account).
> **Note:** This is only relevant for Grafana Cloud **Stack** API keys `grafana_cloud_stack_api_key`. Grafana Cloud API keys resource `grafana_cloud_api_key` are not deprecated and should be used for authentication for managing your Grafana cloud.
{{% admonition type="note" %}}
This is only relevant for Grafana Cloud **Stack** API keys `grafana_cloud_stack_api_key`. Grafana Cloud API keys resource `grafana_cloud_api_key` are not deprecated and should be used for authentication for managing your Grafana cloud.
description: Data source management information for Grafana administrators
labels:
products:
- enterprise
- oss
title: Data source management
weight: 100
---
@@ -21,7 +25,9 @@ Only users with the organization admin role can add data sources.
Before you can create your first dashboard, you need to add your data source.
> **Note:** Only users with the organization admin role can add data sources.
{{% admonition type="note" %}}
Only users with the organization admin role can add data sources.
{{% /admonition %}}
**To add a data source:**
@@ -30,13 +36,15 @@ Before you can create your first dashboard, you need to add your data source.
1. Click the data source you want to add.
1. Configure the data source following instructions specific to that data source.
For links to data source-specific documentation, see [Data sources]({{< relref "../../datasources" >}}).
For links to data source-specific documentation, see [Data sources]({{< relref "../../datasources" >}}).
## Data source permissions
You can configure data source permissions to allow or deny certain users the ability to query or edit a data source. Each data source’s configuration includes a Permissions tab where you can restrict data source permissions to specific users, teams, or roles.
> **Note:** Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud Pro and Advanced](/docs/grafana-cloud).
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud Pro and Advanced](/docs/grafana-cloud).
{{% /admonition %}}
By default, data sources in an organization can be queried by any user in that organization. For example, a user with the `Viewer` role can issue any possible query to a data source, not just queries that exist on dashboards to which they have access. Additionally, by default, data sources can be edited by the user who created the data source, as well as users with the `Admin` role.
@@ -77,25 +85,33 @@ You can assign data source permissions to users, teams, and roles which will all
<div class="clearfix"></div>
## Query caching
## Query and resource caching
When query caching is enabled, Grafana temporarily stores the results of data source queries. When you or another user submit the exact same query again, the results will come back from the cache instead of from the data source (like Splunk or ServiceNow) itself.
When you enable query and resource caching, Grafana temporarily stores the results of data source queries and resource requests. When you or another user submit the same query or resource request again, the results will come back from the cache instead of from the data source.
Query caching works for all backend data sources. You can enable the cache globally and configure the cache duration (also called Time to Live, or TTL).
When using Grafana, a query pertains to a request for data frames to be modified or displayed. A resource relates to any HTTP requests made by a plugin, such as the Amazon Timestream plugin requesting a list of available databases from AWS. For more information on data source queries and resources, please see the developers page on [backend plugins]({{< relref "../../developers/plugins/introduction-to-plugin-development/backend/" >}}).
> **Note:** Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud Pro and Advanced](/docs/grafana-cloud/).
The caching feature works for **all** backend data sources. You can enable the cache globally in Grafana's [configuration]({{< relref "../../setup-grafana/configure-grafana/enterprise-configuration/#caching" >}}), and configure a cache duration (also called Time to Live, or TTL) for each data source individually.
The following cache backends are available: in-memory, Redis, and Memcached.
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud Pro and Advanced](/docs/grafana-cloud/).
{{% /admonition %}}
> **Note:** Storing cached queries in-memory can increase Grafana's memory footprint. In production environments, a Redis or Memcached backend is highly recommended.
The following cache backend options are available: in-memory, Redis, and Memcached.
When a panel queries a cached data source, the time until this query fetches fresh data is determined by the panel's **interval.** This means that wider panels and dashboards with shorter time ranges fetch new data more frequently than narrower panels and dashboards with longer time ranges.
{{% admonition type="note" %}}
Storing cached queries in-memory can increase Grafana's memory footprint. In production environments, a Redis or Memcached backend is highly recommended.
{{% /admonition %}}
Interval is visible in a panel's [query options]({{< relref "../../panels-visualizations/query-transform-data/" >}}). It is calculated like this: `(max data points) / time range`. Max data points are calculated based on the width of the panel. For example, a full-width panel on a dashboard with a time range of `last 7 days` will retrieve fresh data every 10 minutes. In this example, cached data for this panel will be served for up to 10 minutes before Grafana queries the data source again and returns new data.
When a panel queries a data source with cached data, it will either fetch fresh data or use cached data depending on the panel's **interval.** The interval is used to round the query time range to a nearby cached time range, increasing the likelihood of cache hits. Therefore, wider panels and dashboards with shorter time ranges fetch new data more often than narrower panels and dashboards with longer time ranges.
You can make a panel retrieve fresh data more frequently by increasing the **Max data points** setting in the panel's [query options]({{< relref "../../panels-visualizations/query-transform-data/" >}}).
A panel's interval is visible in the [query options]({{< relref "../../panels-visualizations/query-transform-data/" >}}). It is calculated as follows: `time range / max data points`. Max data points are calculated based on the width of the panel. For example, a wide panel with `1000 data points` on a dashboard with a time range of `last 7 days` will retrieve fresh data every 10 minutes: `7d / 1000 = 10m`. In this example, cached data for this panel will be served for up to 10 minutes before Grafana needs to query the data source again for new data.
### Query caching benefits
You can configure a panel to retrieve data more often by increasing the **Max data points** setting in the panel's [query options]({{< relref "../../panels-visualizations/query-transform-data/" >}}).
### Caching benefits
By reducing the number of queries and requests sent to data sources, caching can provide the following benefits:
- Faster dashboard load times, especially for popular dashboards.
- Reduced API costs.
@@ -103,21 +119,13 @@ You can make a panel retrieve fresh data more frequently by increasing the **Max
### Data sources that work with query caching
Query caching works for all [Enterprise data sources](/grafana/plugins/?type=datasource&enterprise=1) as well as the following [built-in data sources]({{< relref "../../datasources/" >}}):
Query caching works for Grafana's [built-in data sources]({{< relref "../../datasources/#built-in-core-data-sources" >}}), and [backend data source plugins](https://grafana.com/grafana/plugins/?type=datasource) that extend the `DataSourceWithBackend` class in the plugins SDK.
- CloudWatch Metrics
- Google Cloud Monitoring
- InfluxDB
- Microsoft SQL Server
- MySQL
- Postgres
- Tempo
To verify that a data source works with query caching, follow the [instructions below](#enable-and-configure-query-caching) to **Enable and Configure query caching**. If caching is enabled in Grafana but the Caching tab is not visible for the given data source, then query caching is not available for that data source.
Some data sources, such as Elasticsearch, Prometheus, and Loki, cache queries themselves, so Grafana query caching does not improve performance.
Query caching also works for all data sources that include a backend. More specifically, caching works with data sources that extend the `DataSourceWithBackend` class in the plugins SDK.
To tell if a data source works with query caching, follow the instructions below to **Enable and Configure query caching**. If caching is enabled in Grafana but the Caching tab is not visible for the given data source, then query caching is not available for that data source.
{{% admonition type="note" %}}
Some data sources, such as Elasticsearch, Prometheus, and Loki, cache queries themselves, so Grafana _query_ caching does not significantly improve performance. However, _resource_ caching may help. See the developers page on [plugin resources]({{< relref "../../developers/plugins/introduction-to-plugin-development/backend/#resources" >}}) for details.
{{% /admonition %}}
### Enable and configure query caching
@@ -132,13 +140,15 @@ By default, data source queries are not cached. To enable query caching for a si
1. Click **Enable**.
1. (Optional) Choose custom TTLs for the data source's queries and resources caching. If you skip this step, then Grafana uses the default TTL.
You can optionally override a data source's configured TTL for individual dashboard panels. This can be be useful when you have queries whose results change more or less often than the configured TTL. In the Edit Panel view, select the caching-enabled data source, expand the Query options, and enter your the TTL in milliseconds.
You can optionally override a data source's configured TTL for individual dashboard panels. This can be useful when you have queries whose results change more or less often than the configured TTL. In the Edit Panel view, select the caching-enabled data source, expand the Query options, and enter your the TTL in milliseconds.
{{< figure max-width="500px" src="/media/docs/grafana/per-panel-cache-ttl-9-4.png" caption="Set Cache TTL for a single panel" >}}
> **Note:** If query caching is enabled and the Cache tab is not visible in a data source's settings, then query caching is not available for that data source.
{{% admonition type="note" %}}
If query caching is enabled and the Cache tab is not visible in a data source's settings, then query caching is not available for that data source.
{{% /admonition %}}
To configure global settings for query caching, refer to the [Query caching section of Enterprise Configuration]({{< relref "../../setup-grafana/configure-grafana/enterprise-configuration/#caching" >}}).
To configure global settings for query caching, refer to the `caching` section of [Configure Grafana Enterprise]({{< relref "../../setup-grafana/configure-grafana/enterprise-configuration/#caching" >}}).
### Disable query caching
@@ -149,13 +159,15 @@ To disable query caching for a single data source:
1. In the data source list, click the data source that you want to turn off caching for.
1. On the Cache tab, click **Disable**.
To disable query caching for an entire Grafana instance, set the `enabled` flag to `false` in the [Query caching section of Enterprise Configuration]({{< relref "../../setup-grafana/configure-grafana/enterprise-configuration/#caching" >}}). You will no longer see the Cache tab on any data sources, and no data source queries will be cached.
To disable query caching for an entire Grafana instance, set the `enabled` flag to `false` in the `caching` section of [Configure Grafana Enterprise]({{< relref "../../setup-grafana/configure-grafana/enterprise-configuration/#caching" >}}). You will no longer see the Cache tab on any data sources, and no data source queries will be cached.
### Clear cache
If you experience performance issues or repeated queries become slower to execute, consider clearing your cache.
> **Note:** This action impacts all cache-enabled data sources. If you are using Memcached, the system clears all data from the Memcached instance.
{{% admonition type="note" %}}
This action impacts all cache-enabled data sources. If you are using Memcached, the system clears all data from the Memcached instance.
{{% /admonition %}}
1. Click **Connections** in the left-side menu.
1. Under Your Connections, click **Data sources**.
@@ -19,7 +23,7 @@ Grafana supports three types of plugins: [panels](/grafana/plugins?type=panel),
## Panel plugins
Add new visualizations to your dashboard with panel plugins, such as the [Worldmap Panel](/grafana/plugins/grafana-worldmap-panel), [Clock](/grafana/plugins/grafana-clock-panel), and [Pie Chart](/grafana/plugins/grafana-piechart-panel).
Add new visualizations to your dashboard with panel plugins, such as the [Clock](/grafana/plugins/grafana-clock-panel), [Mosaic](/grafana/plugins/boazreicher-mosaicplot-panel) and [Variable](/grafana/plugins/volkovlabs-variable-panel) panels.
Use panel plugins when you want to:
@@ -49,7 +53,9 @@ With [RBAC]({{< relref "../roles-and-permissions/access-control/#about-rbac" >}}
By default, Viewers, Editors and Admins have access to all App Plugins that their organization role allows them to access, thanks to the `fixed:plugins.app:reader` role.
> **Note:** Revoking this RBAC role from some users, will prevent them from accessing app plugins. But granting this RBAC role to users will only allow them to see app plugins their organization role allows them to see.
{{% admonition type="note" %}}
Revoking this RBAC role from some users, will prevent them from accessing app plugins. But granting this RBAC role to users will only allow them to see app plugins their organization role allows them to see.
{{% /admonition %}}
To prevent users from seeing an app plugin, refer to [this permissions scenarios]({{< relref "../roles-and-permissions/access-control/plan-rbac-rollout-strategy#prevent-viewers-from-accessing-an-app-plugin" >}}).
@@ -165,7 +171,7 @@ Grafana also writes an error message to the server log:
WARN[05-26|12:00:00] Some plugin scanning errors were found errors="plugin '<plugin id>' is unsigned, plugin '<plugin id>' has an invalid signature"
```
If you are a plugin developer and want to know how to sign your plugin, refer to [Sign a plugin]({{< relref "../../developers/plugins/sign-a-plugin/" >}}).
If you are a plugin developer and want to know how to sign your plugin, refer to [Sign a plugin]({{< relref "../../developers/plugins/publish-a-plugin/sign-a-plugin.md" >}}).
You can manage data sources in Grafana by adding YAML configuration files in the [`provisioning/datasources`]({{< relref "../../setup-grafana/configure-grafana#provisioning" >}}) directory.
Each config file can contain a list of `datasources` to add or update during startup.
@@ -167,7 +171,9 @@ To provision the rest of a data source's settings, include them as a JSON blob i
Common settings in the [built-in core data sources]({{< relref "../../datasources#built-in-core-data-sources" >}}) include:
> **Note:** Data sources tagged with _HTTP\*_ communicate using the HTTP protocol, which includes all core data source plugins except MySQL, PostgreSQL, and MSSQL.
{{% admonition type="note" %}}
Data sources tagged with _HTTP\*_ communicate using the HTTP protocol, which includes all core data source plugins except MySQL, PostgreSQL, and MSSQL.
@@ -229,7 +235,9 @@ For examples of specific data sources' JSON data, refer to that [data source's d
Secure JSON data is a map of settings that will be encrypted with [secret key]({{< relref "../../setup-grafana/configure-grafana#secret_key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
> **Note:** The _HTTP\*_ tag denotes data sources that communicate using the HTTP protocol, including all core data source plugins except MySQL, PostgreSQL, and MSSQL.
{{% admonition type="note" %}}
The _HTTP\*_ tag denotes data sources that communicate using the HTTP protocol, including all core data source plugins except MySQL, PostgreSQL, and MSSQL.
You can manage plugin applications in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "../../setup-grafana/configure-grafana#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
> **Note:** This feature enables you to provision plugin configurations, not the plugins themselves.
> The plugins must already be installed on the Grafana instance.
{{% admonition type="note" %}}
This feature enables you to provision plugin configurations, not the plugins themselves.
The plugins must already be installed on the Grafana instance.
{{% /admonition %}}
### Example plugin configuration file
@@ -356,10 +368,12 @@ If the dashboard in the JSON file contains an [UID]({{< relref "../../dashboards
When Grafana starts, it updates/inserts all dashboards available in the configured folders. If you modify the file, then the dashboard is also updated.
By default, Grafana deletes dashboards in the database if the file is removed. You can disable this behavior using the `disableDeletion` setting.
> **Note:** Provisioning allows you to overwrite existing dashboards
> which leads to problems if you re-use settings that are supposed to be unique.
> Be careful not to re-use the same `title` multiple times within a folder
> or `uid` within the same installation as this will cause weird behaviors.
{{% admonition type="note" %}}
Provisioning allows you to overwrite existing dashboards
which leads to problems if you re-use settings that are supposed to be unique.
Be careful not to re-use the same `title` multiple times within a folder
or `uid` within the same installation as this will cause weird behaviors.
{{% /admonition %}}
### Provision folders structure from filesystem to Grafana
@@ -393,9 +407,13 @@ providers:
`server` and `application` will become new folders in Grafana menu.
> **Note:** `folder` and `folderUid` options should be empty or missing to make `foldersFromFilesStructure` work.
{{% admonition type="note" %}}
`folder` and `folderUid` options should be empty or missing to make `foldersFromFilesStructure` work.
{{% /admonition %}}
> **Note:** To provision dashboards to the General folder, store them in the root of your `path`.
{{% admonition type="note" %}}
To provision dashboards to the General folder, store them in the root of your `path`.
{{% /admonition %}}
## Alerting
@@ -403,7 +421,9 @@ For information on provisioning Grafana Alerting, refer to [Provision Grafana Al
## Alert Notification Channels
> **Note:** Alert Notification Channels are part of legacy alerting, which is deprecated and will be removed in Grafana 10. Use the Provision contact points section in [Create and manage alerting resources using file provisioning]({{< relref "../../alerting/set-up/provision-alerting-resources/file-provisioning" >}}).
{{% admonition type="note" %}}
Alert Notification Channels are part of legacy alerting, which is deprecated and will be removed in Grafana 10. Use the Provision contact points section in [Create and manage alerting resources using file provisioning]({{< relref "../../alerting/set-up/provision-alerting-resources/file-provisioning" >}}).
{{% /admonition %}}
Alert Notification Channels can be provisioned by adding one or more YAML config files in the [`provisioning/notifiers`](/administration/configuration/#provisioning) directory.
@@ -475,7 +495,9 @@ delete_notifiers:
The following sections detail the supported settings and secure settings for each alert notification type. Secure settings are stored encrypted in the database and you add them to `secure_settings` in the YAML file instead of `settings`.
> **Note:** Secure settings is supported since Grafana v7.2.
@@ -21,11 +21,15 @@ Recorded queries allow you to see trends over time by taking a snapshot of a dat
For our plugins that do not return time series, it might be useful to plot historical data. For example, you might want to query ServiceNow to see a history of request response times but it can only return current point-in-time metrics.
> **Note:** Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}).
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}).
{{% /admonition %}}
## How recorded queries work
> **Note:** An administrator must configure a Prometheus data source and associate it with a [Remote write target](#remote-write-target) before recorded queries can be used.
{{% admonition type="note" %}}
An administrator must configure a Prometheus data source and associate it with a [Remote write target](#remote-write-target) before recorded queries can be used.
{{% /admonition %}}
Recorded queries only work with backend data source plugins. Refer to [Backend data source plugin](/tutorials/build-a-data-source-backend-plugin/) for more information about backend data source plugins. You can recorded three types of queries:
description: Information about Grafana user, team, and organization roles and permissions
labels:
products:
- enterprise
- oss
title: Roles and permissions
weight: 300
---
@@ -20,13 +24,17 @@ You can assign a user one of three types of permissions:
- Organization permissions: Manage access to dashboards, alerts, plugins, teams, playlists, and other resources for an entire organization. The available roles are Viewer, Editor, and Admin.
- Dashboard and folder permission: Manage access to dashboards and folders
> **Note**: If you are running Grafana Enterprise, you can also control access to data sources and use role-based access control to grant user access to read and write permissions to specific Grafana resources. For more information about access control options available with Grafana Enterprise, refer to [Grafana Enterprise user permissions features](#grafana-enterprise-user-permissions-features).
{{% admonition type="note" %}}
If you are running Grafana Enterprise, you can also control access to data sources and use role-based access control to grant user access to read and write permissions to specific Grafana resources. For more information about access control options available with Grafana Enterprise, refer to [Grafana Enterprise user permissions features](#grafana-enterprise-user-permissions-features).
{{% /admonition %}}
## Grafana server administrators
A Grafana server administrator manages server-wide settings and access to resources such as organizations, users, and licenses. Grafana includes a default server administrator that you can use to manage all of Grafana, or you can divide that responsibility among other server administrators that you create.
> **Note:** The server administrator role does not mean that the user is also a Grafana [organization administrator]({{< relref "#organization-roles" >}}).
{{% admonition type="note" %}}
The server administrator role does not mean that the user is also a Grafana [organization administrator]({{< relref "#organization-roles" >}}).
{{% /admonition %}}
A server administrator can perform the following tasks:
@@ -36,7 +44,9 @@ A server administrator can perform the following tasks:
- View Grafana server statistics, including total users and active sessions
- Upgrade the server to Grafana Enterprise.
> **Note:** The server administrator role does not exist in Grafana Cloud.
{{% admonition type="note" %}}
The server administrator role does not exist in Grafana Cloud.
{{% /admonition %}}
To assign or remove server administrator privileges, see [Server user management]({{< relref "../user-management/server-user-management/assign-remove-server-admin-privileges/" >}}).
@@ -112,7 +122,9 @@ For more information about assigning dashboard permissions, refer to [Grant dash
If you have access to the Grafana server, you can modify the default editor role so that editors can use administrator permissions to manage dashboard folders, dashboards, and teams that they create.
> **Note**: This permission does not allow editors to manage folders, dashboards, and teams that they do not create.
{{% admonition type="note" %}}
This permission does not allow editors to manage folders, dashboards, and teams that they do not create.
{{% /admonition %}}
This setting can be used to enable self-organizing teams to administer their own dashboards.
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.
labels:
products:
- cloud
- enterprise
menuTitle: Role-based access control (RBAC)
title: Grafana Role-based access control (RBAC)
weight: 120
@@ -18,7 +17,9 @@ weight: 120
# Role-based access control (RBAC)
> **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](/docs/grafana-cloud).
{{% /admonition %}}
RBAC provides a standardized way of granting, changing, and revoking access when it comes to viewing and modifying Grafana resources, such as dashboards, reports, and administrative settings.
@@ -62,7 +63,9 @@ Each basic role is comprised of a number of _permissions_. For example, the view
-`Action: annotations:write, Scope: annotations:type:dashboard`: Enables the viewer to modify annotations of a dashboard.
-`Action: annotations:delete, Scope: annotations:type:dashboard`: Enables the viewer to remove annotations from a dashboard.
> **Note:** You can't have a Grafana user without a basic role assigned.
{{% admonition type="note" %}}
You can't have a Grafana user without a basic role assigned.
description: Learn how to assign RBAC roles to users and teams in Grafana.
labels:
products:
- cloud
- enterprise
menuTitle: Assign RBAC roles
title: Assign Grafana RBAC roles
weight: 40
@@ -11,7 +15,9 @@ weight: 40
# Assign RBAC roles
> **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](/docs/grafana-cloud).
{{% /admonition %}}
In this topic you'll learn how to use the role picker, provisioning, and the HTTP API to assign fixed and custom roles to users and teams.
> **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](/docs/grafana-cloud).
{{% /admonition %}}
The table below describes all RBAC configuration options. Like any other Grafana configuration, you can apply these options as [environment variables]({{< relref "../../../../setup-grafana/configure-grafana/#configure-with-environment-variables" >}}).
description: Learn about Grafana RBAC permissions, actions, and scopes.
labels:
products:
- cloud
- enterprise
menuTitle: RBAC permissions, actions, and scopes
title: Grafana RBAC permissions, actions, and scopes
weight: 80
@@ -10,7 +14,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](/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.
@@ -120,8 +126,8 @@ The following list contains role-based access control actions.
| `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.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. |
description: Learn how to view permissions associated with roles, create custom roles,
and update and delete roles in Grafana.
labels:
products:
- cloud
- enterprise
menuTitle: Manage RBAC roles
title: Manage Grafana RBAC roles
weight: 50
@@ -12,7 +16,9 @@ weight: 50
# Manage RBAC roles
> **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](/docs/grafana-cloud).
{{% /admonition %}}
This section includes instructions for how to view permissions associated with roles, create custom roles, and update and delete roles.
@@ -192,7 +198,9 @@ roles:
The following examples show you how to create a custom role using the Grafana HTTP API. For more information about the HTTP API, refer to [Create a new custom role]({{< relref "../../../../developers/http_api/access_control/#create-a-new-custom-role" >}}).
> **Note:** You cannot create a custom role with permissions that you do not have. For example, if you only have `users:create` permissions, then you cannot create a role that includes other permissions.
{{% admonition type="note" %}}
You cannot create a custom role with permissions that you do not have. For example, if you only have `users:create` permissions, then you cannot create a role that includes other permissions.
{{% /admonition %}}
The following example creates a `custom:users:admin` role and assigns the `users:create` action to it.
@@ -301,8 +309,10 @@ roles:
scope:'folder:*'
```
> **Note**: You can add multiple `fixed`, `basic` or `custom` roles to the `from` section. Their permissions will be copied and added to the basic role.
> <br/> **Note**: Make sure to **increment** the role version for the changes to be accounted for.
{{% admonition type="note" %}}
You can add multiple `fixed`, `basic` or `custom` roles to the `from` section. Their permissions will be copied and added to the basic role.
Make sure to **increment** the role version for the changes to be accounted for.
{{% /admonition %}}
You can also change basic roles' permissions using the API. Refer to the [RBAC HTTP API]({{< relref "../../../../developers/http_api/access_control/#update-a-role" >}}) for more details.
description: Plan your RBAC rollout strategy before you begin assigning roles to users
and teams.
labels:
products:
- cloud
- enterprise
menuTitle: Plan your RBAC rollout strategy
title: Plan your Grafana RBAC rollout strategy
weight: 20
@@ -11,7 +15,9 @@ weight: 20
# Plan your RBAC rollout strategy
> **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](/docs/grafana-cloud).
{{% /admonition %}}
An RBAC rollout strategy helps you determine _how_ you want to implement RBAC prior to assigning RBAC roles to users and teams.
@@ -60,7 +66,9 @@ Consider the following guidelines when you determine if you should modify basic
- **Modify basic roles** when Grafana's definitions of what viewers, editors, and admins can do does not match your definition of these roles. You can add or remove permissions from any basic role.
> **Note:** Changes that you make to basic roles impact the role definition for all [organizations]({{< relref "../../../organization-management/" >}}) in the Grafana instance. For example, when you add the `fixed:users:writer` role's permissions to the viewer basic role, all viewers in any org in the Grafana instance can create users within that org.
{{% admonition type="note" %}}
Changes that you make to basic roles impact the role definition for all [organizations]({{< relref "../../../organization-management/" >}}) in the Grafana instance. For example, when you add the `fixed:users:writer` role's permissions to the viewer basic role, all viewers in any org in the Grafana instance can create users within that org.
{{% /admonition %}}
- **Create custom roles** when fixed role definitions don't meet you permissions requirements. For example, the `fixed:dashboards:writer` role allows users to delete dashboards. If you want some users or teams to be able to create and update but not delete dashboards, you can create a custom role with a name like `custom:dashboards:creator` that lacks the `dashboards:delete` permission.
@@ -77,7 +85,9 @@ Use any of the following methods to assign RBAC roles to users and teams.
We've compiled the following permissions rollout scenarios based on current Grafana implementations.
> **Note:** If you have a use case that you'd like to share, feel free to contribute to this docs page. We'd love to hear from you!
{{% admonition type="note" %}}
If you have a use case that you'd like to share, feel free to contribute to this docs page. We'd love to hear from you!
{{% /admonition %}}
### Provide internal viewer employees with the ability to use Explore, but prevent external viewer contractors from using Explore
description: This topic includes a table that lists permission associated with Grafana
fixed and basic roles.
labels:
products:
- cloud
- enterprise
menuTitle: RBAC role definitions
title: Grafana RBAC role definitions
weight: 70
@@ -11,7 +15,9 @@ weight: 70
# RBAC role definitions
> **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](/docs/grafana-cloud).
{{% /admonition %}}
The following tables list permissions associated with basic and fixed roles.
@@ -95,7 +101,7 @@ The following tables list permissions associated with basic and fixed roles.
### Alerting roles
If alerting is [enabled]({{< relref "../../../../alerting/migrating-alerts/opt-out/" >}}), you can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.
If alerting is [enabled]({{< relref "../../../../alerting/set-up/migrating-alerts/opt-out/" >}}), you can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.
Access to Grafana alert rules is an intersection of many permissions:
@@ -108,10 +114,14 @@ For more information about the permissions required to access alert rules, refer
### Grafana OnCall roles (beta)
> **Note:** Available from Grafana 9.4 in early access.
{{% admonition type="note" %}}
Available from Grafana 9.4 in early access.
{{% /admonition %}}
> **Note:** This feature is behind the `accessControlOnCall` feature toggle.
> You can enable feature toggles through configuration file or environment variables. See configuration [docs]({{< relref "../../../../setup-grafana/configure-grafana/#feature_toggles" >}}) for details.
{{% admonition type="note" %}}
This feature is behind the `accessControlOnCall` featuretoggle.
You can enable feature toggles through configuration file or environment variables. See configuration [docs]({{< relref "../../../../setup-grafana/configure-grafana/#feature_toggles" >}}) for details.
{{% /admonition %}}
If you are using [Grafana OnCall](https://grafana.com/docs/oncall/latest/get-started/), you can try out the integration between Grafana OnCall and RBAC.
This will allow you to control access to different OnCall features using the following RBAC roles:
description: Learn about RBAC Grafana provisioning and view an example YAML provisioning
file that configures Grafana role assignments.
labels:
products:
- cloud
- enterprise
menuTitle: Provisioning RBAC with Grafana
title: Provisioning RBAC with Grafana
weight: 60
@@ -11,7 +15,9 @@ weight: 60
# Provisioning RBAC with Grafana
> **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](/docs/grafana-cloud).
{{% /admonition %}}
You can create, change or remove [Custom roles]({{< relref "./manage-rbac-roles/#create-custom-roles-using-provisioning" >}}) and create or remove [basic role assignments]({{< relref "./assign-rbac-roles/#assign-a-fixed-role-to-a-basic-role-using-provisioning" >}}), by adding one or more YAML configuration files in the `provisioning/access-control/` directory.
description: Learn about RBAC Terraform provisioning and view an example of provisioning
configuration for Grafana roles and role assignments.
labels:
products:
- cloud
- enterprise
menuTitle: Provisioning RBAC with Terraform
title: Provisioning RBAC with Terraform
weight: 60
@@ -10,7 +14,9 @@ weight: 60
# Provisioning RBAC with Terraform
> **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](/docs/grafana-cloud).
{{% /admonition %}}
You can create, change or remove [Custom roles](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role) and create or remove [basic and custom role assignments](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role_assignment), by using [Terraform's Grafana provider](https://registry.terraform.io/providers/grafana/grafana/latest/docs).
> **Note:** Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) version 7.3 and later, and [Grafana Cloud Advanced](/docs/grafana-cloud).
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) version 7.3 and later, and [Grafana Cloud](/docs/grafana-cloud).
{{% /admonition %}}
You can enable auditing in the Grafana configuration file.
@@ -45,8 +46,10 @@ Learn more about [access control audit logs]({{< relref "../../../../setup-grafa
This happens when an instance is downgraded from a version that uses RBAC to a version that uses the legacy access control, and dashboard, folder or data source permissions are updated.
These permission updates will not be applied to RBAC, so permissions will be out of sync when the instance is next upgraded to a version with RBAC.
> **Note:** the steps provided below will set all dashboard, folder and data source permissions to what they are set to with the legacy access control.
> If you have made dashboard, folder or data source permission updates with RBAC enabled, these updates will be wiped.
{{% admonition type="note" %}}
the steps provided below will set all dashboard, folder and data source permissions to what they are set to with the legacy access control.
If you have made dashboard, folder or data source permission updates with RBAC enabled, these updates will be wiped.
@@ -8,6 +8,10 @@ description: This page contains information about service accounts in Grafana
keywords:
- API keys
- Service accounts
labels:
products:
- enterprise
- oss
menuTitle: Service accounts
title: Service accounts
weight: 800
@@ -17,7 +21,9 @@ weight: 800
You can use a service account to run automated workloads in Grafana, such as dashboard provisioning, configuration, or report generation. Create service accounts and tokens to authenticate applications, such as Terraform, with the Grafana API.
> **Note:** Service accounts will eventually replace [API keys]({{< relref "../api-keys/" >}}) as the primary way to authenticate applications that interact with Grafana.
{{% admonition type="note" %}}
Service accounts will eventually replace [API keys]({{< relref "../api-keys/" >}}) as the primary way to authenticate applications that interact with Grafana.
{{% /admonition %}}
A common use case for creating a service account is to perform operations on automated or triggered tasks. You can use service accounts to:
@@ -28,7 +34,9 @@ A common use case for creating a service account is to perform operations on aut
In [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}), you can also use service accounts in combination with [role-based access control]({{< relref "../roles-and-permissions/access-control/" >}}) to grant very specific permissions to applications that interact with Grafana.
> **Note:** Service accounts can only act in the organization they are created for. If you have the same task that is needed for multiple organizations, we recommend creating service accounts in each organization.
{{% admonition type="note" %}}
Service accounts can only act in the organization they are created for. If you have the same task that is needed for multiple organizations, we recommend creating service accounts in each organization.
{{% /admonition %}}
{{< vimeo 742056367 >}}
@@ -174,8 +182,10 @@ To list your token's permissions, use the `/api/access-control/user/permissions`
#### Example
> **Note:** The following command output is shortened to show only the relevant content.
> Authorize your request with the token whose permissions you want to check.
{{% admonition type="note" %}}
The following command output is shortened to show only the relevant content.
Authorize your request with the token whose permissions you want to check.
{{% /admonition %}}
```bash
curl -H "Authorization: Bearer glsa_HOruNAb7SOiCdshU9algkrq7FDsNSLAa_54e2f8be" -X GET '<grafana_url>/api/access-control/user/permissions'| jq
@@ -25,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
@@ -38,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" >}}).
@@ -37,7 +41,9 @@ When you grant folder permissions, that setting applies to all dashboards and su
For example, if a user with the viewer organization role requires editor (or admin) access to a dashboard, you can assign those elevated permissions on an individual basis.
> **Note**: If you have assigned a user dashboard folder permissions, you cannot also assign the user permission to dashboards contained in the folder.
{{% admonition type="note" %}}
If you have assigned a user dashboard folder permissions, you cannot also assign the user permission to dashboards contained in the folder.
{{% /admonition %}}
Grant dashboard permissions when you want to restrict or enhance dashboard access for users who do not have permissions defined in the associated folder.
@@ -63,7 +69,9 @@ By default, the viewer organization role does not allow viewers to create dashbo
This modification is useful for public Grafana installations where you want anonymous users to be able to edit panels and queries but not save or create new dashboards.
> **Note**: If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `viewers_can_edit` flag.
{{% admonition type="note" %}}
If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `viewers_can_edit` flag.
@@ -32,13 +36,17 @@ You can see a list of users with accounts in your Grafana organization. If neces
1. Sign in to Grafana as an organization administrator.
1. Navigate to **Administration > Users**.
> **Note:** If you have [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../server-user-management#view-a-list-of-users" >}}) in the Server Admin section of Grafana.
{{% admonition type="note" %}}
If you have [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../server-user-management#view-a-list-of-users" >}}) in the Server Admin section of Grafana.
{{% /admonition %}}
## Change a user's organization permissions
Update user permissions when you want to enhance or restrict a user's access to organization resources. For more information about organization permissions, refer to [Organization roles]({{< relref "../../roles-and-permissions/#organization-roles" >}}).
> **Note:** Organization roles sync from the authentication provider on user sign-in. To prevent synchronization of organization roles from the authentication provider regardless of their role in the authentication provider, then refer to the `skip_org_role_sync` setting in your Grafana configuration. Refer to [skip org role sync]({{< relref "../../../setup-grafana/configure-grafana/#authgrafana_com-skip_org_role_sync" >}}) for more information.
{{% admonition type="note" %}}
Organization roles sync from the authentication provider on user sign-in. To prevent synchronization of organization roles from the authentication provider regardless of their role in the authentication provider, then refer to the `skip_org_role_sync` setting in your Grafana configuration. Refer to [skip org role sync]({{< relref "../../../setup-grafana/configure-grafana/#authgrafana_com-skip_org_role_sync" >}}) for more information.
{{% /admonition %}}
### Before you begin
@@ -56,7 +64,9 @@ Update user permissions when you want to enhance or restrict a user's access to
1. Select the role that you want to assign.
1. Click **Update**.
> **Note:** If you have [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../server-user-management/change-user-org-permissions/" >}}) in the Server Admin section.
{{% admonition type="note" %}}
If you have [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../server-user-management/change-user-org-permissions/" >}}) in the Server Admin section.
{{% /admonition %}}
## Invite a user to join an organization
@@ -65,7 +75,9 @@ When you invite users to join an organization, you assign the **Admin**, **Edito
- If you know that the user already has access Grafana and you know their user name, then you issue an invitation by entering their user name.
- If the user is new to Grafana, then use their email address to issue an invitation. The system automatically creates the user account on first sign in.
> **Note:** If you have [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../server-user-management/add-remove-user-to-org/" >}}).
{{% admonition type="note" %}}
If you have [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../server-user-management/add-remove-user-to-org/" >}}).
{{% /admonition %}}
### Before you begin
@@ -81,6 +93,7 @@ When you invite users to join an organization, you assign the **Admin**, **Edito
> **Note**: It might be that you are currently in the proper organization and don't need to switch organizations.
1. Navigate to **Administration > Users**.
1. Click **Organization users**.
1. Click **Invite**.
1. Enter the following information:
@@ -99,7 +112,9 @@ If the invitee is not already a user, the system adds them.
Periodically review invitations you have sent so that you can see a list of users that have not yet accepted the invitation or cancel a pending invitation.
> **Note:** The **Pending Invites** button is only visible if there are unanswered invitations.
{{% admonition type="note" %}}
The **Pending Invites** button is only visible if there are unanswered invitations.
@@ -37,7 +41,9 @@ You can see a list of users with accounts on your Grafana server. This action mi
1. Sign in to Grafana as a server administrator.
1. Click **Administration** in the left-side menu, and then **Users**.
> **Note:** If you have [organization administrator]({{< relref "../../roles-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../manage-org-users/#view-a-list-of-organization-users" >}}).
{{% admonition type="note" %}}
If you have [organization administrator]({{< relref "../../roles-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../manage-org-users/#view-a-list-of-organization-users" >}}).
{{% /admonition %}}
## View user details
@@ -115,7 +121,9 @@ When you configure advanced authentication using Oauth, SAML, LDAP, or the Auth
When you create a user, the system assigns the user viewer permissions in a default organization, which you can change. You can now [add a user to a second organization]({{< relref "add-remove-user-to-org/" >}}).
> **Note:** If you have [organization administrator]({{< relref "../../roles-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can still add users by [inviting a user to join an organization]({{< relref "../manage-org-users#invite-a-user-to-join-an-organization" >}}).
{{% admonition type="note" %}}
If you have [organization administrator]({{< relref "../../roles-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../../roles-and-permissions/#grafana-server-administrators" >}}) permissions, you can still add users by [inviting a user to join an organization]({{< relref "../manage-org-users#invite-a-user-to-join-an-organization" >}}).
description: Describes how a Grafana server administrator can add or remove users
in an organization
labels:
products:
- enterprise
- oss
title: Add or remove a user in an organization
weight: 30
---
@@ -38,7 +42,9 @@ You are required to specify an Admin role for each organization. The first user
The next time the user signs in, they will be able to navigate to their new organization using the Switch Organizations option in the user profile menu.
> **Note:** If you have [organization administrator]({{< relref "../../../roles-and-permissions#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../../../roles-and-permissions#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../../manage-org-users#invite-a-user-to-join-an-organization" >}}).
{{% admonition type="note" %}}
If you have [organization administrator]({{< relref "../../../roles-and-permissions#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../../../roles-and-permissions#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../../manage-org-users#invite-a-user-to-join-an-organization" >}}).
description: Describes how to assign and remove Grafana administrator privileges from
a server user.
labels:
products:
- enterprise
- oss
title: Assign or remove Grafana server administrator privileges
weight: 20
---
@@ -11,7 +15,9 @@ weight: 20
Grafana server administrators are responsible for creating users, organizations, and managing permissions. For more information about the server administration role, refer to [Grafana server administrators]({{< relref "../../../roles-and-permissions#grafana-server-administrators" >}}).
> **Note:** Server administrators are "super-admins" with full permissions to create, read, update, and delete all resources and users in all organizations, as well as update global settings such as licenses. Only grant this permission to trusted users.
{{% admonition type="note" %}}
Server administrators are "super-admins" with full permissions to create, read, update, and delete all resources and users in all organizations, as well as update global settings such as licenses. Only grant this permission to trusted users.
@@ -16,7 +20,9 @@ When `editors_can_admin` is enabled:
- Users with the Editor role in an organization are Administrators for new dashboards and folders they create, meaning they can edit dashboard permissions. To learn more about dashboard permissions, refer to [Manage dashboard permissions]({{< relref "../../manage-dashboard-permissions/" >}}).
- Users with the Editor role in an organization can create teams, and they are Administrators of the teams they create. To learn more about team permissions, refer to [Team management]({{< relref "../../../team-management/" >}}).
> **Note**: If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `editors_can_admin` flag.
{{% admonition type="note" %}}
If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `editors_can_admin` flag.
@@ -22,7 +26,9 @@ You can also view important information about your account, such as the organiza
You can change your Grafana password at any time.
> **Note**: If your Grafana instance uses an <!--[external authentication provider]({{< relref "../../../setup-grafana/configure-security/configure-authentication/" >}})--> external authentication provider, then you might not be able to change your password in Grafana. Contact your Grafana administrator for more information.
{{% admonition type="note" %}}
If your Grafana instance uses an external authentication provider, then you might not be able to change your password in Grafana. Contact your Grafana administrator for more information.
Configure the features and integrations that you need to create and manage your alerts.
**Configure alert rules**
An alert rule is a set of evaluation criteria that determines whether an alert will fire. The alert rule consists of one or more queries and expressions, a condition, the frequency of evaluation, and optionally, the duration over which the condition is met.
@@ -15,12 +28,20 @@ While queries and expressions select the data set to evaluate, a condition sets
@@ -18,12 +24,10 @@ Grafana-managed rules are the most flexible alert rule type. They allow you to c
Multiple alert instances can be created as a result of one alert rule (also known as a multi-dimensional alerting).
For information on Grafana Alerting, see [Introduction to Grafana Alerting](/docs/grafana/next/alerting/fundamentals/), which explains the key concepts and features of Grafana Alerting.
For information on Grafana Alerting, see [Introduction to Grafana Alerting]({{< relref "../fundamentals" >}}), which explains the key concepts and features of Grafana Alerting.
Watch this video to learn more about creating alerts: {{< vimeo 720001934 >}}
_Refer to [Add Grafana managed rule]({{< relref "#add-grafana-managed-rule" >}}) (following) for current instructions._
To create a Grafana-managed alert rule, complete the following steps.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
@@ -34,14 +38,14 @@ To create a Grafana-managed alert rule, complete the following steps.
5. In Step 2, add queries and expressions to evaluate, and then select the alert condition.
- For queries, select a data source from the dropdown.
- Specify a [time range](/docs/grafana/latest/dashboards/use-dashboards/?pg=blog&plcmt=body-txt#time-units-and-relative-ranges).
- Specify a [time range]({{< relref "../../dashboards/use-dashboards#time-units-and-relative-ranges" >}}).
**Note:**
Grafana Alerting only supports fixed relative time ranges, for example, `now-24hr: now`.
It does not support absolute time ranges: `2021-12-02 00:00:00 to 2021-12-05 23:59:592` or semi-relative time ranges: `now/d to: now`.
- 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" >}}).
- Add one or more [queries]({{< relref "../../panels-visualizations/query-transform-data#add-a-query" >}}) or [expressions]({{< relref "../../panels-visualizations/query-transform-data/expression-queries" >}}).
- For each expression, select either **Classic condition** to create a single alert rule, or choose from the **Math**, **Reduce**, and **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.
@@ -52,7 +56,7 @@ To create a Grafana-managed alert rule, complete the following steps.
- 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).
- In **Configure no data and error handling**, configure alerting behavior in the absence of data. Use the guidelines in [No data and error handling](#configure-no-data-and-error-handling).
- Click **Preview** to check the result of running the query at this moment. Preview excludes no data and error handling.
**Note:**
@@ -62,7 +66,7 @@ To create a Grafana-managed alert rule, complete the following steps.
7. In Step 4, add the storage location, rule group, as well as additional metadata associated with the rule.
- From the **Folder** dropdown, select the folder where you want to store the rule.
- For **Group**, specify a pre-defined group. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
8. In Step 5, add custom labels.
- Add custom labels selecting existing key-value pairs from the drop down, or add new labels by entering the new key or value .
@@ -77,13 +81,13 @@ For Grafana managed alerts, you can create a rule with a classic condition or yo
Use the classic condition expression to create a rule that triggers a single alert when its condition is met. For a query that returns multiple series, Grafana does not track the alert state of each series. As a result, Grafana sends only a single alert even when alert conditions are met for multiple series.
For more information, see [expressions documentation]({{< relref "/docs/grafana/latest/panels-visualizations/query-transform-data/expression-queries" >}}).
For more information, see [expressions documentation]({{< relref "../../panels-visualizations/query-transform-data/expression-queries" >}}).
**Multi-dimensional rule**
To generate a separate alert for each series, create a multi-dimensional rule. Use `Math`, `Reduce`, or `Resample` expressions to create a multi-dimensional rule. For example:
- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data]({{< relref "../fundamentals/evaluate-grafana-alerts/#alerting-on-numeric-data-1" >}})).
- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data]({{< relref "../fundamentals/evaluate-grafana-alerts#alerting-on-numeric-data-1" >}})).
- Add a `Math` expression with the condition for the rule. Not needed in case a query or a reduce expression already returns 0 if rule should not fire, or a positive number if it should fire. Some examples: `$B > 70` if it should fire in case value of B query/expression is more than 70. `$B < $C * 100` in case it should fire if value of B is less than value of C multiplied by 100. If queries being compared have multiple series in their results, series from different queries are matched if they have the same labels or one is a subset of the other.

description: Create Grafana Mimir or Loki managed recording rule
keywords:
- grafana
@@ -10,6 +11,11 @@ keywords:
- rules
- recording rules
- create
labels:
products:
- cloud
- enterprise
- oss
title: Create Grafana Mimir or Loki managed recording rules
weight: 400
---
@@ -18,6 +24,14 @@ weight: 400
You can create and manage recording rules for an external Grafana Mimir or Loki instance. Recording rules calculate frequently needed expressions or computationally expensive expressions in advance and save the result as a new set of time series. Querying this new time series is faster, especially for dashboards since they query the same expression every time the dashboards refresh.
**Note:**
Recording rules are run as instant rules, which means that they run every 10s. To overwrite this configuration, update the min_interval in your custom configuration file.
[min_interval]({{< relref "../../setup-grafana/configure-grafana" >}}) sets the minimum interval to enforce between rule evaluations. The default value is 10s which equals the scheduler interval. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as fewer evaluations are scheduled over time.
This setting has precedence over each individual rule frequency. If a rule frequency is lower than this value, then this value is enforced.
## Before you begin
- Verify that you have write permission to the Prometheus or Loki data source. Otherwise, you will not be able to create or update Grafana Mimir managed alerting rules.
@@ -26,9 +40,11 @@ You can create and manage recording rules for an external Grafana Mimir or Loki
- **Loki** - The `local` rule storage type, default for the Loki data source, supports only viewing of rules. To edit rules, configure one of the other rule storage types.
- **Grafana Mimir** - use the `/prometheus` prefix. The Prometheus data source supports both Grafana Mimir and Prometheus, and Grafana expects that both the [Query API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#querier--query-frontend) and [Ruler API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#ruler) are under the same URL. You cannot provide a separate URL for the Ruler API.
- **Grafana Mimir** - use the `/prometheus` prefix. The Prometheus data source supports both Grafana Mimir and Prometheus, and Grafana expects that both the [Query API](/docs/mimir/latest/operators-guide/reference-http-api/#querier--query-frontend) and [Ruler API](/docs/mimir/latest/operators-guide/reference-http-api/#ruler) are under the same URL. You cannot provide a separate URL for the Ruler API.
> **Note:** If you do not want to manage alerting rules for a particular Loki or Prometheus data source, go to its settings and clear the **Manage alerts via Alerting UI** checkbox.
{{% admonition type="note" %}}
If you do not want to manage alerting rules for a particular Loki or Prometheus data source, go to its settings and clear the **Manage alerts via Alerting UI** checkbox.
{{% /admonition %}}
## Add a Grafana Mimir or Loki managed recording rule
@@ -42,30 +58,12 @@ To create a Grafana Mimir or Loki managed recording rule
1. In Step 2, select **Mimir or Loki recording rule** option.
- Select your Loki or Prometheus data source.
- Enter a PromQL or LogQL query.
1. In Step 3, add the namespace and the group.
- From the **Namespace** dropdown, select an existing rule namespace. Otherwise, click Add new and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}}).
- From the **Group** dropdown, select an existing group within the selected namespace. Otherwise, click **Add new** and enter a name to create a new one.
1. In Step 4, add the custom labels.
- Add custom labels selecting existing key-value pairs from the drop down, or add new labels by entering the new key or value.
1. Click **Save** to save the recording rule or **Save and exit** to save the recording rule and go back to the Alerting page.
<!-- delete next steps? -->
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Alert rules**.
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.
- From the **Rule type** dropdown, select **Mimir / Loki managed alert**.
- From the **Select data source** dropdown, select an external Prometheus, an external Loki, or a Grafana Cloud data source.
- Enter a PromQL or LogQL expression. The rule fires if the evaluation result has at least one series with a value that is greater than 0. An alert is created for each series.
1. In Step 3, add evaluation behavior.
1. In Step 3, add alert evaluation behavior.
- Enter a valid **For** duration. The expression has to be true for this long for the alert to be fired.
1. In Step 4, add additional metadata associated with the rule.
- From the **Namespace** dropdown, select an existing rule namespace. Otherwise, click Add new and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}}).
- From the **Group** dropdown, select an existing group within the selected namespace. Otherwise, click **Add new** and enter a name to create a new one. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- From the **Namespace** dropdown, select an existing rule namespace or add a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "./edit-mimir-loki-namespace-group" >}}).
- From the **Group** dropdown, select an existing group within the selected namespace or add a new one. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
1. In Step 5, add custom labels.
- Add custom labels selecting existing key-value pairs from the drop down, or add new labels by entering the new key or value .
description: Create Grafana Mimir or Loki managed alerting rule
keywords:
- grafana
@@ -10,13 +11,18 @@ keywords:
- guide
- rules
- create
labels:
products:
- cloud
- enterprise
- oss
title: Create Grafana Mimir or Loki managed alert rules
weight: 400
---
# Create a Grafana Mimir or Loki managed alerting rules
# Create Grafana Mimir or Loki managed alert rules
Grafana allows you to create alerting rules for an external Grafana Mimir or Loki instance that has ruler API enabled. For information on Grafana Alerting, see [About Grafana Alerting]({{< relref "../" >}}) which explains the various components of Grafana Alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana Alerting.
Grafana allows you to create alerting rules for an external Grafana Mimir or Loki instance that has ruler API enabled. For information on Grafana Alerting, see [About Grafana Alerting]({{< relref "../../alerting" >}}) which explains the various components of Grafana Alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals" >}}) of Grafana Alerting.
## Before you begin
@@ -26,13 +32,15 @@ Grafana allows you to create alerting rules for an external Grafana Mimir or Lok
- **Loki** - The `local` rule storage type, default for the Loki data source, supports only viewing of rules. To edit rules, configure one of the other rule storage types.
- **Grafana Mimir** - use the `/prometheus` prefix. The Prometheus data source supports both Grafana Mimir and Prometheus, and Grafana expects that both the [Query API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#querier--query-frontend) and [Ruler API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#ruler) are under the same URL. You cannot provide a separate URL for the Ruler API.
- **Grafana Mimir** - use the `/prometheus` prefix. The Prometheus data source supports both Grafana Mimir and Prometheus, and Grafana expects that both the [Query API](/docs/mimir/latest/operators-guide/reference-http-api/#querier--query-frontend) and [Ruler API](/docs/mimir/latest/operators-guide/reference-http-api/#ruler) are under the same URL. You cannot provide a separate URL for the Ruler API.
Watch this video to learn more about how to create a Mimir managed alert rule: {{< vimeo 720001865 >}}
_Refer to [Add a Grafana Mimir or Loki managed alerting rule]({{< relref "#add-a-grafana-mimir-or-loki-managed-alerting-rule" >}}) (following) for current instructions._
> **Note:** If you do not want to manage alerting rules for a particular Loki or Prometheus data source, go to its settings and clear the **Manage alerts via Alerting UI** checkbox.
{{% admonition type="note" %}}
If you do not want to manage alerting rules for a particular Loki or Prometheus data source, go to its settings and clear the **Manage alerts via Alerting UI** checkbox.
{{% /admonition %}}
## Add a Grafana Mimir or Loki managed alerting rule
@@ -48,9 +56,9 @@ _Refer to [Add a Grafana Mimir or Loki managed alerting rule]({{< relref "#add-a
- In the **For** text box, specify the duration for which the condition must be true before an alert fires. If you specify `5m`, the condition must be true for 5 minutes before the alert fires.
> **Note:** Once a condition is met, the alert goes into the `Pending` state. If the condition remains active for the duration specified, the alert transitions to the `Firing` state, else it reverts to the `Normal` state.
1. In Step 4, add the namespace, rule group, as well as additional metadata associated with the rule.
- From the **Namespace** dropdown, select an existing rule namespace. Otherwise, click **Add new** and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}}).
- From the **Namespace** dropdown, select an existing rule namespace. Otherwise, click **Add new** and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "./edit-mimir-loki-namespace-group" >}}).
- From the **Group** dropdown, select an existing group within the selected namespace. Otherwise, click **Add new** and enter a name to create a new one. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time.
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
1. In Step 5, add custom labels.
- Add custom labels selecting existing key-value pairs from the drop down, or add new labels by entering the new key or value .
Notification policies determine how alerts are routed to contact points. Policies have a tree structure, where each policy can have one or more nested policies. Each policy, except for the default policy, can also match specific alert labels. Each alert is evaluated by the default policy and subsequently by each nested policy. If the **Continue matching subsequent sibling nodes** option is enabled for a nested policy, then evaluation continues even after one or more matches. A parent policy’s configuration settings and contact point information govern the behavior of an alert that does not match any of the nested policies. A default policy governs any alert that does not match a nested policy.
Notification policies determine how alerts are routed to contact points.
You can configure Grafana managed notification policies as well as notification policies for an external Alertmanager data source.
Policies have a tree structure, where each policy can have one or more nested policies. Each policy, except for the default policy, can also match specific alert labels.
## Grouping
Each alert is evaluated by the default policy and subsequently by each nested policy.
Grouping is a new and key concept of Grafana Alerting that categorizes alert notifications of similar nature into a single funnel. This allows you to properly route alert notifications during larger outages when many parts of a system fail at once causing a high number of alerts to fire simultaneously.
If the **Continue matching subsequent sibling nodes** option is enabled for a nested policy, then evaluation continues even after one or more matches. A parent policy’s configuration settings and contact point information govern the behavior of an alert that does not match any of the nested policies. A default policy governs any alert that does not match a nested policy.
For example, suppose you have 100 services connected to a database in different environments. These services are differentiated by the label `env=environmentname`. An alert rule is in place to monitor whether your services can reach the database named `alertname=DatabaseUnreachable`.
You can configure Grafana-managed notification policies as well as notification policies for an external Alertmanager data source.
When a network partition occurs, half of your services can no longer reach the database. As a result, 50 differentalerts (assuming half of your services) are fired. For this situation, you want to receive a single-page notification (as opposed to 50) with a list of the environments that are affected.
You can configure grouping to be `group_by: [alertname]` (take note that the `env` label is omitted). With this configuration in place, Grafana sends a single compact notification that has all the affected environments for this alert rule.
> **Note:** Grafana also has a special label named `...` that you can use to group all alerts by all labels (effectively disabling grouping), therefore each alert will go into its own group. It is different from the default of `group_by: null` where **all** alerts go into a single group.
For more information on notification policies, see [fundamentals of Notification Policies]({{< relref "../fundamentals/notification-policies" >}}).
## Edit default notification policy
> **Note:** Before Grafana v8.2, the configuration of the embedded Alertmanager was shared across organizations. Users of Grafana 8.0 and 8.1 are advised to use the new Grafana 8 Alerts only if they have one organization. Otherwise, silences for the Grafana managed alerts will be visible by all organizations.
{{% admonition type="note" %}}
Before Grafana v8.2, the configuration of the embedded Alertmanager was shared across organizations. Users of Grafana 8.0 and 8.1 are advised to use the new Grafana 8 Alerts only if they have one organization. Otherwise, silences for the Grafana managed alerts will be visible by all organizations.
{{% /admonition %}}
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Notification policies**.
@@ -53,7 +57,7 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Notification policies**.
1. From the **Choose Alertmanager** dropdown, select an Alertmanager. By default, the **Grafana Alertmanager** is selected.
1. To add a top level specific policy, go to the Specific routing section and click **+New specific policy**.
1. To add a top level specific policy, go to the Specific routing section and click **+New specific policy**.
1. In the Matching labels section, add one or more rules for matching alert labels.
1. In the **Contact point** dropdown, select the contact point to send notification to if alert matches only this specific policy and not any of the nested policies.
1. Optionally, enable **Continue matching subsequent sibling nodes** to continue matching sibling policies even after the alert matched the current policy. When this option is enabled, you can get more than one notification for one alert.
@@ -66,7 +70,7 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Notification policies**.
1. Expand the specific policy you want to update.
1. Click **+ Add nested policy**, then add the details using information in [Add new specific policy](#add-new-specific-policy).
1. Click **+ Add nested policy**, then add the details using information in [Add new specific policy](#add-new-nested-policy).
1. Click **Save policy** to save your changes.
## Edit specific policy
@@ -74,7 +78,7 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. In the left-side menu, click **Alerts & IRM**, and then **Alerting**.
1. Click **Notification policies**.
1. Find the policy you want to edit, then click **Edit**.
1. Make any changes using instructions in [Add new specific policy](#add-new-specific-policy).
1. Make any changes using instructions in [Add new specific policy](#add-new-nested-policy).
Use contact points to define how your contacts are notified when an alert rule fires. You can create, edit, delete, and test a contact point.
@@ -52,7 +60,9 @@ Complete the following steps to delete a contact point.
1. Find the contact point to delete, and then click **Delete** (trash icon).
1. In the confirmation dialog, click **Yes, delete**.
> **Note:** You cannot delete contact points that are in use by a notification policy. You will have to either delete the notification policy or update it to use another contact point.
{{% admonition type="note" %}}
You cannot delete contact points that are in use by a notification policy. You will have to either delete the notification policy or update it to use another contact point.
description: Intro to the key concepts in Alerting and how it works
labels:
products:
- cloud
- enterprise
- oss
menuTitle: Introduction
title: Introduction to Alerting
weight: 105
---
@@ -44,6 +52,14 @@ Set where, when, and how firing alert instances get routed.
Each notification policy contains a set of label matchers to indicate which alerts rules or instances it is responsible for. It also has a contact point assigned to it that consists of one or more contact point types, such as Slack or email. Contact points define how your contacts are notified when an alert instance fires.
For more information on notification policies, see [fundamentals of Notification Policies]({{< relref "../fundamentals/notification-policies" >}}).
**Message templates**
Use message templates for your notifications to create reusable custom templates and use them in contact points.
Add silences to stop notifications from one or more alert instances or use mute timings to specify time intervals when you don’t want new notifications to be generated or sent out. The difference between the two being that a silence only lasts for only a specified window of time whereas a mute timing recurs on a schedule, for example, during a maintenance period.
**Silences and mute timings**
Add silences to stop notifications from one or more alert instances or use mute timings to specify time intervals when you don’t want new notifications to be generated or sent out.
The difference between the two being that a silence only lasts for only a specified window of time whereas a mute timing recurs on a schedule, for example, during a maintenance period.
@@ -16,7 +22,7 @@ While queries and expressions select the data set to evaluate, a condition sets
An interval specifies how frequently an alerting rule is evaluated. Duration, when configured, indicates how long a condition must be met. The alert rules can also define alerting behavior in the absence of data.
description: Introduction to queries and conditions
keywords:
- grafana
- alerting
- queries
- conditions
labels:
products:
- cloud
- enterprise
- oss
title: Queries and conditions
weight: 103
---
# Queries and conditions
In Grafana, queries play a vital role in fetching and transforming data from supported data sources, which include databases like MySQL and PostgreSQL, time series databases like Prometheus, InfluxDB and Graphite, and services like Elasticsearch, AWS CloudWatch, Azure Monitor and Google Cloud Monitoring.
For more information on supported data sources, see [Data sources]({{< relref "../../data-source-alerting.md" >}}).
The process of executing a query involves defining the data source, specifying the desired data to retrieve, and applying relevant filters or transformations. Query languages or syntaxes specific to the chosen data source are utilized for constructing these queries.
In Alerting, you define a query to get the data you want to measure and a condition that needs to be met before an alert rule fires.
An alert rule consists of one or more queries and expressions that select the data you want to measure.
For more information on queries and expressions, see [Query and transform data]({{< relref "../../../../panels-visualizations/query-transform-data" >}}).
## Data source queries
Queries in Grafana can be applied in various ways, depending on the data source and query language being used. Each data source’s query editor provides a customized user interface that helps you write queries that take advantage of its unique capabilities.
Because of the differences between query languages, each data source query editor looks and functions differently. Depending on your data source, the query editor might provide auto-completion features, metric names, variable suggestions, or a visual query-building interface.
Some common types of query components include:
**Metrics or data fields**: Specify the specific metrics or data fields you want to retrieve, such as CPU usage, network traffic, or sensor readings.
**Time range**: Define the time range for which you want to fetch data, such as the last hour, a specific day, or a custom time range.
**Filters**: Apply filters to narrow down the data based on specific criteria, such as filtering data by a specific tag, host, or application.
**Aggregations**: Perform aggregations on the data to calculate metrics like averages, sums, or counts over a given time period.
**Grouping**: Group the data by specific dimensions or tags to create aggregated views or breakdowns.
**Note**:
Grafana does not support alert queries with template variables. More information is available [here](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514).
## Expression queries
In Grafana, an expression is used to perform calculations, transformations, or aggregations on the data source queried data. It allows you to create custom metrics or modify existing metrics based on mathematical operations, functions, or logical expressions.
By leveraging expression queries, users can perform tasks such as calculating the percentage change between two values, applying functions like logarithmic or trigonometric functions, aggregating data over specific time ranges or dimensions, and implementing conditional logic to handle different scenarios.
In Alerting, you can only use expressions for Grafana-managed alert rules. For each expression, you can choose from the math, reduce, and resample expressions. These are called multi-dimensional rules, because they generate a separate alert for each series.
You can also use classic condition, which creates an alert rule that triggers a single alert when its condition is met. As a result, Grafana sends only a single alert even when alert conditions are met for multiple series.
**Note:**
Classic conditions exist mainly for compatibility reasons and should be avoided if possible.
**Reduce**
Aggregates time series values in the selected time range into a single value.
**Math**
Performs free-form math functions/operations on time series and number data. Can be used to preprocess time series data or to define an alert condition for number data.
**Resample**
Realigns a time range to a new set of timestamps, this is useful when comparing time series data from different data sources where the timestamps would otherwise not align.
**Threshold**
Checks if any time series data matches the threshold condition.
The threshold expression allows you to compare two single values. It returns `0` when the condition is false and `1` if the condition is true. The following threshold functions are available:
- Is above (x > y)
- Is below (x < y)
- Is within range (x > y1 AND x < y2)
- Is outside range (x < y1 AND x > y2)
**Classic condition**
Checks if any time series data matches the alert condition.
**Note**:
Classic condition expression queries always produce one alert instance only, no matter how many time series meet the condition.
Classic conditions exist mainly for compatibility reasons and should be avoided if possible.
## Alert condition
An alert condition is the query or expression that determines whether the alert will fire or not depending on the value it yields. There can be only one condition which will determine the triggering of the alert.
After you have defined your queries and/or expressions, choose one of them as the alert rule condition.
When the queried data satisfies the defined condition, Grafana triggers the associated alert, which can be configured to send notifications through various channels like email, Slack, or PagerDuty. The notifications inform you about the condition being met, allowing you to take appropriate actions or investigate the underlying issue.
By default, the last expression added is used as the alert condition.
description: Introduction to alert rule evaluation
keywords:
- grafana
- alerting
- evaluation
labels:
products:
- cloud
- enterprise
- oss
title: Alert rule evaluation
weight: 106
---
# Alert rule evaluation
Use alert rule evaluation to determine how frequently an alert rule should be evaluated and how quickly it should change its state.
To do this, you need to make sure that your alert rule is in the right evaluation group and set a pending period time that works best for your use case.
## Evaluation group
Every alert rule is part of an evaluation group. Each evaluation group contains an evaluation interval that determines how frequently the alert rule is checked. Alert rules within the same group are evaluated one after the other, while alert rules in different groups can be evaluated simultaneously.
This feature is especially useful for Prometheus/Mimir rules when you want to ensure that recording rules are evaluated before any alert rules.
**Note:**
Evaluation groups and alerts grouping in notification policies are two separate things. Grouping in notification policies allows multiple alerts sharing the same labels to be sent in the same time message.
## Pending period
By setting a pending period, you can avoid unnecessary alerts for temporary problems.
In the pending period, you select the period in which an alert rule can be in breach of the condition until it fires.
**Example**
Imagine you have an alert rule evaluation interval set at every 30 seconds and the pending period to 90 seconds.
If the alert rule has a condition that needs to be in breach for a certain amount of time before it takes action, then its state changes as follows:
- When the condition is first breached, the rule goes into a "pending" state.
- The rule stays in the "pending" state until the condition has been broken for the required amount of time - pending period.
- Once the required time has passed, the rule goes into a "firing" state.
- If the condition is no longer broken during the pending period, the rule goes back to its normal state.
**Note:**
If you want to skip the pending state, you can simply set the pending period to 0. This effectively skips the pending period and your alert rule will start firing as soon as the condition is breached.
When an alert rule fires, alert instances are produced, which are then sent to the Alertmanager.
@@ -27,7 +33,9 @@ An alert rule can be in either of the following states:
| **Pending** | At least one time series returned by the evaluation engine is `Pending`. |
| **Firing** | At least one time series returned by the evaluation engine is `Firing`. |
> **Note:** Alerts will transition first to `pending` and then `firing`, thus it will take at least two evaluation cycles before an alert is fired.
{{% admonition type="note" %}}
Alerts will transition first to `pending` and then `firing`, thus it will take at least two evaluation cycles before an alert is fired.
{{% /admonition %}}
## Alert instance state
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.