Compare commits

...

120 Commits

Author SHA1 Message Date
Kevin Minehart
0cfa76b22d update whatsnew 2023-08-30 14:22:26 -05:00
grafana-delivery-bot[bot]
2396cabd8f [v10.1.x] Docker: Add musl as a ubuntu dependency (#74133)
Docker: Add musl as a ubuntu dependency (#74127)

Add musl as a ubuntu dependency

(cherry picked from commit 364ca3daa0)

Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
2023-08-30 12:46:35 -05:00
grafana-delivery-bot[bot]
473f1808b4 [v10.1.x] LDAP: Fix user disabling (#74109)
* [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>
2023-08-30 16:51:25 +02:00
ismail simsek
f99cb27617 [v10.1.x] InfluxDB: Fix sending retention policy with the backend request (#74103)
InfluxDB: Fix sending retention policy with the backend request (#72763)

* Add retention policy to the request

* refactor

* refactor influxql query flow

* fix healthcheck

* organize imports

* handle queries separately

* fix tests

* update bench test

(cherry picked from commit 29ea0886e3)
2023-08-30 09:20:40 -04:00
grafana-delivery-bot[bot]
0838d9c4f8 [v10.1.x] Add LICENSE file to generated Docker images (#74102)
Add LICENSE file to generated Docker images (#74082)

(cherry picked from commit 6277c04caf)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-08-30 13:40:32 +02:00
Dimitris Sotirakis
5a7b58bbe0 [v10.1.x] CI: Mount /root/.docker/ dir in authenticate-gcr step (#74079)
CI: Mount /root/.docker/ dir in authenticate-gcr step  (#73977)

Mount /root/.docker/ dir

(cherry picked from commit eea4adea29)

# Conflicts:
#	.drone.yml
2023-08-30 11:12:59 +03:00
grafana-delivery-bot[bot]
03ae4c7328 [v10.1.x] Alerting: Limit redis pool size to 5 and make configurable (#74059)
Alerting: Limit redis pool size to 5 and make configurable (#74057)

* Limit redis pool size to 5 and expose it in config ini

* Coerce negative pool sizes to the default

(cherry picked from commit dfba94e052)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2023-08-29 15:19:06 -05:00
grafana-delivery-bot[bot]
d5a56d039a [v10.1.x] Docs: Include Cloud support with RBAC API (#74056)
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>
2023-08-29 20:27:39 +01:00
grafana-delivery-bot[bot]
8e50d22792 [v10.1.x] Auth: Update okta docs - use_pkce = true by default. #73754 (#74049)
Auth: Update okta docs - `use_pkce = true` by default. #73754 (#73756)

Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
(cherry picked from commit 20dd8a4f46)

Co-authored-by: arukiidou <arukiidou@yahoo.co.jp>
2023-08-29 11:43:29 -05:00
grafana-delivery-bot[bot]
d017d004a6 [v10.1.x] Update _index.md - fix a typo (#74038)
Update _index.md - fix a typo (#63847)

Update _index.md

Fix a typo

(cherry picked from commit 0ca5ecbe7f)

Co-authored-by: yeya <yeya@users.noreply.github.com>
2023-08-29 17:15:55 +02:00
Guilherme Caulada
a80c7384e6 [v10.1.x] CI: Use new release eng managed grafanacom api key (#74035)
CI: Use new release eng managed grafanacom api key (#74017)

Use new release eng managed grafanacom api key

(cherry picked from commit ab7e655737)
2023-08-29 12:07:50 -03:00
Sven Grossmann
d1e9a733d9 [v10.1.x] Loki: Remove distinct operation (#74003)
Loki: Remove `distinct` operation (#73938)

* remove distinct

* trigger ci

* update yarn.lock

* fix import

(cherry picked from commit 07eb4b1b90)
2023-08-29 16:29:12 +02:00
grafana-delivery-bot[bot]
82d44b41be [v10.1.x] Secrets: Add user_auth.o_auth_id_token column to migrator (#73931)
Secrets: Add user_auth.o_auth_id_token column to migrator (#72239)

(cherry picked from commit 81a639bd1b)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2023-08-29 15:53:58 +02:00
grafana-delivery-bot[bot]
c75a5b620c [v10.1.x] docs: update app plugin guidance (#74009)
docs: update app plugin guidance (#74006)

Original text focusses on creation in a management topic. This change makes it more relevant to an administrator who is installing plugins.

(cherry picked from commit 0884f40c8d)

Co-authored-by: David Harris <david.harris@grafana.com>
2023-08-29 14:27:59 +01:00
grafana-delivery-bot[bot]
e9aa578e28 [v10.1.x] Alerting: Fix Recording Rule QueryEditor builder view (#73621)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Fix Recording Rule QueryEditor builder view (#73348)
2023-08-29 11:30:28 +02:00
grafana-delivery-bot[bot]
51ec4a89f6 [v10.1.x] Transforms: Catch errors while running transforms (#73527)
Transforms: Catch errors while running transforms (#73451)

(cherry picked from commit e605c686f8)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-08-28 14:16:11 -07:00
grafana-delivery-bot[bot]
be2683a0d0 [v10.1.x] Correct path for repo on RHEL based distros (#73940)
Correct path for repo on RHEL based distros (#73840)

(cherry picked from commit 116337f474)

Co-authored-by: Samuel Roberts <sproberts92@users.noreply.github.com>
2023-08-28 09:33:07 -05:00
grafana-delivery-bot[bot]
0ddf9aba9d [v10.1.x] Plugins: Dynamic angular patterns: Add random offset to GCOM API calls, handle HTTP errors (#73897)
* Plugins: Dynamic angular patterns: Add random offset to GCOM API calls, handle HTTP errors (#73494)

* Plugins: Dynamic angular patterns: Return error for != 2xx status code

* Add test for status code check

* Plugins: Dynamic angular patterns: Add random skew to periocic GCOM api calls

* Add test for random skew

* Changed randomSkew signature, ensure it is always positive

(cherry picked from commit 4ef98449ff)

* trigger

---------

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
2023-08-28 15:40:14 +02:00
grafana-delivery-bot[bot]
4233541394 [v10.1.x] Elasticsearch: Fix respecting of precision in geo hash grid (#73933)
Elasticsearch: Fix respecting of precision in geo hash grid (#73917)

* Elasticsearch: Fix ignoring precision when running queries trough backend

* Unify default value

* Revert "Unify default value"

This reverts commit d8e1d207a2.

* Update test

(cherry picked from commit 6742be0c6d)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2023-08-28 16:40:04 +03:00
grafana-delivery-bot[bot]
bfab6ccb58 [v10.1.x] Dashboard: Fix Variable Dropdown to Enforce Minimum One Selection when 'All' Option is Configured (#73927)
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Fix Variable Dropdown to Enforce Minimum One Selection when 'All' Option is Configured (#69839)
2023-08-28 15:56:03 +03:00
Dimitris Sotirakis
821157800b [v10.1.x] Security: Authenticate to GCR for trivy scans (#73923)
Security: Authenticate to GCR for trivy scans (#72658)

* Authenticate to GCR for trivy scans

# Conflicts:
#	.drone.yml

* verify-starlark

* Change secret

# Conflicts:
#	.drone.yml

(cherry picked from commit e100fc927e)

# Conflicts:
#	.drone.yml
2023-08-28 15:52:26 +03:00
grafana-delivery-bot[bot]
b124a2de3f [v10.1.x] AuthProxy: Fix user retrieval through cache (#73824)
AuthProxy: Fix user retrieval through cache (#73802)

* AuthProxy: Change auth proxy sync cache key

(cherry picked from commit 5d14b6ba19)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2023-08-28 13:24:12 +03:00
grafana-delivery-bot[bot]
75923bf476 [v10.1.x] Chore: Fix Random Walk scenario for Grafana DS (#73894)
Chore: Fix Random Walk scenario for Grafana DS (#73889)

(cherry picked from commit aa0d4b3e45)

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2023-08-28 13:20:56 +03:00
grafana-delivery-bot[bot]
0dd0b06018 [v10.1.x] Pa11y: Temporarily increase threshold (#73904)
Pa11y: Temporarily increase threshold (#73817)

Update pa11y threshold to unblock prs

(cherry picked from commit 61835f0bec)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2023-08-28 13:05:57 +03:00
grafana-delivery-bot[bot]
22b2757a6a [v10.1.x] CI: Run gen-cue on bump-version (#73887)
CI: Run gen-cue on bump-version (#73885)

(cherry picked from commit 372f32963d)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-08-28 10:35:40 +02:00
grafana-delivery-bot[bot]
e106f57648 [v10.1.x] access control api: Correction of typo in list your permissions endpoint (#73848)
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>
2023-08-25 16:56:23 +02:00
grafana-delivery-bot[bot]
acc52e0368 [v10.1.x] Docs: change headings on 2 data source pages for SEO (#73837)
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>
2023-08-25 08:53:38 -05:00
grafana-delivery-bot[bot]
35bcc368cf [v10.1.x] Alerting: Fix auto-completion snippets for KV properties (#73741) 2023-08-24 12:31:03 +03:00
grafana-delivery-bot[bot]
c77396b271 [v10.1.x] docs: fix okta oauth endpoints (#73673)
docs: fix okta oauth endpoints (#73191)

* fix okta oauth endpoints

* Fixed table borders

(cherry picked from commit e81f6a7b0b)

Co-authored-by: Tristan Otterpohl <82106086+Otterpohl@users.noreply.github.com>
2023-08-24 10:47:56 +02:00
grafana-delivery-bot[bot]
599d1d9af3 Release: Bump version to 10.1.1 (#73721)
* "Release: Updated versions in package to 10.1.1"

* Update version to 10.1.1 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>
2023-08-24 07:22:33 +01:00
grafana-delivery-bot[bot]
a4e2fa1997 [v10.1.x] Geomap: Update docs for 10.1 (#73727)
Geomap: Update docs for 10.1 (#72234)

(cherry picked from commit 3a84db0012)

Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
2023-08-23 21:19:03 -04:00
grafana-delivery-bot[bot]
fac7003550 [v10.1.x] Transformations Documentation: Add Images for Disable and Delete (#73719)
Transformations Documentation: Add Images for Disable and Delete (#73452)

(cherry picked from commit 86a9cf3306)

Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
2023-08-23 16:20:58 -05:00
Guilherme Caulada
ebfedaa362 [v10.1.x] Changelog: Updated changelog for 10.1.0 (#73717)
Changelog: Updated changelog for 10.1.0 (#73714)

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

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2023-08-23 17:59:35 -03:00
grafana-delivery-bot[bot]
edecb9bbf9 [v10.1.x] Docs: Introduction topic title update (#73706)
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>
2023-08-23 13:11:46 -05:00
grafana-delivery-bot[bot]
b820709a76 [v10.1.x] Alerting: Fix incorrect timing meta information for policy (#73695)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Fix incorrect timing meta information for policy (#73675)
2023-08-23 17:28:13 +02:00
grafana-delivery-bot[bot]
94f8af7568 [v10.1.x] Kinds: Reconcile verify-kinds.go with kind-registry changes (#73694)
Kinds: Reconcile verify-kinds.go with kind-registry changes (#73689)

* Kinds: Reconcile verify-kinds.go with kind-registry changes

* Remove handwritten value specific for manual test

* Update grafana/kindsys dep

* Revert "Update grafana/kindsys dep"

This reverts commit e437e1879e.

* Fix generated code

(cherry picked from commit fb0165ab87)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2023-08-23 17:06:36 +02:00
grafana-delivery-bot[bot]
b19c2fca2f [v10.1.x] Alerting docs: fix duplicate titles (#73683)
Alerting docs: fix duplicate titles (#73680)

* Alerting docs: fix duplicate titles

* makes titles match

(cherry picked from commit 356d8872bd)

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2023-08-23 14:38:01 +02:00
grafana-delivery-bot[bot]
066ec450c4 [v10.1.x] Doc: Update index.md - update Keycloak redirect URI (#73668)
Doc: Update index.md - update Keycloak redirect URI (#72971)

(cherry picked from commit 2543765978)

Co-authored-by: Jan Garaj <info@monitoringartist.com>
2023-08-23 12:53:01 +02:00
grafana-delivery-bot[bot]
597fc8d752 [v10.1.x] Connections: Redirect from outdated URLs (#73571)
Connections: Redirect from outdated URLs (#73278)

Connections: redirect from outdated URLs
(cherry picked from commit 88cdc38afa)

Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
2023-08-23 11:14:20 +02:00
grafana-delivery-bot[bot]
6bb132672d [v10.1.x] Codeowners: Add myself (Miki) as codeowner of connections and datasources (#73631)
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>
2023-08-23 10:29:48 +02:00
Horst Gutmann
10c6036ed1 [v10.1.x] CI: Update secrets for publishing steps (#73660)
CI: Update secrets for publishing steps (#73658)

Update secrets

(cherry picked from commit de118a3736)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-08-23 11:26:23 +03:00
grafana-delivery-bot[bot]
6d10e72adb [v10.1.x] Alerting: Add new Recording Rule button when the list is empty (#73638)
Alerting: Add new Recording Rule button when the list is empty (#73502)

* Add button to create RR when there are no alerts

* Remove unneeded import

* Change cards to be shown vertically

(cherry picked from commit 27fb922f9b)

Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
2023-08-22 16:15:08 -03:00
grafana-delivery-bot[bot]
28cf0f72ce [v10.1.x] Docs: Add hide_edition config to the docs (#73640) 2023-08-22 17:14:42 +01:00
grafana-delivery-bot[bot]
1bff294c58 [v10.1.x] Drawer: Clicking a Select arrow within a Drawer no longer causes it to close (#73634)
Drawer: Clicking a `Select` arrow within a `Drawer` no longer causes it to close (#73557)

ensure drawer doesn't close when clicking dropdown arrow

(cherry picked from commit 1f49d480a8)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-08-22 18:30:13 +03:00
grafana-delivery-bot[bot]
20aefeb337 [v10.1.x] Docs: Update OAuth entry to match What's new (#73629)
Docs: Update OAuth entry to match What's new (#73512)

* Aligned oauth entry with What's new version

* Fixed menuTitle spelling in front matter

(cherry picked from commit f10f1874e6)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-08-22 10:25:50 -04:00
grafana-delivery-bot[bot]
e3337e8c8f [v10.1.x] Logs: Fix log samples not present with empty first frame (#73622)
Logs: Fix log samples not present with empty first frame (#73612)

* fix log samples not present with empty first frame

* also test with empty frames

* rename test file

* remove import

(cherry picked from commit 997d21f6e5)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-08-22 16:30:42 +03:00
Horst Gutmann
3397f70d5a [v10.1.x] CI: Different secret for verification and do not ignore build failures (#73615)
CI: Different secret for verification and do not ignore build failures (#73613)

(cherry picked from commit 8fc3be6b5a)
2023-08-22 16:23:59 +03:00
grafana-delivery-bot[bot]
15260fcdd7 [v10.1.x] disable a feature toggle that is on by default (#73579)
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>
2023-08-21 12:33:10 -05:00
grafana-delivery-bot[bot]
cd4e1d1906 [v10.1.x] Query splitting: combine nanos attribute con time fields (#73564)
Query splitting: combine nanos attribute con time fields (#73505)

(cherry picked from commit f7355668e7)

Co-authored-by: Matias Chomicki <matyax@gmail.com>
2023-08-21 15:27:47 +03:00
grafana-delivery-bot[bot]
01093b6cdf [v10.1.x] docs: update cloudflare and plotly angular guide (#73556)
docs: update cloudflare and plotly angular guide (#73554)

* docs: update cloudflare and plotly angular guide

* fix typo

(cherry picked from commit 56f4def666)

Co-authored-by: David Harris <david.harris@grafana.com>
2023-08-21 11:16:01 +01:00
grafana-delivery-bot[bot]
663bfe762a [v10.1.x] Whitelabeling: Add a config option to hide the Grafana edition from the footer (#73491) 2023-08-21 10:50:43 +01:00
grafana-delivery-bot[bot]
1706797e78 [v10.1.x] Docs: Fix URL encoding @ Keycloak logout example (#73551)
Docs: Fix URL encoding @ Keycloak logout example (#71970)

(cherry picked from commit 5e50580d06)

Co-authored-by: Bruno Melo <bsilva.melo@gmail.com>
2023-08-21 10:00:35 +01:00
grafana-delivery-bot[bot]
4ff6449d7c [v10.1.x] Update make docs procedure (#73547)
Update `make docs` procedure (#73540)

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-21 09:17:44 +01:00
grafana-delivery-bot[bot]
201b9fc95f [v10.1.x] CI: Improve error handling in gcloud copy operations (#73539)
CI: Improve error handling in gcloud copy operations (#73474)

(cherry picked from commit 220ea869be)

Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
2023-08-21 09:21:46 +03:00
grafana-delivery-bot[bot]
991586d7a7 [v10.1.x] Sync-mirror GHA updates (#73510)
Sync-mirror GHA updates (#73504)

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

(cherry picked from commit 4047cdb213)

Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>
2023-08-18 12:28:39 -05:00
grafana-delivery-bot[bot]
5f36689f1a [v10.1.x] Docs: update dataplane portal links (#73497)
Docs: update dataplane portal links (#73481)

update dataplane portal links

(cherry picked from commit 23ae1127a7)

Co-authored-by: Sriram <153843+yesoreyeram@users.noreply.github.com>
2023-08-18 16:18:38 +01:00
grafana-delivery-bot[bot]
f0d9e5545a [v10.1.x] Docs: Add Grafana Cloud to PDF sharing (#73496)
Docs: Add Grafana Cloud to PDF sharing (#73492)

Added Grafana Cloud to PDF sharing

(cherry picked from commit ac98f469a4)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-08-18 11:12:21 -04:00
grafana-delivery-bot[bot]
e9d5e4460e [v10.1.x] Dashboard: Fix version restore (#73482)
Dashboard: Fix version restore (#72866)

* Dashboard: Fix version restore

* Update comment

(cherry picked from commit dd21584961)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2023-08-18 15:34:42 +03:00
grafana-delivery-bot[bot]
7e6432e64a [v10.1.x] Logs: Fix permalinks not scrolling into view (#73477)
Logs: Fix permalinks not scrolling into view (#73464)

* fix log line scrolling

* add scrolling tests

* fix `LogRow` tests

(cherry picked from commit 5e61b54fa3)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-08-18 14:05:01 +03:00
Horst Gutmann
182837279b [v10.1.x] CI: Move npm token to Vault (#73455)
CI: Move npm token to Vault (#73407)

(cherry picked from commit c86a73c794)
2023-08-18 08:59:18 +03:00
grafana-delivery-bot[bot]
af5bfce16b [v10.1.x] Docs: Update dashboards api create/update (#73420)
Docs: Update dashboards api create/update (#73345)

(cherry picked from commit bb3a2d31d7)

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2023-08-17 12:36:07 -05:00
grafana-delivery-bot[bot]
4246b39bb2 [v10.1.x] Docs: Data source picker everywhere updates (v10.1) (#73411)
Docs: Data source picker everywhere updates (v10.1) (#73347)

* Added text about the updated data source picker

* Reformatted and reworded new language and removed from Correlations

(cherry picked from commit 5988da1aa8)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-08-17 11:53:23 -04:00
grafana-delivery-bot[bot]
484ce1ef46 [v10.1.x] Update make docs procedure (#73389)
Update `make docs` procedure (#73359)

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-17 15:48:55 +01:00
grafana-delivery-bot[bot]
8ce593efdc [v10.1.x] SqlDataSources: Update metricFindQuery to pass on scopedVars to templateSrv (#73398)
SqlDataSources: Update metricFindQuery to pass on scopedVars to templateSrv (#73333)

(cherry picked from commit 3245e25273)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-08-17 16:07:10 +03:00
grafana-delivery-bot[bot]
c868461105 [v10.1.x] Rendering: Fix dashboard screenshot (#73361)
Rendering: Fix dashboard screenshot (#73190)

Rendering: fix dashboard screenshot
(cherry picked from commit 24978eff61)

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2023-08-17 14:37:02 +02:00
grafana-delivery-bot[bot]
f94ef93585 [v10.1.x] Log row: split row-highlighting booleans in two (#73334)
Log row: split row-highlighting booleans in two (#73330)

(cherry picked from commit 0fe53fbd1d)

Co-authored-by: Matias Chomicki <matyax@gmail.com>
2023-08-17 13:13:36 +02:00
grafana-delivery-bot[bot]
4d90697bf9 [v10.1.x] ClientTokenRotation: Don't rotate session cookie for authproxy (#73381)
ClientTokenRotation: Don't rotate session cookie for authproxy (#72496)

* ClientTokenRotation: Don't rotate session cookie for authproxy

* Account for config option auth.proxy enable_login_token

* Limit amount of changes on devenv

* Fix tests by moving authenticatedBy up

* Uncomment nginx conf

(cherry picked from commit 4c7b97cdb0)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-08-17 12:46:01 +02:00
Dimitris Sotirakis
186b3263a8 [v10.1.x] CI: Update grabpl to v3.0.41 (#73379)
CI: Update `grabpl` to `v3.0.41` (#73373)

Update grabpl

(cherry picked from commit 3463dc8e48)

# Conflicts:
#	.drone.yml
2023-08-17 13:08:51 +03:00
grafana-delivery-bot[bot]
f3b5bb1bda [v10.1.x] docs: update signature level guidance (#73371)
docs: update signature level guidance (#73368)

docs: update signature level guidances
(cherry picked from commit ccbd31fe1f)

Co-authored-by: David Harris <david.harris@grafana.com>
2023-08-17 10:00:32 +01:00
grafana-delivery-bot[bot]
c6a309f2ad [v10.1.x] Grafana versioning: Remove pre suffix from Grafana version (#73367)
Grafana versioning: Remove `pre` suffix from Grafana version (#73357)

* Remove pre suffix from version

* Fix tests

(cherry picked from commit 0aba319ea0)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2023-08-17 11:24:46 +03:00
grafana-delivery-bot[bot]
0674b66255 [v10.1.x] Docs: Fixed Grafana Fundamentals tutorial to match updated UI (#73342)
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>
2023-08-16 15:15:45 -04:00
grafana-delivery-bot[bot]
cf168cd6e6 [v10.1.x] Canvas: Fix data links (#73337) 2023-08-16 19:43:40 +03:00
grafana-delivery-bot[bot]
fc743324cb [v10.1.x] Loki: Fix validation of step values to also allow e.g. ms values (#73335)
Loki: Fix validation of `step` values to also allow e.g. `ms` values (#73270)

* use go duration validation

* add `isValidGrafanaDuration`

* use `isValidGrafanaDuration`

* improve jsdoc

(cherry picked from commit c006ea18fb)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-08-16 18:05:38 +02:00
grafana-delivery-bot[bot]
47ff0a9eb1 [v10.1.x] DataSourceProxy: Fix url validation error handling (#73322)
* DataSourceProxy: Fix url validation error handling (#73087)

* DataSourceProxy: Fix url validation error handling

* DataSourceProxy: Add unit test for proxyDatasourceRequest

* DataSourceProxy: Fix lint error

(cherry picked from commit 8ec4c1bdc8)

* fix test

* fix test

---------

Co-authored-by: Ricardo Christmann <80476005+ricci2511@users.noreply.github.com>
Co-authored-by: Will Browne <will.browne@grafana.com>
2023-08-16 18:35:28 +03:00
grafana-delivery-bot[bot]
949d648a97 [v10.1.x] Docs: correct SAML docs (#73286)
Docs: correct SAML docs (#73281)

Correct SAML docs

(cherry picked from commit 2848be9035)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-08-15 16:59:18 +02:00
grafana-delivery-bot[bot]
785c7fe801 [v10.1.x] docs: What’s New & Upgrade Guide 10.1 (#73282)
docs: What’s New & Upgrade Guide 10.1 (#70636)

* added what's new 10.1

* created new upgrade guide

* updated index file to 10.1

* updated whats new index file

* Dataviz: add disconnect values whats new content

* Docs: Add Configure refresh token handling separately for OAuth providers to what's new 10.1 (#71648)

* Add what s new section for configuring refresh token handling

---------

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

* Whats new: Add step editor and copy link  (#71964)

* Add step editor and copu link to the whats new

* Update docs/sources/whatsnew/whats-new-in-v10-1.md

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

* Update docs/sources/whatsnew/whats-new-in-v10-1.md

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

* Update docs/sources/whatsnew/whats-new-in-v10-1.md

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>

---------

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>

* Add flamegraph section

* Added TraceQL response streaming section

* Updated tempo-streaming video link

* What's new: Add Loki, Elasticsearch, and Log changes (#72101)

* What's new: Add Loki, Elasticsearch, and Log changes

* Remove Lucene parser mention

* added contributor name to each entry

* Alerting: adds whats new entries and structure

* Elasticsearch: logs sample in explore

* Add span filtering is GA to whats new doc

* Transformations redesign and metrics explorer

* ran prettier

* What's new 10.1: Recategorize contents and add missing data (#72199)

What's new: recategorize content and add missing data

* Revert whats new refresh token handling (#72191)

Revert refresh token handling

* docs: What’s New & Upgrade Guide 10.1 AuthNZ (#72000)

* add what's new authnz

* Update docs/sources/upgrade-guide/upgrade-v10.1/index.md

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>

* Alerting: screenshots and updates

* Alerting: delete couple of entries

* Docs: Add Visualizations and Widgets Split to what's new 10.1 (#72009)

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

* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1 (#72221)

* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1

* Add guidance for Cloud users to enable the feature

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

---------

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

* Alerting: adds notification policy entry

* Add Plugins/Angular deprecation sections to What's new 10.1

* Add Plugins/ds uid deprecation section to What's new 10.1

* Alerting: adds label color entry

* Adds whats new features for AWS Datasources

* Update what's new 10.1 angular deprecation section

* Docs: what's new for preventing manual role updates (#72279)

* what's new for disabling manual role updates

* add a reference to the feature toggle

* fix spelling

* Apply suggestions from code review

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* PR feedback

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* wording fixes

* whatsnew-10.1.0: add logs-context info (#72240)

* whatsnew-10.1.0: add logs-context info

* explain what log context is

* improved description

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

* better phrasing

---------

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

* Subfolders: folder picker

* Influxdb backend mode

* Dataviz: heatmap datalink support

* DataViz: geomap new beta network layer

* Dataviz: update geomap network layer image

* Dataviz: update availability wording to public preview from experimental for geomap network layer

* Docs: Add Activate draft reports section to what's new in 10.1

* Docs: Add format time transformation to what's new

* Docs: Adjust format time transformation language

* Explore: Add what's new about panel plugins (#72338)

* Add what's new about panel plugins

* Update docs/sources/whatsnew/whats-new-in-v10-1.md

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

---------

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

* add tabular outer join to whats new

* Update traceql streaming section

* Added new tempo search section

* Update traceql streaming video name

* docs: what's new 10.1.0, easier to use elastic query editor (#72513)

* docs: elasticsearch: new mode selector

* improved text

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

---------

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

* mitch edits

* Added product labels

* Made general copy edits

* Removed editing notes

* Fixed broken relref

* Fixed typo and added contributor name

* Added contributor name

* Made minor copy edits

* Update format time transformation docs

* A small edit to the role list

* Added missing information and committed copy edits

* Move Reports item to under Dashboards & visualizations

* Changed heading level of Activate draft reports

* Fixed wording of Choose which fields to display in log line entry

* Made edits to Logs improved performance entry

* Added availability for Transformations redesign

* Added availability for Join by fields

* Made final copy edits

* Removed Loki query splitting

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: André Pereira <adrapereira@gmail.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Gareth Dawson <gwdawson.work@gmail.com>
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
Co-authored-by: catherineymgui <catherine.gui@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Zsofia <zsofia.komaromi@gmail.com>
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Robert Horvath <robert.horvath@grafana.com>
Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 3432d3b721)

Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
2023-08-15 09:33:49 -04:00
grafana-delivery-bot[bot]
f3e3d89478 [v10.1.x] Dashboard: Fix repeated row panel placement with larger number of rows (#73279)
Dashboard: Fix repeated row panel placement with larger number of rows (#72011)

Closes #69833

(cherry picked from commit cd6ed02256)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2023-08-15 13:41:15 +01:00
grafana-delivery-bot[bot]
243a50ffd3 [v10.1.x] Logs: Fix scrolling with exploreScrollableLogsContainer feature (#73276)
Logs: Fix scrolling with `exploreScrollableLogsContainer` feature (#73272)

fix scrolling with `exploreScrollableLogsContainer`

(cherry picked from commit 98b3878231)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-08-15 14:32:00 +03:00
grafana-delivery-bot[bot]
b8556eab5f [v10.1.x] CodeEditor: Correctly fires onChange handler (#73261)
CodeEditor: Correctly fires onChange handler (#73030)

move onChange outside onEditorDidMount condition

(cherry picked from commit 57d8997b86)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-08-15 11:32:51 +03:00
grafana-delivery-bot[bot]
e56b01975c [v10.1.x] Drawer: Fix scrolling drawer content on Safari (#73229)
Drawer: Fix scrolling drawer content on Safari (#73080)

Add min-height to allow scroll drawer content on Safari

(cherry picked from commit 140624603f)

Co-authored-by: Alex Simonok <sashasimonok@gmail.com>
2023-08-14 15:13:09 +03:00
grafana-delivery-bot[bot]
24d0b54bb9 [v10.1.x] Alerting: Remove dump wrapper for yaml config (#73215)
Alerting: Remove dump wrapper for yaml config (#73169)

Remove dump wrapper for yaml config

(cherry picked from commit 6c007641e0)

Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
2023-08-13 16:53:29 +02:00
grafana-delivery-bot[bot]
0fdb3485f6 [v10.1.x] Slug: Combine various slugify fixes for special character handling (#73173)
Slug: Combine various slugify fixes for special character handling (#73164)

* combine various slugify fixes for special character handling

* a couple more test cases

* update more tests

* goimports

(cherry picked from commit dd97038b00)

Co-authored-by: Dan Cech <dcech@grafana.com>
2023-08-11 13:13:29 -04:00
grafana-delivery-bot[bot]
c07b4fb734 [v10.1.x] Update index.md (#73200)
Update index.md (#73183)

* Update index.md

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

---------

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

Co-authored-by: Kevin Burke <kevin.burke@segment.com>
2023-08-11 10:54:57 -05:00
grafana-delivery-bot[bot]
3ddb715dbe [v10.1.x] docs: remove Moogsoft from angular list, update version for helm (#73206)
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>
2023-08-11 16:43:45 +01:00
grafana-delivery-bot[bot]
d9836d0a35 [v10.1.x] AzureMonitor: Allow serviceTags and tags to be empty for trace results (#73197)
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>
2023-08-11 16:02:32 +01:00
grafana-delivery-bot[bot]
14b2411c73 [v10.1.x] docs: remove strava from angular plugin list (#73195)
docs: remove strava from angular plugin list (#73192)

(cherry picked from commit a70d2d39f6)

Co-authored-by: David Harris <david.harris@grafana.com>
2023-08-11 13:24:51 +01:00
grafana-delivery-bot[bot]
53d3d773ee [v10.1.x] Alerting: Always invalidate the AM config after mutation (#73189)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-08-11 08:52:04 +02:00
grafana-delivery-bot[bot]
eebae57c8a [v10.1.x] Update [analytics] section to include the ability to set to false (#73175)
Update [analytics] section to include the ability to set to false (#71473)

* Update [analytics] section to include the ability to set to false

In the follow section:

https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#analytics

Added a line for 'enabled' under the [analytics] section to include the ability to set to false as this is now a togglable feature.

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

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

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit ff1fdac675)

Co-authored-by: Milton Prado <89411595+Ptoricanmilt@users.noreply.github.com>
2023-08-10 15:42:50 -05:00
grafana-delivery-bot[bot]
212e5a837c [v10.1.x] Docs: Update to include keycloak link in oauth docs (#73172)
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>
2023-08-10 15:22:44 -05:00
Jo
43a8b2a8c9 [v10.1.x] Auth: Add authed device tagging (#73156)
* Auth: Rename Sessions to Devices in counting (#72432)

* rename session to device

* rename session to device

* Auth: Add authed device tagging (#72442)

* add authed device tagging

* fix config

* implement feedback

* implement feedback

* add reverse untag behavior

* remove duplicate stat

* Update pkg/services/anonymous/anonimpl/impl.go

(cherry picked from commit 3353b1a8aa)
2023-08-10 17:29:13 +02:00
grafana-delivery-bot[bot]
f600fa9465 [v10.1.x] Alerting: Add "no-rules" to redirect to rule viewer (#73141)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-08-10 10:53:58 +02:00
Konrad Lalik
3203b2ffd6 [v10.1.x] Alerting: Optimize rule details page data fetching (#73139) 2023-08-10 10:32:35 +02:00
grafana-delivery-bot[bot]
4c3f3e28de [v10.1.x] Docs: Fix broken links to create-plugin docs (#73130)
Docs: Fix broken links to create-plugin docs (#72965)

* Fix broken links to create-plugin docs

* Typo fix

* Fix additional broken link

* Fix additional links

(cherry picked from commit eb6e19c7af)

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2023-08-09 15:07:37 -05:00
grafana-delivery-bot[bot]
6e850b6f30 [v10.1.x] Update _index.md (#73119)
Update _index.md (#72562)

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

Configure HA: Added ha_peer_Timeout global config in the unified alerting

(cherry picked from commit cda78c6fe8)

Co-authored-by: arunkg2787 <131352769+arunkg2787@users.noreply.github.com>
2023-08-09 18:40:51 +02:00
grafana-delivery-bot[bot]
d5c79b6c06 [v10.1.x] Logs: Disable query splitting due to conflicts with transformations (#73097)
Logs: Disable query splitting due to conflicts with transformations (#73086)

* disable query splitting for now

* change stage of `lokiQuerySplitting`

(cherry picked from commit 1343c74362)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-08-09 14:00:07 +03:00
grafana-delivery-bot[bot]
4cd3909b63 [v10.1.x] Auth: prevent auto_login redirect if user is already authenticated (#73081)
Auth: prevent auto_login redirect if user is already authenticated (#72477)

* Auth: prevent auto_login redirect if user is already authenticated

Before attempting an auto-login for OAuth, verifies if current context has already been
authenticated.

Fixes: #72476

Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
(cherry picked from commit d9c232b331)

Co-authored-by: Maksym Revutskyi <maksym.revutskyi@gmail.com>
2023-08-09 10:44:02 +02:00
grafana-delivery-bot[bot]
064f3f4b45 [v10.1.x] EditDatasource: Fix navtree when dataSourcePageHeader is on (#73024)
EditDatasource: Fix navtree when `dataSourcePageHeader` is on (#72827)

use useDataSourceSettingsNav from connections in DataSourceTabPage

(cherry picked from commit 1646b901af)

Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
2023-08-09 10:38:26 +02:00
grafana-delivery-bot[bot]
a103aaeeca [v10.1.x] Add a warning in the documentation (#73073)
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>
2023-08-08 14:19:35 -07:00
grafana-delivery-bot[bot]
13e848b0c3 [v10.1.x] Alerting: Optimize external Loki queries (#73050)
Alerting: Optimize external Loki queries (#73014)

(cherry picked from commit 2c6cf66741)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2023-08-08 15:42:26 +02:00
grafana-delivery-bot[bot]
91770cd97c [v10.1.x] InfluxDB: Fix handling flux response with no time and value column (#73047)
InfluxDB: Fix handling flux response with no time and value column (#72833)

* Upgrade the influxdb-client-go version

* Handle flux response with no time and value column

(cherry picked from commit 1ac9e7eaab)

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2023-08-08 16:13:36 +03:00
grafana-delivery-bot[bot]
d0b149bdad [v10.1.x] Logs: Fix displaying the wrong field as body (#73037)
Logs: Fix displaying the wrong field as body (#73025)

* fix displaying the wrong field as body

* fix test

* fix `getFirstFieldOfType` with non-present type

(cherry picked from commit 533fae4c60)

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-08-08 12:30:21 +02:00
grafana-delivery-bot[bot]
d8e8b6246c [v10.1.x] Docs: Update screenshots for generating an access token for signing a plugin (#73035)
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>
2023-08-08 11:30:37 +02:00
grafana-delivery-bot[bot]
deaf8b7b4f [v10.1.x] Alerting: Fix "see graph button" for cloud rules (#73029)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Fix "see graph button" for cloud rules (#72980)
2023-08-08 11:19:10 +02:00
Giuseppe Guerra
90bb0eb24c [v10.1.x] Chore: Bump github.com/grafana/grafana-plugin-sdk-go to v0.172.0 (#73028)
Chore: Bump github.com/grafana/grafana-plugin-sdk-go to v0.172.0
2023-08-08 10:07:27 +02:00
grafana-delivery-bot[bot]
c095a33921 [v10.1.x] docs: add default value workaround (#73004)
docs: add default value workaround (#72545)

* Update _index.md

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

Variables : Added Default values

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

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

* Ran prettier to resolve build errors

---------

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

Co-authored-by: arunkg2787 <131352769+arunkg2787@users.noreply.github.com>
2023-08-07 12:47:36 -04:00
grafana-delivery-bot[bot]
ec59deb610 [v10.1.x] Prometheus: Fix fetching label values when datasource has no labels match api support (#72985)
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>
2023-08-07 18:16:22 +03:00
grafana-delivery-bot[bot]
1dd9cfa4bd [v10.1.x] sign-plugin-docs: information of usage of a new token has been added to the docs (#72988)
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>
2023-08-07 07:13:59 -07:00
grafana-delivery-bot[bot]
1498afdf2a [v10.1.x] Admin: Add redirect notice for datasources to admin landing page (#72865)
Admin: Add redirect notice for datasources to admin landing page (#72736)

* update copy of ConnectionsRedirectNotice

The Connections page is not that new anymore

* extend NavLandingPage with optional header

* show ConnectionsRedirectNotice on Admin landing page

* make ConnectionsRedirectNotice dismissable

* make ConnectionsRedirectNotice informational

(cherry picked from commit 290fc3aadf)

Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
2023-08-07 11:45:37 +02:00
Christopher Moyer
351694891e [Docs 10.1.x] Manual backport - Docs/k8s install update (#72567) (#72953)
* Docs/k8s install update (#72567)

* added before you begin section

* just syncing up

* added namespace and yaml mainfest sections

* started the managed k8s section

* added external-ip section

* added minikube instructions

* added deployment rollout section

* added rolling update section

* added rollback stratgety section

* added the logging section

* fixed many typos

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

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

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

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

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

* adjust codeblock spacing

* adjusts steps

* copy edit throughout

* Apply suggestions from code review

* more copy edit, updates links

* fixed minor typos

* Apply suggestions from code review

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

* Apply suggestions from code review

* Apply suggestions from code review

* explained the dry-run example

* Move .codespellignore out of Drone so that technical writers can modify it

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

* Fix spelling errors

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

* Add .codespellignore CODEOWNER

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit b1fd399c10)

* Update Drone signature

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-08-04 15:31:10 -05:00
grafana-delivery-bot[bot]
d4a7f14eb4 [v10.1.x] Trend: Fix x field matching logic (#72961) 2023-08-04 13:17:57 -05:00
grafana-delivery-bot[bot]
ae7e8ff775 [v10.1.x] Alerting: Fix cloud rules editing (#72928)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Fix cloud rules editing (#72927)
2023-08-04 16:59:40 +02:00
grafana-delivery-bot[bot]
87c21987ea [v10.1.x] Auth: OAuth sets skip_org_role_sync = true for auth.google by default (#72924)
Auth: OAuth sets `skip_org_role_sync = true` for auth.google by default (#72819)

* sets skip_org_role_sync to true for google

* add google skiporgrolesync and sets to true always

* add field

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

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

* add AKS to words

* script back to mina

---------

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

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2023-08-04 16:33:23 +02:00
ismail simsek
95c6f09bfc [v10.1.x] InfluxDB: Fix retention policy handling for InfluxDB 3.0 engine by bringing back the hardcoded default (#72923)
InfluxDB: Fix retention policy handling for InfluxDB 3.0 engine by bringing back the hardcoded default (#72467)

* Revert retention policy handling

* Remove comment

* Send retention policy with request when it's possible

(cherry picked from commit 3395ad03a7)
2023-08-04 16:12:53 +02:00
grafana-delivery-bot[bot]
407ae2d5b7 [v10.1.x] Update bind-net-capabilities.md (#72920)
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>
2023-08-04 06:40:48 -07:00
grafana-delivery-bot[bot]
96f2ad2ab0 [v10.1.x] Update index.md (#72851)
Update index.md (#71680)

* Update index.md

Updated the notes section per https://github.com/grafana/support-escalations/issues/6202

* Update docs/sources/setup-grafana/configure-grafana/configure-custom-branding/index.md

---------

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

Co-authored-by: deresolution20 <85902399+deresolution20@users.noreply.github.com>
2023-08-03 15:12:14 -05:00
grafana-delivery-bot[bot]
33e0b90f73 [v10.1.x] Units: Fix display for kHz, MHz, GHz (#72852) 2023-08-03 23:07:38 +03:00
grafana-delivery-bot[bot]
197682a43e [v10.1.x] Auth: lock down Grafana admin sync for SAML (#72839)
Auth: lock down Grafana admin sync for SAML (#72828)

lock down Grafana admin sync for SAML

(cherry picked from commit 3a2538c2ca)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-08-03 19:14:08 +03:00
grafana-delivery-bot[bot]
cb1c3bf2b3 [v10.1.x] SAML: Add onclick action to providercard if the provider is configured (#72836)
SAML: Add onclick action to providercard if the provider is configured (#72734)

* adds missign onclick for provider card

* simplified version

(cherry picked from commit 5d99fdeb46)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2023-08-03 18:50:05 +03:00
grafana-delivery-bot[bot]
e5db5bcec7 [v10.1.x] Auth: Add missing skipOrgRoleSync property to SocialBase for GenericOAuth (#72818)
Auth: Add missing skipOrgRoleSync property to SocialBase for GenericOAuth (#72752)

* add missing cfg for skiporgrolesync

* add google skiporgrolesync

* removed google skip

* update docs to reflect google

* remove docs update for google

(cherry picked from commit 27f57fe112)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2023-08-03 15:13:09 +02:00
grafana-delivery-bot[bot]
816d840dd2 [v10.1.x] Update start-restart-grafana.md (#72768)
Update start-restart-grafana.md (#72737)

* Update start-restart-grafana.md

Closes https://github.com/grafana/grafana/issues/72309

* Update docs/sources/setup-grafana/start-restart-grafana.md

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

---------

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

Co-authored-by: David Allen <david.allen@grafana.com>
2023-08-03 07:47:32 -05:00
331 changed files with 6333 additions and 2457 deletions

View File

@@ -2345,17 +2345,16 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "23"],
[0, 0, 0, "Unexpected any. Specify a different type.", "24"],
[0, 0, 0, "Unexpected any. Specify a different type.", "25"],
[0, 0, 0, "Unexpected any. Specify a different type.", "26"],
[0, 0, 0, "Do not use any type assertions.", "26"],
[0, 0, 0, "Unexpected any. Specify a different type.", "27"],
[0, 0, 0, "Do not use any type assertions.", "28"],
[0, 0, 0, "Unexpected any. Specify a different type.", "29"],
[0, 0, 0, "Unexpected any. Specify a different type.", "28"],
[0, 0, 0, "Do not use any type assertions.", "29"],
[0, 0, 0, "Unexpected any. Specify a different type.", "30"],
[0, 0, 0, "Do not use any type assertions.", "31"],
[0, 0, 0, "Unexpected any. Specify a different type.", "31"],
[0, 0, 0, "Unexpected any. Specify a different type.", "32"],
[0, 0, 0, "Unexpected any. Specify a different type.", "33"],
[0, 0, 0, "Unexpected any. Specify a different type.", "34"],
[0, 0, 0, "Unexpected any. Specify a different type.", "35"],
[0, 0, 0, "Unexpected any. Specify a different type.", "36"]
[0, 0, 0, "Unexpected any. Specify a different type.", "35"]
],
"public/app/features/dashboard/state/PanelModel.test.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],

4
.codespellignore Normal file
View File

@@ -0,0 +1,4 @@
aks
eror
iam
wan

View File

@@ -120,7 +120,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -485,7 +485,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -894,7 +894,7 @@ steps:
name: clone-enterprise
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -1059,15 +1059,7 @@ steps:
image: grafana/build-container:1.7.5
name: yarn-install
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
- codespell -I .codespellignore docs/
image: grafana/build-container:1.7.5
name: codespell
- commands:
@@ -1344,15 +1336,7 @@ steps:
image: grafana/build-container:1.7.5
name: yarn-install
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
- codespell -I .codespellignore docs/
image: grafana/build-container:1.7.5
name: codespell
- commands:
@@ -1418,7 +1402,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -1696,7 +1680,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -2166,7 +2150,7 @@ services:
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -2326,7 +2310,7 @@ steps:
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/windows/grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: windows-init
@@ -2486,7 +2470,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -2599,7 +2583,7 @@ steps:
- compile-build-cmd
environment:
GCP_KEY:
from_secret: gcp_upload_artifacts_key
from_secret: gcp_grafanauploads_base64
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.3
@@ -2610,7 +2594,7 @@ steps:
- compile-build-cmd
environment:
GCP_KEY:
from_secret: gcp_upload_artifacts_key
from_secret: gcp_grafanauploads_base64
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
STATIC_ASSET_EDITIONS:
@@ -2623,7 +2607,7 @@ steps:
- compile-build-cmd
environment:
GCP_KEY:
from_secret: gcp_upload_artifacts_key
from_secret: gcp_grafanauploads_base64
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.3
@@ -2674,7 +2658,7 @@ steps:
- yarn-install
environment:
GCP_KEY:
from_secret: gcp_upload_artifacts_key
from_secret: gcp_grafanauploads_base64
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
failure: ignore
@@ -2858,7 +2842,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -3067,7 +3051,6 @@ steps:
from_secret: packages_gpg_private_key
GPG_PUBLIC_KEY:
from_secret: packages_gpg_public_key
failure: ignore
image: grafana/grafana-build:main
name: rgm-build
volumes:
@@ -3109,7 +3092,7 @@ steps:
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/windows/grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/windows/grabpl.exe
-OutFile grabpl.exe
failure: ignore
image: grafana/ci-wix:0.1.1
@@ -3181,8 +3164,7 @@ steps:
environment:
BUCKET: grafana-prerelease
GCP_KEY:
from_secret: gcp_upload_artifacts_key
failure: ignore
from_secret: gcp_key_base64
image: google/cloud-sdk:431.0.0
name: gsutil-stat
trigger:
@@ -3274,7 +3256,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -3558,7 +3540,7 @@ steps:
name: identify-runner
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -3721,7 +3703,7 @@ services:
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -3864,7 +3846,7 @@ steps:
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/windows/grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: windows-init
@@ -3954,7 +3936,7 @@ services:
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.41/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
@@ -4184,14 +4166,36 @@ platform:
arch: amd64
os: linux
steps:
- commands:
- echo $${GCR_CREDENTIALS} | docker login -u _json_key --password-stdin https://us.gcr.io
environment:
GCR_CREDENTIALS:
from_secret: gcr_credentials
image: docker:dind
name: authenticate-gcr
volumes:
- name: docker
path: /var/run/docker.sock
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:latest
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-unknown-low-medium-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:latest
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- image: plugins/slack
name: slack-notify-failure
settings:
@@ -4205,6 +4209,10 @@ trigger:
cron: nightly
event: cron
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
@@ -4214,14 +4222,36 @@ platform:
arch: amd64
os: linux
steps:
- commands:
- echo $${GCR_CREDENTIALS} | docker login -u _json_key --password-stdin https://us.gcr.io
environment:
GCR_CREDENTIALS:
from_secret: gcr_credentials
image: docker:dind
name: authenticate-gcr
volumes:
- name: docker
path: /var/run/docker.sock
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:main
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-unknown-low-medium-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:main
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- image: plugins/slack
name: slack-notify-failure
settings:
@@ -4235,6 +4265,10 @@ trigger:
cron: nightly
event: cron
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
@@ -4244,14 +4278,36 @@ platform:
arch: amd64
os: linux
steps:
- commands:
- echo $${GCR_CREDENTIALS} | docker login -u _json_key --password-stdin https://us.gcr.io
environment:
GCR_CREDENTIALS:
from_secret: gcr_credentials
image: docker:dind
name: authenticate-gcr
volumes:
- name: docker
path: /var/run/docker.sock
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:latest-ubuntu
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-unknown-low-medium-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:latest-ubuntu
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- image: plugins/slack
name: slack-notify-failure
settings:
@@ -4266,6 +4322,10 @@ trigger:
cron: nightly
event: cron
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
@@ -4275,14 +4335,36 @@ platform:
arch: amd64
os: linux
steps:
- commands:
- echo $${GCR_CREDENTIALS} | docker login -u _json_key --password-stdin https://us.gcr.io
environment:
GCR_CREDENTIALS:
from_secret: gcr_credentials
image: docker:dind
name: authenticate-gcr
volumes:
- name: docker
path: /var/run/docker.sock
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:main-ubuntu
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-unknown-low-medium-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:main-ubuntu
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- image: plugins/slack
name: slack-notify-failure
settings:
@@ -4297,6 +4379,10 @@ trigger:
cron: nightly
event: cron
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
@@ -4306,6 +4392,18 @@ platform:
arch: amd64
os: linux
steps:
- commands:
- echo $${GCR_CREDENTIALS} | docker login -u _json_key --password-stdin https://us.gcr.io
environment:
GCR_CREDENTIALS:
from_secret: gcr_credentials
image: docker:dind
name: authenticate-gcr
volumes:
- name: docker
path: /var/run/docker.sock
- name: config
path: /root/.docker/
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM google/cloud-sdk:431.0.0
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/build-container:1.7.5
@@ -4326,8 +4424,13 @@ steps:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/docs-base:dbd975af06
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:latest
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-unknown-low-medium-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL google/cloud-sdk:431.0.0
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/build-container:1.7.5
@@ -4348,8 +4451,13 @@ steps:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/docs-base:dbd975af06
- trivy --exit-code 1 --severity HIGH,CRITICAL cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97
- trivy --exit-code 1 --severity HIGH,CRITICAL us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:latest
depends_on:
- authenticate-gcr
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
volumes:
- name: docker
path: /var/run/docker.sock
- image: plugins/slack
name: slack-notify-failure
settings:
@@ -4363,6 +4471,10 @@ trigger:
cron: nightly
event: cron
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
clone:
retries: 3
@@ -4394,6 +4506,10 @@ trigger:
cron: grafana-com-nightly
event: cron
type: docker
volumes:
- host:
path: /var/run/docker.sock
name: docker
---
get:
name: credentials.json
@@ -4408,8 +4524,8 @@ kind: secret
name: gcp_grafanauploads_base64
---
get:
name: grafana_api_key
path: infra/data/ci/drone-plugins
name: api_key
path: infra/data/ci/grafana-release-eng/grafanacom
kind: secret
name: grafana_api_key
---
@@ -4467,6 +4583,12 @@ get:
kind: secret
name: azure_tenant
---
get:
name: token
path: infra/data/ci/grafana-release-eng/npm
kind: secret
name: npm_token
---
get:
name: public-key-b64
path: infra/data/ci/packages-publish/gpg
@@ -4557,7 +4679,13 @@ get:
kind: secret
name: delivery-bot-app-private-key
---
get:
name: service-account
path: secret/data/common/gcr
kind: secret
name: gcr_credentials
---
kind: signature
hmac: 83a9327b3e6141e701aa900e9b7a1bebc7350727497749854c62f0e58d92957e
hmac: aeae9ce425a35443ceb460a7bd475d151fbb74465ff121c6302817c1a10a0f37
...

7
.github/CODEOWNERS vendored
View File

@@ -13,7 +13,8 @@
# Documentation
/.changelog-archive @grafana/docs-grafana
/CHANGELOG.md @grafana/docs-grafana
/.codespellignore @grafana/docs-tooling
/CHANGELOG.md @grafana/grafana-delivery
/CODE_OF_CONDUCT.md @grafana/docs-grafana
/CONTRIBUTING.md @grafana/docs-grafana
/GOVERNANCE.md @RichiH
@@ -368,10 +369,10 @@ lerna.json @grafana/frontend-ops
/public/app/features/geo/ @grafana/dataviz-squad
/public/app/features/visualization/data-hover/ @grafana/dataviz-squad
/public/app/features/commandPalette/ @grafana/grafana-frontend-platform
/public/app/features/connections/ @grafana/plugins-platform-frontend
/public/app/features/connections/ @grafana/plugins-platform-frontend @mikkancso
/public/app/features/correlations/ @grafana/explore-squad
/public/app/features/dashboard/ @grafana/dashboards-squad
/public/app/features/datasources/ @grafana/plugins-platform-frontend
/public/app/features/datasources/ @grafana/plugins-platform-frontend @mikkancso
/public/app/features/dimensions/ @grafana/dataviz-squad
/public/app/features/dataframe-import/ @grafana/grafana-bi-squad
/public/app/features/explore/ @grafana/explore-squad

View File

@@ -55,6 +55,10 @@ jobs:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
# Go is required for also updating the schema versions as part of the precommit hook:
- uses: actions/setup-go@v4
with:
go-version: '1.20'
- uses: actions/setup-node@v3.5.1
with:
node-version: '16'
@@ -71,3 +75,4 @@ jobs:
with:
token: ${{ steps.generate_token.outputs.token }}
metricsWriteAPIKey: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}
precommit_make_target: gen-cue

View File

@@ -206,7 +206,7 @@ func loadComposableKind(name string, kind string) (kindsys.Kind, error) {
fs := fstest.MapFS{
fmt.Sprintf("%s.cue", name): &fstest.MapFile{
Data: []byte("package grafanaplugin\n" + kind),
Data: []byte(kind),
},
}
@@ -290,7 +290,7 @@ func (j *ckrJenny) Generate(k kindsys.Composable) (*codejen.File, error) {
return nil, err
}
newKindBytes = []byte(fmt.Sprintf("package kind\n\n%s", newKindBytes))
newKindBytes = []byte(fmt.Sprintf("package grafanaplugin\n\n%s", newKindBytes))
return codejen.NewFile(filepath.Join(j.path, "next", "composable", name+".cue"), newKindBytes, j), nil
}
@@ -399,10 +399,17 @@ func (registry *kindRegistry) getPublishedKind(name string, category string, lat
return "", nil
}
kindPath := filepath.Join(
registry.zipDir,
fmt.Sprintf("grafana/%s/%s/%s.cue", latestRegistryDir, category, name),
)
var cueFilePath string
switch category {
case "core":
cueFilePath = fmt.Sprintf("%s/%s.cue", name, name)
case "composable":
cueFilePath = fmt.Sprintf("%s.cue", name)
default:
return "", fmt.Errorf("kind can only be core or composable")
}
kindPath := filepath.Join(latestRegistryDir, category, cueFilePath)
file, err := registry.zipFile.Open(kindPath)
if err != nil {
return "", fmt.Errorf("failed to open file: %w", err)

View File

@@ -1,7 +1,7 @@
# Owned by grafana-delivery-squad
# Intended to be dropped into the base repo, Ex: grafana/grafana
name: Sync to mirror
run-name: sync-to-mirror-${{ github.base_ref }}-${{ github.head_ref }}
run-name: sync-to-mirror-${{ github.ref_name }}
on:
workflow_dispatch:
push:
@@ -13,7 +13,7 @@ on:
# This is run after the pull request has been merged, so we'll run against the target branch
jobs:
trigger_downstream_patch_mirror:
concurrency: patch-mirror-${{ github.ref }}
concurrency: patch-mirror-${{ github.ref_name }}
uses: grafana/security-patch-actions/.github/workflows/mirror-branch-and-apply-patches.yml@main
if: github.repository == 'grafana/grafana'
with:

View File

@@ -80,7 +80,7 @@ var config = {
{
url: '${HOST}/?orgId=1',
wait: 500,
threshold: 0,
threshold: 3,
},
{
url: '${HOST}/d/O6f11TZWk/panel-tests-bar-gauge',
@@ -93,7 +93,7 @@ var config = {
url: '${HOST}/?orgId=1&search=open',
wait: 500,
rootElement: '.main-view',
threshold: 0,
threshold: 3,
},
{
url: '${HOST}/alerting/list',

View File

@@ -1,3 +1,416 @@
<!-- 10.1.0 START -->
# 10.1.0 (2023-08-01)
### Features and enhancements
- **Usage stats:** Tune collector execution startup and interval. [#72790](https://github.com/grafana/grafana/issues/72790), [@papagian](https://github.com/papagian)
- **Prometheus:** Add support for day_of_year. [#72403](https://github.com/grafana/grafana/issues/72403), [@gtk-grafana](https://github.com/gtk-grafana)
- **Transforms:** Add Alpha Format Time Transform. [#72319](https://github.com/grafana/grafana/issues/72319), [@codeincarnate](https://github.com/codeincarnate)
- **Prometheus:** Add present_over_time syntax highlighting. [#72283](https://github.com/grafana/grafana/issues/72283), [@arnaudlemaignen](https://github.com/arnaudlemaignen)
- **Login:** Show oauth error messages inline. [#72255](https://github.com/grafana/grafana/issues/72255), [@RoxanaAnamariaTurc](https://github.com/RoxanaAnamariaTurc)
- **Geomap:** Promote route + photos layer to beta, promote geojson layer to stable. [#72233](https://github.com/grafana/grafana/issues/72233), [@nmarrs](https://github.com/nmarrs)
- **Dashboards:** Add Angular deprecation alert in data source query editor. [#72211](https://github.com/grafana/grafana/issues/72211), [@xnyo](https://github.com/xnyo)
- **Auth:** Lock organization roles for users who are managed through an external auth provider. [#72204](https://github.com/grafana/grafana/issues/72204), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Tranformations:** True OUTER JOIN in the join by field transformation used for tabular data . [#72176](https://github.com/grafana/grafana/issues/72176), [@bohandley](https://github.com/bohandley)
- **NestedFolders:** Enable new nested folder picker by default for nested folders. [#72129](https://github.com/grafana/grafana/issues/72129), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Add dashboardUID and panelID query parameters for loki state history. [#72119](https://github.com/grafana/grafana/issues/72119), [@alexweav](https://github.com/alexweav)
- **Feature toggles management:** Define get feature toggles api. [#72106](https://github.com/grafana/grafana/issues/72106), [@jcalisto](https://github.com/jcalisto)
- **Prometheus:** Turn browser resource cache on by default. [#72105](https://github.com/grafana/grafana/issues/72105), [@gtk-grafana](https://github.com/gtk-grafana)
- **Alerting:** Improve alerts names visibility on narrow panels. [#72104](https://github.com/grafana/grafana/issues/72104), [@konrad147](https://github.com/konrad147)
- **Data Sources:** Remove Admin/Data sources page in favour of Connections/Data sources. [#72102](https://github.com/grafana/grafana/issues/72102), [@mikkancso](https://github.com/mikkancso)
- **Loki:** Enable Query Splitting by default. [#72094](https://github.com/grafana/grafana/issues/72094), [@matyax](https://github.com/matyax)
- **AuthN:** Lock down manual role updates for users synced through Grafana Com portal. [#72044](https://github.com/grafana/grafana/issues/72044), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Tempo:** Remove traceqlSearch feature toggle. [#72029](https://github.com/grafana/grafana/issues/72029), [@adrapereira](https://github.com/adrapereira)
- **Alerting:** Keep legacy alert rule maxDataPoints and intervalMs during migration. [#71989](https://github.com/grafana/grafana/issues/71989), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Add min interval option to alert rule query creation. [#71986](https://github.com/grafana/grafana/issues/71986), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Add View YAML button for Grafana/provisioned rules. [#71983](https://github.com/grafana/grafana/issues/71983), [@VikaCep](https://github.com/VikaCep)
- **Plugin:** Remove error on invalid version. [#71951](https://github.com/grafana/grafana/issues/71951), [@oshirohugo](https://github.com/oshirohugo)
- **Traces:** Enable showing trace ids. [#71950](https://github.com/grafana/grafana/issues/71950), [@gabor](https://github.com/gabor)
- **RBAC:** Split non-empty scopes into `kind`, `attribute` and `identifier` fields for better search performance. [#71933](https://github.com/grafana/grafana/issues/71933), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Adminstration:** Feature toggle for feature toggle admin page. [#71887](https://github.com/grafana/grafana/issues/71887), [@IbrahimCSAE](https://github.com/IbrahimCSAE)
- **Alerting:** Improve performance of matching captures. [#71828](https://github.com/grafana/grafana/issues/71828), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **CommandPalette:** Remove parent search and fuzzy search for pages. [#71825](https://github.com/grafana/grafana/issues/71825), [@tskarhed](https://github.com/tskarhed)
- **Tracing:** Remove newTraceViewHeader feature toggle. [#71818](https://github.com/grafana/grafana/issues/71818), [@joey-grafana](https://github.com/joey-grafana)
- **FlameGraph:** Add column in table with buttons to filter and sandwich a symbol. [#71773](https://github.com/grafana/grafana/issues/71773), [@aocenas](https://github.com/aocenas)
- **Units:** Added support for Candela (cd). [#71696](https://github.com/grafana/grafana/issues/71696), [@Frankkkkk](https://github.com/Frankkkkk)
- **Alerting:** Add contact point provisioning file export. [#71692](https://github.com/grafana/grafana/issues/71692), [@JacobsonMT](https://github.com/JacobsonMT)
- **Redshift:** Support caching async aws queries. [#71682](https://github.com/grafana/grafana/issues/71682), [@iwysiu](https://github.com/iwysiu)
- **Alerting:** Save and restore condition reference while switching type. [#71629](https://github.com/grafana/grafana/issues/71629), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Explore:** Remove exploreMixedDatasource feature toggle. [#71534](https://github.com/grafana/grafana/issues/71534), [@Elfo404](https://github.com/Elfo404)
- **OAuth:** Introduce user_refresh_token setting and make it default for the selected providers. [#71533](https://github.com/grafana/grafana/issues/71533), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Adds support for toggling common labels. [#71497](https://github.com/grafana/grafana/issues/71497), [@gillesdemey](https://github.com/gillesdemey)
- **Plugin:** Validate plugin version on installation. [#71488](https://github.com/grafana/grafana/issues/71488), [@oshirohugo](https://github.com/oshirohugo)
- **Explore:** Replaced deprecated 'query' property with 'queries' in splitOpen. [#71484](https://github.com/grafana/grafana/issues/71484), [@harisrozajac](https://github.com/harisrozajac)
- **Plugins:** Remove logs button instead of disabling it. [#71448](https://github.com/grafana/grafana/issues/71448), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Traces:** Add inline validation and greater precision to duration fields in span filters. [#71404](https://github.com/grafana/grafana/issues/71404), [@joey-grafana](https://github.com/joey-grafana)
- **Alert:** Change error icon to exclamation-circle. [#71397](https://github.com/grafana/grafana/issues/71397), [@torkelo](https://github.com/torkelo)
- **Field Config:** Add new units (mΩ, kHz, MHz, GHz, ac, ha). [#71357](https://github.com/grafana/grafana/issues/71357), [@Develer](https://github.com/Develer)
- **Plugins:** Fail plugins installation on wrong args provided. [#71355](https://github.com/grafana/grafana/issues/71355), [@oshirohugo](https://github.com/oshirohugo)
- **Logs:** Display log row menu cell on displayed fields. [#71300](https://github.com/grafana/grafana/issues/71300), [@matyax](https://github.com/matyax)
- **Auth:** Move LDAP debug to Authentication menu. [#71285](https://github.com/grafana/grafana/issues/71285), [@Jguer](https://github.com/Jguer)
- **AzureMonitor:** Add switch to control time-range for Logs queries. [#71278](https://github.com/grafana/grafana/issues/71278), [@aangelisc](https://github.com/aangelisc)
- **Alerting:** Changes to evaluation group step. [#71251](https://github.com/grafana/grafana/issues/71251), [@VikaCep](https://github.com/VikaCep)
- **PanelInspect:** Clean table display settings from field config. [#71226](https://github.com/grafana/grafana/issues/71226), [@torkelo](https://github.com/torkelo)
- **QueryBuilder:** Preserve queries when switching from Mixed. [#71224](https://github.com/grafana/grafana/issues/71224), [@aangelisc](https://github.com/aangelisc)
- **Public Dashboard:** Redesign modal (v2). [#71151](https://github.com/grafana/grafana/issues/71151), [@polibb](https://github.com/polibb)
- **Tracing:** Add services, depth to span filters metadata. [#71084](https://github.com/grafana/grafana/issues/71084), [@joey-grafana](https://github.com/joey-grafana)
- **PluginExtensions:** Add category to link extensions. [#71074](https://github.com/grafana/grafana/issues/71074), [@mckn](https://github.com/mckn)
- **Alerting:** Add smart type selection when creating a new alert rule. [#71071](https://github.com/grafana/grafana/issues/71071), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Keep rule form buttons always on top. [#71056](https://github.com/grafana/grafana/issues/71056), [@VikaCep](https://github.com/VikaCep)
- **Feat:** Match allowed cookies with optional character. [#71047](https://github.com/grafana/grafana/issues/71047), [@itsmylife](https://github.com/itsmylife)
- **Plugins:** Add feature toggle for Temporary Credentials. [#71033](https://github.com/grafana/grafana/issues/71033), [@idastambuk](https://github.com/idastambuk)
- **Tracing:** Show next/prev buttons when span filters are collapsed. [#71025](https://github.com/grafana/grafana/issues/71025), [@joey-grafana](https://github.com/joey-grafana)
- **Heatmap:** Add datalink support. [#71016](https://github.com/grafana/grafana/issues/71016), [@kureshimiru](https://github.com/kureshimiru)
- **Table:** Add custom cell rendering option. [#70999](https://github.com/grafana/grafana/issues/70999), [@aocenas](https://github.com/aocenas)
- **Alerting:** Use new "Label" components for alert instance labels. [#70997](https://github.com/grafana/grafana/issues/70997), [@gillesdemey](https://github.com/gillesdemey)
- **Prometheus:** Add disableRecordingRules datasource config. [#70903](https://github.com/grafana/grafana/issues/70903), [@shantanualsi](https://github.com/shantanualsi)
- **Alerting:** Use ToggleTip instead of Hovercard in the info popup on Math expressions. [#70881](https://github.com/grafana/grafana/issues/70881), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Improve time range and max data points info in QueryEditor. [#70867](https://github.com/grafana/grafana/issues/70867), [@VikaCep](https://github.com/VikaCep)
- **A11y:** Do not force colors in the color swatch and icon series. [#70862](https://github.com/grafana/grafana/issues/70862), [@evictorero](https://github.com/evictorero)
- **A11y:** Add support for toggle buttons in high contrast mode. [#70838](https://github.com/grafana/grafana/issues/70838), [@evictorero](https://github.com/evictorero)
- **LogContext:** Make centered row unsticky on click. [#70832](https://github.com/grafana/grafana/issues/70832), [@svennergr](https://github.com/svennergr)
- **LogContext:** Add button to scroll to center. [#70821](https://github.com/grafana/grafana/issues/70821), [@svennergr](https://github.com/svennergr)
- **Alerting:** Render folder selector in options for Alert List Panel only when having Grafana datasource. [#70816](https://github.com/grafana/grafana/issues/70816), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Connections console:** Add Angular badge for Angular plugins. [#70789](https://github.com/grafana/grafana/issues/70789), [@xnyo](https://github.com/xnyo)
- **Flamegraph:** Add switch for color scheme by value or by package. [#70770](https://github.com/grafana/grafana/issues/70770), [@aocenas](https://github.com/aocenas)
- **Auth:** Enforce role sync except if skip org role sync is enabled. [#70766](https://github.com/grafana/grafana/issues/70766), [@Jguer](https://github.com/Jguer)
- **AuthZ:** Extend /api/search to work with self-contained permissions. [#70749](https://github.com/grafana/grafana/issues/70749), [@mgyongyosi](https://github.com/mgyongyosi)
- **Login:** Adjust error message when user exceed login attempts. [#70736](https://github.com/grafana/grafana/issues/70736), [@RoxanaAnamariaTurc](https://github.com/RoxanaAnamariaTurc)
- **Nested folders:** Paginate child folder items. [#70730](https://github.com/grafana/grafana/issues/70730), [@ashharrison90](https://github.com/ashharrison90)
- **Units:** Add events/messages/records/rows throughput units. [#70726](https://github.com/grafana/grafana/issues/70726), [@hhromic](https://github.com/hhromic)
- **Plugins:** Enable feature toggles for long running queries by deafult. [#70678](https://github.com/grafana/grafana/issues/70678), [@idastambuk](https://github.com/idastambuk)
- **I18n:** Translate phrases for new Browse Dashboards. [#70654](https://github.com/grafana/grafana/issues/70654), [@Bohdanator](https://github.com/Bohdanator)
- **Flamegraph:** Prevent cropping of tooltip by bottom of the viewport. [#70633](https://github.com/grafana/grafana/issues/70633), [@aocenas](https://github.com/aocenas)
- **Pyroscope:** Preselect default profile type or app in the query editor dropdown. [#70624](https://github.com/grafana/grafana/issues/70624), [@aocenas](https://github.com/aocenas)
- **Trend:** Support disconnect values and connect nulls options. [#70616](https://github.com/grafana/grafana/issues/70616), [@drew08t](https://github.com/drew08t)
- **StateTimeline:** Add disconnect value option. [#70610](https://github.com/grafana/grafana/issues/70610), [@drew08t](https://github.com/drew08t)
- **DSPicker:** Use new DS picker everywhere. [#70609](https://github.com/grafana/grafana/issues/70609), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Alerting:** Reduce number of unnecessary request in the alert list panel in case …. [#70583](https://github.com/grafana/grafana/issues/70583), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Docs:** Update query and resource caching documentation to improve clarity and add additional context. [#70556](https://github.com/grafana/grafana/issues/70556), [@mmandrus](https://github.com/mmandrus)
- **Alerting:** Adds in-app documentation for Classic Conditions. [#70540](https://github.com/grafana/grafana/issues/70540), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Display a warning when a contact point is not in use. [#70506](https://github.com/grafana/grafana/issues/70506), [@konrad147](https://github.com/konrad147)
- **Dashboards:** Support an auto refresh interval that is based on the query range. [#70479](https://github.com/grafana/grafana/issues/70479), [@ryantxu](https://github.com/ryantxu)
- **Loki:** Preserve pipeline stages in context query. [#70472](https://github.com/grafana/grafana/issues/70472), [@svennergr](https://github.com/svennergr)
- **Logs:** Link anchored logline when opening context in split view. [#70463](https://github.com/grafana/grafana/issues/70463), [@svennergr](https://github.com/svennergr)
- **Prometheus:** Add capability to filter label names by metric in template variable editor. [#70452](https://github.com/grafana/grafana/issues/70452), [@gtk-grafana](https://github.com/gtk-grafana)
- **Alerting:** Expression card improvements. [#70395](https://github.com/grafana/grafana/issues/70395), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Logs:** Show active state of "filter for value" buttons in Logs Details. [#70328](https://github.com/grafana/grafana/issues/70328), [@matyax](https://github.com/matyax)
- **Loki:** Deprecate resolution . [#70326](https://github.com/grafana/grafana/issues/70326), [@ivanahuckova](https://github.com/ivanahuckova)
- **PanelPlugin:** Allow hiding standard field config from defaults. [#70303](https://github.com/grafana/grafana/issues/70303), [@dprokop](https://github.com/dprokop)
- **InteractiveTable:** Add pagination and header tooltips. [#70281](https://github.com/grafana/grafana/issues/70281), [@abannachGrafana](https://github.com/abannachGrafana)
- **FlameGraph:** Add sandwich view. [#70268](https://github.com/grafana/grafana/issues/70268), [@aocenas](https://github.com/aocenas)
- **Login:** Show error messages inline in form instead of in toasts. [#70266](https://github.com/grafana/grafana/issues/70266), [@joshhunt](https://github.com/joshhunt)
- **Elasticsearch:** Enable logs samples for metric queries. [#70258](https://github.com/grafana/grafana/issues/70258), [@gwdawson](https://github.com/gwdawson)
- **Geomap:** Add network layer. [#70192](https://github.com/grafana/grafana/issues/70192), [@drew08t](https://github.com/drew08t)
- **Alerting:** Bump grafana/alerting and refactor the ImageStore/Provider to provide image URL/bytes. [#70182](https://github.com/grafana/grafana/issues/70182), [@santihernandezc](https://github.com/santihernandezc)
- **Auth:** Support google OIDC and group fetching. [#70140](https://github.com/grafana/grafana/issues/70140), [@Jguer](https://github.com/Jguer)
- **Alerting:** Make QueryEditor not collapsable. [#70112](https://github.com/grafana/grafana/issues/70112), [@VikaCep](https://github.com/VikaCep)
- **TimeSeries:** Add option to disconnect values. [#70097](https://github.com/grafana/grafana/issues/70097), [@drew08t](https://github.com/drew08t)
- **Logs:** Add toggle behavior support for "filter for" and "filter out" label within Logs Details. [#70091](https://github.com/grafana/grafana/issues/70091), [@matyax](https://github.com/matyax)
- **Plugins:** Periodically update public signing key. [#70080](https://github.com/grafana/grafana/issues/70080), [@andresmgot](https://github.com/andresmgot)
- **Navigation:** Add navigation customization options to config documentation. [#70072](https://github.com/grafana/grafana/issues/70072), [@ashharrison90](https://github.com/ashharrison90)
- **Config:** Add configuration option to define custom user-facing general error message for certain error types. [#70023](https://github.com/grafana/grafana/issues/70023), [@mmandrus](https://github.com/mmandrus)
- **Alerting:** Add notification policy provisioning file export. [#70009](https://github.com/grafana/grafana/issues/70009), [@JacobsonMT](https://github.com/JacobsonMT)
- **CloudWatch:** Add missing EventBridge Pipe metrics. [#69994](https://github.com/grafana/grafana/issues/69994), [@rrhodes](https://github.com/rrhodes)
- **SSE:** Support for ML query node. [#69963](https://github.com/grafana/grafana/issues/69963), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Database:** Make dialects independent of xorm Engine. [#69955](https://github.com/grafana/grafana/issues/69955), [@DanCech](https://github.com/DanCech)
- **Mysql Tests:** For mysql5.7 integration tests use utf8mb4 charset. [#69953](https://github.com/grafana/grafana/issues/69953), [@owensmallwood](https://github.com/owensmallwood)
- **Alerting:** Show disabled provisioned evaluation group. [#69932](https://github.com/grafana/grafana/issues/69932), [@gillesdemey](https://github.com/gillesdemey)
- **Auth:** Support Gitlab OIDC scopes. [#69890](https://github.com/grafana/grafana/issues/69890), [@Jguer](https://github.com/Jguer)
- **InfluxDB:** Backend parser compatibility with frontend parser. [#69865](https://github.com/grafana/grafana/issues/69865), [@itsmylife](https://github.com/itsmylife)
- **PublicDashboards:** Audit table pagination. [#69823](https://github.com/grafana/grafana/issues/69823), [@juanicabanas](https://github.com/juanicabanas)
- **CloudWatch:** Add missing AWS/FSx metrics. [#69816](https://github.com/grafana/grafana/issues/69816), [@kevinwcyu](https://github.com/kevinwcyu)
- **Variables:** Show description instead of definition in table. [#69786](https://github.com/grafana/grafana/issues/69786), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Repurpose rule testing endpoint to return potential alerts. [#69755](https://github.com/grafana/grafana/issues/69755), [@JacobsonMT](https://github.com/JacobsonMT)
- **NestedFolders:** Move `New folder` into a drawer. [#69706](https://github.com/grafana/grafana/issues/69706), [@ashharrison90](https://github.com/ashharrison90)
- **Loki:** Implement step editor. [#69648](https://github.com/grafana/grafana/issues/69648), [@ivanahuckova](https://github.com/ivanahuckova)
- **DataFrame:** Align frame (series.name) and field naming (field.name) . [#69621](https://github.com/grafana/grafana/issues/69621), [@torkelo](https://github.com/torkelo)
- **Auth:** Use auth broker by default. [#69620](https://github.com/grafana/grafana/issues/69620), [@Jguer](https://github.com/Jguer)
- **Dashboards:** Add dashboard embed route. [#69596](https://github.com/grafana/grafana/issues/69596), [@Clarity-89](https://github.com/Clarity-89)
- **Nested folders:** Improve loading states. [#69556](https://github.com/grafana/grafana/issues/69556), [@ashharrison90](https://github.com/ashharrison90)
- **Alerting:** Use monaco editor for admin page. [#69514](https://github.com/grafana/grafana/issues/69514), [@gillesdemey](https://github.com/gillesdemey)
- **Legend:** Sort by name. [#69490](https://github.com/grafana/grafana/issues/69490), [@adela-almasan](https://github.com/adela-almasan)
- **QueryField:** Set default value for onBlur prop. [#69487](https://github.com/grafana/grafana/issues/69487), [@idastambuk](https://github.com/idastambuk)
- **Tempo:** TraceQL editor - Match type of new values with values in dropdown. [#69468](https://github.com/grafana/grafana/issues/69468), [@adrapereira](https://github.com/adrapereira)
- **Logs:** Add permalink to log lines. [#69464](https://github.com/grafana/grafana/issues/69464), [@svennergr](https://github.com/svennergr)
- **Logs:** Implement "infinite" scrolling in log context. [#69459](https://github.com/grafana/grafana/issues/69459), [@gabor](https://github.com/gabor)
- **Tracing:** Use new DataSourceDescription component. [#69443](https://github.com/grafana/grafana/issues/69443), [@joey-grafana](https://github.com/joey-grafana)
- **Plugin Extensions:** Custom limits for extensions-per-plugin . [#69430](https://github.com/grafana/grafana/issues/69430), [@leventebalogh](https://github.com/leventebalogh)
- **Alerting:** Display error if repeat interval is lower than group interval. [#69413](https://github.com/grafana/grafana/issues/69413), [@VikaCep](https://github.com/VikaCep)
- **Tracing:** Move upload trace to button. [#69402](https://github.com/grafana/grafana/issues/69402), [@adrapereira](https://github.com/adrapereira)
- **I18n:** Add server config to detect browser language. [#69396](https://github.com/grafana/grafana/issues/69396), [@pbaumard](https://github.com/pbaumard)
- **Tempo:** Represent OTLP Span Intrinsics correctly. [#69394](https://github.com/grafana/grafana/issues/69394), [@joey-grafana](https://github.com/joey-grafana)
- **News:** Expose config option to disable News feed. [#69365](https://github.com/grafana/grafana/issues/69365), [@ashharrison90](https://github.com/ashharrison90)
- **Alerting:** Change how we display annotations in the rule form. [#69338](https://github.com/grafana/grafana/issues/69338), [@VikaCep](https://github.com/VikaCep)
- **Azure:** AzureMonitorMetrics - change response to be dataplane compliant. [#69308](https://github.com/grafana/grafana/issues/69308), [@kylebrandt](https://github.com/kylebrandt)
- **JoinDataFrames:** Keep field name if possible. [#69289](https://github.com/grafana/grafana/issues/69289), [@ryantxu](https://github.com/ryantxu)
- **Dashboards:** Data source template variable options now specify a current value using uid. [#69259](https://github.com/grafana/grafana/issues/69259), [@darrenjaneczek](https://github.com/darrenjaneczek)
- **Alerting:** Add more context to delete modals. [#69244](https://github.com/grafana/grafana/issues/69244), [@gillesdemey](https://github.com/gillesdemey)
- **Plugins:** Forbid loading Angular plugins when Angular is disabled. [#69225](https://github.com/grafana/grafana/issues/69225), [@xnyo](https://github.com/xnyo)
- **Tempo:** TraceQL query response streaming. [#69212](https://github.com/grafana/grafana/issues/69212), [@adrapereira](https://github.com/adrapereira)
- **Catalog:** Display badges for Angular plugins and disable install if Angular is disabled. [#69084](https://github.com/grafana/grafana/issues/69084), [@xnyo](https://github.com/xnyo)
- **Chore:** Adding "allowed_groups" Configuration Parameter to Generic OAuth Method. [#69025](https://github.com/grafana/grafana/issues/69025), [@vsychov](https://github.com/vsychov)
- **Loki:** Add support for distinct operation in autocomplete and query builder. [#69003](https://github.com/grafana/grafana/issues/69003), [@matyax](https://github.com/matyax)
- **Chore:** Avoid unnecessary byte/string conversions. [#69001](https://github.com/grafana/grafana/issues/69001), [@Juneezee](https://github.com/Juneezee)
- **Loki:** Implement `decolorize` logql operation. [#68972](https://github.com/grafana/grafana/issues/68972), [@ivanahuckova](https://github.com/ivanahuckova)
- **CloudWatch:** Wrap VariableEditor dimension fields. [#68967](https://github.com/grafana/grafana/issues/68967), [@iSatVeerSingh](https://github.com/iSatVeerSingh)
- **TimeSeries:** Add zoom-out functionality on double click. [#68936](https://github.com/grafana/grafana/issues/68936), [@simPod](https://github.com/simPod)
- **Plugins:** Bump Plugin SDK version and address instance management breaking changes. [#68900](https://github.com/grafana/grafana/issues/68900), [@wbrowne](https://github.com/wbrowne)
- **FlameGraph:** Add option to align text left or right. [#68893](https://github.com/grafana/grafana/issues/68893), [@aocenas](https://github.com/aocenas)
- **Logs:** Added copy-to-clipboard fallback support and visual feedback after copying. [#68874](https://github.com/grafana/grafana/issues/68874), [@matyax](https://github.com/matyax)
- **Auth:** Respect cache control for JWKS in auth.jwt. [#68872](https://github.com/grafana/grafana/issues/68872), [@Jguer](https://github.com/Jguer)
- **Pyroscope:** Rename phlare to grafana-pyroscope-datasource. [#68859](https://github.com/grafana/grafana/issues/68859), [@ryantxu](https://github.com/ryantxu)
- **Alerting:** Add notification policies preview in alert creation. [#68839](https://github.com/grafana/grafana/issues/68839), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Page:** Add inline rename functionality. [#68828](https://github.com/grafana/grafana/issues/68828), [@ashharrison90](https://github.com/ashharrison90)
- **Tracing:** Rename reset to clear for consistency. [#68821](https://github.com/grafana/grafana/issues/68821), [@joey-grafana](https://github.com/joey-grafana)
- **Alerting:** Adds support for timezones in mute timings. [#68813](https://github.com/grafana/grafana/issues/68813), [@gillesdemey](https://github.com/gillesdemey)
- **Datasources:** Deprecate and log creating/updating datasources with invalid UIDs. [#68800](https://github.com/grafana/grafana/issues/68800), [@xnyo](https://github.com/xnyo)
- **Tracing:** Upgrade tracing data source configuration editors. [#68764](https://github.com/grafana/grafana/issues/68764), [@joey-grafana](https://github.com/joey-grafana)
- **Loki:** Preserve pre-selected labels in the log context UI. [#68700](https://github.com/grafana/grafana/issues/68700), [@ivanahuckova](https://github.com/ivanahuckova)
- **NestedFolders:** Improve performance of Browse Dashboards by loading one page at a time. [#68617](https://github.com/grafana/grafana/issues/68617), [@joshhunt](https://github.com/joshhunt)
- **Plugins:** Add a new UI Extension type. [#68600](https://github.com/grafana/grafana/issues/68600), [@leventebalogh](https://github.com/leventebalogh)
- **StateTimeline:** Support hideFrom field config. [#68586](https://github.com/grafana/grafana/issues/68586), [@ryantxu](https://github.com/ryantxu)
- **Chore:** Remove alpha icon panel. [#68573](https://github.com/grafana/grafana/issues/68573), [@nmarrs](https://github.com/nmarrs)
- **PublicDashboards:** Support timezone on query API. [#68560](https://github.com/grafana/grafana/issues/68560), [@evictorero](https://github.com/evictorero)
- **API:** Add deprecation notice for updating folder UID. [#68543](https://github.com/grafana/grafana/issues/68543), [@papagian](https://github.com/papagian)
- **Accessibility:** Make QueryOptions in Phlare and Parca accessible. [#68515](https://github.com/grafana/grafana/issues/68515), [@joey-grafana](https://github.com/joey-grafana)
- **Chore:** Test datasource to support template $seriesIndex in label values. [#68497](https://github.com/grafana/grafana/issues/68497), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Loki:** Add functionality to revert to initial query in log context. [#68484](https://github.com/grafana/grafana/issues/68484), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Reorder new alert and export buttons. [#68418](https://github.com/grafana/grafana/issues/68418), [@VikaCep](https://github.com/VikaCep)
- **Accessibility:** Prevent TimePickerContent overflowing page height. [#68356](https://github.com/grafana/grafana/issues/68356), [@ashharrison90](https://github.com/ashharrison90)
- **Build:** Update plugin installation in custom Dockerfile. [#68310](https://github.com/grafana/grafana/issues/68310), [@hoptical](https://github.com/hoptical)
- **Alerting:** Enable alerts preview on notification policies page. [#68291](https://github.com/grafana/grafana/issues/68291), [@konrad147](https://github.com/konrad147)
- **Accessibility:** Adds aria tags to VizTooltip so screen readers announce them. [#68247](https://github.com/grafana/grafana/issues/68247), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **Breadcrumbs:** Don't add breadcrumb for the current tab. [#68230](https://github.com/grafana/grafana/issues/68230), [@torkelo](https://github.com/torkelo)
- **NewsDrawer:** Add grot to news drawer (after news items) . [#68173](https://github.com/grafana/grafana/issues/68173), [@torkelo](https://github.com/torkelo)
- **Tempo:** Integrate scoped tags API. [#68106](https://github.com/grafana/grafana/issues/68106), [@joey-grafana](https://github.com/joey-grafana)
- **Auth:** Use PKCE by default (If OAuth provider supports PKCE). [#68095](https://github.com/grafana/grafana/issues/68095), [@arukiidou](https://github.com/arukiidou)
- **Accessibility:** Add `Skip to content` link. [#68065](https://github.com/grafana/grafana/issues/68065), [@ashharrison90](https://github.com/ashharrison90)
- **Auth:** Add alpha version of the Extended JWT client . [#67999](https://github.com/grafana/grafana/issues/67999), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Add option for memberlist label. [#67982](https://github.com/grafana/grafana/issues/67982), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **Breadcrumbs:** Improve responsiveness. [#67955](https://github.com/grafana/grafana/issues/67955), [@torkelo](https://github.com/torkelo)
- **PluginExtensions:** Expose scopedVars via the context to plugins that extends the dashboard panel menu. [#67917](https://github.com/grafana/grafana/issues/67917), [@mckn](https://github.com/mckn)
- **Trace View:** Rename span detail attribute sections. [#67849](https://github.com/grafana/grafana/issues/67849), [@adrapereira](https://github.com/adrapereira)
- **Chore:** Upgrade Go to 1.20.4. [#67748](https://github.com/grafana/grafana/issues/67748), [@papagian](https://github.com/papagian)
- **Correlations:** Add links to prometheus dataframe where labels are split out. [#67736](https://github.com/grafana/grafana/issues/67736), [@gelicia](https://github.com/gelicia)
- **Theme:** Change dark theme borders to improve contrast on primary background. [#67699](https://github.com/grafana/grafana/issues/67699), [@torkelo](https://github.com/torkelo)
- **Alerting:** Refactor the ImageStore/Provider to provide image URL/bytes. [#67693](https://github.com/grafana/grafana/issues/67693), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Allow to tab onto elements for a11y. [#67684](https://github.com/grafana/grafana/issues/67684), [@VikaCep](https://github.com/VikaCep)
- **Grafana:** Upgrades mysql images from 5.7 to 8. [#67604](https://github.com/grafana/grafana/issues/67604), [@owensmallwood](https://github.com/owensmallwood)
- **Chore:** Bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.1. [#67584](https://github.com/grafana/grafana/issues/67584)
- **Frontend logging:** Remove Sentry javascript agent support. [#67493](https://github.com/grafana/grafana/issues/67493), [@domasx2](https://github.com/domasx2)
- **HTTP:** Add TLS version configurability for grafana server. [#67482](https://github.com/grafana/grafana/issues/67482), [@venkatbvc](https://github.com/venkatbvc)
- **NestedFolders:** Use new Browse Dashboards UI behind feature flag. [#67416](https://github.com/grafana/grafana/issues/67416), [@joshhunt](https://github.com/joshhunt)
- **CloudWatch:** Remove dynamic labels feature toggle. [#67371](https://github.com/grafana/grafana/issues/67371), [@fridgepoet](https://github.com/fridgepoet)
- **Suggestions:** Prioritize preferred visualizations for suggestion list. [#67326](https://github.com/grafana/grafana/issues/67326), [@sarahzinger](https://github.com/sarahzinger)
- **Explore:** Allow the use of plugin panels. [#66982](https://github.com/grafana/grafana/issues/66982), [@Umaaz](https://github.com/Umaaz)
- **Grafana/ui:** Add UserIcon and UsersIndicator components. [#66906](https://github.com/grafana/grafana/issues/66906), [@Clarity-89](https://github.com/Clarity-89)
- **Connections:** Simplify connections nav. [#66813](https://github.com/grafana/grafana/issues/66813), [@torkelo](https://github.com/torkelo)
- **Variables:** Add support for `$__timezone` template variable. [#66785](https://github.com/grafana/grafana/issues/66785), [@VictorColomb](https://github.com/VictorColomb)
- **Design System:** Refactor IconButton and update documentation. [#66774](https://github.com/grafana/grafana/issues/66774), [@L-M-K-B](https://github.com/L-M-K-B)
- **CloudWatch:** Update metric stat editor to match aws statistics. [#66532](https://github.com/grafana/grafana/issues/66532), [@sladyn98](https://github.com/sladyn98)
- **Chore:** Replace go-multierror with errors package. [#66432](https://github.com/grafana/grafana/issues/66432), [@iSatVeerSingh](https://github.com/iSatVeerSingh)
- **Explore:** Make toolbar action extendable by plugins. [#65524](https://github.com/grafana/grafana/issues/65524), [@mckn](https://github.com/mckn)
- **Loki:** Add the ability to prettify logql queries. [#64337](https://github.com/grafana/grafana/issues/64337), [@gwdawson](https://github.com/gwdawson)
- **TimeSeries / StateTimeline:** Add support for rendering enum fields. [#64179](https://github.com/grafana/grafana/issues/64179), [@leeoniya](https://github.com/leeoniya)
- **Elasticsearch:** Improve query type selection. [#63402](https://github.com/grafana/grafana/issues/63402), [@gabor](https://github.com/gabor)
- **Metrics:** Update Help to mention active viewers. [#63384](https://github.com/grafana/grafana/issues/63384), [@monteiro-renato](https://github.com/monteiro-renato)
- **MySQL:** Add option to allow cleartext passwords. [#63232](https://github.com/grafana/grafana/issues/63232), [@enginecan](https://github.com/enginecan)
- **Platform:** Add support for Postgresql pgpass file. [#61517](https://github.com/grafana/grafana/issues/61517), [@gjacquet](https://github.com/gjacquet)
- **ServiceAccounts:** Add secret scan service docs. [#57926](https://github.com/grafana/grafana/issues/57926), [@Jguer](https://github.com/Jguer)
- **Azure:** Configuration for user identity authentication in datasources (Experimental). [#50277](https://github.com/grafana/grafana/issues/50277), [@kostrse](https://github.com/kostrse)
- **Mysql Tests:** Mysql5.7 integration tests, use utf8mb4 charset. (Enterprise)
- **RBAC:** Validate provided Action for Create/Update Role. (Enterprise)
- **Reports:** Activate draft reports. (Enterprise)
- **Grafana:** Upgrades mysql images from 5.7 to 8. (Enterprise)
- **Usage Insights:** Use the insights components from grafana/ui. (Enterprise)
### Bug fixes
- **DataSourceProxy:** Fix url validation error handling. [#73322](https://github.com/grafana/grafana/issues/73322), [@ricci2511](https://github.com/ricci2511)
- **AzureMonitor:** Allow `serviceTags` and `tags` to be empty for trace results. [#73197](https://github.com/grafana/grafana/issues/73197), [@aangelisc](https://github.com/aangelisc)
- **UserSync:** Avoid UpdateLastSeenAt with invalid user ids. [#72784](https://github.com/grafana/grafana/issues/72784), [@ryantxu](https://github.com/ryantxu)
- **Nested folders:** Fix search query for empty self-contained permissions. [#72733](https://github.com/grafana/grafana/issues/72733), [@papagian](https://github.com/papagian)
- **Auth:** Lock down Grafana admin role updates if the role is externally synced. [#72691](https://github.com/grafana/grafana/issues/72691), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **DS Picker:** Ignore capitalization when sorting dropdown list. [#72668](https://github.com/grafana/grafana/issues/72668), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Logs:** Fix ui getting stuck when removing fields. [#72603](https://github.com/grafana/grafana/issues/72603), [@ivanahuckova](https://github.com/ivanahuckova)
- **Data sources:** Dashboards page now loads correctly from direct url. [#72495](https://github.com/grafana/grafana/issues/72495), [@ashharrison90](https://github.com/ashharrison90)
- **Provisioning:** Fix overwrite SecureJSONData on provisioning. [#72455](https://github.com/grafana/grafana/issues/72455), [@oshirohugo](https://github.com/oshirohugo)
- **Loki:** Run logs volume for query when switching from trace to logs. [#72268](https://github.com/grafana/grafana/issues/72268), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix refetching grafana rules on alert list panel. [#72242](https://github.com/grafana/grafana/issues/72242), [@konrad147](https://github.com/konrad147)
- **Alerting:** Fix contact point testing with secure settings. [#72235](https://github.com/grafana/grafana/issues/72235), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Exclude expression refIDs from NoData state. [#72219](https://github.com/grafana/grafana/issues/72219), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Fix state manager to not keep datasource_uid and ref_id labels in state after Error. [#72216](https://github.com/grafana/grafana/issues/72216), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Dashboards:** Fix small drop target for importing dashboards. [#72170](https://github.com/grafana/grafana/issues/72170), [@kunxl-gg](https://github.com/kunxl-gg)
- **TimeSeries:** Fix zoom not working after editing panel. [#72163](https://github.com/grafana/grafana/issues/72163), [@leeoniya](https://github.com/leeoniya)
- **Dashboard:** New Datasource picker link is keyboard accessible. [#72134](https://github.com/grafana/grafana/issues/72134), [@polibb](https://github.com/polibb)
- **CloudMonitoring:** Correctly set title and text fields for annotations. [#71888](https://github.com/grafana/grafana/issues/71888), [@aangelisc](https://github.com/aangelisc)
- **AzureMonitor:** Fix ResourcePicker hanging. [#71886](https://github.com/grafana/grafana/issues/71886), [@asimpson](https://github.com/asimpson)
- **Fix:** Hide Forward OAuth Identity toggle when azure auth is enabled. [#71640](https://github.com/grafana/grafana/issues/71640), [@itsmylife](https://github.com/itsmylife)
- **Flamegraph:** Fix wrong positioning of tooltip in dashboards. [#71396](https://github.com/grafana/grafana/issues/71396), [@aocenas](https://github.com/aocenas)
- **Dashboards:** Save tags on dashboard creation. [#71394](https://github.com/grafana/grafana/issues/71394), [@evictorero](https://github.com/evictorero)
- **A11y:** Fix keyboard accessibility in LayerDragDropList. [#71386](https://github.com/grafana/grafana/issues/71386), [@Develer](https://github.com/Develer)
- **DataLinks:** Fix bug where links which used built in variables could be hidden. [#71372](https://github.com/grafana/grafana/issues/71372), [@aocenas](https://github.com/aocenas)
- **LogContext:** Fix a bug where multiple logs with similar nanosecond timestamps were loaded too often. [#71319](https://github.com/grafana/grafana/issues/71319), [@svennergr](https://github.com/svennergr)
- **Dashboard:** Slider overlapping with right input field. [#71282](https://github.com/grafana/grafana/issues/71282), [@Develer](https://github.com/Develer)
- **Alerting:** Support spaces in alert names for creating silence links. [#71280](https://github.com/grafana/grafana/issues/71280), [@gillesdemey](https://github.com/gillesdemey)
- **Swagger:** Fix response for the search users endpoint. [#71272](https://github.com/grafana/grafana/issues/71272), [@papagian](https://github.com/papagian)
- **Auth:** Fix US gov azure ad oauth URL parsing. [#71254](https://github.com/grafana/grafana/issues/71254), [@douglasryanadams](https://github.com/douglasryanadams)
- **SSE:** DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData). [#71246](https://github.com/grafana/grafana/issues/71246), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **PanelChrome:** Fixes issues with hover header and resizing panel above. [#71040](https://github.com/grafana/grafana/issues/71040), [@torkelo](https://github.com/torkelo)
- **Dashboard:** Add suggestion box for Flame Graph. [#70763](https://github.com/grafana/grafana/issues/70763), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Slug:** Use urlencoding to support non-ASCII characters. [#70691](https://github.com/grafana/grafana/issues/70691), [@sakjur](https://github.com/sakjur)
- **Checkbox:** Fix alignment in Safari. [#70673](https://github.com/grafana/grafana/issues/70673), [@ashharrison90](https://github.com/ashharrison90)
- **Alerting:** Fixes clone url for instances hosted on sub path. [#70543](https://github.com/grafana/grafana/issues/70543), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Support concurrent queries for saving alert instances. [#70525](https://github.com/grafana/grafana/issues/70525), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Dashboards:** Allow dashboards with same name in different folders. [#70378](https://github.com/grafana/grafana/issues/70378), [@joshhunt](https://github.com/joshhunt)
- **Query:** Fix concurrency handling for mixed datasource queries. [#70100](https://github.com/grafana/grafana/issues/70100), [@mmandrus](https://github.com/mmandrus)
- **Alerting:** Allow executing "hidden" queries. [#70064](https://github.com/grafana/grafana/issues/70064), [@gillesdemey](https://github.com/gillesdemey)
- **EchoBackend:** Make EchoSrvTransport batched. [#70012](https://github.com/grafana/grafana/issues/70012), [@kpelelis](https://github.com/kpelelis)
- **CodeEditor:** Ensure suggestions only apply to the instance of the editor that registered them. [#69995](https://github.com/grafana/grafana/issues/69995), [@ashharrison90](https://github.com/ashharrison90)
- **NestedFolders:** Ensure `New dashboard` page has the correct breadcrumb hierarchy. [#69758](https://github.com/grafana/grafana/issues/69758), [@ashharrison90](https://github.com/ashharrison90)
- **Transformations:** Config overrides being lost when config from query transform is applied. [#69720](https://github.com/grafana/grafana/issues/69720), [@IbrahimCSAE](https://github.com/IbrahimCSAE)
- **Azure:** Fix Kusto auto-completion for Azure datasources. [#69685](https://github.com/grafana/grafana/issues/69685), [@aangelisc](https://github.com/aangelisc)
- **Loki:** Fix parsing of escaped quotes in LogQL. [#69584](https://github.com/grafana/grafana/issues/69584), [@svennergr](https://github.com/svennergr)
- **Loki:** Fix showing of correct line limit in options. [#69572](https://github.com/grafana/grafana/issues/69572), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix notification policies inheritance algorithm. [#69304](https://github.com/grafana/grafana/issues/69304), [@gillesdemey](https://github.com/gillesdemey)
- **Checkbox:** Fix extraneous right hand margin when no label is present. [#68885](https://github.com/grafana/grafana/issues/68885), [@ashharrison90](https://github.com/ashharrison90)
- **Preferences:** Can reset timezone preference back to default correctly. [#68881](https://github.com/grafana/grafana/issues/68881), [@ashharrison90](https://github.com/ashharrison90)
- **Azuremonitor:** Multi resource fix. [#68759](https://github.com/grafana/grafana/issues/68759), [@bossinc](https://github.com/bossinc)
- **AzureMonitor:** Support multi-resource aliases and subscription aliases. [#68648](https://github.com/grafana/grafana/issues/68648), [@aangelisc](https://github.com/aangelisc)
- **Revert:** Allow editors to access GET /datasources. [#68632](https://github.com/grafana/grafana/issues/68632), [@eleijonmarck](https://github.com/eleijonmarck)
- **MySQL:** Use transaction_isolation instead of tx_isolation. [#68575](https://github.com/grafana/grafana/issues/68575), [@owensmallwood](https://github.com/owensmallwood)
- **Logs:** Change logic creating uid in LogRowModel. [#68569](https://github.com/grafana/grafana/issues/68569), [@ivanahuckova](https://github.com/ivanahuckova)
- **Dashboard:** Re-align Save form. [#68565](https://github.com/grafana/grafana/issues/68565), [@polibb](https://github.com/polibb)
- **Elasticsearch:** Implement filter query to not run hidden queries trough backend. [#68563](https://github.com/grafana/grafana/issues/68563), [@ivanahuckova](https://github.com/ivanahuckova)
- **Elasticsearch:** Fix passing of limit and datalinks to logs data frame. [#68554](https://github.com/grafana/grafana/issues/68554), [@ivanahuckova](https://github.com/ivanahuckova)
- **Dashboards:** Improve delete dashboard performance due to slow annotations query. [#68544](https://github.com/grafana/grafana/issues/68544), [@17billion](https://github.com/17billion)
- **Elasticsearch:** Handle no-index case in backend mode. [#68534](https://github.com/grafana/grafana/issues/68534), [@gabor](https://github.com/gabor)
- **GrafanaUI:** Support Tooltip as Dropdown child. [#68521](https://github.com/grafana/grafana/issues/68521), [@joshhunt](https://github.com/joshhunt)
- **Node graph:** Fix req/s in value. [#68441](https://github.com/grafana/grafana/issues/68441), [@domasx2](https://github.com/domasx2)
- **FlameGraph:** Debounce search update preventing too frequent rerenders . [#68405](https://github.com/grafana/grafana/issues/68405), [@aocenas](https://github.com/aocenas)
- **Settings:** Add ability to override `skip_org_role_sync` with Env variables. [#68364](https://github.com/grafana/grafana/issues/68364), [@eleijonmarck](https://github.com/eleijonmarck)
- **DarkTheme:** Fix dark theme shadows. [#68358](https://github.com/grafana/grafana/issues/68358), [@torkelo](https://github.com/torkelo)
- **Heatmap:** Fix color rendering for value ranges &lt; 1. [#68156](https://github.com/grafana/grafana/issues/68156), [@leeoniya](https://github.com/leeoniya)
- **AzureMonitor:** Clear queries if header value changes. [#67916](https://github.com/grafana/grafana/issues/67916), [@aangelisc](https://github.com/aangelisc)
- **AzureMonitor:** Fix logs query multi-resource and timespan values. [#67914](https://github.com/grafana/grafana/issues/67914), [@aangelisc](https://github.com/aangelisc)
- **CloudWatch:** Use grafana-aws-sdk v0.15.0. [#67876](https://github.com/grafana/grafana/issues/67876), [@iwysiu](https://github.com/iwysiu)
- **Datasource:** Fix missing raw SQL query in Query Inspector when query returns zero rows. [#67844](https://github.com/grafana/grafana/issues/67844), [@baldm0mma](https://github.com/baldm0mma)
- **LibraryPanels:** Don't include ScopedVars with persisted model. [#67843](https://github.com/grafana/grafana/issues/67843), [@kaydelaney](https://github.com/kaydelaney)
- **Elasticsearch:** Fix processing of logs with not-recognized time format. [#67767](https://github.com/grafana/grafana/issues/67767), [@ivanahuckova](https://github.com/ivanahuckova)
- **Google Cloud Monitor:** Fix mem usage for dropdown. [#67683](https://github.com/grafana/grafana/issues/67683), [@asimpson](https://github.com/asimpson)
- **Cloudwatch Logs:** Ignore non-time grouping fields in expressions and alerts. [#67608](https://github.com/grafana/grafana/issues/67608), [@iwysiu](https://github.com/iwysiu)
- **Correlations:** Enable traceView formatted links. [#67160](https://github.com/grafana/grafana/issues/67160), [@gelicia](https://github.com/gelicia)
- **SQL Datasources:** Reinstate SQL data source behavior around database selection when default configured databases already exist. [#65659](https://github.com/grafana/grafana/issues/65659), [@baldm0mma](https://github.com/baldm0mma)
- **API:** Fix status code when starring already starred dashboard. [#63478](https://github.com/grafana/grafana/issues/63478), [@MTLChrisLEE](https://github.com/MTLChrisLEE)
- **Dashboard:** Update query group options. [#63138](https://github.com/grafana/grafana/issues/63138), [@songhn233](https://github.com/songhn233)
### Breaking changes
This change impacts all instances that use external authentication providers to manage users and organization role assignments.
From Grafana 10.1, it will no longer be possible to manually update organization roles (Viewer, Editor and Admin) that are managed by an external auth provider. We are making this change to clearly separate between roles managed by an external auth provider and manually assigned roles, which increases security and clarity around role management.
If you prefer to manually set user organization roles, use `skip_org_role_sync` option in the Grafana configuration file of your OAuth provider.
Refer to the [release notes of Grafana 9.5](https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v9-5/#auth-lock-organization-roles-synced-from-auth-providers) for context on the previous work done to build up to this change. Issue [#72204](https://github.com/grafana/grafana/issues/72204)
This change impacts GitHub OAuth, Gitlab OAuth, Okta OAuth and Generic OAuth
Currently if no organization role mapping is found for a user when connecting via OAuth, Grafana doesnt update the users organization role.
With Grafana 10.1, on every login, if the role_attribute_path property does not return a role, then the user is assigned the role specified by [the auto_assign_org_role option](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#auto_assign_org_role).
To avoid overriding manually set roles, enable the `skip_org_role_sync` option in the Grafana configuration for your OAuth provider. Issue [#70766](https://github.com/grafana/grafana/issues/70766)
InfluxDB backend parser returns incompatible data with frontend. The data was being parsed by frontend and we moving towards migrating InfluxDB fully backend. One caveat is Frontend is generating data frames with fields `Time` and `Value`. The backend parser, however, generates `time` and `value`. This is causing issues and inconsistencies for the features (i.e. transformations) relying on those. In order to have a unique approach we choose to support what most of the users already have. Existing Transformations that depend on `time` fields have to be updated to use `Time` fields. Issue [#69865](https://github.com/grafana/grafana/issues/69865)
For accessibility reasons `tooltip` or `aria-label` are now required properties for `IconButton`. In order to continue to use `IconButton`, you must ensure all `IconButton` components have a corresponding tooltip or aria-label text. The tooltip text will also be used as the aria-label if you didn't set one separately. In case you add an aria-label the IconButton will not show a tooltip. Issue [#69699](https://github.com/grafana/grafana/issues/69699)
The implementation for template macro `${__series.name}` was not always correct, resulting in an interpolation that was very different from the series name displayed in the visualization. We have now fixed this issue so that it does show the same name. Depending on how `${__series.name}` is used this could result in a minor breaking change. Issue [#69621](https://github.com/grafana/grafana/issues/69621)
The data source template variable type has changed the way it represents its options. The `text` field still represents the data source name, but the `value` has been changed to the `uid` of the data source. This allows dashboards to declare the currently selected option by `uid`, however it changes how a datasource template variable value will be rendered by default. If the name of the data source is expected, the variable syntax will have to be changed to specify the [text format](https://grafana.com/docs/grafana/latest/dashboards/variables/variable-syntax/#text).
For example, given a data source variable (datasourceVariable), the following string:
```
${datasourceVariable}<br/>
Name: ${datasourceVariable:text}<br/>
UID: ${datasourceVariable:raw}
```
was previously interpolated as:
```
grafanacloud-k8smonitoring-prom
Name: grafanacloud-k8smonitoring-prom
UID: grafanacloud-k8smonitoring-prom
```
After these changes, it's interpolated as:
```
d7bbe725-9e48-4af8-a0cb-6cb255d873a3
Name: grafanacloud-k8smonitoring-prom
UID: d7bbe725-9e48-4af8-a0cb-6cb255d873a3
```
Any dashboards that are relying on the data source name being returned by `${datasourceVariable}` will have to update all their usages to `${datasourceVariable:text}` in order to get the previous behavior.
Affected use cases:
- Using `${datasourceVariable}` to display the data source name in text panel or in the panel title.
- Using `${datasourceVariable}` to use the data source name as part of the query content.
Unaffected use cases:
- Using the `${datasourceVariable}` to choose which data source to use for a query (through its data source picker) will not be affected since it can use both the name and the uid Issue [#69259](https://github.com/grafana/grafana/issues/69259)
We are changing the logic that creates `uid` in `LogRowModel`. Previously, for `uid` we used `id` field from log's data frame. Unfortunately, when users run multiple queries that returned duplicate logs data, `uid` was not unique which was causing bugs. To make `uid` unique across multiple queries that return duplicate logs data, we are now prepending `uid` with `refId` of query that produced the log line. We recommend not to rely on `LogRowModel` `uid` and instead use `dataFrame` `id` field. Issue [#68569](https://github.com/grafana/grafana/issues/68569)
The deprecated support for monitoring Grafana frontend using Sentry javascript agent has been removed in this release. If you have frontend logging enabled and are sending telemetry to Sentry by setting `sentry_dsn` configuration property, this will no longer work. Otherwise, if frontend logging is enabled, it will now automatically use Grafana Faro agent. Issue [#67493](https://github.com/grafana/grafana/issues/67493)
### Deprecations
The query parameter of Explore's `SplitOpen` function is deprecated (passed in `mapInternalLinkToExplore`). Please use the `queries` parameter instead, which allows passing multiple queries to `SplitOpen` function. To pass a single query to `SplitOpen` function, set the `queries` parameter to an array containing that single query.
Fixes: https://github.com/grafana/grafana/issues/62567 Issue [#71484](https://github.com/grafana/grafana/issues/71484)
Starting with 10.0, changing the folder UID is deprecated. It will be removed in a future release. Please avoid using it because it can result in folder losing its permissions. Issue [#68543](https://github.com/grafana/grafana/issues/68543)
### Plugin development fixes & changes
- **GrafanaUI:** Define tooltip or aria-label as required for IconButton. [#69699](https://github.com/grafana/grafana/issues/69699), [@L-M-K-B](https://github.com/L-M-K-B)
- **Select:** Performance improvements when opening menu and when hovering over options. [#69230](https://github.com/grafana/grafana/issues/69230), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **ConfirmModal:** Ignore case for confirmation text. [#69000](https://github.com/grafana/grafana/issues/69000), [@ashharrison90](https://github.com/ashharrison90)
- **Grafana/ui:** Fix margin in RadioButtonGroup option when only icon is present. [#68899](https://github.com/grafana/grafana/issues/68899), [@aocenas](https://github.com/aocenas)
<!-- 10.1.0 END -->
<!-- 10.0.4 START -->
# 10.0.4 (2023-08-22)
### Features and enhancements
- **Usage stats:** Tune collector execution startup and interval. [#72789](https://github.com/grafana/grafana/issues/72789), [@papagian](https://github.com/papagian)
- **Prometheus:** Add present_over_time syntax highlighting. [#72368](https://github.com/grafana/grafana/issues/72368), [@arnaudlemaignen](https://github.com/arnaudlemaignen)
- **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)
- **AzureMonitor:** Fix ResourcePicker hanging. [#72357](https://github.com/grafana/grafana/issues/72357), [@asimpson](https://github.com/asimpson)
- **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-18)

View File

@@ -64,6 +64,7 @@ COPY pkg pkg
COPY scripts scripts
COPY conf conf
COPY .github .github
COPY LICENSE ./
ENV COMMIT_SHA=${COMMIT_SHA}
ENV BUILD_BRANCH=${BUILD_BRANCH}
@@ -110,7 +111,7 @@ RUN if grep -i -q alpine /etc/issue; then \
elif grep -i -q ubuntu /etc/issue; then \
DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y ca-certificates curl tzdata && \
apt-get install -y ca-certificates curl tzdata musl && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*; \
else \
@@ -165,6 +166,7 @@ RUN if [ ! $(getent group "$GF_GID") ]; then \
COPY --from=go-src /tmp/grafana/bin/grafana* /tmp/grafana/bin/*/grafana* ./bin/
COPY --from=js-src /tmp/grafana/public ./public
COPY --from=go-src /tmp/grafana/LICENSE ./
EXPOSE 3000

View File

@@ -1059,6 +1059,9 @@ ha_redis_prefix =
# provided, a random one will be generated.
ha_redis_peer_name =
# The maximum number of simultaneous redis connections.
ha_redis_max_conns = 5
# Listen address/hostname and port to receive unified alerting messages for other Grafana instances. The port is used for both TCP and UDP. It is assumed other Grafana instances are also running on the same port.
ha_listen_address = "0.0.0.0:9094"

View File

@@ -1,4 +0,0 @@
FROM nginx:1.19.3-alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY htpasswd /etc/nginx/htpasswd

View File

@@ -5,5 +5,11 @@
# root_url = %(protocol)s://%(domain)s:10080/grafana/
nginxproxy:
build: docker/blocks/auth/nginx_proxy
network_mode: host
image: nginx:1.24-alpine
volumes:
- "./docker/blocks/auth/nginx_proxy/nginx.conf:/etc/nginx/nginx.conf"
- "./docker/blocks/auth/nginx_proxy/htpasswd:/etc/nginx/htpasswd"
ports:
- "8090:8090"
extra_hosts:
- "host.docker.internal:host-gateway"

View File

@@ -4,14 +4,20 @@ http {
sendfile on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
server {
listen 10080;
listen 8090;
###############################################################
# Location is under the sub path /grafana/. We need to update the
# config.ini file accordingly.
# [server]
# root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
###############################################################
location /grafana/ {
################################################################
# Enable these settings to test with basic auth and an auth proxy header
@@ -19,8 +25,10 @@ http {
# user1: grafana and user2: grafana
################################################################
# auth_basic "Restricted Content";
# auth_basic_user_file /etc/nginx/htpasswd;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/htpasswd;
# Remove the authentication header meant for NGINX
proxy_set_header "Authorization" "";
################################################################
# To use the auth proxy header, set the following in custom.ini:
@@ -28,11 +36,12 @@ http {
# enabled = true
# header_name = X-WEBAUTH-USER
# header_property = username
# enable_login_token = false
################################################################
# proxy_set_header X-WEBAUTH-USER $remote_user;
proxy_set_header X-WEBAUTH-USER $remote_user;
proxy_pass http://localhost:3000/;
proxy_pass http://host.docker.internal:3000/;
}
}
}
}

View File

@@ -10,7 +10,7 @@ http {
proxy_set_header X-Forwarded-Host $server_name;
server {
listen 10080;
listen 8090;
location /grafana/ {
################################################################
@@ -26,17 +26,18 @@ http {
# enabled = true
# header_name = X-WEBAUTH-USER
# header_property = username
# enable_login_token = true
################################################################
location /grafana/login {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/htpasswd;
proxy_set_header X-WEBAUTH-USER $remote_user;
proxy_pass http://localhost:3000/login;
proxy_pass http://host.docker.internal:3000/login;
}
proxy_set_header Authorization "";
proxy_pass http://localhost:3000/;
proxy_pass http://host.docker.internal:3000/;
}
}
}

View File

@@ -76,7 +76,7 @@ docs-rm: ## Remove the docs container.
.PHONY: docs-pull
docs-pull: ## Pull documentation base image.
$(PODMAN) pull $(DOCS_IMAGE)
$(PODMAN) pull -q $(DOCS_IMAGE)
make-docs: ## Fetch the latest make-docs script.
make-docs:

View File

@@ -133,6 +133,21 @@ readonly WEBSITE_MOUNTS="${WEBSITE_MOUNTS:-}"
PODMAN="$(if command -v podman >/dev/null 2>&1; then echo podman; else echo docker; fi)"
if ! command -v curl >/dev/null 2>&1; then
if ! command -v wget >/dev/null 2>&1; then
errr 'either `curl` or `wget` must be installed for this script to work.'
exit 1
fi
fi
if ! command -v "${PODMAN}" >/dev/null 2>&1; then
errr 'either `podman` or `docker` must be installed for this script to work.'
exit 1
fi
about() {
cat <<EOF
Test documentation locally with multiple source repositories.
@@ -174,6 +189,7 @@ EOF
fi
SOURCES_as_code='as-code-docs'
SOURCES_beyla='ebpf-autoinstrument'
SOURCES_enterprise_metrics='backend-enterprise'
SOURCES_enterprise_metrics_='backend-enterprise'
SOURCES_grafana_cloud='website'
@@ -331,9 +347,10 @@ repo_path() {
done
unset IFS
echo "ERRR: could not find project '${_repo}' in any of the paths in REPOS_PATH '${REPOS_PATH}'." >&2
echo "NOTE: you must have a checkout of the project '${_repo}' at '${REPOS_PATH##:*}/${_repo}'." >&2
echo "NOTE: if you have cloned the repository into a directory with a different name, consider changing it to ${_repo}." >&2
errr "could not find project '${_repo}' in any of the paths in REPOS_PATH '${REPOS_PATH}'."
note "you must have a checkout of the project '${_repo}' at '${REPOS_PATH##:*}/${_repo}'."
note "if you have cloned the repository into a directory with a different name, consider changing it to ${_repo}."
unset _repo
exit 1
}
@@ -419,6 +436,50 @@ POSIX_HERESTRING
unset _project _version _repo _path
}
await_build() {
url="$1"
req="$(if command -v curl >/dev/null 2>&1; then echo 'curl -s -o /dev/null'; else echo 'wget -q'; fi)"
sleep 2
if ${req} "${url}"; then
echo
echo "View documentation locally:"
for x in ${url_src_dst_vers}; do
IFS='^' read -r url _ _ <<POSIX_HERESTRING
$x
POSIX_HERESTRING
if [ -n "${url}" ]; then
if [ "${_url}" != "arbitrary" ]; then
echo " ${url}"
fi
fi
done
echo
echo 'Press Ctrl+C to stop the server'
else
echo
errr 'The build was interrupted or a build error occurred, check the previous logs for possible causes.'
fi
unset url req
}
debg() {
if [ -n "${DEBUG}" ]; then
echo "DEBG: $1" >&2
fi
}
errr() {
echo "ERRR: $1" >&2
}
note() {
echo "NOTE: $1" >&2
}
url_src_dst_vers="$(url_src_dst_vers "$@")"
volumes=""
@@ -444,13 +505,14 @@ POSIX_HERESTRING
if [ "${_url}" != "arbitrary" ]; then
if [ ! -f "${_src}/_index.md" ]; then
echo "ERRR: Index file '${_src}/_index.md' does not exist." >&2
echo "Is '${_src}' the correct source directory?" >&2
errr "Index file '${_src}/_index.md' does not exist."
note "Is '${_src}' the correct source directory?"
exit 1
fi
fi
echo "DEBG: Mounting '${_src}' at container path '${_dst}'" >&2
debg "DEBG: Mounting '${_src}' at container path '${_dst}'"
if [ -z "${volumes}" ]; then
volumes="--volume=${_src}:${_dst}"
else
@@ -476,35 +538,35 @@ case "${image}" in
proj="$(new_proj "$1")"
echo
"${PODMAN}" run \
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
"--include=${DOC_VALIDATOR_INCLUDE}" \
"--skip-checks=${DOC_VALIDATOR_SKIP_CHECKS}" \
/hugo/content/docs \
"$(proj_canonical "${proj}")" | sed "s#$(proj_dst "${proj}")#sources#"
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
"--include=${DOC_VALIDATOR_INCLUDE}" \
"--skip-checks=${DOC_VALIDATOR_SKIP_CHECKS}" \
/hugo/content/docs \
"$(proj_canonical "${proj}")" | sed "s#$(proj_dst "${proj}")#sources#"
;;
'grafana/vale')
proj="$(new_proj "$1")"
echo
"${PODMAN}" run \
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
"--minAlertLevel=${VALE_MINALERTLEVEL}" \
--config=/etc/vale/.vale.ini \
--output=line \
/hugo/content/docs | sed "s#$(proj_dst "${proj}")#sources#"
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
"--minAlertLevel=${VALE_MINALERTLEVEL}" \
--config=/etc/vale/.vale.ini \
--output=line \
/hugo/content/docs | sed "s#$(proj_dst "${proj}")#sources#"
;;
*)
tempfile="$(mktemp -t make-docs.XXX)"
@@ -534,33 +596,38 @@ EOF
volumes="${volumes} --volume=${tempfile}:/entrypoint"
readonly volumes
echo
echo "Documentation will be served at the following URLs:"
for x in ${url_src_dst_vers}; do
IFS='^' read -r url _ _ <<POSIX_HERESTRING
$x
POSIX_HERESTRING
IFS='' read -r cmd <<EOF
${PODMAN} run \
--env=HUGO_REFLINKSERRORLEVEL=${HUGO_REFLINKSERRORLEVEL} \
--init \
--interactive \
--name=${DOCS_CONTAINER} \
--platform=linux/amd64 \
--publish=${DOCS_HOST_PORT}:3002 \
--publish=3003:3003 \
--rm \
--tty \
${volumes} \
${DOCS_IMAGE} \
/entrypoint
EOF
await_build http://localhost:3002 &
if [ -n "${url}" ]; then
if [ "${_url}" != "arbitrary" ]; then
echo " ${url}"
fi
fi
done
echo
"${PODMAN}" run \
--env "HUGO_REFLINKSERRORLEVEL=${HUGO_REFLINKSERRORLEVEL}" \
--init \
--interactive \
--name "${DOCS_CONTAINER}" \
--platform linux/amd64 \
--publish "${DOCS_HOST_PORT}:3002" \
--publish "3003:3003" \
--rm \
--tty \
${volumes} \
"${DOCS_IMAGE}" \
/entrypoint
if [ -n "${DEBUG}" ]; then
${cmd}
else
${cmd} 2>&1| sed \
-e '/Web Server is available at http:\/\/localhost:3003\/ (bind address 0.0.0.0)/ d' \
-e '/^hugo server/ d' \
-e '/fatal: not a git repository (or any parent up to mount point \/)/ d' \
-e '/Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)./ d' \
-e "/Makefile:[0-9]*: warning: overriding recipe for target 'docs'/ d" \
-e "/docs.mk:[0-9]*: warning: ignoring old recipe for target 'docs'/ d" \
-e '/\/usr\/bin\/make -j 2 proxy hserver-docs HUGO_PORT=3003/ d' \
-e '/website-proxy/ d' \
-e '/rm -rf dist*/ d' \
-e '/Press Ctrl+C to stop/ d' \
-e '/make/ d' || echo
fi
;;
esac

View File

@@ -74,8 +74,8 @@ title: Grafana documentation
<h4>Provisioning</h4>
<p>Learn how to automate your Grafana configuration.</p>
</a>
<a href="{{< relref "whatsnew/whats-new-in-v10-0/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v10</h4>
<a href="{{< relref "whatsnew/whats-new-in-v10-1/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v10.1</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>

View File

@@ -45,7 +45,7 @@ Applications, or _app plugins_, bundle data sources and panels to provide a cohe
Apps can also add custom pages for things like control panels.
Use app plugins when you want to create an custom out-of-the-box monitoring experience.
Use app plugins when you want an out-of-the-box monitoring experience.
### Managing app plugins access

View File

@@ -63,7 +63,10 @@ Define a query to get the data you want to measure and a condition that needs to
All alert rules are managed by Grafana by default. To switch to a data source-managed alert rule, click **Switch to data source-managed alert rule**.
1. Select a data source.
1. Select a data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source (Admins only).
1. Enter a PromQL or LogQL query.
1. Click **Preview alerts**.

View File

@@ -6,11 +6,11 @@ labels:
- cloud
- enterprise
- oss
title: Data sources
title: Data sources and Grafana Alerting
weight: 100
---
# Data sources
# Data sources and Grafana Alerting
There are a number of data sources that are compatible with Grafana Alerting. Each data source is supported by a plugin. You can use one of the built-in data sources listed below, use [external data source plugins](/grafana/plugins/?type=datasource), or create your own data source plugin.

View File

@@ -36,6 +36,7 @@ Since gossiping of notifications and silences uses both TCP and UDP port `9094`,
You must have at least one (1) Grafana instance added to the [`[ha_peer]` section.
3. Set `[ha_listen_address]` to the instance IP address using a format of `host:port` (or the [Pod's](https://kubernetes.io/docs/concepts/workloads/pods/) IP in the case of using Kubernetes).
By default, it is set to listen to all interfaces (`0.0.0.0`).
4. Set `[ha_peer_timeout]` in the `[unified_alerting]` section of the custom.ini to specify the time to wait for an instance to send a notification via the Alertmanager. The default value is 15s, but it may increase if Grafana servers are located in different geographic regions or if the network latency between them is high
## Enable alerting high availability using Kubernetes
@@ -101,4 +102,5 @@ enabled = true
ha_listen_address = "${POD_IP}:9094"
ha_peers = "grafana-alerting.grafana:9094"
ha_advertise_address = "${POD_IP}:9094"
ha_peer_timeout = 15s
```

View File

@@ -4,17 +4,17 @@ aliases:
- /docs/grafana-cloud/how-do-i/grafana-cloud-alerting/alertmanager/
- /docs/grafana-cloud/legacy-alerting/grafana-cloud-alerting/alertmanager/
canonical: https://grafana.com/docs/grafana/latest/alerting/set-up/migrating-alerts/legacy-alerting/grafana-cloud-alerting/alertmanager/
description: Alertmanager
description: Alertmanager (legacy)
labels:
products:
- cloud
- enterprise
- oss
title: Alertmanager
title: Alertmanager (legacy)
weight: 500
---
# Alertmanager
# Alertmanager (legacy)
Grafana Cloud Alerting allows you to edit and view configuration for your Alertmanager directly inside of Grafana. See the official [Alertmanager documentation](https://prometheus.io/docs/alerting/latest/configuration/) to learn how to configure.

View File

@@ -343,7 +343,7 @@ Here are some of the benefits of create-plugin:
- **Improved testing capabilities:** Testing plugins with @grafana/create-plugin is much easier with GitHub workflows that automate unit and e2e test runs whenever changes are pushed to GitHub.
- **Better documentation:** The [documentation](https://grafana.github.io/plugin-tools/docs/creating-a-plugin) for @grafana/create-plugin is more comprehensive and easier to discover than that of @grafana/toolkit.
- **Better documentation:** The [documentation](https://grafana.github.io/plugin-tools/docs/get-started/) for @grafana/create-plugin is more comprehensive and easier to discover than that of @grafana/toolkit.
#### Migration path
@@ -361,7 +361,7 @@ npx @grafana/create-plugin@latest migrate
#### Learn more
- [Migration guide](https://grafana.github.io/plugin-tools/docs/getting-started/migrating-from-toolkit/)
- [Migration guide](https://grafana.github.io/plugin-tools/docs/get-started/migrate-from-toolkit)
## Deprecations

View File

@@ -97,6 +97,9 @@ To add a new annotation query to a dashboard, take the following steps:
This name is given to the toggle (checkbox) that will allow you to enable/disable showing annotation events from this query.
1. Select the data source for the annotations.
You can also click **Open advanced data source picker** to see more options, including adding a data source (Admins only).
1. If you don't want to use the annotation query right away, clear the **Enabled** checkbox.
1. If you don't want the annotation query toggle to be displayed in the dashboard, select the **Hidden** checkbox.
1. Select a color for the event markers.

View File

@@ -101,7 +101,7 @@ Grafana dashboards can easily be exported and imported. For more information, re
You can generate and save PDF files of any dashboard.
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}).
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud](/docs/grafana-cloud/).
{{% /admonition %}}
1. Click **Dashboards** in the left-side menu.

View File

@@ -63,3 +63,6 @@ The following dashboards in Grafana Play provide examples of template variables:
- Variable drop-down lists are displayed in the order they are listed in the variable list in Dashboard settings.
- Put the variables that you will change often at the top, so they will be shown first (far left on the dashboard).
- By default, variables don't have a default value. This means that the topmost value in the drop-down is always preselected. If you want to pre-populate a variable with an empty value, you can use the following workaround in the variable settings:
1. Select the **Include All Option** checkbox.
2. In the **Custom all value** field, enter a value like `+`.

View File

@@ -145,7 +145,10 @@ Constant variables are useful when you have complex values that you need to incl
_Data source_ variables enable you to quickly change the data source for an entire dashboard. They are useful if you have multiple instances of a data source, perhaps in different environments.
1. [Enter general options](#enter-general-options).
1. In the **Type** list, select the target data source for the variable. For more information about data sources, refer to [Add a data source]({{< relref "../../../administration/data-source-management#add-a-data-source" >}}).
1. In the **Type** list, select the target data source for the variable.
You can also click **Open advanced data source picker** to see more options, including adding a data source (Admins only). For more information about data sources, refer to [Add a data source]({{< relref "../../../administration/data-source-management#add-a-data-source" >}}).
1. (Optional) In **Instance name filter**, enter a regex filter for which data source instances to choose from in the variable value drop-down list. Leave this field empty to display all instances.
1. (Optional) Enter [Selection Options]({{< relref "#configure-variable-selection-options" >}}).
1. In **Preview of values**, Grafana displays a list of the current variable values. Review them to ensure they match what you expect.
@@ -188,7 +191,10 @@ Ad hoc filter variables only work with Prometheus, Loki, InfluxDB, and Elasticse
{{% /admonition %}}
1. [Enter general options](#enter-general-options).
1. In the **Data source** list, select the target data source. For more information about data sources, refer to [Add a data source]({{< relref "../../../administration/data-source-management#add-a-data-source" >}}).
1. In the **Data source** list, select the target data source.
You can also click **Open advanced data source picker** to see more options, including adding a data source (Admins only). For more information about data sources, refer to [Add a data source]({{< relref "../../../administration/data-source-management#add-a-data-source" >}}).
1. Click **Add** to add the variable to the dashboard.
### Create ad hoc filters

View File

@@ -12,7 +12,7 @@ title: Data sources
weight: 60
---
# Data sources
# Grafana data sources
Grafana comes with built-in support for many _data sources_.
If you need other data sources, you can also install one of the many data source plugins.

View File

@@ -72,14 +72,20 @@ There are two ways to configure the trace to logs feature:
#### Use a simple configuration
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Set start and end time shift. Since the logs timestamps may not exactly match the timestamps of the spans in trace, it may be necessary to search in larger or shifted time range to find the desired logs.
1. Select which tags to use in the logs query. The tags you configure must be present in the spans attributes or resources for a trace to logs span link to appear. You can optionally configure a new name for the tag. This is useful if the tag has dots in the name and the target data source does not allow dots in labels. In that case, you can, for example, remap `http.status` to `http_status`.
1. Optionally, switch on the **Filter by trace ID** and/or **Filter by span ID** setting to further filter the logs if your logs consistently contain trace or span IDs.
#### Configure a custom query
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Set start and end time shift. Since the logs timestamps may not exactly match the timestamps of the spans in the trace, you may need to widen or shift the time range to find the desired logs.
1. Optionally, select tags to map. These tags can be used in the custom query with `${__tags}` variable. This variable will interpolate the mapped tags as a list in an appropriate syntax for the data source and will only include the tags that were present in the span omitting those that weren't present. You can optionally configure a new name for the tag. This is useful in cases where the tag has dots in the name and the target data source does not allow dots in labels. For example, you can remap `http.status` to `http_status`. If you don't map any tags here, you can still use any tag in the query like this `method="${__span.tags.method}"`.
1. Skip **Filter by trace ID** and **Filter by span ID** settings as these cannot be used with a custom query.
@@ -126,7 +132,10 @@ The **Trace to metrics** setting configures the [trace to metrics feature](/blog
To configure trace to metrics:
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Create any desired linked queries.
| Setting name | Description |

View File

@@ -488,7 +488,7 @@ ORDER BY atimestamp ASC
#### Disabling Quoting for Multi-value Variables
Grafana automatically creates a quoted, comma-separated string for multi-value variables. For example: if `server01` and `server02` are selected then it will be formatted as: `'server01', 'server02'`. Do disable quoting, use the csv formatting option for variables:
Grafana automatically creates a quoted, comma-separated string for multi-value variables. For example: if `server01` and `server02` are selected then it will be formatted as: `'server01', 'server02'`. To disable quoting, use the csv formatting option for variables:
`${servers:csv}`

View File

@@ -80,7 +80,7 @@ This setting supports the `$__interval` and `$__rate_interval` macros.
Switch between the following format options:
- **Time series** - The default time series format. See [Time series kind formats](https://grafana.github.io/dataplane/timeseries/) for information on time series data frames and how time and value fields are structured.
- **Time series** - The default time series format. See [Time series kind formats](https://grafana.com/developers/dataplane/timeseries/) for information on time series data frames and how time and value fields are structured.
- **Table** - This works only in a [Table panel][table].
- **Heatmap** - Displays metrics of the Histogram type on a [Heatmap panel][heatmap] by converting cumulative histograms to regular ones and sorting the series by the bucket bound.

View File

@@ -72,14 +72,20 @@ There are two ways to configure the trace to logs feature:
#### Use a simple configuration
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Set start and end time shift. As the logs timestamps may not exactly match the timestamps of the spans in trace it may be necessary to search in larger or shifted time range to find the desired logs.
1. Select which tags to use in the logs query. The tags you configure must be present in the spans attributes or resources for a trace to logs span link to appear. You can optionally configure a new name for the tag. This is useful for example if the tag has dots in the name and the target data source does not allow using dots in labels. In that case you can for example remap `http.status` to `http_status`.
1. Optionally switch on the **Filter by trace ID** and/or **Filter by span ID** setting to further filter the logs if your logs consistently contain trace or span IDs.
#### Configure a custom query
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Set start and end time shift. As the logs timestamps may not exactly match the timestamps of the spans in the trace it may be necessary to widen or shift the time range to find the desired logs.
1. Optionally select tags to map. These tags can be used in the custom query with `${__tags}` variable. This variable will interpolate the mapped tags as list in an appropriate syntax for the data source and will only include the tags that were present in the span omitting those that weren't present. You can optionally configure a new name for the tag. This is useful in cases where the tag has dots in the name and the target data source does not allow using dots in labels. For example, you can remap `http.status` to `http_status` in such a case. If you don't map any tags here, you can still use any tag in the query like this `method="${__span.tags.method}"`.
1. Skip **Filter by trace ID** and **Filter by span ID** settings as these cannot be used with a custom query.
@@ -126,7 +132,10 @@ The **Trace to metrics** setting configures the [trace to metrics feature](/blog
To configure trace to metrics:
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Create any desired linked queries.
| Setting name | Description |

View File

@@ -70,14 +70,20 @@ There are two ways to configure the trace to logs feature:
#### Use a simple configuration
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Set start and end time shift. As the logs timestamps may not exactly match the timestamps of the spans in trace it may be necessary to search in larger or shifted time range to find the desired logs.
1. Select which tags to use in the logs query. The tags you configure must be present in the spans attributes or resources for a trace to logs span link to appear. You can optionally configure a new name for the tag. This is useful if the tag has dots in the name and the target data source does not allow using dots in labels. In that case, you can for example remap `http.status` to `http_status`.
1. Optionally, switch on the **Filter by trace ID** and/or **Filter by span ID** setting to further filter the logs if your logs consistently contain trace or span IDs.
#### Configure a custom query
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Set start and end time shift. Since the logs timestamps may not exactly match the timestamps of the spans in the trace, you may need to widen or shift the time range to find the desired logs.
1. Optionally, select tags to map. These tags can be used in the custom query with `${__tags}` variable. This variable will interpolate the mapped tags as list in an appropriate syntax for the data source and will only include the tags that were present in the span omitting those that weren't present. You can optionally configure a new name for the tag. This is useful when the tag has dots in the name and the target data source does not allow using dots in labels. For example, you can remap `http.status` to `http_status`. If you don't map any tags here, you can still use any tag in the query like this `method="${__span.tags.method}"`.
1. Skip **Filter by trace ID** and **Filter by span ID** settings as these cannot be used with a custom query.
@@ -124,7 +130,10 @@ The **Trace to metrics** setting configures the [trace to metrics feature](/blog
To configure trace to metrics:
1. Select the target data source.
1. Select the target data source from the drop-down list.
You can also click **Open advanced data source picker** to see more options, including adding a data source.
1. Create any desired linked queries.
| Setting name | Description |

View File

@@ -68,6 +68,10 @@ Latest Version: 0.0.29 | Signature: Community | Last Updated: 2023
Latest Version: 0.2.4 | Signature: Commercial | Last Updated: 2022
{{% admonition type="warning" %}}
Guidance from the developer: This app is deprecated and will no longer be updated after December 31, 2023. Please consider using the [Cloudflare] Dashboard(https://dash.cloudflare.com/?to=/:account/:zone/analytics/dns) or [DNS Analytics API](https://developers.cloudflare.com/api/operations/dns-analytics-table) instead.
{{% /admonition %}}
### [GLPI](https://grafana.com/grafana/plugins/ddurieux-glpi-app)
Latest Version: 1.3.1 | Signature: Community | Last Updated: 2021
@@ -92,13 +96,9 @@ Latest Version: 1.6.2 | Signature: Grafana | Last Updated: 2023
Plugin should continue to work even if Angular is disabled, and a full removal of Angular related code is planned.
{{% /admonition %}}
### [Moogsoft AIOps](https://grafana.com/grafana/plugins/moogsoft-aiops-app)
Latest Version: 8.0.2 | Signature: Commercial | Last Updated: 2022
### [OpenNMS Helm](https://grafana.com/grafana/plugins/opennms-helm-app)
Latest Version: 8.0.4 | Signature: Community | Last Updated: 2023
Latest Version: 8.0.5 | Signature: Community | Last Updated: 2023
> **Migration available - plugin superseded:** The plugin has effectively been replaced with a [new plugin](https://grafana.com/grafana/plugins/opennms-opennms-app/) based on React.
@@ -298,14 +298,6 @@ Latest Version: 1.4.2 | Signature: Grafana | Last Updated: 2021
If you're looking for an example of a data source plugin to start from, refer to [grafana-starter-datasource-backend](https://github.com/grafana/grafana-starter-datasource-backend).
{{% /admonition %}}
### [Strava](https://grafana.com/grafana/plugins/grafana-strava-datasource/)
Latest Version: 1.5.1 | Signature: Grafana | Last Updated: 2022
{{% admonition type="note" %}}
Removal of any angular dependency is on the near term roadmap.
{{% /admonition %}}
### [openHistorian](https://grafana.com/grafana/plugins/gridprotectionalliance-openhistorian-datasource/)
Latest Version: 1.0.3 | Signature: Community | Last Updated: 2021
@@ -756,7 +748,7 @@ Latest Version: 0.0.7 | Signature: Community | Last Updated: 2021
Lack of recent activity in the [project repository](https://github.com/NatelEnergy/grafana-plotly-panel) in the past 2 years suggests project _may_ not be actively maintained.
{{% /admonition %}}
> **Migration available - potential alternative:** another plugin exists which provides similar capabilities - [nline-plotlyjs-panel/](https://grafana.com/grafana/plugins/nline-plotlyjs-panel/).
> **Migration available - potential alternative:** other plugins exist which provide similar capabilities - [nline-plotlyjs-panel](https://grafana.com/grafana/plugins/nline-plotlyjs-panel/) and [ae3e-plotly-panel](https://grafana.com/grafana/plugins/ae3e-plotly-panel/).
### [Cal-HeatMap](https://grafana.com/grafana/plugins/neocat-cal-heatmap-panel/)

View File

@@ -21,7 +21,7 @@ title: RBAC HTTP API
# RBAC API
> Role-based access control API is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "/docs/grafana/latest/introduction/grafana-enterprise" >}}).
> Role-based access control API is only available in Grafana Cloud or Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "/docs/grafana/latest/introduction/grafana-enterprise" >}}).
The API can be used to create, update, delete, get, and list roles.
@@ -533,7 +533,7 @@ Content-Type: application/json; charset=UTF-8
For example, if a user does not have required permissions for creating users, they won't be able to unassign a role which will allow to do that. This is done to prevent escalation of privileges.
| Action | Scope |
| ------------------ | ------------------------- |
| ------------------ | ------------------------- |
| users.roles:remove | permissions:type:delegate |
#### Query parameters

View File

@@ -61,10 +61,8 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
- **dashboard.id** id = null to create a new dashboard.
- **dashboard.uid** Optional unique identifier when creating a dashboard. uid = null will generate a new uid.
- **dashboard.refresh** - Set the dashboard refresh interval. If this is lower than [the minimum refresh interval]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana#min_refresh_interval" >}}), then Grafana will ignore it and will enforce the minimum refresh interval.
- **folderUid** The UID of the folder to save the dashboard in. Overrides the `folderId`.
- **folderId** The id of the folder to save the dashboard in.
- **folderUid** The UID of the folder to save the dashboard in. Overrides the `folderId`.
- **refresh** - Set the dashboard refresh interval. If this is lower than [the minimum refresh interval]({{< relref "/docs/grafana/latest/setup-grafana/configure-grafana#min_refresh_interval" >}}), then Grafana will ignore it and will enforce the minimum refresh interval.
- **overwrite** Set to true if you want to overwrite existing dashboard with newer version, same dashboard title in folder or same dashboard uid.
- **message** - Set a commit message for the version history.
@@ -73,169 +71,36 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```http
POST /api/dashboards/db HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=UTF-8
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 78
```
Content-Type: application/json; charset=UTF-8
Content-Length: 78
- **200** Created
- **400** Errors (invalid json, missing or invalid fields, etc)
```
Status Codes:
- **200** Created
- **400** Errors (invalid json, missing or invalid fields, etc)
- **412** Precondition failed
The **412** status code is used for explaining that you cannot create the dashboard and why.
There can be different reasons for this:
- The dashboard has been changed by someone else, `status=version-mismatch`
- A dashboard with the same name in the folder already exists, `status=name-exists`
- A dashboard with the same uid already exists, `status=name-exists`
- The dashboard belongs to plugin `<plugin title>`, `status=plugin-dashboard`
The response body will have the following properties:
```http
HTTP/1.1 412 Precondition Failed
Content-Type: application/json; charset=UTF-8
Content-Length: 97
```
In case of title already exists the `status` property will be `name-exists`.
## Get dashboard by uid
`GET /api/dashboards/uid/:uid`
Will return the dashboard given the dashboard unique identifier (uid). Information about the unique identifier of a folder containing the requested dashboard might be found in the metadata.
**Required permissions**
See note in the [introduction]({{< ref "#dashboard-api" >}}) for an explanation.
| Action | Scope |
| ----------------- | -------------- |
| `dashboards:read` | `dashboards:*` |
**Example Request**:
```http
GET /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
Status Codes:
- **200** Found
- **401** Unauthorized
- **403** Access denied
- **404** Not found
## Delete dashboard by uid
`DELETE /api/dashboards/uid/:uid`
Will delete the dashboard given the specified unique identifier (uid).
**Required permissions**
See note in the [introduction]({{< ref "#dashboard-api" >}}) for an explanation.
| Action | Scope |
| ------------------- | ----------------------------- |
| `dashboards:delete` | `dashboards:*`<br>`folders:*` |
**Example Request**:
```http
DELETE /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
Status Codes:
- **200** Deleted
- **401** Unauthorized
- **403** Access denied
- **404** Not found
## Gets the home dashboard
`GET /api/dashboards/home`
Will return the home dashboard.
**Example Request**:
```http
GET /api/dashboards/home HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
## Tags for Dashboard
`GET /api/dashboards/tags`
Get all tags of dashboards
**Example Request**:
```http
GET /api/dashboards/tags HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
- **401** Unauthorized
- **403** Access denied
- **412** Precondition failed
The **412** status code is used for explaining that you cannot create the dashboard and why.
There can be different reasons for this:
- The dashboard has been changed by someone else, `status=version-mismatch`
- A dashboard with the same name in the folder already exists, `status=name-exists`
- A dashboard with the same uid already exists, `status=name-exists`
- The dashboard belongs to plugin `<plugin title>`, `status=plugin-dashboard`
The response body will have the following properties:
```http
@@ -247,12 +112,12 @@ Content-Type: application/json; charset=UTF-8
In case of title already exists the `status` property will be `name-exists`.
"id": 1,
"uid": "cIBgcSjkk",
"url": "/d/cIBgcSjkk/production-overview",
"status": "success",
"version": 1,
"slug": "production-overview" //deprecated in Grafana v5.0
## Get dashboard by uid
`GET /api/dashboards/uid/:uid`
Will return the dashboard given the dashboard unique identifier (uid). Information about the unique identifier of a folder containing the requested dashboard might be found in the metadata.
**Required permissions**
See note in the [introduction]({{< ref "#dashboard-api" >}}) for an explanation.

View File

@@ -25,6 +25,10 @@ title: Data source HTTP API
`GET /api/datasources`
{{% admonition type="warning" %}}
This API currently doesn't handle pagination. The default maximum number of data sources returned is 5000. You can change this value in the default.ini file.
{{% /admonition %}}
**Required permissions**
See note in the [introduction]({{< ref "#data-source-api" >}}) for an explanation.

View File

@@ -79,7 +79,7 @@ extraFields is reserved for any fields that are pulled from the API server metad
| Property | Type | Required | Default | Description |
|----------|--------|----------|---------|-----------------------------------------------------------------------------------------------------------------------------------------|
| `kind` | string | **Yes** | | The kind this rule applies to (dashboars, alert, etc) |
| `kind` | string | **Yes** | | The kind this rule applies to (dashboards, alert, etc) |
| `verb` | string | **Yes** | | READ, WRITE, CREATE, DELETE, ...<br/>should move to k8s style verbs like: "get", "list", "watch", "create", "update", "patch", "delete" |
| `target` | string | No | | Specific sub-elements like "alert.rules" or "dashboard.permissions"???? |

View File

@@ -29,4 +29,4 @@ This section contains how-to topics for developing Grafana plugins:
Additional resources:
- [Build a Grafana plugin with the create-plugin tool](https://grafana.github.io/plugin-tools/docs/getting-started/creating-a-plugin)
- [Build a Grafana plugin with the create-plugin tool](https://grafana.github.io/plugin-tools/docs/get-started/).

View File

@@ -22,6 +22,6 @@ This section contains guidance for building plugins:
Additional resources:
- [Get started with creating a plugin](https://grafana.github.io/plugin-tools/docs/getting-started)
- [Get started with creating a plugin](https://grafana.github.io/plugin-tools/docs/get-started/)
- [Types of Grafana plugins](/docs/grafana/latest/administration/plugin-management/)
- [Set up your development environment](https://grafana.github.io/plugin-tools/docs/development/docker)
- [Set up your development environment](https://grafana.github.io/plugin-tools/docs/get-started/set-up-development-environment)

View File

@@ -41,7 +41,7 @@ With Grafana 7.0, we released a new tool for making it easier to develop plugins
For more information, refer to [@grafana/toolkit](https://www.npmjs.com/package/@grafana/toolkit).
{{% admonition type="note" %}} As of Grafana 10.0, `@grafana/toolkit` is deprecated. It is replaced by the [`create-plugin`](https://grafana.github.io/plugin-tools/docs/getting-started/creating-a-plugin) tool.
{{% admonition type="note" %}} As of Grafana 10.0, `@grafana/toolkit` is deprecated. It is replaced by the [`create-plugin`](https://grafana.github.io/plugin-tools/docs/get-started/) tool.
{{% /admonition %}}
### Field options

View File

@@ -28,17 +28,26 @@ To make your plugin publicly available outside of your organization, sign your p
If you intend to only use the plugin within your organization, sign it under a _private_ [signature level](#plugin-signature-levels).
## Generate an API key
## Generate a token
To verify ownership of your plugin, generate an API key that you'll use every time you need to sign a new version of your plugin.
To verify ownership of your plugin, generate an access token that you'll use every time you need to sign a new version of your plugin.
1. [Create a Grafana Cloud account](/signup).
1. Make sure that the first part of the plugin ID matches the slug of your Grafana Cloud account.
1. Login into your account and navigate to **My Account > Security > Access Policies**. Click **Create access policy**.
You can find the plugin ID in the `plugin.json` file inside your plugin directory. For example, if your account slug is `acmecorp`, you need to prefix the plugin ID with `acmecorp-`.
Realm: has to be your-org-name (all-stacks)
Scope: plugins:write
1. [Create a Grafana Cloud API key](/docs/grafana-cloud/reference/create-api-key/) with the **PluginPublisher** role.
{{< figure src="/media/docs/plugins/create-access-policy-v2.png" class="docs-image--no-shadow" max-width="650px" >}}
1. Click **Create token** to create a new token.
The expiration date field is optional, though you should change tokens periodically for increased security.
{{< figure src="/media/docs/plugins/create-access-policy-token.png" class="docs-image--no-shadow" max-width="650px" >}}
1. Click **Create** and save a copy of the token somewhere secure for future reference.
## Sign a public plugin
@@ -49,7 +58,7 @@ Public plugins need to be reviewed by the Grafana team before you can sign them.
1. In your plugin directory, sign the plugin with the API key you just created. Grafana Sign Plugin creates a [MANIFEST.txt](#plugin-manifest) file in the `dist` directory of your plugin:
```bash
export GRAFANA_API_KEY=<YOUR_API_KEY>
export GRAFANA_ACCESS_POLICY_TOKEN=<YOUR_ACCESS_POLICY_TOKEN>
npx @grafana/sign-plugin@latest
```
@@ -58,7 +67,7 @@ Public plugins need to be reviewed by the Grafana team before you can sign them.
1. In your plugin directory, sign the plugin with the API key you just created. Grafana Sign Plugin creates a [MANIFEST.txt](#plugin-manifest) file in the `dist` directory of your plugin.
```bash
export GRAFANA_API_KEY=<YOUR_API_KEY>
export GRAFANA_ACCESS_POLICY_TOKEN=<YOUR_ACCESS_POLICY_TOKEN>
npx @grafana/sign-plugin@latest --rootUrls https://example.com/grafana
```
@@ -70,11 +79,11 @@ To sign a plugin, you need to select the _signature level_ that you want to sign
You can sign your plugin under three different _signature levels_: _private_, _community_, and _commercial_.
| **Plugin Level** | **Paid Subscription Required?** | **Description** |
| ---------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Private | No;<br>Free of charge | <p>You can create and sign a Private plugin for any technology at no charge.</p><p>Private plugins are intended for use on your own installation of Grafana. They may not be distributed to the Grafana community, and they are not published in the Grafana plugin catalog.</p> |
| Community | No;<br>Free of charge | <p>You can create, sign, and distribute plugins at no charge, provided that all dependent technologies are open source and not for profit.</p><p>Community plugins are published in the official Grafana catalog, and are available to the entire Grafana community.</p> |
| Commercial | Yes;<br>Commercial plugin subscription required | <p>You can create, sign, and distribute plugins with dependent technologies that are closed source or commercially backed. To do so, enter into a Commercial plugin subscription with Grafana Labs.</p><p>Commercial plugins are published on the Grafana plugin catalog, and are available to the entire Grafana community.</p> |
| **Signature Level** | **Paid Subscription Required?** | **Description** |
| ------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Private | No;<br>Free of charge | Private plugins are for use on your own Grafana instance. They may not be shared to the Grafana community or to your customers, and are not published in the Grafana catalog.<br>Private plugins are not Supported in Grafana Cloud. |
| Community | No;<br>Free of charge | Community plugins contain dependent technologies that are open source and/or not for profit.<br>Community plugins are published to the official Grafana catalog, and are available to the Grafana community for direct installation.<br>Support is provided by the individual developer and/or community.<br>Supported in Grafana Cloud.<br>Not commercial in nature and not affiliated with any commercial endeavor. |
| Commercial | Yes;<br>Commercial Plugin Subscription required | Commercial plugins contain dependent technologies that are closed source or commercially backed (even if open source at their core). These plugins meet the commercial plugin criteria and are partner-developed.<br>Commercial plugins are published to the official Grafana catalog, and are available to the Grafana community for direct installation.<br>Support is provided by the Partner.<br>Supported in Grafana Cloud. |
For instructions on how to sign a plugin under the Community and Commercial signature level, refer to [Sign a public plugin](#sign-a-public-plugin).

View File

@@ -45,7 +45,7 @@ To access Explore:
1. Choose your data source from the drop-down in the top left.
You can also click **Open advanced data source picker** to see more data source options including adding a data source.
You can also click **Open advanced data source picker** to see more options, including adding a data source (Admins only).
1. Write the query using a query editor provided by the selected data source. Please check [data sources documentation]({{< relref "../datasources" >}}) to see how to use various query editors.
1. For general documentation on querying data sources in Grafana, see [Query and transform data]({{< relref "../panels-visualizations/query-transform-data" >}}).

View File

@@ -7,11 +7,11 @@ labels:
- cloud
- enterprise
- oss
title: Fundamentals
title: Introduction
weight: 8
---
# Fundamentals
# Introduction
This section provides basic information about observability topics in general and Grafana in particular. These topics will help people who are just starting out with observability and monitoring.

View File

@@ -64,7 +64,7 @@ The following gauge visualization displays the total RAM usage on a computer.
The third metric type is called a `histogram`, which counts observations and organizes them into configurable groups. The following example displays floating-point numbers grouped into ranges that display how frequently each occurred.
{{< figure src="/media/docs/grafana/intro-prometheus/histogram-example.png" max-width="750px" caption="Historgram visualization" >}}
{{< figure src="/media/docs/grafana/intro-prometheus/histogram-example.png" max-width="750px" caption="Histogram visualization" >}}
These core concepts of time series, metrics, labels, and aggregation functions are foundational to Grafana and observability.

View File

@@ -8,11 +8,11 @@ labels:
- cloud
- enterprise
- oss
title: Introduction to Grafana
title: About Grafana
weight: 5
---
# Introduction to Grafana
# About Grafana
[Grafana open source software](/oss/) enables you to query, visualize, alert on, and explore your metrics, logs, and traces wherever they are stored. Grafana OSS provides you with tools to turn your time-series database (TSDB) data into insightful graphs and visualizations. The Grafana OSS plugin framework also enables you to connect other data sources like NoSQL/SQL databases, ticketing tools like Jira or ServiceNow, and CI/CD tooling like GitLab.

View File

@@ -74,6 +74,8 @@ The input and output results sets can help you debug a transformation.
You can disable or hide one or more transformations by clicking on the eye icon on the top right side of the transformation row. This disables the applied actions of that specific transformation and can help to identify issues when you change several transformations one after another.
{{< figure src="/static/img/docs/transformations/screenshot-example-disable-transformation.png" class="docs-image--no-shadow" max-width= "1100px" >}}
## Filter a transformation
If your panel uses more than one query, you can filter these and apply the selected transformation to only one of the queries. To do this, click the filter icon on the top right of the transformation row. This opens a drop-down with a list of queries used on the panel. From here, you can select the query you want to transform.
@@ -94,6 +96,8 @@ We recommend that you remove transformations that you don't need. When you delet
1. Click the **Transform** tab.
1. Click the trash icon next to the transformation you want to delete.
{{< figure src="/static/img/docs/transformations/screenshot-example-remove-transformation.png" class="docs-image--no-shadow" max-width= "1100px" >}}
## Transformation functions
You can perform the following transformations on your data.

View File

@@ -1,6 +1,6 @@
---
aliases:
- ../../features/panels/anotations/
- ../../features/panels/annotations/
- ../../panels/visualizations/annotations/
- ../../visualizations/annotations/
description: Annotations visualization documentation

View File

@@ -81,19 +81,41 @@ The Geomap visualization supports showing multiple layers. Each layer determines
### Types
There are three map layer types to choose from in the Geomap visualization.
There are seven map layer types to choose from in the Geomap visualization.
- [Markers]({{< relref "#markers-layer" >}}) renders a marker at each data point.
- [Heatmap]({{< relref "#heatmap-layer" >}}) visualizes a heatmap of the data.
- [GeoJSON]({{< relref "#geojson-layer" >}}) renders static data from a GeoJSON file.
- [Night / Day]({{< relref "#night--day-layer" >}}) renders a night / day region.
- [Route (Beta)]({{< relref "#route-layer-beta" >}}) render data points as a route.
- [Photos (Beta)]({{< relref "#photos-layer-beta" >}}) renders a photo at each data point.
- [Network (Beta)]({{< relref "#network-layer-beta" >}}) visualizes a network graph from the data.
There are also five alpha layer types.
{{% admonition type="note" %}}
Beta is equivalent to the [public preview](/docs/release-life-cycle/) release stage.
{{% /admonition %}}
There are also two experimental (or alpha) layer types.
- [Night / Day layer]({{< relref "#night--day-layer" >}}) renders a night / day region.
- **Icon at last point (alpha)** renders an icon at the last data point.
- **Dynamic GeoJSON (alpha)** styles a GeoJSON file based on query results.
- [Route layer (Alpha)]({{< relref "#route-layer-alpha" >}}) render data points as a route.
- [Photos layer (Alpha)]({{< relref "#photos-layer-alpha" >}}) renders a photo at each data point.
{{% admonition type="note" %}}
To enable experimental layers:
Set `enable_alpha` to `true` in your configuration file:
```
[panels]
enable_alpha = true
```
To enable the experimental layers using Docker, run the following command:
```
docker run -p 3000:3000 -e "GF_PANELS_ENABLE_ALPHA=true" grafana/grafana:<VERSION>
```
{{% /admonition %}}
{{% admonition type="note" %}}
[Basemap layer types]({{< relref "#types-1" >}}) can also be added as layers. You can specify an opacity.
@@ -215,10 +237,14 @@ The markers layer allows you to display data points as different marker shapes s
![Markers Layer Options](/static/img/docs/geomap-panel/geomap-markers-options-8-1-0.png)
- **Marker Color** configures the color of the marker. The default `Single color` keeps all points a single color. There is an alternate option to have multiple colors depending on the data point values and the threshold set at the `Thresholds` section.
- **Marker Size** configures the size of the marker. The default is `Fixed size`, which makes all marker sizes the same regardless of the data points. However, there is also an option to scale the circles to the corresponding data points. `Min` and `Max` marker size has to be set such that the Marker layer can scale within this range.
- **Marker Shape** allows you to choose the shape, icon, or graphic to aid in providing additional visual context to your data. Choose from assets that are included with Grafana such as simple shapes or the Unicon library. You can also specify a URL containing an image asset. The image must be a scalable vector graphic (SVG).
- **Size** configures the size of the markers. The default is `Fixed size`, which makes all marker sizes the same regardless of the data; however, there is also an option to size the markers based on data corresponding to a selected field. `Min` and `Max` marker sizes have to be set such that the markers can scale within this range.
- **Symbol** allows you to choose the symbol, icon, or graphic to aid in providing additional visual context to your data. Choose from assets that are included with Grafana such as simple symbols or the Unicon library. You can also specify a URL containing an image asset. The image must be a scalable vector graphic (SVG).
- **Color** configures the color of the markers. The default `Fixed color` sets all markers to a specific color. There is also an option to have conditional colors depending on the selected field data point values and the color scheme set in the `Standard options` section.
- **Fill opacity** configures the transparency of each marker.
- **Rotation angle** configures the rotation angle of each marker. The default is `Fixed value`, which makes all markers rotate to the same angle regardless of the data; however, there is also an option to set the rotation of the markers based on data corresponding to a selected field.
- **Text label** configures a text label for each marker.
- **Show legend** allows you to toggle the legend for the layer.
- **Display tooltip** allows you to toggle tooltips for the layer.
## Heatmap layer
@@ -236,6 +262,8 @@ Similar to `Markers`, you are prompted with various options to determine which d
- **Weight values** configure the intensity of the heatmap clusters. `Fixed value` keeps a constant weight value throughout all data points. This value should be in the range of 0~1. Similar to Markers, there is an alternate option in the drop-down to automatically scale the weight values depending on data values.
- **Radius** configures the size of the heatmap clusters.
- **Blur** configures the amount of blur on each cluster.
- **Opacity** configures the opacity of each cluster.
- **Display tooltip** allows you to toggle tooltips for the layer.
## GeoJSON layer
@@ -250,6 +278,125 @@ The GeoJSON layer allows you to select and load a static GeoJSON file from the f
- **Color** configures the color of the style for the current rule
- **Opacity** configures the transparency level for the current rule
- **Add style rule** creates additional style rules.
- **Display tooltip** allows you to toggle tooltips for the layer.
## Night / Day layer
The Night / Day layer displays night and day regions based on the current time range.
{{< figure src="/static/img/docs/geomap-panel/geomap-day-night-9-1-0.png" max-width="1200px" caption="Geomap panel Night / Day" >}}
### Options
- **Show** toggles the time source from panel time range.
- **Night region color** picks the color for the night region.
- **Display sun** toggles the sun icon.
- **Opacity** set the opacity from `0` (transparent) to `1` (opaque).
- **Display tooltip** allows you to toggle tooltips for the layer.
{{< figure src="/static/img/docs/geomap-panel/geomap-day-night-options-9-1-0.png" max-width="1200px" caption="Geomap panel Night / Day options" >}}
### More information
- [**Extensions for OpenLayers - DayNight**](https://viglino.github.io/ol-ext/examples/layer/map.daynight.html)
## Route layer (Beta)
{{% admonition type="caution" %}}
The Route layer is currently in [public preview](/docs/release-life-cycle/). Grafana Labs offers limited support, and breaking changes might occur prior to the feature being made generally available.
{{% /admonition %}}
The Route layer renders data points as a route.
{{< figure src="/media/docs/grafana/geomap-route-layer-basic-9-4-0.png" max-width="1200px" caption="Geomap panel Route" >}}
### Options
- **Size** sets the route thickness. Fixed value by default. When field data is selected you can set the Min and Max range in which field data can scale.
- **Color** sets the route color. Set to `Fixed color` by default. You can also tie the color to field data.
- **Fill opacity** configures the opacity of the route.
- **Text label** configures a text label for each route.
- **Arrow** sets the arrow styling to display along route, in order of data.
- **None**
- **Forward**
- **Reverse**
- **Display tooltip** allows you to toggle tooltips for the layer.
{{< figure src="/media/docs/grafana/geomap-route-layer-arrow-size-9-4-0.png" max-width="1200px" caption="Geomap panel Route arrows with size" >}}
### More information
- [**Extensions for OpenLayers - Flow Line Style**](http://viglino.github.io/ol-ext/examples/style/map.style.gpxline.html)
## Photos layer (Beta)
{{% admonition type="caution" %}}
The Photos layer is currently in [public preview](/docs/release-life-cycle/). Grafana Labs offers limited support, and breaking changes might occur prior to the feature being made generally available.
{{% /admonition %}}
The Photos layer renders a photo at each data point.
{{< figure src="/static/img/docs/geomap-panel/geomap-photos-9-3-0.png" max-width="1200px" caption="Geomap panel Photos" >}}
### Options
- **Image Source field** allows you to select a string field containing image data in either of the following formats:
- **Image URLs**
- **Base64 encoded** - Image binary ("data:image/png;base64,...")
- **Kind** sets the frame style around the images. Choose from:
- **Square**
- **Circle**
- **Anchored**
- **Folio**
- **Crop** toggles whether the images are cropped to fit.
- **Shadow** toggles a box shadow behind the images.
- **Border** sets the border size around images.
- **Border color** sets the border color around images.
- **Radius** sets the overall size of images in pixels.
- **Display tooltip** allows you to toggle tooltips for the layer.
{{< figure src="/static/img/docs/geomap-panel/geomap-photos-options-9-3-0.png" max-width="1200px" caption="Geomap panel Photos options" >}}
### More information
- [**Extensions for OpenLayers - Image Photo Style**](http://viglino.github.io/ol-ext/examples/style/map.style.photo.html)
## Network layer (Beta)
{{% admonition type="caution" %}}
The Network layer is currently in [public preview](/docs/release-life-cycle/). Grafana Labs offers limited support, and breaking changes might occur prior to the feature being made generally available.
{{% /admonition %}}
The Network layer renders a network graph. This layer supports the same [data format supported by the node graph visualization]({{< relref "../node-graph/#data-api" >}}) with the addition of [geospatial data]({{< relref "#location">}}) included in the nodes data. The geospatial data is used to locate and render the nodes on the map.
{{< figure src="/media/docs/grafana/screenshot-grafana-10-1-geomap-network-layer-v2.png" max-width="750px" caption="Geomap network layer" >}}
{{< video-embed src="/media/docs/grafana/screen-recording-10-1-geomap-network-layer-from-node-graph.mp4" max-width="750px" caption="Node graph to Geomap network layer" >}}
### Options
- **Arrow** sets the arrow direction to display for each edge, with forward meaning source to target. Choose from:
- **None**
- **Forward**
- **Reverse**
- **Both**
- **Show legend** allows you to toggle the legend for the layer. **Note:** The legend currently only supports node data.
- **Display tooltip** allows you to toggle tooltips for the layer.
#### Node styles
- **Size** configures the size of the nodes. The default is `Fixed size`, which makes all node sizes the same regardless of the data; however, there is also an option to size the nodes based on data corresponding to a selected field. `Min` and `Max` node sizes have to be set such that the nodes can scale within this range.
- **Symbol** allows you to choose the symbol, icon, or graphic to aid in providing additional visual context to your data. Choose from assets that are included with Grafana such as simple symbols or the Unicon library. You can also specify a URL containing an image asset. The image must be a scalable vector graphic (SVG).
- **Color** configures the color of the nodes. The default `Fixed color` sets all nodes to a specific color. There is also an option to have conditional colors depending on the selected field data point values and the color scheme set in the `Standard options` section.
- **Fill opacity** configures the transparency of each node.
- **Rotation angle** configures the rotation angle of each node. The default is `Fixed value`, which makes all nodes rotate to the same angle regardless of the data; however, there is also an option to set the rotation of the nodes based on data corresponding to a selected field.
- **Text label** configures a text label for each node.
#### Edge styles
- **Size** configures the line width of the edges. The default is `Fixed size`, which makes all edge line widths the same regardless of the data; however, there is also an option to size the edges based on data corresponding to a selected field. `Min` and `Max` eges sizes have to be set such that the edges can scale within this range.
- **Color** configures the color of the edges. The default `Fixed color` sets all edges to a specific color. There is also an option to have conditional colors depending on the selected field data point values and the color scheme set in the `Standard options` section.
- **Fill opacity** configures the transparency of each edge.
- **Text label** configures a text label for each edge.
## CARTO layer
@@ -341,100 +488,6 @@ An ArcGIS layer is a layer from an ESRI ArcGIS MapServer.
- [**ArcGIS Services**](https://services.arcgisonline.com/arcgis/rest/services)
- [**About ESRI**](https://www.esri.com/en-us/about/about-esri/overview)
## Night / Day layer
The Night / Day layer displays night and day regions based on the current time range.
{{< figure src="/static/img/docs/geomap-panel/geomap-day-night-9-1-0.png" max-width="1200px" caption="Geomap panel Night / Day" >}}
### Options
- **Show** toggles time source from panel time range
- **Night region color** picks color for night region
- **Display sun** toggles sun icon
- **Opacity** from 0 (transparent) to 1 (opaque)
{{< figure src="/static/img/docs/geomap-panel/geomap-day-night-options-9-1-0.png" max-width="1200px" caption="Geomap panel Night / Day options" >}}
### More information
- [**Extensions for OpenLayers - DayNight**](https://viglino.github.io/ol-ext/examples/layer/map.daynight.html)
## Route layer (Alpha)
The Route layer renders data points as a route.
{{< figure src="/media/docs/grafana/geomap-route-layer-basic-9-4-0.png" max-width="1200px" caption="Geomap panel Route" >}}
To enable the Route layer, set `enable_alpha` to `true` in your configuration file:
```
[panels]
enable_alpha = true
```
To enable the Route layer using Docker, run the following command:
```
docker run -p 3000:3000 -e "GF_PANELS_ENABLE_ALPHA=true" grafana/grafana:<VERSION>
```
### Options
- **Size** sets the route thickness. Fixed by default, or Min and Max range of selected field.
- **Color** sets the route color. Fixed by default or Standard Options color scheme on selected field.
- **Arrow** sets the arrow styling to display along route, in order of data.
- **None**
- **Forward**
- **Reverse**
{{< figure src="/media/docs/grafana/geomap-route-layer-arrow-size-9-4-0.png" max-width="1200px" caption="Geomap panel Route arrows with size" >}}
### More information
- [**Extensions for OpenLayers - Flow Line Style**](http://viglino.github.io/ol-ext/examples/style/map.style.gpxline.html)
## Photos layer (Alpha)
The Photos layer renders a photo at each data point.
{{< figure src="/static/img/docs/geomap-panel/geomap-photos-9-3-0.png" max-width="1200px" caption="Geomap panel Photos" >}}
To enable the Photos layer, set `enable_alpha` to `true` in your configuration file:
```
[panels]
enable_alpha = true
```
To enable the Photos layer using Docker, run the following command:
```
docker run -p 3000:3000 -e "GF_PANELS_ENABLE_ALPHA=true" grafana/grafana:<VERSION>
```
### Options
- **Image Source Field** select a string field containing image data in either of the following formats
- **Image URLs**
- **Base64 encoded** image binary ("data:image/png;base64,...")
- **Kind** select the frame style around the images
- **Square**
- **Circle**
- **Anchored**
- **Folio**
- **Crop** toggle if the images are cropped to fit
- **Shadow** toggle a box shadow behind the images
- **Border** set the border size around images
- **Border color** set the border color around images
- **Radius** set the overall size of images in pixels
{{< figure src="/static/img/docs/geomap-panel/geomap-photos-options-9-3-0.png" max-width="1200px" caption="Geomap panel Photos options" >}}
### More information
- [**Extensions for OpenLayers - Image Photo Style**](http://viglino.github.io/ol-ext/examples/style/map.style.photo.html)
## Map Controls
The map controls section contains various options for map information and tool overlays.

View File

@@ -514,6 +514,11 @@ Sets a custom value for the `User-Agent` header for outgoing data proxy requests
## [analytics]
### enabled
This option is also known as _usage analytics_. When `false`, this option disables the writers that read/write from and to the Grafana databases. The default
value is `true`.
### reporting_enabled
When enabled Grafana will send anonymous usage statistics to
@@ -2255,7 +2260,11 @@ For more information about Grafana Enterprise, refer to [Grafana Enterprise]({{<
### enable
Keys of alpha features to enable, separated by space.
Keys of features to enable, separated by space.
### FEATURE_TOGGLE_NAME = false
Some feature toggles for stable features are on by default. Use this setting to disable an on-by-default feature toggle with the name FEATURE_TOGGLE_NAME, for example, `exploreMixedDatasource = false`.
## [date_formats]

View File

@@ -16,7 +16,7 @@ weight: 300
Custom branding allows you to replace the Grafana brand and logo with your own corporate brand and logo.
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../../introduction/grafana-enterprise" >}}) and [Grafana Cloud](/docs/grafana-cloud).
Available in [Grafana Enterprise]({{< relref "../../../introduction/grafana-enterprise" >}}) and [Grafana Cloud](/docs/grafana-cloud). For Cloud Advanced and Enterprise customers, please provide your desired custom elements and corresponding logos to our Support team. We will help you in hosting your images and updating your Custom Branding.
{{% /admonition %}}
Grafana Enterprise has custom branding options in the `grafana.ini` file. As with all configuration options, you can also set them with environment variables.
@@ -73,6 +73,9 @@ The configuration file in Grafana Enterprise contains the following options. Eac
# Set to complete URL to override loading logo
;loading_logo =
# Set to `true` to remove the Grafana edition from appearing in the footer
;hide_edition =
```
You can replace the default footer links (Documentation, Support, Community) and even add your own custom links.

View File

@@ -82,6 +82,10 @@ Set to complete URL to override fav icon (icon shown in browser tab).
Set to complete URL to override Apple/iOS icon.
### hide_edition
Set to `true` to remove the Grafana edition from appearing in the footer.
### footer_links
List the link IDs to use here. Grafana will look for matching link configurations, the link IDs should be space-separated and contain no whitespace.

View File

@@ -33,7 +33,6 @@ Some features are enabled by default. You can disable these feature by setting t
| `emptyDashboardPage` | Enable the redesigned user interface of a dashboard page that includes no panels | Yes |
| `disablePrometheusExemplarSampling` | Disable Prometheus exemplar sampling | |
| `logsContextDatasourceUi` | Allow datasource to provide custom UI for context view | Yes |
| `lokiQuerySplitting` | Split large interval queries into subqueries with smaller time intervals | Yes |
| `gcomOnlyExternalOrgRoleSync` | Prohibits a user from changing organization roles synced with Grafana Cloud auth provider | |
| `prometheusMetricEncyclopedia` | Adds the metrics explorer component to the Prometheus query builder as an option in metric select | Yes |
| `prometheusResourceBrowserCache` | Displays browser caching options in Prometheus data source configuration | Yes |
@@ -95,6 +94,7 @@ Experimental features might be changed or removed without prior notice.
| `mysqlAnsiQuotes` | Use double quotes to escape keyword in a MySQL query |
| `alertingBacktesting` | Rule backtesting API for alerting |
| `editPanelCSVDragAndDrop` | Enables drag and drop for CSV and Excel files |
| `lokiQuerySplitting` | Split large interval queries into subqueries with smaller time intervals |
| `lokiQuerySplittingConfig` | Give users the option to configure split durations for Loki queries |
| `individualCookiePreferences` | Support overriding cookie preferences per user |
| `timeSeriesTable` | Enable time series table transformer & sparkline cell type |

View File

@@ -28,6 +28,7 @@ Grafana provides OAuth2 integrations for the following auth providers:
- [GitLab OAuth]({{< relref "../gitlab" >}})
- [Google OAuth]({{< relref "../google" >}})
- [Grafana Com OAuth]({{< relref "../grafana-com" >}})
- [Keycloak OAuth]({{< relref "../keycloak" >}})
- [Okta OAuth]({{< relref "../okta" >}})
If your OAuth2 provider is not listed, you can use generic OAuth2 authentication.

View File

@@ -102,7 +102,7 @@ auto_login = true
## Skip organization role sync
We do not currently sync roles from Google and instead set the AutoAssigned role to the user at first login. To manage your user's organization role from within Grafana, set `skip_org_role_sync` to `true`.
We do not currently sync roles from Google and instead set the AutoAssigned role to the user at first login. The default setting for `skip_org_role_sync` is `true`, which means that role modifications can still be made through the user interface.
```ini
[auth.google]

View File

@@ -66,7 +66,7 @@ It is useful as a fallback or if the user has more than 150 group memberships.
- Implicit Flow Enabled: `OFF`
- Direct Access Grants Enabled: `ON`
- Root URL: `<grafana_root_url>`
- Valid Redirect URIs: `<grafana_root_url>/*`
- Valid Redirect URIs: `<grafana_root_url>/login/generic_oauth`
- Web Origins: `<grafana_root_url>`
- Admin URL: `<grafana_root_url>`
- Base URL: `<grafana_root_url>`
@@ -137,7 +137,7 @@ To enable Single Logout, you need to add the following option to the configurati
```ini
[auth]
signout_redirect_url = https://<PROVIDER_DOMAIN>/auth/realms/<REALM_NAME>/protocol/openid-connect/logout?redirect_uri=https%3A%2F%2<GRAFANA_DOMAIN>%2Flogin
signout_redirect_url = https://<PROVIDER_DOMAIN>/auth/realms/<REALM_NAME>/protocol/openid-connect/logout?redirect_uri=https%3A%2F%2F<GRAFANA_DOMAIN>%2Flogin
```
As an example, `<PROVIDER_DOMAIN>` can be `keycloak-demo.grafana.org`,

View File

@@ -28,7 +28,7 @@ To follow this guide:
To integrate your Okta OAuth2 provider with Grafana using our Okta OAuth2 integration, follow these steps:
1. [Create an SWA app](https://help.okta.com/en-us/Content/Topics/Apps/Apps_App_Integration_Wizard_SWA.htm) or [OCID app](https://help.okta.com/en-us/Content/Topics/Apps/Apps_App_Integration_Wizard_OIDC.htm) at the Okta applications section.
1. [Create an SWA app](https://help.okta.com/en-us/Content/Topics/Apps/Apps_App_Integration_Wizard_SWA.htm) or [OIDC app](https://help.okta.com/en-us/Content/Topics/Apps/Apps_App_Integration_Wizard_OIDC.htm) in the Okta applications section.
1. Set the callback URL for your OAuth2 app to `http://<my_grafana_server_name_or_ip>:<grafana_server_port>/login/okta`.
@@ -41,8 +41,8 @@ To integrate your Okta OAuth2 provider with Grafana using our Okta OAuth2 integr
| Field | Description |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `client_id`, `client_secret` | These values must match the client ID and client secret from your Okta OAuth2 app. |
| `auth_url` | The authorization endpoint of your OAuth2 provider. `https://<okta-tenant-id>.okta.com/oauth2v1authorize` |
| `token_url` | The token endpoint of your Okta OAuth2 provider. `https://<okta-tenant-id>.okta.com/token` |
| `auth_url` | The authorization endpoint of your OAuth2 provider. `https://<okta-tenant-id>.okta.com/oauth2/v1/authorize` |
| `token_url` | The token endpoint of your Okta OAuth2 provider. `https://<okta-tenant-id>.okta.com/oauth2/v1/token` |
| `api_url` | The user information endpoint of your Okta OAuth2 provider. `https://<tenant-id>.okta.com/oauth2/v1/userinfo` |
| `enabled` | Enables Okta OAuth2 authentication. Set this value to `true`. |
@@ -84,7 +84,7 @@ The following table outlines the various Okta OAuth2 configuration options. You
| `skip_org_role_sync` | No | Set to `true` to stop automatically syncing user roles. This will allow you to set organization roles for your users from within Grafana manually. | `false` |
| `allowed_groups` | No | List of comma- or space-separated groups. The user should be a member of at least one group to log in. | |
| `allowed_domains` | No | List comma- or space-separated domains. The user should belong to at least one domain to log in. | |
| `use_pkce` | No | Set to `true` to use [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636). Grafana uses the SHA256 based `S256` challenge method and a 128 bytes (base64url encoded) code verifier. | `false` |
| `use_pkce` | No | Set to `true` to use [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636). Grafana uses the SHA256 based `S256` challenge method and a 128 bytes (base64url encoded) code verifier. | `true` |
| `use_refresh_token` | No | Set to `true` to use refresh token and check access token expiration. The `accessTokenExpirationCheck` feature toggle should also be enabled to use refresh token. | `false` |
### Configure a refresh token

View File

@@ -118,17 +118,9 @@ An example of how to generate a self-signed certificate and private key that's v
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
```
Base64-encode the cert.pem and key.pem files:
(-w0 switch is not needed on Mac, only for Linux)
The generated `key.pem` and `cert.pem` files are then used for certificate and private_key.
```sh
$ base64 -w0 key.pem > key.pem.base64
$ base64 -w0 cert.pem > cert.pem.base64
```
The base64-encoded values (`key.pem.base64, cert.pem.base64` files) are then used for certificate and private_key.
The keys you provide should look like:
The key you provide should look like:
```
-----BEGIN PRIVATE KEY-----

View File

@@ -13,114 +13,645 @@ weight: 500
# Deploy Grafana on Kubernetes
This page explains how to install and run Grafana on Kubernetes (K8S). It uses Kubernetes manifests for the setup. If you prefer Helm, refer to the [Grafana Helm community charts](https://github.com/grafana/helm-charts).
On this page, you will find instructions for installing and running Grafana on Kubernetes using Kubernetes manifests for the setup. If Helm is your preferred option, refer to [Grafana Helm community charts](https://github.com/grafana/helm-charts).
## Before you begin
To follow this guide:
- You need the latest version of [Kubernetes](https://kubernetes.io/) running either locally or remotely on a public or private cloud.
- If you plan to use it in a local environment, you can use various Kubernetes options such as [minikube](https://minikube.sigs.k8s.io/docs/), [kind](https://kind.sigs.k8s.io/), [Docker Desktop](https://docs.docker.com/desktop/kubernetes/), and others.
- If you plan to use Kubernetes in a production setting, it's recommended to utilize managed cloud services like [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine), [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/), or [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/products/kubernetes-service/).
## System requirements
This section provides minimum hardware and software requirements.
### Minimum Hardware Requirements
- Disk space: 1 GB
- Memory: 750 MiB (approx 750 MB)
- CPU: 2500m (approx 2.5 cores)
### Supported databases
For a list of supported databases, refer to [supported databases](/docs/grafana/latest/setup-grafana/installation#supported-databases).
### Supported web browsers
For a list of support web browsers, refer to [supported web browsers](/docs/grafana/latest/setup-grafana/installation#supported-web-browsers).
{{% admonition type="note" %}}
Enable port `3000` in your network environment, as this is the Grafana default port.
{{% /admonition %}}
## Deploy Grafana OSS on Kubernetes
This section explains how to install Grafana using Kubernetes.
If you are interested in the Grafana Enterprise version of this information, see [Deploy Grafana Enterprise on Kubernetes](#deploy-grafana-enterprise-on-kubernetes).
This section explains how to install Grafana OSS using Kubernetes. If you want to install Grafana Enterprise on Kubernetes, refer to [Deploy Grafana Enterprise on Kubernetes](#deploy-grafana-enterprise-on-kubernetes).
### Create a Grafana Kubernetes manifest
If you deploy an application in Kubernetes, it will use the default namespace which may already have other applications running. This can result in conflicts and other issues.
1. Create a file called `grafana.yaml`.
1. Copy and paste the following contents and save the file.
It is recommended to create a new namespace in Kubernetes to better manage, organize, allocate, and manage cluster resources. For more information about Namespaces, refer to the official [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/).
```yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
spec:
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
securityContext:
fsGroup: 472
supplementalGroups:
- 0
containers:
- name: grafana
image: grafana/grafana:9.1.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
name: http-grafana
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /robots.txt
port: 3000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 3000
timeoutSeconds: 1
resources:
requests:
cpu: 250m
memory: 750Mi
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-pv
volumes:
- name: grafana-pv
persistentVolumeClaim:
claimName: grafana-pvc
---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
ports:
- port: 3000
protocol: TCP
targetPort: http-grafana
selector:
app: grafana
sessionAffinity: None
type: LoadBalancer
1. To create a namespace, run the following command:
```bash
kubectl create namespace my-grafana
```
In this example, the namespace is `my-grafana`
1. To verify and view the newly created namespace, run the following command:
```bash
kubectl get namespace my-grafana
```
The output of the command provides more information about the newly created namespace.
1. Create a YAML manifest file named `grafana.yaml`. This file will contain the necessary code for deployment.
```bash
touch grafana.yaml
```
In the next step you define the following three objects in the YAML file.
| Object | Description |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Persistent Volume Claim (PVC) | This object stores the data. |
| Service | This object provides network access to the Pod defined in the deployment. |
| Deployment | This object is responsible for creating the pods, ensuring they stay up to date, and managing Replicaset and Rolling updates. |
1. Copy and paste the following contents and save it in the `grafana.yaml` file.
```yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
spec:
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
securityContext:
fsGroup: 472
supplementalGroups:
- 0
containers:
- name: grafana
image: grafana/grafana:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
name: http-grafana
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /robots.txt
port: 3000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 3000
timeoutSeconds: 1
resources:
requests:
cpu: 250m
memory: 750Mi
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-pv
volumes:
- name: grafana-pv
persistentVolumeClaim:
claimName: grafana-pvc
---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
ports:
- port: 3000
protocol: TCP
targetPort: http-grafana
selector:
app: grafana
sessionAffinity: None
type: LoadBalancer
```
1. Run the following command to send the manifest to the Kubernetes API server:
```bash
kubectl apply -f grafana.yaml --namespace=my-grafana
```
This command creates the PVC, Deployment, and Service objects.
1. Complete the following steps to verify the deployment status of each object.
a. For PVC, run the following command:
```bash
kubectl get pvc --namespace=my-grafana -o wide
```
b. For Deployment, run the following command:
```bash
kubectl get deployments --namespace=my-grafana -o wide
```
c. For Service, run the following command:
```bash
kubectl get svc --namespace=my-grafana -o wide
```
## Access Grafana on Managed K8s Providers
In this task, you access Grafana deployed on a Managed Kubernetes provider using a web browser. Accessing Grafana via a web browser is straightforward if it is deployed on a Managed Kubernetes Provider as it uses the cloud providers **LoadBalancer** to which the external load balancer routes are automatically created.
1. Run the following command to obtain the deployment information:
```bash
kubectl get all --namespace=my-grafana
```
The output returned should look similar to the following:
```bash
NAME READY STATUS RESTARTS AGE
pod/grafana-69946c9bd6-kwjb6 1/1 Running 0 7m27s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/grafana LoadBalancer 10.5.243.226 1.120.130.330 3000:31171/TCP 7m27s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/grafana 1/1 1 1 7m29s
NAME DESIRED CURRENT READY AGE
replicaset.apps/grafana-69946c9bd6 1 1 1 7m30s
```
1. Identify the **EXTERNAL-IP** value in the output and type it into your browser.
The Grafana sign-in page appears.
1. To sign in, enter `admin` for both the username and password.
1. If you do not see the EXTERNAL-IP, complete the following steps:
a. Run the following command to do a port-forwarding of the Grafana service on port `3000`.
```bash
kubectl port-forward service/grafana 3000:3000 --namespace=my-grafana
```
For more information about port-forwarding, refer to [Use Port Forwarding to Access Applications in a Cluster](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/).
b. Navigate to `localhost:3000` in your browser.
The Grafana sign-in page appears.
c. To sign in, enter `admin` for both the username and password.
## Access Grafana using minikube
There are multiple ways to access the Grafana UI on a web browser when using minikube. For more information about minikube, refer to [How to access applications running within minikube](https://minikube.sigs.k8s.io/docs/handbook/accessing/).
This section lists the two most common options for accessing an application running in minikube.
### Option 1: Expose the service
This option uses the `type: LoadBalancer` in the `grafana.yaml` service manifest, which makes the service accessible through the `minikube service` command. For more information, refer to [minikube Service command usage](https://minikube.sigs.k8s.io/docs/commands/service/).
1. Run the following command to obtain the Grafana service IP:
```bash
minikube service grafana --namespace=my-grafana
```
The output returns the Kubernetes URL for service in your local cluster.
```bash
|------------|---------|-------------|------------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|------------|---------|-------------|------------------------------|
| my-grafana | grafana | 3000 | http://192.168.122.144:32182 |
|------------|---------|-------------|------------------------------|
Opening service my-grafana/grafana in default browser...
http://192.168.122.144:32182
```
1. Run a `curl` command to verify whether a given connection should work in a browser under ideal circumstances.
```bash
curl 192.168.122.144:32182
```
The following example output shows that an endpoint has been located:
`<a href="/login">Found</a>.`
1. Access the Grafana UI in the browser using the provided IP:Port from the command above. For example `192.168.122.144:32182`
The Grafana sign-in page appears.
1. To sign in to Grafana, enter `admin` for both the username and password.
### Option 2: Use port forwarding
If Option 1 does not work in your minikube environment (this mostly depends on the network), then as an alternative you can use the port forwarding option for the Grafana service on port `3000`.
For more information about port forwarding, refer to [Use Port Forwarding to Access Applications in a Cluster](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/).
1. To find the minikube IP address, run the following command:
```bash
minikube ip
```
The output contains the IP address that you use to access the Grafana Pod during port forwarding.
A Pod is the smallest deployment unit in Kubernetes and is the core building block for running applications in a Kubernetes cluster. For more information about Pods, refer to [Pods](https://kubernetes.io/docs/concepts/workloads/pods/).
1. To obtain the Grafana Pod information, run the following command:
```bash
kubectl get pods --namespace=my-grafana
```
The output should look similar to the following:
```bash
NAME READY STATUS RESTARTS AGE
grafana-58445b6986-dxrrw 1/1 Running 0 9m54s
```
The output shows the Grafana POD name in the `NAME` column, that you use for port forwarding.
1. Run the following command for enabling the port forwarding on the POD:
```bash
kubectl port-forward pod/grafana-58445b6986-dxrrw --namespace=my-grafana --address 0.0.0.0 3000:3000
```
1. To access the Grafana UI on the web browser, type the minikube IP along with the forwarded port. For example `192.168.122.144:3000`
The Grafana sign-in page appears.
1. To sign in to Grafana, enter `admin` for both the username and password.
## Update an existing deployment using a rolling update strategy
Rolling updates enable deployment updates to take place with no downtime by incrementally updating Pods instances with new ones. The new Pods will be scheduled on nodes with available resources. For more information about rolling updates, refer to [Performing a Rolling Update](https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/).
The following steps use the `kubectl annotate` command to add the metadata and keep track of the deployment. For more information about `kubectl annotate`, refer to [kubectl annotate documentation](https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_annotate/).
{{% admonition type="note" %}}
Instead of using the `annotate` flag, you can still use the `--record` flag. However, it has been deprecated and will be removed in the future version of Kubernetes. See: https://github.com/kubernetes/kubernetes/issues/40422
{{% /admonition %}}
1. To view the current status of the rollout, run the following command:
```bash
kubectl rollout history deployment/grafana --namespace=my-grafana
```
The output will look similar to this:
```bash
deployment.apps/grafana
REVISION CHANGE-CAUSE
1 NONE
```
The output shows that nothing has been updated or changed after applying the `grafana.yaml` file.
1. To add metadata to keep record of the initial deployment, run the following command:
```bash
kubectl annotate deployment/grafana kubernetes.io/change-cause='deployed the default base yaml file' --namespace=my-grafana
```
1. To review the rollout history and verify the changes, run the following command:
```bash
kubectl rollout history deployment/grafana --namespace=my-grafana
```
You should see the updated information that you added in the `CHANGE-CAUSE` earlier.
### Change Grafana image version
1. To change the deployed Grafana version, run the following `kubectl edit` command:
```bash
kubectl edit deployment grafana --namespace=my-grafana
```
1. In the editor, change the container image under the `kind: Deployment` section.
For example:
- From
- `yaml image: grafana/grafana-oss:10.0.1`
- To
- `yaml image: grafana/grafana-oss-dev:10.1.0-124419pre`
1. Save the changes.
Once you save the file, you receive a message similar to the following:
```bash
deployment.apps/grafana edited
```
This means that the changes have been applied.
1. To verify that the rollout on the cluster is successful, run the following command:
```bash
kubectl rollout status deployment grafana --namespace=my-grafana
```
A successful deployment rollout means that the Grafana Dev cluster is now available.
1. To check the statuses of all deployed objects, run the following command and include the `-o wide` flag to get more detailed output:
```bash
kubectl get all --namespace=my-grafana -o wide
```
You should see the newly deployed `grafana-oss-dev` image.
1. To verify it, access the Grafana UI in the browser using the provided IP:Port from the command above.
The Grafana sign-in page appears.
1. To sign in to Grafana, enter `admin` for both the username and password.
1. In the top-right corner, click the help icon.
The version information appears.
1. Add the `change cause` metadata to keep track of things using the commands:
```bash
kubectl annotate deployment grafana --namespace=my-grafana kubernetes.io/change-cause='using grafana-oss-dev:10.1.0-124419pre for testing'
```
1. To verify, run the `kubectl rollout history` command:
```bash
kubectl rollout history deployment grafana --namespace=my-grafana
```
You will see an output similar to this:
```bash
deployment.apps/grafana
REVISION CHANGE-CAUSE
1 deploying the default yaml
2 using grafana-oss-dev:10.1.0-124419pre for testing
```
This means that `REVISION#2` is the current version.
{{% admonition type="note" %}}
The last line of the `kubectl rollout history deployment` command output is the one which is currently active and running on your Kubernetes environment.
{{% /admonition %}}
### Roll back a deployment
When the Grafana deployment becomes unstable due to crash looping, bugs, and so on, you can roll back a deployment to an earlier version (a `REVISION`).
By default, Kubernetes deployment rollout history remains in the system so that you can roll back at any time. For more information, refer to [Rolling Back to a Previous Revision](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-back-to-a-previous-revision).
1. To list all possible `REVISION` values, run the following command:
```bash
kubectl rollout history deployment grafana --namespace=my-grafana
```
1. To roll back to a previous version, run the `kubectl rollout undo` command and provide a revision number.
Example: To roll back to a previous version, specify the `REVISION` number, which appears after you run the `kubectl rollout history deployment` command, in the `--to-revision` parameter.
```bash
kubectl rollout undo deployment grafana --to-revision=1 --namespace=my-grafana
```
1. To verify that the rollback on the cluster is successful, run the following command:
```bash
kubectl rollout status deployment grafana --namespace=my-grafana
```
1. Access the Grafana UI in the browser using the provided IP:Port from the command above.
The Grafana sign-in page appears.
1. To sign in to Grafana, enter `admin` for both the username and password.
1. In the top-right corner, click the help icon to display the version number.
1. To see the new rollout history, run the following command:
```bash
kubectl rollout history deployment grafana --namespace=my-grafana
```
If you need to go back to any other `REVISION`, just repeat the steps above and use the correct revision number in the `--to-revision` parameter.
## Troubleshooting
This section includes troubleshooting tips you might find helpful when deploying Grafana on Kubernetes.
### Collecting logs
It is important to view the Grafana server logs while troubleshooting any issues.
1. To check the Grafana logs, run the following command:
```bash
# dump Pod logs for a Deployment (single-container case)
kubectl logs --namespace=my-grafana deploy/grafana
```
1. If you have multiple containers running in the deployment, run the following command to obtain the logs only for the Grafana deployment:
```bash
# dump Pod logs for a Deployment (multi-container case)
kubectl logs --namespace=my-grafana deploy/grafana -c grafana
```
For more information about accessing Kubernetes application logs, refer to [Pods](https://kubernetes.io/docs/reference/kubectl/cheatsheet/#interacting-with-running-pods) and [Deployments](https://kubernetes.io/docs/reference/kubectl/cheatsheet/#interacting-with-deployments-and-services).
### Increasing log levels to debug mode
By default, the Grafana log level is set to `info`, but you can increase it to `debug` mode to fetch information needed to diagnose and troubleshoot a problem. For more information about Grafana log levels, refer to [Configuring logs](/docs/grafana/latest/setup-grafana/configure-grafana#log).
The following example uses the Kubernetes ConfigMap which is an API object that stores non-confidential data in key-value pairs. For more information, refer to [Kubernetes ConfigMap Concept](https://kubernetes.io/docs/concepts/configuration/configmap/).
1. Create a empty file and name it `grafana.ini` and add the following:
```bash
[log]
; # Either "debug", "info", "warn", "error", "critical", default is "info"
; # we change from info to debug level
level = debug
```
This example adds the portion of the log section from the configuration file. You can refer to the [Configure Grafana](/docs/grafana/latest/setup-grafana/configure-grafana/) documentation to view all the default configuration settings.
1. To add the configuration file into the Kubernetes cluster via the ConfigMap object, run the following command:
```bash
kubectl create configmap ge-config --from-file=/path/to/file/grafana.ini --namespace=my-grafana
```
1. To verify the ConfigMap object creation, run the following command:
```bash
kubectl get configmap --namespace=my-grafana
```
1. Open the `grafana.yaml` file and In the Deployment section, provide the mount path to the custom configuration (`/etc/grafana`) and reference the newly created ConfigMap for it.
```bash
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
# the rest of the code remains the same.
...
....
...
requests:
cpu: 250m
memory: 750Mi
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-pv
# This is to mount the volume for the custom configuration
- mountPath: /etc/grafana
name: ge-config
volumes:
- name: grafana-pv
persistentVolumeClaim:
claimName: grafana-pvc
# This is to provide the reference to the ConfigMap for the volume
- name: ge-config
configMap:
name: ge-config
```
1. Deploy the manifest using the following kubectl apply command:
```bash
kubectl apply -f grafana.yaml --namespace=my-grafana
```
1. To verify the status, run the following commands:
```bash
# first check the rollout status
kubectl rollout status deployment grafana --namespace=my-grafana
# then check the deployment and configMap information
kubectl get all --namespace=my-grafana
```
1. To verify it, access the Grafana UI in the browser using the provided IP:Port
The Grafana sign-in page appears.
1. To sign in to Grafana, enter `admin` for both the username and password.
1. Navigate to **Server Admin > Settings** and then search for log.
You should see the level to debug mode.
### Using the --dry-run command
You can use the Kubernetes `--dry-run` command to send requests to modifying endpoints and determine if the request would have succeeded.
Performing a dry run can be useful for catching errors or unintended consequences before they occur. For more information, refer to [Kubernetes Dry-run](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/576-dry-run/README.md).
Example:
The following example shows how to perform a dry run when you make changes to the `grafana.yaml` such as using a new image version, or adding new labels and you want to determine if there are syntax errors or conflicts.
To perform a dry run, run the following command:
```bash
kubectl apply -f grafana.yaml --dry-run=server --namespace=grafana
```
### Send the manifest to the Kubernetes API server
If there are no errors, then the output will look similar to this:
1. Run the following command:
`kubectl apply -f grafana.yaml`
```bash
persistentvolumeclaim/grafana-pvc unchanged (server dry run)
deployment.apps/grafana unchanged (server dry run)
service/grafana unchanged (server dry run)
```
1. Check that it worked by running the following:
`kubectl port-forward service/grafana 3000:3000`
If there are errors or warnings, you will see them in the terminal.
1. Navigate to `localhost:3000` in your browser. You should see a Grafana login page.
## Remove Grafana
1. Use `admin` for both the username and password to login.
If you want to remove any of the Grafana deployment objects, use the `kubectl delete command`.
1. If you want to remove the complete Grafana deployment, run the following command:
```bash
kubectl delete -f grafana.yaml --namespace=my-grafana
```
This command deletes the deployment, persistentvolumeclaim, and service objects.
1. To delete the ConfigMap, run the following command:
```bash
kubectl delete configmap ge-config --namespace=my-grafana
```
## Deploy Grafana Enterprise on Kubernetes
@@ -143,19 +674,18 @@ kubectl create secret generic ge-license --from-file=/path/to/your/license.jwt
### Create Grafana Enterprise configuration
Create a Grafana configuration file with the name `grafana.ini`. Then paste the content below.
1. Create a Grafana configuration file with the name `grafana.ini`
{{% admonition type="note" %}}
You will have to update the `root_url` field to the url associated with the license you were given.
{{% /admonition %}}
1. Paste the following YAML contents into the file you created:
```yaml
[enterprise]
license_path = /etc/grafana/license/license.jwt
[server]
root_url =/your/license/root/url
```yaml
[enterprise]
license_path = /etc/grafana/license/license.jwt
[server]
root_url =/your/license/root/url
```
```
1. Update the `root_url` field to the url associated with the license provided to you.
### Create Configmap for Grafana Enterprise configuration
@@ -167,109 +697,112 @@ kubectl create configmap ge-config --from-file=/path/to/your/grafana.ini
### Create Grafana Enterprise Kubernetes manifest
Create a `grafana.yaml` file, and copy-and-paste the following content into it.
The YAML that follows is identical to the one for a Grafana installation, except for the additional references to the Configmap that contains your Grafana configuration file and the secret that has your license.
1. Create a `grafana.yaml` file, and copy-and-paste the following content into it.
```yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
spec:
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
securityContext:
fsGroup: 472
supplementalGroups:
- 0
containers:
- image: grafana/grafana-enterprise:latest
imagePullPolicy: IfNotPresent
name: grafana
ports:
- containerPort: 3000
name: http-grafana
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /robots.txt
port: 3000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 2
resources:
limits:
memory: 4Gi
requests:
cpu: 100m
memory: 2Gi
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-pv
- mountPath: /etc/grafana
name: ge-config
- mountPath: /etc/grafana/license
name: ge-license
volumes:
- name: grafana-pv
persistentVolumeClaim:
claimName: grafana-pvc
- name: ge-config
configMap:
name: ge-config
- name: ge-license
secret:
secretName: ge-license
---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
ports:
- port: 3000
protocol: TCP
targetPort: http-grafana
selector:
app: grafana
sessionAffinity: None
type: LoadBalancer
```
The following YAML is identical to the one for a Grafana installation, except for the additional references to the Configmap that contains your Grafana configuration file and the secret that has your license.
{{% admonition type="caution" %}}
If you use `LoadBalancer` in the Service and depending on your cloud platform and network configuration, doing so might expose your Grafana instance to the Internet. To eliminate this risk, use `ClusterIP` to restrict access from within the cluster Grafana is deployed to.
{{% /admonition %}}
```yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
spec:
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
securityContext:
fsGroup: 472
supplementalGroups:
- 0
containers:
- image: grafana/grafana-enterprise:latest
imagePullPolicy: IfNotPresent
name: grafana
ports:
- containerPort: 3000
name: http-grafana
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /robots.txt
port: 3000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 2
resources:
limits:
memory: 4Gi
requests:
cpu: 100m
memory: 2Gi
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-pv
- mountPath: /etc/grafana
name: ge-config
- mountPath: /etc/grafana/license
name: ge-license
volumes:
- name: grafana-pv
persistentVolumeClaim:
claimName: grafana-pvc
- name: ge-config
configMap:
name: ge-config
- name: ge-license
secret:
secretName: ge-license
---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
ports:
- port: 3000
protocol: TCP
targetPort: http-grafana
selector:
app: grafana
sessionAffinity: None
type: LoadBalancer
```
1. Send manifest to Kubernetes API Server
{{% admonition type="caution" %}}
If you use `LoadBalancer` in the Service and depending on your cloud platform and network configuration, doing so might expose your Grafana instance to the Internet. To eliminate this risk, use `ClusterIP` to restrict access from within the cluster Grafana is deployed to.
{{% /admonition %}}
1. To send the manifest to Kubernetes API Server, run the following command:
`kubectl apply -f grafana.yaml`
1. Check that it worked by running the following:
1. To verify the manifest was sent, run the following command:
`kubectl port-forward service/grafana 3000:3000`
1. Navigate to `localhost:3000` in your browser. You should see the Grafana login page.
1. Navigate to `localhost:3000` in your browser.
You should see the Grafana login page.
1. Use `admin` for both the username and password to login.
If it worked, you should see `Enterprise (Licensed)` at the bottom of the page.
1. To verify you are working with an enterprise license, scroll to the bottom of the page where you should see `Enterprise (Licensed)`.

View File

@@ -135,7 +135,7 @@ To uninstall Grafana, run the following commands in a terminal window:
1. Optional: To remove the Grafana repository:
```shell
sudo rm -i /etc/apt/sources.list.d/grafana.list
sudo rm -i /etc/yum.repos.d/grafana.repo
```
## Next steps

View File

@@ -181,6 +181,14 @@ To restart the Grafana server, complete the following steps:
Restart methods differ depending on whether you installed Grafana using Homebrew or as standalone macOS binaries.
### Start Grafana using Homebrew
To start Grafana using [Homebrew](http://brew.sh/), run the following start command:
```bash
brew services start grafana
```
### Restart Grafana using Homebrew
Use the [Homebrew](http://brew.sh/) restart command:

View File

@@ -12,7 +12,7 @@ If you are using `systemd` and want to start Grafana on a port that is lower tha
```bash
# Alternatively, create a file in /etc/systemd/system/grafana-server.service.d/override.conf
systemctl edit grafana-server.service
sudo systemctl edit grafana-server.service
```
1. Add the following additional settings to grant the `CAP_NET_BIND_SERVICE` capability.

View File

@@ -116,7 +116,7 @@ Grafana is an open-source platform for monitoring and observability that lets yo
The first thing you see is the Home dashboard, which helps you get started.
To the far left you can see the _sidebar_, a set of quick access icons for navigating Grafana.
In the top left corner, you can see the menu icon. Clicking it will open the _sidebar_, the main menu for navigating Grafana.
## Add a metrics data source
@@ -124,11 +124,11 @@ The sample application exposes metrics which are stored in [Prometheus](https://
To be able to visualize the metrics from Prometheus, you first need to add it as a data source in Grafana.
1. In the sidebar, hover over the **Configuration** (gear) icon, and then click **Data sources**.
1. In the sidebar, click **Connections** and then **Data sources**.
1. Click **Add data source**.
1. In the list of data sources, click **Prometheus**.
1. In the URL box, enter **http\://prometheus:9090**.
1. Click **Save & test**.
1. Scroll to the bottom of the page and click **Save & test**.
Prometheus is now available as a data source in Grafana.
@@ -138,8 +138,9 @@ Grafana Explore is a workflow for troubleshooting and data exploration. In this
> Ad-hoc queries are queries that are made interactively, with the purpose of exploring data. An ad-hoc query is commonly followed by another, more specific query.
1. In the sidebar, click the **Explore** (compass) icon. The Prometheus data source that you added will already be selected.
1. In the **Query editor**, where it says _Enter a PromQL query…_, enter `tns_request_duration_seconds_count` and then press Shift + Enter.
1. Click the menu icon and, in the sidebar, click **Explore**. The Prometheus data source that you added will already be selected.
1. Confirm that you're in code mode by checking the **Builder/Code** toggle at the top right corner of the query panel.
1. In the query editor, where it says _Enter a PromQL query…_, enter `tns_request_duration_seconds_count` and then press Shift + Enter.
A graph appears.
1. In the top right corner, click the dropdown arrow on the **Run Query** button, and then select **5s**. Grafana runs your query and updates the graph every 5 seconds.
@@ -147,7 +148,7 @@ Grafana Explore is a workflow for troubleshooting and data exploration. In this
`tns_request_duration_seconds_count` is a _counter_, a type of metric whose value only ever increases. Rather than visualizing the actual value, you can use counters to calculate the _rate of change_, i.e. how fast the value increases.
1. Add the [`rate`](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate) function to your query to visualize the rate of requests per second. Enter the following in the **Query editor** and then press Shift + Enter.
1. Add the [`rate`](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate) function to your query to visualize the rate of requests per second. Enter the following in the query editor and then press Shift + Enter.
```
rate(tns_request_duration_seconds_count[5m])
@@ -165,7 +166,7 @@ Grafana Explore is a workflow for troubleshooting and data exploration. In this
1. Go back to the [sample application](http://localhost:8081) and generate some traffic by adding new links, voting, or just refresh the browser.
1. In the upper-right corner, click the _time picker_, and select **Last 5 minutes**. By zooming in on the last few minutes, it's easier to see when you receive new data.
1. Back in Grafana, in the upper-right corner, click the _time picker_, and select **Last 5 minutes**. By zooming in on the last few minutes, it's easier to see when you receive new data.
Depending on your use case, you might want to group on other labels. Try grouping by other labels, such as `status_code`, by changing the `by(route)` part of the query.
@@ -173,11 +174,11 @@ Depending on your use case, you might want to group on other labels. Try groupin
Grafana supports log data sources, like [Loki](/oss/loki/). Just like for metrics, you first need to add your data source to Grafana.
1. In the sidebar, hover over the **Configuration** (gear) icon, and then click **Data Sources**.
1. Click **Add data source**.
1. Click the menu icon and, in the sidebar, click **Connections** and then **Data sources**.
1. Click **+ Add new data source**.
1. In the list of data sources, click **Loki**.
1. In the URL box, enter [http://loki:3100](http://loki:3100).
1. Click **Save & Test** to save your changes.
1. Scroll to the bottom of the page and click **Save & Test** to save your changes.
Loki is now available as a data source in Grafana.
@@ -185,9 +186,10 @@ Loki is now available as a data source in Grafana.
Grafana Explore not only lets you make ad-hoc queries for metrics, but lets you explore your logs as well.
1. In the sidebar, click the **Explore** (compass) icon.
1. Click the menu icon and, in the sidebar, click **Explore**.
1. In the data source list at the top, select the **Loki** data source.
1. In the **Query editor**, enter:
1. Confirm that you're in code mode by checking the **Builder/Code** toggle at the top right corner of the query panel.
1. Enter the following in the query editor, and then press Shift + Enter:
```
{filename="/var/log/tns-app.log"}
@@ -222,15 +224,18 @@ Dashboards consist of _panels_, each representing a part of the story you want y
Every panel consists of a _query_ and a _visualization_. The query defines _what_ data you want to display, whereas the visualization defines _how_ the data is displayed.
1. In the sidebar, hover over the **Create** (plus sign) icon and then click **Dashboard**.
1. Click **Add new panel**. The Prometheus data source that you added will already be selected.
1. Click the menu icon and, in the sidebar, click **Dashboards**.
1. On the **Dashboards** page, click **New** in top right corner and select **New Dashboard** in the drop-down.
1. Click **+ Add visualization**.
1. In the modal that opens, select the Prometheus data source that you just added.
1. In the **Query** tab below the graph, enter the query from earlier and then press Shift + Enter:
```
sum(rate(tns_request_duration_seconds_count[5m])) by(route)
```
1. In the **Legend** field, enter **{{route}}** to rename the time series in the legend. The graph legend updates when you click outside the field.
1. Click **Options** under the query field to open the panel.
1. In the **Legend** field, select **Custom** and then enter `route` to rename the series in the legend. The graph legend updates when you click outside the field.
1. In the panel editor on the right, under **Panel options**, change the panel title to "Traffic".
1. Click **Apply** in the top-right corner to save the panel and go back to the dashboard view.
1. Click the **Save dashboard** (disk) icon at the top of the dashboard to save your dashboard.
@@ -255,6 +260,7 @@ Add a region annotation:
1. Press Ctrl (or Cmd on macOS), then click and drag across the graph to select an area.
1. In **Description**, enter **Performed load tests**.
1. In **Tags**, enter **testing**.
1. Click **Save**.
Manually annotating your dashboard is fine for those single events. For regularly occurring events, such as deploying a new release, Grafana supports querying annotations from one of your data sources. Let's create an annotation using the Loki data source we added earlier.
@@ -270,9 +276,9 @@ Manually annotating your dashboard is fine for those single events. For regularl
<!--this add button is gone rn. look into this -->
1. Click **Add**. Grafana displays the Annotations list, with your new annotation.
1. Click the **Go back** arrow to return to your dashboard.
1. At the top of your dashboard, there is now a toggle to display the results of the newly created annotation query. Press it so that it's enabled.
1. Click **Apply**. Grafana displays the **Annotations** page, with your new annotation in the list.
1. Click the name of the dashboard in the breadcrumb at the top of the screen to return to your dashboard.
1. At the top of your dashboard, there is now a toggle with the name **Errors** to display the results of the newly created annotation query. The toggle is enabled by default.
The log lines returned by your query are now displayed as annotations in the graph.
@@ -288,14 +294,14 @@ Grafana's new alerting platform debuted with Grafana 8. A year later, with Grafa
The most basic alert consists of two parts:
1. A _Contact Point_ - A Contact point defines how Grafana delivers an alert. When the conditions of an _alert rule_ are met, Grafana notifies the contact points, or channels, configured for that alert. Some popular channels include email, webhooks, Slack notifications, and PagerDuty notifications.
1. A _Contact point_ - A Contact point defines how Grafana delivers an alert. When the conditions of an _alert rule_ are met, Grafana notifies the contact points, or channels, configured for that alert. Some popular channels include email, webhooks, Slack notifications, and PagerDuty notifications.
1. An _Alert rule_ - An Alert rule defines one or more _conditions_ that Grafana regularly evaluates. When these evaluations meet the rule's criteria, the alert is triggered.
To begin, let's set up a webhook Contact Point. Once we have a usable endpoint, we'll write an alert rule and trigger a notification.
To begin, let's set up a webhook contact point. Once we have a usable endpoint, we'll write an alert rule and trigger a notification.
### Create a Contact Point for Grafana Managed Alerts
### Create a contact point for Grafana Managed Alerts
In this step, we'll set up a new Contact Point. This contact point will use the _webhooks_ channel. In order to make this work, we also need an endpoint for our webhook channel to receive the alert. We will use [requestbin.com](https://requestbin.com) to quickly set up that test endpoint. This way we can make sure that our alert is actually sending a notification somewhere.
In this step, we'll set up a new contact point. This contact point will use the _webhooks_ channel. In order to make this work, we also need an endpoint for our webhook channel to receive the alert. We will use [requestbin.com](https://requestbin.com) to quickly set up that test endpoint. This way we can make sure that our alert is actually sending a notification somewhere.
1. Browse to [requestbin.com](https://requestbin.com).
1. Under the **Create Request Bin** button, click the **public bin** link.
@@ -306,10 +312,10 @@ Your request bin is now waiting for the first request.
Next, let's configure a Contact Point in Grafana's Alerting UI to send notifications to our Request Bin.
1. Return to Grafana. In Grafana's sidebar, hover over the **Alerting** (bell) icon and then click **Contact points**.
1. Click **+ New contact point**.
1. Return to Grafana. Click the menu icon and, in the sidebar, click **Alerting** and then **Contact points**.
1. Click **+ Add contact point**.
1. In **Name**, write **RequestBin**.
1. In **Contact point type**, choose **Webhook**.
1. In the **Integration** dropdown menu, choose **Webhook**.
1. In **Url**, paste the endpoint to your request bin.
1. Click **Test** to send a test alert to your request bin.
1. Navigate back to the request bin you created earlier. On the left side, there's now a `POST /` entry. Click it to see what information Grafana sent.
@@ -321,16 +327,16 @@ We have now created a dummy webhook endpoint and created a new Alerting Contact
Now that Grafana knows how to notify us, it's time to set up an alert rule:
1. In Grafana's sidebar, hover over the **Alerting** (bell) icon and then click **Alert rules**.
1. Click **+ New alert rule**.
1. For **Section 1**, name the rule `fundamentals-test`, and set **Rule type** to **Grafana Managed Alert**. For **Folder** type `fundamentals` and in the box that appears, press **Create: fundamentals**.
1. For **Section 2**, find the **query A** box. Choose your Prometheus datasource and enter the same query that we used in our earlier panel: `sum(rate(tns_request_duration_seconds_count[5m])) by(route)`. Press **Run queries**. You should see some data in the graph.
1. Now scroll down to the **query B** box. For **Operation** choose `Classic condition`. [You can read more about classic and multi-dimensional conditions here](/docs/grafana/latest/alerting/unified-alerting/alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule). For conditions enter the following: `WHEN last() OF A IS ABOVE 0.2`
1. In **Section 3**, enter `30s` for the **Evaluate every** field. For the purposes of this tutorial, the evaluation interval is intentionally short. This makes it easier to test. In the **for** field, enter `0m`. This setting makes Grafana wait until an alert has fired for a given time before Grafana sends the notification.
1. In **Section 4**, you can add some sample text to your summary message. [Read more about message templating here](/docs/grafana/latest/alerting/unified-alerting/message-templating/).
1. Click **Save and exit** at the top of the page.
1. In Grafana's sidebar, hover over the **Alerting** (bell) icon and then click **Notification policies**.
1. Under **Default policy**, select **...** &rsaquo; **Edit** and change the **Default contact point** to **RequestBin**.
1. In the sidebar, click **Alert rules**.
1. Click **Create alert rule**.
1. In section **1**, name the rule `fundamentals-test`.
1. For section **2**, select **Grafana Managed Alert** as the rule type. Next, find query box **A**. Choose your Prometheus datasource and enter the same query that we used in our earlier panel: `sum(rate(tns_request_duration_seconds_count[5m])) by(route)`. Click **Run queries**. You should see some data in the graph.
1. Now scroll down to query box **B**. Change the operation from **Reduce** to **Classic condition**. [You can read more about classic and multi-dimensional conditions here](/docs/grafana/latest/alerting/unified-alerting/alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule). For conditions enter the following: `WHEN last() OF A IS ABOVE 0.2`. Delete query **C**.
1. In section **3**, Select **+ Add New** in **Folder** dropdown menu. Name the new folder `fundamentals` and press enter. This will create the folder needed. In **Evaluation Group**, name the group also `fundamentals` for now. In the **for** field, enter `0m`. This setting makes Grafana wait until an alert has fired for a given time before Grafana sends the notification.
1. In section **4**, you can add some sample text to your summary message. [Read more about message templating here](/docs/grafana/latest/alerting/unified-alerting/message-templating/).
1. In the top right corner of the page, click **Save rule and exit**.
1. In the sidebar, click **Notification policies**.
1. Under **Default policy**, click the button with the three dots and select **Edit**. Change the **Default contact point** to **RequestBin**. Click **Update default policy**.
As a system grows, admins can use the **Notification policies** setting to organize and match alert rules to
specific contact points.

View File

@@ -0,0 +1,35 @@
---
description: Guide for upgrading to Grafana v10.1
keywords:
- grafana
- configuration
- documentation
- upgrade
title: Upgrade to Grafana v10.1
menuTitle: Upgrade to v10.1
weight: 1600
---
# Upgrade to Grafana v10.1
{{< docs/shared "upgrade/upgrade-common-tasks.md" >}}
## Technical notes
### OAuth role mapping enforcement
This change impacts `GitHub` OAuth, `Gitlab` OAuth, `Okta` OAuth, and `Generic` OAuth.
Previously, if no organization role mapping was found for a user when they connected using OAuth, Grafana didn't update the users organization role.
With Grafana 10.1, on every login, if the `role_attribute_path` property doesn't return a role, then the user is assigned the role specified by the `auto_assign_org_role` option or the default role for the organization, which is Viewer by default.
To avoid overriding manually set roles, enable the `skip_org_role_sync` option in the Grafana configuration for your OAuth provider before upgrading to Grafana 10.1 and before users log in for the first time on Grafana 10.1.
Example for Generic OAuth2:
```ini
[auth.generic_oauth]
...
skip_org_role_sync = true
```

View File

@@ -76,6 +76,7 @@ For a complete list of every change, with links to pull requests and related iss
## Grafana 10
- [What's new in 10.1]({{< relref "whats-new-in-v10-1/" >}})
- [What's new in 10.0]({{< relref "whats-new-in-v10-0/" >}})
## Grafana 9

View File

@@ -361,7 +361,7 @@ Data types are now being defined to create a data plane layer between producers
Learn more:
- [Data plane contract - Technical specification](https://grafana.github.io/dataplane/contract/)
- [Data plane contract - Technical specification](https://grafana.com/developers/dataplane/)
- [Example typed dataframes and Go lib to use them in tests](https://github.com/grafana/dataplane/tree/main/examples)
- [Go library for reading and writing dataplane data](https://github.com/grafana/dataplane/tree/main/sdata)

View File

@@ -0,0 +1,498 @@
---
description: Feature and improvement highlights for Grafana v10.1
keywords:
- grafana
- new
- documentation
- '10.1'
- release notes
labels:
products:
- cloud
- enterprise
- oss
title: What's new in Grafana v10.1
weight: -38
---
# Whats new in Grafana v10.1
Welcome to Grafana 10.1! Read on to learn about changes to dashboards and visualizations, data sources, security and authentication and more. We're particularly excited about a set of improvements to visualizing logs from [Loki](https://grafana.com/products/cloud/logs/) and other logging data sources in Explore mode, and our Flame graph panel, used to visualize profiling data from [Pyroscope](https://grafana.com/blog/2023/03/15/pyroscope-grafana-phlare-join-for-oss-continuous-profiling/?pg=oss-phlare&plcmt=top-promo-banner) and other continuous profiling data sources.
For even more detail about all the changes in this release, refer to the [changelog](https://github.com/grafana/grafana/blob/master/CHANGELOG.md). For the specific steps we recommend when you upgrade to v10.1, check out our [Upgrade Guide]({{< relref "../upgrade-guide/upgrade-v10.1/index.md" >}}).
<!-- Template below
## Feature
<!-- Name of contributor -->
<!-- _[Generally available | Available in private/public preview | Experimental] in Grafana [Open Source, Enterprise, Cloud Free, Cloud Pro, Cloud Advanced]_
Description. Include an overview of the feature and problem it solves, and where to learn more (like a link to the docs).
{{% admonition type="note" %}}
You must use relative references when linking to docs within the Grafana repo. Please do not use absolute URLs. For more information about relrefs, refer to [Links and references](/docs/writers-toolkit/writing-guide/references/).
{{% /admonition %}}
-->
<!-- Add an image, GIF or video as below
{{< figure src="/media/docs/grafana/dashboards/WidgetVizSplit.png" max-width="750px" caption="DESCRIPTIVE CAPTION" >}}
Learn how to upload images here: https://grafana.com/docs/writers-toolkit/write/image-guidelines/#where-to-store-media-assets
-->
## Dashboards and visualizations
### Flame graph improvements
_Generally available in all editions of Grafana_
<!-- Andrej Ocenas -->
We've added four new features to the Flame graph visualization:
- **Sandwich view**: You can now show a sandwich view of any symbol in the flame graph. Sandwich view shows all the callers on the top and all the callees of the symbol on the bottom. This is useful when you want to see the context of a symbol.
- **Switching color scheme**: You can now switch color scheme between a color gradient based on the relative value of a symbol or by the package name of a symbol.
- **Switching symbol name alignment**: Symbols with long names may be hard to differentiate if they have the same prefix. This new option allows you to align the text to the left or right so you can see the part of the symbol name that's important.
- **Improved navigation**: You can highlight a symbol or enable sandwich view for a symbol from the table. Also, a new status bar on top of the flame graph displays which views are enabled.
{{< video-embed src="/media/docs/grafana/panels-visualizations/screen-recording-grafana-10.1-flamegraph-whatsnew.mp4" >}}
### Distinguish widgets from visualizations
<!-- Alexa Vargas, Juan Cabanas -->
_Experimental in all editions of Grafana_
This experimental feature introduces a clear distinction between two different categories of panel plugin types: visualization panels that consume a data source and a new type, called _widgets_, that don't require a data source.
Now, you can easily add widgets like Text, News, and Annotation list without the need to select a data source. The plugins list and library panels are filtered based on whether you've selected a widget or visualization, providing a streamlined editing experience.
To see the widget editor in Grafana OSS or Enterprise, enable the `vizAndWidgetSplit` feature toggle. If youre using Grafana Cloud and would like to enable this feature, please contact customer support.
{{< figure src="/media/docs/grafana/dashboards/WidgetVizSplit.png" max-width="750px" caption="New widget option added to empty dashboards" >}}
### Transformations redesign
<!-- Catherine Gui -->
_Available in public preview in all editions of Grafana_
The transformations tab has an improved user experience and visual redesign. Now, transformations are categorized, and each transformation type has an illustration to help you choose the right one.
{{< figure src="/media/docs/grafana/screenshot-grafana-10-1-transformations.png" max-width="750px" caption="Transformations redesign" >}}
### Format Time transformation
<!-- Kyle Cunningham -->
_Available in public preview in all editions of Grafana_
When working with date and time data, it can be useful to have different time formats. With the new Format Time transformation, you can convert any time format to any other one supported by [Moment.js](https://momentjs.com/docs/#/displaying/). When used in conjunction with the _Group by_ transformation, this can also be used to bucket days, weeks, and other time windows together.
{{< figure src="/media/docs/grafana/format-time-10-1.gif" max-width="750px" caption="Format time transformation" >}}
### Join by fields transformation outer join (tabular) option
<!-- Brendan O'Handley -->
_Generally available in all editions of Grafana_
The Join by field transformation has a new option: outer join (tabular). This option is a true outer join for tabular (SQL-like) data. Data can now be joined on a field value that is not distinct. This is different from the previous outer join, which is optimized for time-series data where the join values are never repeated.
### Disconnect values in Time series, Trend, and State timeline visualizations
_Generally available in all editions of Grafana_
<!-- Nathan Marrs -->
You can now choose whether to set a threshold above which values in the data should be disconnected. This can be useful in cases where you have sensors that report a value at a set interval, but you want to disconnect the values when the sensor does not respond. This feature complements the existing [connect null values functionality]({{< relref "../panels-visualizations/visualizations/time-series/#connect-null-values" >}}).
To learn more, refer to our [disconnect values documentation]({{< relref "../panels-visualizations/visualizations/time-series/#disconnect-values" >}}).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-1-disconnect-values-examples.png" max-width="750px" caption="Disconnect values in Time series, Trend, and State timeline visualizations" >}}
### Geomap Network layer
_Available in public preview in all editions of Grafana_
<!-- Nathan Marrs -->
You can now display network data in the Geomap visualization by using the new beta Network layer. This layer supports the same data format as the [Node graph visualization]({{< relref "../panels-visualizations/visualizations/node-graph/#data-api" >}}).
To learn more, refer to our [Geomap network layer documentation]({{< relref "../panels-visualizations/visualizations/geomap/#network-layer-beta" >}}).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-1-geomap-network-layer-v2.png" max-width="750px" caption="Geomap Network layer" >}}
### Heatmap visualizations now support data links
_Generally available in all editions of Grafana_
<!-- Nathan Marrs -->
You can now add data links to Heatmap visualizations. This allows you to add links to other dashboards, panels, or external URLs that are relevant to the data in your heatmap. We're pleased to highlight that this feature was a community contribution.
To learn more, refer to both our [Heatmap documentation]({{< relref "../panels-visualizations/visualizations/heatmap/" >}}) and our [Configure data links documentation]({{< relref "../panels-visualizations/configure-data-links/" >}}).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-1-heatmap-datalinks.png" max-width="750px" caption="Heatmap datalink support" >}}
### Activate draft reports
<!-- Robert Horvath -->
_Generally available in Grafana Enterprise, Cloud Free, Cloud Pro, and Cloud Advanced_
You can now use the resume and pause report functionality to activate draft reports that have all the required fields filled in.
To learn more, refer to our [Create and manage reports documentation]({{< relref "../dashboards/create-reports" >}}).
## Data sources
### Step editor in Loki
<!-- Ivana Huckova -->
_Generally available in all editions of Grafana_
We've improved the Loki query editor by adding a new **Step** editor field. This field allows you to specify a value for the `step` parameter in Loki queries. You can use this parameter when making metric queries to Loki or when you want a matrix response from your queries.
By default, the `step` parameter is set to the value of the `$__interval` variable. This variable is calculated based on the time range and the width of the graph (in pixels). To learn more about the Loki `step` parameter, refer to our [Loki step parameter documentation](/docs/loki/latest/api/#step-versus-interval).
{{< figure src="/media/docs/grafana/data-sources/loki-step-editor.png" max-width="750px" caption="New Loki step editor" >}}
### Copy link to a Loki log line
<!-- Sven Grossmann -->
_Generally available in all editions of Grafana_
New functionality for linking of Loki log lines in Explore allows you to quickly navigate to specific log entries for precise analysis. By clicking the **Copy shortlink** button for a log line, you can generate and copy a [short URL]({{< relref "../developers/http_api/short_url/" >}}) that provides direct access to the exact log entry within an absolute time range. When you open the link, Grafana automatically scrolls to the corresponding log line and highlights it, making it easy to identify and focus on the relevant information.
{{< figure src="/media/docs/grafana/data-sources/loki-shortlink.png" max-width="750px" caption="New Loki log line linking" >}}
### TraceQL response streaming in Tempo
<!-- André Pereira -->
_Experimental in all editions of Grafana_
Grafana's Tempo data source now supports _streaming_ responses to TraceQL queries. With this feature, you can now see partial query results as they come in, so you no longer have to wait for the whole query to finish. This is perfect for big queries that take a long time to return a response.
To use this feature, enable the `traceQLStreaming` feature toggle. If youre using Grafana Cloud and would like to enable this feature, please contact customer support.
Streaming is available for both the **Search** and **TraceQL** query types, and you'll get immediate visibility of incoming traces on the results table. This smooth integration makes data exploration a breeze and speeds up decision-making.
{{< video-embed src="/media/docs/grafana/data-sources/tempo-streaming-v2.mp4" >}}
### Tempo Search powered by TraceQL
<!-- André Pereira -->
_Generally available in all editions of Grafana_
The **Search** query type was replaced with a new editor powered by TraceQL. This new editor allows you to use the same query language for both Search and TraceQL queries. This change also brings a new UI that makes it easier to write queries and explore your data while using the powerful features offered by TraceQL.
The previous Search interface is now deprecated and will be removed in a future release. We recommend that you start using the new editor as soon as possible and migrate existing dashboards.
{{< figure src="/media/docs/grafana/data-sources/tempo-search.png" max-width="750px" caption="Tempo Search editor powered by TraceQL" >}}
### Span filtering for traces is GA
_Generally available in all editions of Grafana_
<!-- Joey Tawadrous -->
Since the last release, we've made several improvements to span filtering. Now, we're promoting span filters out of public preview and into general availability.
Span filters allow you to work much more efficiently with traces that consist of a large number of spans. Span filters exist above the trace view and allow you to filter the spans that are shown in the trace view. The more filters you add, the more specific the filtered spans.
Currently, you can add one or more of the following filters:
- Service Name
- Span Name
- Duration
- Tags (which includes tags, process tags, and log fields)
To only show the spans you've matched, you can enable the **Show matches only** toggle.
Learn more about span filtering in our [Tempo data source documentation]({{< relref "../datasources/tempo/#span-filters" >}}).
{{< figure src="/media/docs/tempo/screenshot-grafana-tempo-span-filters-v10-1.png" max-width="750px" caption="Traces span filtering" >}}
### Configuration page redesign for Loki and Elasticsearch
<!-- Matías Wenceslao Chomicki -->
_Generally available in all editions of Grafana_
The Loki and Elasticsearch data source configuration pages have been redesigned to make getting started and setting up data sources as simple and easy to understand as possible. You can now find new subsections with links to documentation pages, as well as tooltips to assist you with configuring and customizing data sources.
### Easier to use query editor for Elasticsearch
<!-- Gabor Farkas -->
_Generally available in all editions of Grafana_
The Elasticsearch query editor now allows convenient switching between logs, metrics, and raw data directly from the top, eliminating the need to go through the metric selector.
### Metrics explorer
<!-- Catherine Gui -->
_Generally available in all editions of Grafana_
The Metrics explorer is a new feature that enhances metrics browsing in the Prometheus query builder. The Metrics explorer makes it easier for you to find the right metric and get comfortable with PromQL. You can now explore metrics with additional metadata, perform fuzzy search on the metric name or description, and filter on the Prometheus type.
{{< figure src="/media/docs/grafana/screenshot-grafana-10-1-metrics-explorer.png" max-width="750px" caption="Searching in Metrics explorer" >}}
### Redshift and Athena: Async query data support
<!-- Isabella Siu, Kevin Yu, Andrés Martínez -->
_Generally available in all editions of Grafana_
Async query data support in Redshift and Athena makes queries over multiple requests (starting, checking status, and fetching the results) instead of in a single request query. This is useful for queries that can potentially run for a long time and time out. This feature was previously available behind a feature toggle and is now be generally available and enabled by default.
### Redshift and Athena: Async query caching
<!-- Isabella Siu -->
_Experimental in Grafana Enterprise, Cloud Pro, and Cloud Advanced_
This feature adds support for query caching of async queries in the Athena and Redshift data source plugins. To try this feature, enable both the `useCachingService` and `awsAsyncQueryCaching` feature toggles. If youre using Grafana Cloud and would like to enable this experimental feature, please contact customer support.
### CloudWatch logs Monaco query editor
<!-- Isabella Siu, Kevin Yu -->
_Experimental in all editions of Grafana_
The CloudWatch logs query editor is moving from being a Slate-based editor to a Monaco-based editor. This new Monaco-based editor provides improved syntax highlighting, and auto-completion. To use the Monaco-based query editor, enable the `cloudWatchLogsMonacoEditor` feature toggle. If youre using Grafana Cloud and would like to enable this feature, please contact customer support.
### InfluxDB backend mode
<!-- Ismail Simsek -->
_Available in public preview in all editions of Grafana_
Previously, InfluxDB backend mode was available, however, there were compatibility issues that needed to be addressed. In this release, we've addressed these issues and
promoted this feature from experimental to public preview. In the future, backend mode will be the default, and we'll deprecate frontend mode. To try backend mode, enable the `influxdbBackendMigration` feature toggle. If youre using Grafana Cloud and would like to enable this feature, please contact customer support.
## Explore
### Logs: Choose which fields to display in a log line
<!-- Matías Wenceslao Chomicki -->
_Generally available in all editions of Grafana_
When you're browsing logs in Explore, you can now click the eye icon within a row to replace the log line's contents with the value of one or more of the log fields or labels. This is helpful for scanning through your logs.
{{< figure src="/media/docs/grafana/log-field-picker-10-1.gif" max-width="750px" caption="Log rows menu" >}}
### Logs: Improved rendering performance of log lines
<!-- Matías Wenceslao Chomicki -->
_Generally available in all editions of Grafana_
After a series of performance optimizations to log-related components, browsing log lines is faster than ever.
### Logs: See more log lines in log context
<!-- Gabor Farkas, Sven Grossmann -->
_Generally available in all editions of Grafana_
Log context allows you to view additional lines surrounding a specific log entry. With this enhancement, you can access as many log lines as needed within the log context. As you scroll through the logs, Grafana dynamically loads more log lines, ensuring a seamless and continuous viewing experience.
### Elasticsearch logs sample
<!-- Gareth Dawson -->
_Generally available in all editions of Grafana_
For Elasticsearch metric queries in Explore, you can now see the sample of log lines that contributed to the displayed results. To see these logs, click the collapsed logs sample panel under your graph or table panel. If you want to interact with the log lines or modify the log query, click the **Open logs in split view** button and the log query will be executed in the split view.
### Panel plugins in Explore
<!-- Ben Donnelly -->
_Experimental in all editions of Grafana_
Data source plugin developers can now use any plugin to visualize data in Explore. Similar to `preferredVisualizationType`, we've introduced an experimental API to render visualizations by plugin ID. In the returned data frame, set the meta option `preferredVisualisationPluginId` to the plugin ID you want to be used when showing the data for given data frame.
## Alerting
_All Alerting features are generally available in all editions of Grafana_
Weve made a number of improvements to simplify the alert rule creation process as well as improvements to contact points and alert management. For all the details, refer to our [Alerting documentation]({{< relref "../alerting" >}}).
### Alert rules
Weve made the following changes to alert rules.
#### Alert instance routing preview
_This feature is for Grafana-managed alert rules only._
Preview how your alert instances will be routed if they fire while you're creating your alert rule. You can view routing for each Alertmanager you've configured to receive Grafana-managed alerts, and if required, easily make adjustments to your custom labels to change the way your alert instances are routed.
{{< figure src="/media/docs/alerting/alert-routing-preview.png" max-width="750px" caption="Alert instance routing preview" >}}
#### Alert rule types
You can switch to a data source-managed alert rule if your data source is configured to support alert rule creation (Ruler API enabled). By default, the alert rule type is Grafana-managed.
{{< figure src="/media/docs/alerting/alert-rule-types.png" max-width="750px" caption="Alert rule types" >}}
#### UI improvements
- **Alert evaluation behavior**: New UI components for creating a folder and adding an evaluation group. along with improved text and validation.
- **Alert Rule list page**: The process of creating recording rules (**More** drop-down) is now separate from Grafana-managed and data source-managed alert rules (**+New alert rule**)
.
- **Annotations display**: Adding a summary, description, and runbook URL as annotations are now optional. The dashboard and panel names are now also linked directly, making them easier to access.
- **View YAML button**: Displays alert rule configuration in YAML format on the Grafana-managed alert rules form, as well as in the Grafana-managed provisioned and non-provisioned Alert Rule detail view.
- **Queries and expressions**: Several improvements have been made to the display of queries and expressions, including making **Add expression** a drop-down and moving **Conditions** to the header.
- **Min interval option**: Improves control over query costs and performance by allowing you to adjust the minimum resolution of the data used in your alerting queries.
- **In-app guidance for alert rule creation**: Learn about how to create your alert rules interactively with in-app guidance for additional context and links out to our Alerting documentation.
- **Support for toggling common labels**: Toggle between showing or hiding labels for each individual alert instance.
### Contact points
Weve made the following changes to contact points.
#### Additional contact points for external Alertmanager
We've added support for the following contact points when using an external Alertmanager:
- WeChat
- Amazon SNS
- Telegram
- Cisco Webex Teams
#### Contact point provisioning file export
This update facilitates file provisioning and maintenance for contact points. The feature implements the provisioning API export endpoints for exporting contact points as well as adding export buttons to the contact point list in the UI.
### Notification policies
Weve made the following changes to notification policies.
#### Notification policy provisioning file export
This update facilitates file provisioning and maintenance for notification policies. The feature implements the provisioning API export endpoints for exporting notification policies as well as adding an export button to the root notification policy in the UI.
### Alert management
Weve made the following changes to alert management.
#### Support for time zones in mute timings
We've added support for different time zones and locations as well as a visual selector for week days, made improvements to loading and error handling, and provided better validation for time ranges.
{{< figure src="/media/docs/alerting/timezone-support.png" max-width="600px" caption="Time zone support" >}}
#### Label colors for alert instances
Labels are colored according to the label key, which makes it easier to track and view labels across alert instances.
## Authentication and authorization
### OAuth role mapping enforcement
<!-- Jo Guerreiro, AuthNZ -->
_Generally available in all editions of Grafana_
This change impacts `GitHub`, `GitLab`, `Okta`, and `Generic` OAuth.
Previously, if no organization role mapping was found for a user when they connected using OAuth, Grafana didnt update the users organization role.
Now, on every login, if the `role_attribute_path` property doesn't return a role, then the user is assigned the role specified by the `auto_assign_org_role` option or the default role for the organization, which is Viewer by default.
To avoid overriding manually set roles, enable the `skip_org_role_sync` option in the Grafana configuration for your OAuth provider before affected users log in for the first time.
### Prevent manual role updates for externally synced roles
<!-- Ieva Vasiljeva, AuthNZ -->
_Generally available in all editions of Grafana_
This change impacts all instances that use an external authentication provider and have role mapping enabled.
Previously, it was possible to manually update a user's organization role (Viewer, Editor, Admin, or Grafana Admin) even if this role was managed by an external authentication provider.
This means that roles could be manually set for the duration of a user's session, but were overridden by the external authentication provider the next time the user logged in.
If the `onlyExternalOrgRoleSync` feature toggle was enabled, only then were manual role updates for externally managed roles not allowed.
Now, you can no longer manually update externally managed organization roles.
We've removed the `onlyExternalOrgRoleSync` feature toggle, and have defaulted to locking the organization role of users authenticated by an external provider.
If you prefer to manage your users' organization roles manually, enable the `skip_org_role_sync` option in the Grafana configuration for your authentication provider.
For context on the previous work done leading up to this change, refer to the [Grafana v9.5 What's new]({{< relref "../whatsnew/whats-new-in-v9-5/#auth-lock-organization-roles-synced-from-auth-providers" >}}).
### GitLab OIDC support
<!-- Jo Guerreiro, AuthNZ -->
_Generally available in all editions of Grafana_
Grafana now supports GitLab OIDC through the `GitLab` OAuth provider in addition to the existing `GitLab` OAuth2 provider. This allows you to use GitLab OIDC to authenticate users in Grafana.
This change also allows Grafana to reduce the access scope to only the required scopes for authentication and authorization, instead
of full read API access.
To learn how to migrate your GitLab OAuth2 setup to OIDC, refer to our [GitLab authentication documentation]({{< relref "../setup-grafana/configure-security/configure-authentication/gitlab/" >}}).
### Google OIDC and Team Sync support
<!-- Jo Guerreiro, AuthNZ -->
_Generally available in all editions of Grafana_
Grafana now supports Google OIDC through the `Google` OAuth provider in addition to the existing `Google` OAuth2 provider. This allows you to use Google OIDC to authenticate users in Grafana, which in turn, lets Grafana reduce the access scope to only the required scopes for authentication and authorization.
This release also adds support for Google OIDC in Team Sync. You can now easily add users to teams by using their Google groups.
To learn how to migrate your Google OAuth2 setup to OIDC and how to set up Team Sync, refer to our [Google authentication documentation]({{< relref "../setup-grafana/configure-security/configure-authentication/google/" >}}).
## Plugins
### Angular deprecation changes
<!-- Giuseppe Guerra, Plugins Platform -->
_Generally available in all editions of Grafana_
We've made the following updates to increase awareness of the [Angular deprecation]({{< relref "../developers/angular_deprecation/" >}}) and its consequences in future releases of Grafana:
#### UI changes
- Added an **Angular** badge next to affected plugins in the plugins catalog.
- Added an alert at the top of a plugin's page in the plugins catalog when browsing Angular plugins.
- Added an alert at the top of the query editor when editing panels that use Angular data source plugins.
#### Other changes
- Angular Plugins will not be loaded if [angular_support_enabled]({{< relref "../setup-grafana/configure-grafana/#angular_support_enabled" >}}) is set to `false`.
Learn more in our [Angular support deprecation documentation]({{< relref "../developers/angular_deprecation/" >}}).
### Deprecated provisioning of data sources with invalid UIDs
<!-- Giuseppe Guerra, Plugins Platform -->
_Generally available in all editions of Grafana_
Grafana now logs an error when provisioning data sources with invalid UIDs. A valid UID is a combination of a-z, A-Z, 0-9 (alphanumericals), `-` (dashes), and `_` (underscores), with a maximum length of 40 characters.
Provisioning data sources with invalid UIDs will be removed in future versions of Grafana, and will return an error instead.
## Subfolders: folder selection
<!-- Zsofia Komaromi -->
_Available in public preview in all editions of Grafana_
When saving or moving a dashboard, you can now see the full folder tree when selecting the destination folder.
To get started creating subfolders, enable the `nestedFolders` feature toggle. We recommend that you enable this feature only on test or development instances, rather than in production environments.
{{< figure src="/media/docs/grafana/screenshot-grafana-10.1-subfolders-folder-picker.png" max-width="750px" caption="Selecting a folder in Grafana" >}}

View File

@@ -60,7 +60,7 @@ You can also create annotations in the new Time series panel bringing it closer
### Transformations improvements
Grafana 8.1 includes some significant enhancements to transformations, including two new transformations designed around providing dynamic configuration to your panels and visulizations.
Grafana 8.1 includes some significant enhancements to transformations, including two new transformations designed around providing dynamic configuration to your panels and visualizations.
#### Config from query (Beta)

14
go.mod
View File

@@ -41,6 +41,7 @@ require (
github.com/aws/aws-sdk-go v1.44.234 // @grafana/aws-datasources
github.com/beevik/etree v1.2.0 // @grafana/backend-platform
github.com/benbjohnson/clock v1.3.3 // @grafana/alerting-squad-backend
github.com/blang/semver/v4 v4.0.0 // @grafana/grafana-delivery
github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // @grafana/backend-platform
github.com/centrifugal/centrifuge v0.29.1 // @grafana/grafana-app-platform-squad
github.com/crewjam/saml v0.4.13 // @grafana/backend-platform
@@ -66,12 +67,12 @@ require (
github.com/grafana/cuetsy v0.1.10 // @grafana/grafana-as-code
github.com/grafana/grafana-aws-sdk v0.16.1 // @grafana/aws-datasources
github.com/grafana/grafana-azure-sdk-go v1.7.0 // @grafana/backend-platform
github.com/grafana/grafana-plugin-sdk-go v0.171.0 // @grafana/plugins-platform-backend
github.com/grafana/grafana-plugin-sdk-go v0.172.0 // @grafana/plugins-platform-backend
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // @grafana/backend-platform
github.com/hashicorp/go-hclog v1.5.0 // @grafana/plugins-platform-backend
github.com/hashicorp/go-plugin v1.4.9 // @grafana/plugins-platform-backend
github.com/hashicorp/go-version v1.6.0 // @grafana/backend-platform
github.com/influxdata/influxdb-client-go/v2 v2.6.0 // @grafana/observability-metrics
github.com/influxdata/influxdb-client-go/v2 v2.12.3 // @grafana/observability-metrics
github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // @grafana/grafana-app-platform-squad
github.com/jmespath/go-jmespath v0.4.0 // @grafana/backend-platform
github.com/json-iterator/go v1.1.12 // @grafana/backend-platform
@@ -79,7 +80,7 @@ require (
github.com/lib/pq v1.10.6 // @grafana/backend-platform
github.com/linkedin/goavro/v2 v2.10.0 // @grafana/backend-platform
github.com/m3db/prometheus_remote_client_golang v0.4.4 // @grafana/backend-platform
github.com/magefile/mage v1.14.0 // @grafana/grafana-delivery
github.com/magefile/mage v1.15.0 // @grafana/grafana-delivery
github.com/mattn/go-isatty v0.0.18 // @grafana/backend-platform
github.com/mattn/go-sqlite3 v1.14.16 // @grafana/backend-platform
github.com/matttproud/golang_protobuf_extensions v1.0.4 // @grafana/alerting-squad-backend
@@ -124,7 +125,7 @@ require (
gopkg.in/mail.v2 v2.3.1 // @grafana/backend-platform
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // @grafana/alerting-squad-backend
xorm.io/builder v0.3.6 // @grafana/backend-platform
xorm.io/builder v0.3.6 // indirect; @grafana/backend-platform
xorm.io/core v0.7.3 // @grafana/backend-platform
xorm.io/xorm v0.8.2 // @grafana/alerting-squad-backend
)
@@ -177,7 +178,7 @@ require (
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-msgpack v0.5.5 // indirect
github.com/hashicorp/go-multierror v1.1.1 // @grafana/grafana-as-code
github.com/hashicorp/go-multierror v1.1.1 // indirect; @grafana/grafana-as-code
github.com/hashicorp/go-sockaddr v1.0.2 // indirect
github.com/hashicorp/golang-lru v0.6.0 // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
@@ -297,7 +298,6 @@ require (
github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 // indirect
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/bmatcuk/doublestar v1.1.1 // indirect
github.com/buildkite/yaml v2.1.0+incompatible // indirect
github.com/bwmarrin/snowflake v0.3.0 // indirect
@@ -435,7 +435,7 @@ require (
github.com/coreos/go-semver v0.3.0 // indirect
github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140 // indirect
github.com/docker/docker v23.0.4+incompatible // @grafana/grafana-delivery
github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac // indirect
github.com/elazarl/goproxy v0.0.0-20230731152917-f99041a5c027 // indirect
github.com/emirpasic/gods v1.12.0 // indirect
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 // indirect
github.com/go-git/gcfg v1.5.0 // indirect

32
go.sum
View File

@@ -309,6 +309,7 @@ cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9
cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M=
cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE=
cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc=
cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM=
cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo=
cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE=
cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM=
@@ -1035,11 +1036,10 @@ github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6
github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20181003060214-f58a169a71a5/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac h1:XDAn206aIqKPdF5YczuuJXSQPx+WOen0Pxbxp5Fq8Pg=
github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
github.com/elazarl/goproxy v0.0.0-20230731152917-f99041a5c027 h1:1L0aalTpPz7YlMxETKpmQoWMBkeiuorElZIXoNmgiPE=
github.com/elazarl/goproxy v0.0.0-20230731152917-f99041a5c027/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
github.com/elazarl/goproxy/ext v0.0.0-20220115173737-adb46da277ac h1:9yrT5tmn9Zc0ytWPASlaPwQfQMQYnRf0RSDe1XvHw0Q=
github.com/elazarl/goproxy/ext v0.0.0-20220115173737-adb46da277ac/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
@@ -1705,7 +1705,6 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10 h1:CqYfpuYIjnlNxM3msdyPRKabhXZWbKjf3Q8BWROFBso=
github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -1780,10 +1779,6 @@ github.com/grafana/go-mssqldb v0.9.2 h1:FkyRJR4ywsT07iMtpFMHStrl8uuNkGIwp253Fee0
github.com/grafana/go-mssqldb v0.9.2/go.mod h1:HTCsUqZdb7oIO7jc37YauiSB5C3P/13AnpctVWBhlus=
github.com/grafana/grafana-apiserver v0.0.0-20230713001719-88a9ed41992d h1:fjc6vlNnKCDewr/5GiObiiGLeqr6YnXUbZ44YZtlu5Q=
github.com/grafana/grafana-apiserver v0.0.0-20230713001719-88a9ed41992d/go.mod h1:2g9qGdCeU6x/69QAs82WM52bwBUT5/CBaBD0I94+txU=
github.com/grafana/grafana-aws-sdk v0.15.0 h1:ZOPHQcC5NUFi1bLTwnju91G0KmGh1z+qXOKj9nDfxNs=
github.com/grafana/grafana-aws-sdk v0.15.0/go.mod h1:rCXLYoMpPqF90U7XqgVJ1HIAopFVF0bB3SXBVEJIm3I=
github.com/grafana/grafana-aws-sdk v0.16.0 h1:FFVab0jvhENce5cMEAodANCa5ARjyObN1dSOrvciW0c=
github.com/grafana/grafana-aws-sdk v0.16.0/go.mod h1:rCXLYoMpPqF90U7XqgVJ1HIAopFVF0bB3SXBVEJIm3I=
github.com/grafana/grafana-aws-sdk v0.16.1 h1:R/hMtQP7H0+8nWFoIOApaZj0qstmZM+5Pw0rRzk3A3Y=
github.com/grafana/grafana-aws-sdk v0.16.1/go.mod h1:rCXLYoMpPqF90U7XqgVJ1HIAopFVF0bB3SXBVEJIm3I=
github.com/grafana/grafana-azure-sdk-go v1.7.0 h1:2EAPwNl/qsDMHwKjlzaHif+H+bHcF1W7sM8/jAcxVcI=
@@ -1792,12 +1787,8 @@ github.com/grafana/grafana-google-sdk-go v0.1.0 h1:LKGY8z2DSxKjYfr2flZsWgTRTZ6HG
github.com/grafana/grafana-google-sdk-go v0.1.0/go.mod h1:Vo2TKWfDVmNTELBUM+3lkrZvFtBws0qSZdXhQxRdJrE=
github.com/grafana/grafana-plugin-sdk-go v0.94.0/go.mod h1:3VXz4nCv6wH5SfgB3mlW39s+c+LetqSCjFj7xxPC5+M=
github.com/grafana/grafana-plugin-sdk-go v0.114.0/go.mod h1:D7x3ah+1d4phNXpbnOaxa/osSaZlwh9/ZUnGGzegRbk=
github.com/grafana/grafana-plugin-sdk-go v0.165.0 h1:PTCW1bSlqPr5/k/9oz4R8NLZIiQaOMP0xlSaRWwKUxg=
github.com/grafana/grafana-plugin-sdk-go v0.165.0/go.mod h1:dPhljkVno3Bg/ZYafMrR/BfYjtCRJD2hU2719Nl3QzM=
github.com/grafana/grafana-plugin-sdk-go v0.170.0 h1:6vT+AcruJ7do4uISu+sXJCB8DSJh85SWNzClyM1caOU=
github.com/grafana/grafana-plugin-sdk-go v0.170.0/go.mod h1:4jbsFzZvseLhsEmsPhI18fZG40mkJ2xIKPj9UopNz/8=
github.com/grafana/grafana-plugin-sdk-go v0.171.0 h1:f4W4sTgm3zJzh5EewTORMoKax4PorCmNeqINzIZ0mJw=
github.com/grafana/grafana-plugin-sdk-go v0.171.0/go.mod h1:SvYXsAQWSuV9TtHqXZJdOFCaC8G0q02U+IHWMTKIGIQ=
github.com/grafana/grafana-plugin-sdk-go v0.172.0 h1:Iy58w8PipSeMmiES30okNHOBcusBwTylH017ZFPaU2c=
github.com/grafana/grafana-plugin-sdk-go v0.172.0/go.mod h1:KFGu4dguh0IyugxISt/+OZ2nZ1bS+x2lqk2X80m5nwM=
github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482 h1:1YNoeIhii4UIIQpCPU+EXidnqf449d0C3ZntAEt4KSo=
github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482/go.mod h1:GNcfpy5+SY6RVbNGQW264gC0r336Dm+0zgQ5vt6+M8Y=
github.com/grafana/phlare/api v0.1.4-0.20230426005640-f90edba05413 h1:bBzCezZNRyYlJpXTkyZdY4fpPxHZUdyeyRWzhtw/P6I=
@@ -1949,6 +1940,8 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf
github.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
github.com/influxdata/influxdb-client-go/v2 v2.6.0 h1:bIOaGTgvvv1Na2hG+nIvqyv7PK2UiU2WrJN1ck1ykyM=
github.com/influxdata/influxdb-client-go/v2 v2.6.0/go.mod h1:Y/0W1+TZir7ypoQZYd2IrnVOKB3Tq6oegAQeSVN/+EU=
github.com/influxdata/influxdb-client-go/v2 v2.12.3 h1:28nRlNMRIV4QbtIUvxhWqaxn0IpXeMSkY/uJa/O/vC4=
github.com/influxdata/influxdb-client-go/v2 v2.12.3/go.mod h1:IrrLUbCjjfkmRuaCiGQg4m2GbkaeJDcuWoxiWdQEbA0=
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo=
@@ -2155,8 +2148,8 @@ github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuz
github.com/m3db/prometheus_remote_client_golang v0.4.4 h1:DsAIjVKoCp7Ym35tAOFL1OuMLIdIikAEHeNPHY+yyM8=
github.com/m3db/prometheus_remote_client_golang v0.4.4/go.mod h1:wHfVbA3eAK6dQvKjCkHhusWYegCk3bDGkA15zymSHdc=
github.com/magefile/mage v1.11.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo=
github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
@@ -2309,7 +2302,6 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
@@ -2676,8 +2668,6 @@ github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
@@ -3259,8 +3249,6 @@ golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -3293,7 +3281,6 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri
golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw=
golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
@@ -3854,7 +3841,6 @@ google.golang.org/genproto v0.0.0-20220401170504-314d38edb7de/go.mod h1:8w6bsBMX
google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3 h1:SeX3QUcBj3fciwnfPT9kt5gBhFy/FCZtYZ+I/RB8agc=
google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=

View File

@@ -36,7 +36,7 @@ lineage: schemas: [{
} @cuetsy(kind="interface")
#AccessRule: {
// The kind this rule applies to (dashboars, alert, etc)
// The kind this rule applies to (dashboards, alert, etc)
kind: "*" | string
// READ, WRITE, CREATE, DELETE, ...

View File

@@ -2,5 +2,5 @@
"npmClient": "yarn",
"useWorkspaces": true,
"packages": ["packages/*"],
"version": "10.1.0-pre"
"version": "10.1.1"
}

View File

@@ -3,7 +3,7 @@
"license": "AGPL-3.0-only",
"private": true,
"name": "grafana",
"version": "10.1.0-pre",
"version": "10.1.1",
"repository": "github:grafana/grafana",
"scripts": {
"build": "yarn i18n:compile && NODE_ENV=production webpack --progress --config scripts/webpack/webpack.prod.js",
@@ -55,7 +55,7 @@
"betterer:issues": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/generateBettererIssues.ts"
},
"grafana": {
"whatsNewUrl": "https://grafana.com/docs/grafana/next/whatsnew/whats-new-in-v10-0/",
"whatsNewUrl": "https://grafana.com/docs/grafana/next/whatsnew/whats-new-in-v10-1/",
"releaseNotesUrl": "https://grafana.com/docs/grafana/next/release-notes/"
},
"lint-staged": {
@@ -265,7 +265,7 @@
"@grafana/faro-core": "1.1.0",
"@grafana/faro-web-sdk": "1.1.0",
"@grafana/google-sdk": "0.1.1",
"@grafana/lezer-logql": "0.1.8",
"@grafana/lezer-logql": "0.1.11",
"@grafana/monaco-logql": "^0.0.7",
"@grafana/runtime": "workspace:*",
"@grafana/scenes": "0.22.0",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/data",
"version": "10.1.0-pre",
"version": "10.1.1",
"description": "Grafana Data Library",
"keywords": [
"typescript"
@@ -36,7 +36,7 @@
},
"dependencies": {
"@braintree/sanitize-url": "6.0.2",
"@grafana/schema": "10.1.0-pre",
"@grafana/schema": "10.1.1",
"@types/d3-interpolate": "^3.0.0",
"@types/string-hash": "1.1.1",
"d3-interpolate": "3.0.1",

View File

@@ -100,4 +100,22 @@ describe('FieldCache', () => {
expect(field!.index).toEqual(2);
});
});
describe('getFirstFieldOfType', () => {
let fieldCache: FieldCache;
beforeEach(() => {
const frame = toDataFrame({
fields: [
{ name: 'time', type: FieldType.time, values: [100, 200, 300] },
{ name: 'value', type: FieldType.number, values: [1, 2, 3] },
],
});
fieldCache = new FieldCache(frame);
});
it('should return undefined if type is not present', () => {
const field = fieldCache.getFirstFieldOfType(FieldType.string);
expect(field).toBeUndefined();
});
});
});

View File

@@ -59,7 +59,7 @@ export class FieldCache {
getFirstFieldOfType(type: FieldType, includeHidden = false): FieldWithIndex | undefined {
const fields = this.fieldByType[type];
const firstField = fields.find((field) => includeHidden || !field.config.custom?.hidden);
const firstField = fields?.find((field) => includeHidden || !field.config.custom?.hidden);
return firstField;
}

View File

@@ -5,6 +5,7 @@ import {
isValidDuration,
isValidGoDuration,
durationToMilliseconds,
isValidGrafanaDuration,
} from './durationutil';
describe('Duration util', () => {
@@ -68,6 +69,28 @@ describe('Duration util', () => {
});
});
describe('isValidGrafanaDuration', () => {
it('valid duration string returns true', () => {
const durationString = '7y 6M 5w 4d 3h 4m 1s 2ms 3us 5ns';
expect(isValidGrafanaDuration(durationString)).toEqual(true);
});
it('valid float number duration string returns true', () => {
const durationString = '7.1y 6.1M 5.1w 4.1d 3.1h 4.0m 0.1s 2.11ms 0.03us 5.3333ns';
expect(isValidGrafanaDuration(durationString)).toEqual(true);
});
it('invalid duration string returns false', () => {
const durationString = '3M 6v 5b 4m';
expect(isValidGrafanaDuration(durationString)).toEqual(false);
});
it('invalid float number duration string returns false', () => {
const durationString = '3.h -4.0m 0.s 2.ms -0.us 5.ns';
expect(isValidGrafanaDuration(durationString)).toEqual(false);
});
});
describe('durationToMilliseconds', () => {
it('converts a duration to milliseconds', () => {
const duration = { hours: 1, minutes: 30, seconds: 45 };

View File

@@ -99,8 +99,11 @@ export function isValidDate(dateString: string): boolean {
}
/**
* isValidDuration returns true if the given string can be parsed into a valid Duration object, false otherwise
* isValidDuration returns true if the given string can be parsed into a valid `date-fns` `Duration` object, false otherwise
*
* Valid time units are "y", "Y", "years", "M", "months", "w", "W", "weeks", "d", "D", "days", "h", "H", "hours", "m", "minutes", "s", "S", "seconds"
*
* @see https://date-fns.org/v2.30.0/docs/Duration
* @param durationString - string representation of a duration
*
* @public
@@ -127,7 +130,7 @@ export function isValidDuration(durationString: string): boolean {
*
* Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
*
* Go docs: https://pkg.go.dev/time#ParseDuration
* @see https://pkg.go.dev/time#ParseDuration
*
* @param durationString - string representation of a duration
*
@@ -135,6 +138,27 @@ export function isValidDuration(durationString: string): boolean {
*/
export function isValidGoDuration(durationString: string): boolean {
const timeUnits = ['h', 'm', 's', 'ms', 'us', 'µs', 'ns'];
return validateDurationByUnits(durationString, timeUnits);
}
/**
* isValidGrafanaDuration returns `true` if the given string can be parsed into a valid Duration object based on
* the Grafana SDK's gtime.parseDuration, `false` otherwise.
*
* Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h", "d", "w", "M", "y".
*
* @see https://pkg.go.dev/github.com/grafana/grafana-plugin-sdk-go/backend/gtime#ParseDuration
*
* @param durationString - string representation of a duration
*
* @internal
*/
export function isValidGrafanaDuration(durationString: string): boolean {
const timeUnits = ['y', 'M', 'w', 'd', 'h', 'm', 's', 'ms', 'us', 'µs', 'ns'];
return validateDurationByUnits(durationString, timeUnits);
}
function validateDurationByUnits(durationString: string, timeUnits: string[]): boolean {
for (const value of durationString.trim().split(' ')) {
const match = value.match(/([0-9]*[.]?[0-9]+)(.+)/);
if (match === null || match.length !== 3) {

View File

@@ -240,4 +240,5 @@ export interface AuthSettings {
GoogleSkipOrgRoleSync?: boolean;
GenericOAuthSkipOrgRoleSync?: boolean;
DisableSyncLock?: boolean;
AuthProxyEnableLoginToken?: boolean;
}

View File

@@ -266,7 +266,7 @@ export interface DataFrameDTO extends QueryResultBase {
export interface FieldCalcs extends Record<string, any> {}
/** @deprecated check data plane docs: https://grafana.github.io/dataplane/heatmap **/
/** @deprecated check data plane docs: https://grafana.com/developers/dataplane/heatmap **/
export const TIME_SERIES_VALUE_FIELD_NAME = 'Value';
export const TIME_SERIES_TIME_FIELD_NAME = 'Time';
export const TIME_SERIES_METRIC_FIELD_NAME = 'Metric';

View File

@@ -13,12 +13,12 @@ export enum DataFrameType {
TimeSeriesMulti = 'timeseries-multi',
/** Numeric types: https://grafana.github.io/dataplane/contract/numeric */
/** Numeric types: https://grafana.com/developers/dataplane/numeric */
NumericWide = 'numeric-wide',
NumericMulti = 'numeric-multi',
NumericLong = 'numeric-long',
/** Logs types: https://grafana.github.io/dataplane/logs */
/** Logs types: https://grafana.com/developers/dataplane/logs */
LogLines = 'log-lines',
/** Directory listing */

View File

@@ -383,6 +383,13 @@ export interface MetadataInspectorProps<
data: DataFrame[];
}
export interface LegacyMetricFindQueryOptions {
searchFilter?: string;
scopedVars?: ScopedVars;
range?: TimeRange;
variable?: { name: string };
}
export interface QueryEditorProps<
DSType extends DataSourceApi<TQuery, TOptions>,
TQuery extends DataQuery = DataQuery,

View File

@@ -345,9 +345,9 @@ export const getCategories = (): ValueFormatCategory[] => [
formats: [
{ name: 'Revolutions per minute (rpm)', id: 'rotrpm', fn: toFixedUnit('rpm') },
{ name: 'Hertz (Hz)', id: 'rothz', fn: SIPrefix('Hz') },
{ name: 'Kilohertz (kHz)', id: 'rotkhz', fn: SIPrefix('kHz', 1) },
{ name: 'Megahertz (MHz)', id: 'rotmhz', fn: SIPrefix('MHz', 2) },
{ name: 'Gigahertz (GHz)', id: 'rotghz', fn: SIPrefix('GHz', 3) },
{ name: 'Kilohertz (kHz)', id: 'rotkhz', fn: SIPrefix('Hz', 1) },
{ name: 'Megahertz (MHz)', id: 'rotmhz', fn: SIPrefix('Hz', 2) },
{ name: 'Gigahertz (GHz)', id: 'rotghz', fn: SIPrefix('Hz', 3) },
{ name: 'Radians per second (rad/s)', id: 'rotrads', fn: toFixedUnit('rad/s') },
{ name: 'Degrees per second (°/s)', id: 'rotdegs', fn: toFixedUnit('°/s') },
],

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/e2e-selectors",
"version": "10.1.0-pre",
"version": "10.1.1",
"description": "Grafana End-to-End Test Selectors Library",
"keywords": [
"cli",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/e2e",
"version": "10.1.0-pre",
"version": "10.1.1",
"description": "Grafana End-to-End Test Library",
"keywords": [
"cli",
@@ -63,7 +63,7 @@
"@babel/core": "7.22.1",
"@babel/preset-env": "7.22.4",
"@cypress/webpack-preprocessor": "5.17.0",
"@grafana/e2e-selectors": "10.1.0-pre",
"@grafana/e2e-selectors": "10.1.1",
"@grafana/tsconfig": "^1.2.0-rc1",
"@mochajs/json-file-reporter": "^1.2.0",
"babel-loader": "9.1.2",

View File

@@ -1,7 +1,7 @@
{
"name": "@grafana/eslint-plugin",
"description": "ESLint rules for use within the Grafana repo. Not suitable (or supported) for external use.",
"version": "10.1.0-pre",
"version": "10.1.1",
"main": "./index.cjs",
"author": "Grafana Labs",
"license": "Apache-2.0",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/runtime",
"version": "10.1.0-pre",
"version": "10.1.1",
"description": "Grafana Runtime Library",
"keywords": [
"grafana",
@@ -37,10 +37,10 @@
"postpack": "mv package.json.bak package.json"
},
"dependencies": {
"@grafana/data": "10.1.0-pre",
"@grafana/e2e-selectors": "10.1.0-pre",
"@grafana/data": "10.1.1",
"@grafana/e2e-selectors": "10.1.1",
"@grafana/faro-web-sdk": "1.1.0",
"@grafana/ui": "10.1.0-pre",
"@grafana/ui": "10.1.1",
"history": "4.10.1",
"lodash": "4.17.21",
"rxjs": "7.8.0",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/schema",
"version": "10.1.0-pre",
"version": "10.1.1",
"description": "Grafana Schema Library",
"keywords": [
"typescript"

View File

@@ -25,7 +25,7 @@ export interface ResourceRef {
export interface AccessRule {
/**
* The kind this rule applies to (dashboars, alert, etc)
* The kind this rule applies to (dashboards, alert, etc)
*/
kind: ('*' | string);
/**

View File

@@ -9,7 +9,7 @@
//
// Run 'make gen-cue' from repository root to regenerate.
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface Options {
/**

View File

@@ -9,7 +9,7 @@
//
// Run 'make gen-cue' from repository root to regenerate.
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface Options {
limit: number;

View File

@@ -11,7 +11,7 @@
import * as common from '@grafana/schema';
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface Options extends common.OptionsWithLegend, common.OptionsWithTooltip, common.OptionsWithTextFormatting {
/**

View File

@@ -11,7 +11,7 @@
import * as common from '@grafana/schema';
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface Options extends common.SingleStatBaseOptions {
displayMode: common.BarGaugeDisplayMode;

View File

@@ -11,7 +11,7 @@
import * as common from '@grafana/schema';
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export enum VizDisplayMode {
Candles = 'candles',

View File

@@ -11,7 +11,7 @@
import * as ui from '@grafana/schema';
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export enum HorizontalConstraint {
Center = 'center',

View File

@@ -11,7 +11,7 @@
import * as common from '@grafana/schema';
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface MetricStat {
/**

View File

@@ -9,7 +9,7 @@
//
// Run 'make gen-cue' from repository root to regenerate.
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface Options {
folderId?: number;

View File

@@ -9,7 +9,7 @@
//
// Run 'make gen-cue' from repository root to regenerate.
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export interface Options {
selectedSeries: number;

View File

@@ -9,7 +9,7 @@
//
// Run 'make gen-cue' from repository root to regenerate.
export const pluginVersion = "10.1.0-pre";
export const pluginVersion = "10.1.1";
export type UpdateConfig = {
render: boolean,

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