Compare commits

...

877 Commits

Author SHA1 Message Date
Jack Westbrook
3c359376e1 Grafana/Runtime: Remove SystemJS export (#84561)
* feat(systemjs): move systemjs to grafana core and stop exporting from runtime

* feat(plugins): move systemjs to own file, update imports

* chore(plugins): call systemjs directly from window as ref can be undefined

* chore(plugins): make sure systemjs is imported before its shared dependencies

* chore(systemjs): move dependency to root package.json
2024-03-21 09:22:35 +01:00
Pepe Cano
60b9a1058a Docs: Specify Recorded queries is available in Grafana Cloud (#84716) 2024-03-21 09:17:27 +01:00
Laura Benz
d8a116e696 ReturnToPrevious: Add e2e test (#83115)
* feat: add incomplete unit test

* refactor: add idea for unit test

* feat: create new e2e test

* feat: add some steps

* feat: add comment

* feat: complete prep work

* feat: complete clean up

* rebase

* feat: add more steps to test flow

* refactor: remove unit test

* refactor: clean up

* refactor: create a provisioned alert rule

* refactor: change location and content

* refactor: e2e test

* refactor: betterer

* refactor: move provisioned alert rule

* refactor: make provisioning file available remote

* refactor: clean up test

* refactor: move provisioned alert rule

* refactor: remove wait()

* feat: restructure first test and add more tests

* feat: add another provisioned alert rule

* feat: add a new test

* feat: complete new test

* refactor: replace data-testid in alert rules

* refactor: replace data-testid

* refactor: fix tests for drone

* refactor: fix third test after review

* refactor: fix last test

* temp

* refactor: improve some things

* refactor: adjust unit tests

* refactor: remove assertions for alert rule details view

* refactor: remove assertions

* refactor: add check for button text

* refactor: remove session storage

* refactor: apply changes from code review

* refactor: add codeowner

* refactor

* refactor

* refactor: clean up

* refactor: clean up

* refactor: clean up

* refactor: increase pa11y threshold for /alerting/list
2024-03-21 09:05:51 +01:00
Andres Martinez Gotor
9298a5fcb5 AzureMonitor: Update standalone HTTP middlewares (#84833) 2024-03-21 08:53:27 +01:00
Drew Slobodnjak
3877d976d6 Canvas: Add snapping to vertex edit (#84417)
* Canvas: Add vertex control to connections

* Add function for vertex conversion

* Add vertex interface

* Add future vertex handling

* Only show vertices when connection selected

* Add vertices to save model

* Apply select constraint to first midpoint

* Add some infrastructure for vertex edit

* Render vertex edit and capture events

* Save vertex edit on button release

* Handle adding new vertices

* Limit number of vertices to 10

* Handle zoom for vertex edit and creation

* Rename future to add

* Remove more references to future

* Remove unsued console log

* Clean up styles

* Add some clarity for path generation

* Add clarity to connections event handling

* Canvas: Add snapping to vertex edit

* Remove unused color styling

* Add horizontal and vertical snap for vertex edit

* Add snapping during vertex creation

* Hide vertex before removal
2024-03-20 23:49:28 -07:00
github-actions[bot]
f96de9d0f8 I18n: Download translations from Crowdin (#84826)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-21 05:38:09 +00:00
Darren Janeczek
7653da1870 datatrails: add ability to deselect currently metric (#84586)
* feat: ability to deselect currently metric
2024-03-20 21:51:47 -04:00
Darren Janeczek
d58e652cc3 datatrails: include description of related metrics tab (#84525)
* fix: include description of related metrics tab
2024-03-21 00:20:23 +02:00
Darren Janeczek
5d5e22ae11 datatrails: fix: position of new metric exploration button (#84844)
fix: position of new metric exploration button
2024-03-20 18:08:13 -04:00
Andreas Christou
0718605f75 Azure: Support multi-resource namespace (NetApp Volumes) (#84779)
Add multi-resource namespace (NetApp Volumes)
2024-03-20 20:07:47 +00:00
Matthew Jacobson
fbd057b258 Alerting: Stop returning autogen routes for non-admin on api/v2/status (#84864)
* Alerting: Stop returning autogen routes for non-admin on api/v2/status

* Improve api/v2/status integration tests for user roles
2024-03-20 22:04:35 +02:00
Kyle Cunningham
7eee34311d Table Panel: Add documentation for apply to row (#84786)
* Add documentation for apply to row

* Updated wording

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

* Remove image

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

* Prettier

* Added word to improve clarity

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-21 02:55:13 +07:00
Will Browne
c8c372c327 Prometheus: Prevent duplicate registration of custom header middleware (#84860)
* remove dupe middleware

* fix test
2024-03-20 21:22:33 +02:00
Andreas Christou
00c094f7cf Azure: Update data link title for clarity (#84686)
Update data link title for clarity
2024-03-20 13:39:00 -05:00
Josh Hunt
00d6e1d7f8 E2C: Move frontend feature folder up one (#84851)
* E2C: Move frontedn folder up one

* codeowners
2024-03-20 19:39:39 +02:00
Marie Cruz
72bf647dc6 fix: update slack for alerting link (#84854) 2024-03-20 17:27:00 +00:00
William Wernert
c5b04b5674 Alerting: Add docs for "Keep Last State" feature (#84676)
Add initial docs for "Keep Last State" feature
2024-03-20 13:11:16 -04:00
William Wernert
6d16cf2699 Alerting: Marshal incoming json.RawMessage in diff (#84692)
This will ensure the encoding is correct when comparing
to the existing rule.
2024-03-20 13:10:39 -04:00
lean.dev
8336f1fc1e Update feature toggle code owner (#84817)
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2024-03-20 18:06:14 +01:00
renovate[bot]
6813210ed0 Update react monorepo 2024-03-20 16:40:05 +00:00
renovate[bot]
92ab85e066 Update dependency @types/node to v20.11.30 (#84836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 17:53:35 +02:00
Matias Chomicki
7e8e7429ec Popover menu: remove selectionchange listener (#84832) 2024-03-20 17:48:33 +02:00
Marie Cruz
821d9a5565 docs: add links to KillerCoda tutorial environments (#84831) 2024-03-20 15:47:45 +00:00
Kyle Brandt
0df7c9201a Make: Speed up make run by removing redundant make go-gen in .bra (#84827)
Make: Remove redundant `make go-gen` in .bra, build-go already calls this
Calling twice really slows down backend build time since wire gets called twice and that uses a few gigs of memory
2024-03-20 16:39:49 +01:00
renovate[bot]
78f1551b8e Update dependency @grafana/faro-web-sdk to v1.5.0 (#84820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 15:31:34 +00:00
Adela Almasan
9fced253f5 VizTooltips: Switch data links display to column (#84828) 2024-03-20 17:29:37 +02:00
Alex Khomenko
b9b42ba10f Grafana/icons: Add icons package (#82314)
* Add separate icons package

* Update package.json

* Codeformat

* Use the new icon

* Sanitize SVGs

* Sync deps

* Add publish script

* Add pre-commit hook

* Test pre-commit

* Rename

* Comment out local dev configs

* Add generate action

* Update readme

* Update script

* Add license

* Rename icons to icons-generated

* Codeformat

* Update lerna

* Remove fill attribute from SVG path elements

* Revert lerna upgrade

* Update codeowners

* Add lint scripts

* Exclude more attributes

* Add missing deps

* Update lockfile

* Remove CI actions

* Remove generated components from VC

* Fix path

* Build ESM only

* Include cjs

* Update lockfile

* Move generated icons into src

* Update lockfile

* Sync deps with grafana

* Update lockfile

* Update lockfile

* Update package name

* Cleanup

* Memoize the components

* Publish esm only

* Do not overwrite props

* Add generate script to build

* Update comment

* Generate typedefs from index.ts

* test

* test

* Restore

* Add more complex icons

* Add readme

* Update lockfile

* Make the package private

* Move package exclusion to lerna.json

* Remove exclusion

* Revert

* test packages

* Fix

* Fix

* Revert

* Move generate icons script to the root

* Update script

* Remove icons script

* Move icons exclusion to package.json
2024-03-20 17:03:40 +02:00
Juan Cabanas
98a6b5debf Scenes: Fix public dashboard email sharing section (#84467) 2024-03-20 12:00:19 -03:00
Adam Simpson
311aa94fab MSSQL: Add Windows AD/Kerberos auth (#84742)
* mssql: Add Kerberos/Windows AD auth

* need username for cache file

* account for no port in cc file

* add tests around constring

* remove un-needed port

* add docs

* remove comments

* move defer to same locale as where it begins

* fix linting and spelling

* fix gosec linter

* note lack of grafana cloud support
2024-03-20 16:41:57 +02:00
Yuri Tseretyan
04c9f459ec Alerting: do not check for folder in file provisioning (#84822)
provide nil folder service in file provisioning
2024-03-20 10:39:03 -04:00
Ida Štambuk
18eac9df9e Feature toggles: Remove redshiftAsyncQueryDataSupport and athenaAsyncQueryDataSupport toggles (#84653) 2024-03-20 15:14:21 +01:00
renovate[bot]
339a2ba4e9 Update dependency msw to v2.2.9 2024-03-20 13:44:32 +00:00
Matthias Meyer
af820f29f8 Docs: updated provisioning documentation (#84711) 2024-03-20 12:56:10 +00:00
renovate[bot]
e2109f9b2a Update babel monorepo to v7.24.3 2024-03-20 12:50:51 +00:00
Andres Martinez Gotor
a705ff7892 API Server: refactor plugin ID handling (#84753) 2024-03-20 13:49:19 +01:00
renovate[bot]
d0935fe44c Update dependency @testing-library/react to v14.2.2 2024-03-20 12:31:21 +00:00
renovate[bot]
6cf34a76cf Update dependency @msagl/parser to v1.1.18 2024-03-20 10:49:24 +00:00
Alex Khomenko
c632cabb3b NewOrgPage: Update Form import (#84792) 2024-03-20 12:47:22 +02:00
renovate[bot]
fe623760a8 Update dependency @msagl/core to v1.1.18 2024-03-20 10:22:49 +00:00
github-actions[bot]
cd3312ba02 I18n: Download translations from Crowdin (#84799)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-20 10:17:56 +00:00
renovate[bot]
9b6c32163d Update dependency @grafana/faro-core to v1.5.0 (#84784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 10:04:08 +00:00
Fabrizio
288b06b64c Loki: Replace imports of infra/log with SDK (#84336) 2024-03-20 11:25:35 +02:00
Jack Westbrook
421ef641d0 Azure Monitor: Externalise kusto (#84749)
fix(azuremonitor): externalise kusto so it loads via core
2024-03-20 10:16:54 +01:00
Dominik Prokop
d5e293c18d GroupBy variable: Allow detecting static dimensions changes (#84715)
* GroupBy variable: Allow detecting static dimensions changes

* Review

* Lint
2024-03-20 10:08:42 +01:00
Ivana Huckova
77b1c97482 Elasticsearch: Remove xpack button and make includeFrozen not dependant on it (#84734) 2024-03-20 09:59:26 +01:00
Gábor Farkas
fba2b61408 postgres: removed unused code (#84736)
sql: removed unused code
2024-03-20 09:28:42 +01:00
George Robinson
f3e5ad00d6 Remove extra defers in screenshot sevice (#84697) 2024-03-20 07:13:16 +00:00
github-actions[bot]
034c232ec9 I18n: Download translations from Crowdin (#84670)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-20 06:26:46 +00:00
Yuri Tseretyan
e593d36ed8 Alerting: Update rule access control to explicitly check for permissions "alert.rules:read" and "folders:read" (#78289)
* require "folders:read" and "alert.rules:read"  in all rules API requests (write and read). 

* add check for permissions "folders:read" and "alert.rules:read" to AuthorizeAccessToRuleGroup and HasAccessToRuleGroup

* check only access to datasource in rule testing API

---------

Co-authored-by: William Wernert <william.wernert@grafana.com>
2024-03-19 22:20:30 -04:00
Zoltán Bedi
a4fe7f39ea E2E: Rewrite mysql tests to playwright (#83424)
* E2E: Rewrite mysql tests to playwright

* Fix lint

* Add more selectors and address comments

* Scope locators when locating text

* Don't run it 20 times

* Update new-datasource-variable to assert mysql
2024-03-19 23:07:48 +01:00
Lucy Chen
351425ab3d Reporting: Update api doc files (#84358) 2024-03-19 17:19:14 -04:00
renovate[bot]
1cc31a4d62 Update dependency webpack-dev-server to v5.0.4 2024-03-19 20:48:38 +00:00
renovate[bot]
97e49d37e7 Update dependency react-hook-form to v7.51.1 2024-03-19 20:31:35 +00:00
brendamuir
d01d99a585 Alerting docs: change icon and simplified routing (#84729) 2024-03-19 21:29:45 +01:00
renovate[bot]
f3986f0dc7 Update dependency postcss to v8.4.37 2024-03-19 18:56:16 +00:00
Jack Baldry
fef0c66b03 Use $host nginx variable instead of $http_host (#84354) 2024-03-19 18:54:25 +00:00
renovate[bot]
590c657828 Update dependency msw to v2.2.8 2024-03-19 18:21:50 +00:00
renovate[bot]
9d058f8db0 Update dependency eslint-plugin-react to v7.34.1 2024-03-19 17:44:17 +00:00
Señor Performo - Leandro Melendez
e011c60a75 Visualizations-TablePanel: added YouTube link to Table Panel (#84533)
* Update index.md added YouTube link to Table Panel

* Moved video and added placement note

* Update index.md adding video description

Added a description to the video. Feel free to edit if my syntax or writing needs improvement.

* Wording and style edits

* Wording fix

---------

Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-19 13:41:10 -04:00
Gilles De Mey
5a57ff1307 Alerting: Preserve newlines and whitespace for Prometheus and Loki queries (#84755) 2024-03-19 19:38:04 +02:00
renovate[bot]
d12faee989 Update dependency dompurify to v3.0.10 2024-03-19 17:26:08 +00:00
renovate[bot]
6166c88ab7 Update dependency core-js to v3.36.1 2024-03-19 17:06:50 +00:00
Ihor Yeromin
3c97476390 Canvas: Support dashed connection lines (#84496)
* feat(canvas): add connection types
2024-03-19 17:56:10 +01:00
renovate[bot]
aa9dc9c821 Update dependency @types/react-table to v7.7.20 2024-03-19 16:47:05 +00:00
Andreas Christou
6bb7ab261a AzureMonitor: User authentication support (#81918)
* Stub out frontend user auth

* Stub out backend user auth

* Add context

* Reorganise files

* Refactor app registration form

* Alert for user auth service principal credentials

* AzureMonitor: Add flag for enabling/disabling fallback credentials for current user authentication (#82332)

* Rename field

* Add fallback setting

* Update tests and mock

* Remove duplicate setting line

* Update name of property

* Update frontend settings

* Update docs and default config files

* Update azure-sdk

* Fix lint

* Update test

* Bump dependency

* Update configuration

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

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

* Docs review

* AzureMonitor: User authentication frontend updates (#83107)

* Rename field

* Add fallback setting

* Update tests and mock

* Remove duplicate setting line

* Update name of property

* Update frontend settings

* Update docs and default config files

* Add alerts to query editor

- Add authenticatedBy property to grafana/data
- Update mocks
- Update query editor to disable it under certain circumstances
- Update tests

* Add separate FallbackCredentials component

- Reset AppRegistrationCredentials component to only handle clientsecret credentials
- Update AzureCredentialsForm
- Update selectors
- Update tests
- Update credentials utility functions logic

* Alert when fallback credentials disabled

* Update condition

* Update azure-sdk

* Fix lint

* Update test

* Remove unneeded conditions

* Set auth type correctly

* Legacy cloud options

* Fix client secret

* Remove accidental import

* Bump dependency

* Add tests

* Don't use VerticalGroup component

* Remove unused import

* Fix lint

* Appropriately set oAuthPassThru and disableGrafanaCache properties

* Clear azureCredentials on authType change

* Correctly retrieve secret

* Fix bug in authTypeOptions

* Update public/app/plugins/datasource/azuremonitor/components/ConfigEditor/CurrentUserFallbackCredentials.tsx

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>

* Update public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>

* Update public/app/plugins/datasource/azuremonitor/components/ConfigEditor/CurrentUserFallbackCredentials.tsx

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>

* Add documentation links

* Fix broken link

---------

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>

* AzureMonitor: Update docs for current user authentication (#83440)

* Rename field

* Add fallback setting

* Update tests and mock

* Remove duplicate setting line

* Update name of property

* Update frontend settings

* Update docs and default config files

* Add alerts to query editor

- Add authenticatedBy property to grafana/data
- Update mocks
- Update query editor to disable it under certain circumstances
- Update tests

* Add separate FallbackCredentials component

- Reset AppRegistrationCredentials component to only handle clientsecret credentials
- Update AzureCredentialsForm
- Update selectors
- Update tests
- Update credentials utility functions logic

* Alert when fallback credentials disabled

* Update condition

* Update azure-sdk

* Fix lint

* Update test

* Remove unneeded conditions

* Set auth type correctly

* Legacy cloud options

* Fix client secret

* Remove accidental import

* Bump dependency

* Add tests

* Don't use VerticalGroup component

* Remove unused import

* Update docs

* Fix lint

* Appropriately set oAuthPassThru and disableGrafanaCache properties

* Clear azureCredentials on authType change

* Correctly retrieve secret

* Feedback

* Spelling

* Update docs/sources/datasources/azure-monitor/_index.md

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

* Update docs/sources/datasources/azure-monitor/_index.md

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

* Update docs/sources/datasources/azure-monitor/_index.md

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

* Update docs/sources/datasources/azure-monitor/_index.md

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

---------

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

* Docs review

* Update docs with additional configuration information

* Fix to appropriately hide the query editor

* Typo

* Update isCredentialsComplete

* Update test

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-03-19 16:32:24 +00:00
Kyle Cunningham
2a6a1fb3b3 Table Panel: Add ability to set background colors for entire rows (#83939)
* Table: hacky poc for colored rows

* update

* Update options editor

* Refactor out styling

* Make sure option applies

* Start unifying coloring logic

* Support various options

* Cleanups

* Fix up hover behavior

* Update label

* Fix bug with sorting and make cleanups

* Ensure text color also applies to whole row

* New treatment for cell inspect

* Update cell inspect spacing

* codeincarnate/table-row-background-selected-riffs/ run linter

* Fix hover colors

* Fix coloring

* The other part of color application

* Another color fix

* codeincarnate/table-row-background-selected-riffs/ lint

* Update cell value inspect

* Prettier

* Update cell value inspect coloring

* Fix text coloring

* Update inspect style

* Linting and betterer

* Fix tests

* i18n

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
2024-03-19 23:23:12 +07:00
renovate[bot]
5b1b280798 Update dependency @types/react to v18.2.67 2024-03-19 16:21:08 +00:00
Jev Forsberg
b14525a402 Transformations: Update docs for "Filter data by values" substring matcher (#84619)
* baldm0mma/substring/ update docs

* Update public/app/features/transformers/docs/content.ts

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

* baldm0mma/substring/ skip 1st test

* baldm0mma/substring/ unskip

* baldm0mma/substring/ update skip

* baldm0mma/substring/ update anno

* baldm0mma/substring/ unrelated spelling error

* baldm0mma/substring/ update annos

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-19 10:17:34 -06:00
Marie Cruz
2f539060f8 docs: initial updates to state timeline documentation (#84224)
* docs: initial updates to state timeline documentation

* docs: apply linting

* Apply suggestions from code review

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

* docs: add feedback from PR review

* docs: apply linting

* Wording and formatting edits

* Fixed grammar

* Update docs/sources/panels-visualizations/visualizations/state-timeline/index.md

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

* docs: add two examples for state timeline to show null values and two timestamps

* docs: add steps to configuring a state timeline

* docs: add state timeline video

* docs: add link to creating dashboards

* Changed link text and added version interpolation syntax

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-19 12:07:53 -04:00
Torkel Ödegaard
862305d5ce DashboardScene: Only update/replace location for normal dashboard route (#84747) 2024-03-19 16:40:49 +01:00
renovate[bot]
97156bb759 Update dependency @types/node to v20.11.30 2024-03-19 15:36:35 +00:00
Hugo Kiyodi Oshiro
b1c4ebe6e8 Plugins: Enable managedPluginsInstall by default (#84721)
Plugins: enable managedPluginsInstall by default
2024-03-19 16:34:46 +01:00
renovate[bot]
107dd15e12 Update dependency @types/eslint to v8.56.6 2024-03-19 14:58:44 +00:00
Andreas Christou
7c3f621688 Chore: Update grafana-azure-sdk-go (#84741)
* Update grafana-azure-sdk-go

* Update test
2024-03-19 14:56:40 +00:00
Gilles De Mey
5bd670592d Alerting: Rename "classic condition" to "classic condition (legacy)" (#84743) 2024-03-19 16:29:08 +02:00
Joey
a8e211bf77 Tempo: Update condition for migration from old nativeSearch editor (#84731)
Update condition for migration from old nativeSearch editor
2024-03-19 14:12:04 +00:00
Ivan Ortega Alba
74e62ac6fa Dashgpt: Make generate title and description work in scened dashboard settings (#84649)
* wip

* add GenAI to scenes dashboard settings

* rework title and description into controlled inputs

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2024-03-19 14:06:03 +00:00
Yuri Tseretyan
9dc4221508 Alerting: Log expression command types during evaluation (#84614) 2024-03-19 10:00:03 -04:00
Diego Augusto Molina
09817e2c7f Chore: ignore Go coverage .out files (#84702)
ignore Go coverage .out files
2024-03-19 10:55:33 -03:00
Ryan McKinley
e27c08cfa9 QueryService: Return application/json and better errors (#84234) 2024-03-19 15:52:15 +02:00
Fabrizio
d1f791cf1f Jaeger: Decouple Jaeger plugin (#81377) 2024-03-19 15:39:31 +02:00
renovate[bot]
83597e6c37 Update dependency @swc/helpers to v0.5.7 (#84725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 13:24:10 +00:00
Sonia Aguilar
b38436eeb0 Alerting: Fix used badge in contact points list (#84714)
Fix used badge in contact points list
2024-03-19 13:30:06 +01:00
Torkel Ödegaard
a095888522 DashboardScene: Fixes visualization suggestions (#84439)
* DashboardScene: Fixes visualization suggestions

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

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>

* fix prettier issue

---------

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-03-19 13:12:46 +01:00
Santiago
4ad6d66479 Alerting: Remove ID from UserGrafanaConfig struct (#84602)
* Alerting: Remove ID from UserGrafanaConfig struct

* user custom mimir image withoud id in grafana config

* change mimir image name
2024-03-19 12:47:13 +01:00
Josh Hunt
365fd2cb72 FolderPicker: Add permission filter to nested folder picker (#84644)
* FolderPicker: Add permission filter to nested folder picker

* Add permission filtering to Searcher

* make default edit only

* dashlist view folders

* update tests
2024-03-19 13:44:52 +02:00
Mathieu Parent
4a50897f39 CI: Fix missing vendor dependencies (#84375)
Fixes: #84342
2024-03-19 12:41:27 +01:00
renovate[bot]
f3337b96b8 Update dependency @manypkg/get-packages to v2.2.1 (#84722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 13:36:35 +02:00
renovate[bot]
bc0f054fa7 Update dependency @braintree/sanitize-url to v7.0.1 2024-03-19 11:20:26 +00:00
Santiago
c9bb18101c Alerting: Decrypt secrets before sending configuration to the remote Alertmanager (#83640)
* (WIP) Alerting: Decrypt secrets before sending configuration to the remote Alertmanager

* refactor, fix tests

* test decrypting secrets

* tidy up

* test SendConfiguration, quote keys, refactor tests

* make linter happy

* decrypt configuration before comparing

* copy configuration struct before decrypting

* reduce diff in TestCompareAndSendConfiguration

* clean up remote/alertmanager.go

* make linter happy

* avoid serializing into JSON to copy struct

* codeowners
2024-03-19 12:12:03 +01:00
renovate[bot]
b5d74ac200 Update babel monorepo to v7.24.1 (#84718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 12:56:16 +02:00
renovate[bot]
31bbd49459 Update dependency @rollup/plugin-terser to v0.4.4 (#84550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 10:37:33 +00:00
renovate[bot]
169be9e401 Update dependency eslint-plugin-import to v2.29.1 (#83523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 12:25:22 +02:00
Ashley Harrison
15194b41b4 Dropdown: Fix keyboard accessibility (#84683)
* fix dropdown keyboard a11y

* remove unnecessary css

* restore tabIndex to keep linting happy

* use Box in Menu

* fix unit test
2024-03-19 10:22:17 +00:00
Mihai Doarna
6febfdffd2 Auth: add the missing fields for all SSO providers (#83813)
* add the missing fields for sso providers

* remove fields array

* add the validate_hd field for google

* submit only fields defined on the provider

* fix unit tests

* add unit tests for the new fields/sections from the form

* add hosted_domain field for the google provider

* reorder fields in user mapping

* remove authStyle field from gitlab and okta

---------

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
2024-03-19 12:20:19 +02:00
Fabrizio
c1c9ccb8e8 Loki: Replace imports of infra/httpclient with SDK (#84337) 2024-03-19 10:59:53 +01:00
Agnès Toulet
7c17290da5 Chore: Fix Webpack config for Windows (#84709) 2024-03-19 09:36:54 +01:00
Andres Martinez Gotor
abb8ba3885 Update comment in service.go (#84674) 2024-03-19 09:09:07 +01:00
Marcus Efraimsson
e978d0810e DS apiserver: Minor fixes (#84691) 2024-03-19 09:02:52 +01:00
Agnès Toulet
58170d4141 Rendering: Add PDFRendering capability (#84438)
* Rendering: Add PDFRendering capability

* fix tests
2024-03-19 08:48:46 +01:00
Tim Levett
d3571c399a substring should be lowercase (#84682) 2024-03-18 16:40:46 -05:00
Isabella Siu
0606a8e413 CloudWatch: Static labels should use label name (#84611)
CloudWatch: static labels should use label name
2024-03-18 17:30:59 -04:00
Charandas
2d1cd82a98 K8s: standalone: use Grafana's logger to stream all logs (#84530)
---
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2024-03-18 19:25:30 +02:00
Matthew Jacobson
3ea5c08c88 Alerting: External AM fix parsing basic auth with escape characters (#84681) 2024-03-18 13:04:57 -04:00
Ivana Huckova
494d169980 Elasticsearch: Fix legend for alerting, expressions and previously frontend queries (#84485)
* Elasticsearch: Fix legend for alerting, expressions and previously frontend queries

* Add comment

* Update comment
2024-03-18 18:01:33 +01:00
Tom Ratcliffe
296f4219f8 Add missing external link for TextLink 2024-03-18 16:50:30 +00:00
Tom Ratcliffe
8f50ccbb7c Fix display of Alert diagram in Safari 2024-03-18 16:50:30 +00:00
Tom Ratcliffe
b3e9a6d0b3 Use Text component more consistently in GettingStarted 2024-03-18 16:50:30 +00:00
Tom Ratcliffe
fb2ba574c6 Convert getting started styles to object syntax 2024-03-18 16:50:30 +00:00
Tom Ratcliffe
30a791d77a Tidy up styling for Getting Started page and use @grafana/ui components 2024-03-18 16:50:30 +00:00
Tom Ratcliffe
2e2a5bca11 Remove unused showWelcomeHeader prop 2024-03-18 16:50:30 +00:00
Tom Ratcliffe
83464781be Remove video from Alert Getting Started page 2024-03-18 16:50:30 +00:00
Leon Sorokin
2e6bb6416d VizTooltips: Fix position during bottom or right edge initial hover (#84623) 2024-03-18 11:20:43 -05:00
Kyle Brandt
818c94f067 Scopes: (Chore) Fix ScopeDashboard by adding spec (#84675) 2024-03-18 17:16:53 +01:00
Darren Janeczek
63e8753aa0 datatrails: integrate dashboard panels with metrics explore (#84521)
* feat: integrate dashboard panels with metrics explore

- add dashboard panel menu items (in non-scenes dashboard) to open
  `metric{filters}` entries detected from queries to launch
  "metrics explorer" drawers for the selected `metric{filter}`

* fix: remove OpenEmbeddedTrailEvent

* fix: use modal manager dismiss capabilities instead
2024-03-18 17:16:38 +01:00
Ashley Harrison
b1b65faf02 Variables: Support static keys in AdHocFiltersVariable (#83157)
* initial start

* don't use getTagKeysProvider

* some cleanup

* undo kinds adjustment

* simplify

* remove async declaration

* add description and a couple of unit tests

* add transformSaveModelToScene test

* add tests for AdHocVariableForm

* add tests for AdHocFiltersVariableEditor

* update to defaultKeys

* fix snapshots

* update to 3.13.3
2024-03-18 16:12:00 +00:00
Rob
677b765dab NodeGraph: Edge color and stroke-dasharray support (#83855)
* Adds color and stroke-dasharray support for node graph edges

Adds support for providing color, highlighted color, and visual display of node graph edges as dashed lines via stroke-dasharray.

* Updates node graph documentation

* Updates documentation

Adds default for `highlightedColor`

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

Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>

* Update packages/grafana-data/src/utils/nodeGraph.ts

Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>

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

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

* Removes highlightedColor; deprecates highlighted

Per [request](https://github.com/grafana/grafana/pull/83855#issuecomment-1999810826), deprecates `highlighted` in code and documentation, and removes `highlightedColor` as an additional property. `highlighted` will continue to be supported in its original state (makes the edge red), but is superseded if `color` is provided.

* Update types.ts

Missed a file in my last commit. Removes `highlightedColor` and deprecates `highlighted`.

* Add test scenario in test data source

---------

Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2024-03-18 16:26:22 +01:00
Darren Janeczek
e96836d19e datatrails: Remove prefix filter (#84661)
* fix: use cascader's clear button

* fix: remove the prefix filter from metric select

* fix: remove supporting code in metric select scene

- For the removed prefix filter

* fix: spacing
2024-03-18 11:00:31 -04:00
github-actions[bot]
259d4eb6ec I18n: Download translations from Crowdin (#84664)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-18 14:45:34 +00:00
Darren Janeczek
767608f3a6 Data trails: use description of data source to shorten label (#84665)
fix: use description of data source to shorten label
2024-03-18 16:23:19 +02:00
Kyle Brandt
aec2ef727a Prometheus/Scopes: Update to use scopespec type from app (#84593) 2024-03-18 09:49:26 -04:00
github-actions[bot]
cc6459deaf I18n: Download translations from Crowdin (#84660)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-18 13:39:05 +00:00
Erik Sundell
ebcca97052 Annotation query: Render query result in alert box (#83230)
* add alert to annotation result

* cleanup

* add tests

* more refactoring

* apply pr feedback

* change severity

* use toHaveAlert matcher
2024-03-18 14:26:56 +01:00
Andrej Ocenas
5b085976bf Pyroscope: Fix template variable support (#84477) 2024-03-18 14:25:47 +01:00
Kyle Brandt
aac2cf0aa5 Scopes: Update BE API to include object for linking scope to dashboards (#84608)
* Add ScopeDashboard

---------

Co-authored-by: Todd Treece <todd.treece@grafana.com>
2024-03-18 09:22:28 -04:00
Levente Balogh
155e38edfe Plugin Extensions: Add prop types to component extensions (#84295)
* feat: make it possible to specify prop types for component extensions

* Update packages/grafana-runtime/src/services/pluginExtensions/getPluginExtensions.ts

* chore: adapted test case

* chore: update betterer

* feat: update types for configureComponentExtension()

* fix: remove type specifics for `configureExtensionComponent`

* Update betterer config

---------

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>
2024-03-18 15:14:51 +02:00
Josh Hunt
fbb6ae35e7 E2C: Use cloudMigrationIsTarget config (#84654)
Use cloudMigrationIsTarget config
2024-03-18 13:00:18 +00:00
Isabella Siu
00f16cd018 CloudWatch Logs: Remove toggle for cloudWatchLogsMonacoEditor (#84414) 2024-03-18 08:56:57 -04:00
Ieva
7aa0ba8c59 Teams: Display teams page to team reader if they also have the access to list team permissions (#84650)
* display teams to team reader if they also have the access to list team permissions

* fix a typo in the docs
2024-03-18 14:52:01 +02:00
Jack Westbrook
4ca68925a1 Backend: Delete bundled plugin tests (#84646) 2024-03-18 13:28:24 +01:00
Matias Chomicki
3e97999ac5 LogRowMessageDisplayedFields: increase rendering performance (#84407)
* getAllFields: refactor for improved performance

* LogRowMessageDisplayedFields: refactor line construction for performance

* AsyncIconButton: refactor to prevent infinite loops
2024-03-18 13:24:06 +01:00
Pepe Cano
a7c7a1ffed Alerting docs: Fix format issues in recent Slack tutorial (#84651)
* Alerting docs: Fix format issues in Slack tutorial

* Alerting docs: Include link to Slack docs

* Alerting docs: fix Slack `nested-policy` link
2024-03-18 13:18:57 +01:00
Ashley Harrison
3297d589c0 ConfirmButton: Stop pointerEvents on the correct element (#84648)
stop pointerEvents on the correct element
2024-03-18 14:04:43 +02:00
Sergej-Vlasov
26e1a5887a DashboardScene: Reset editIndex on variable delete (#84589)
* reset edit index on variable delete

* adjust delete variable test

* adjust test to be more in line with user flow
2024-03-18 12:02:12 +00:00
Andre Pereira
6241386a96 Data Trails: Sticky main metric graph (#84389)
* WIP

* Refactor code a bit so we can sticky the main graph and tabs

* Make sure it works in Firefox. Avoid annoying warnings in breakdown tab. Update pin metrics graph label

* Small copy change

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>

---------

Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
2024-03-18 13:38:17 +02:00
Andres Martinez Gotor
e394110f44 Fix api_plugins_test locally (#84484) 2024-03-18 12:08:49 +01:00
Josh Hunt
ed3bdf5502 I18n: Expose current UI language in @grafana/runtime config (#84457)
* I18n: Expose current UI language in Grafana config

* fix
2024-03-18 11:00:43 +00:00
Serge Zaitsev
aa03b4393f Chore: Clean up CHANGELOG for 10.4.0 (#84551)
clean up changelog for 10.4.0 to remove the items that did not make it into the release
2024-03-18 11:45:25 +01:00
tonypowa
eb813f2a19 changes to #84476 (#84638)
* removed note shortcode

* prettyfied
2024-03-18 11:24:18 +01:00
Karl Persson
8714b7cd8c RolePicker: Don't try to fetch roles for new form (#84630) 2024-03-18 11:15:49 +01:00
Polina Boneva
fce78aea2c Variables: Multi-select DataSource variables are inconsistently displayed in the Data source picker (#76039)
Always show multi-select DataSource(DS) variables in the DS picker, and display a warning in the panel when a DataSource variable holds multiple values and is not being repeated.

---------

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-03-18 10:30:27 +01:00
Joey
f5e83d07a7 Tempo: Deprecate old search (#84498)
* Add logic to update query from old search to new search i.e. nativeSearch to traceqlSearch

* Remove nativeSearch query and transform

* Update tracking

* Remove nativeSearch from query field

* Udpdate gen comment

* Fix tests

* Add tests

* Remove comments

* Remove log

* Remove log

* Update comment

* Update ids etc for migratedQuery

* Remove old nativeSearch folder

* Fix tests, manual testing
2024-03-18 09:17:10 +00:00
Jack Westbrook
1de4187a6e Chore: Delete Input Datasource (#83163)
* chore(input-datasource): delete bundled plugin for grafana 11

* chore(betterer): refresh results file

* chore(yarn): run dedupe to clean up deps

* chore(yarn): pin playwright to 1.41.2 to see if CI passes

* chore(yarn): pin playwright to 1.42.1
2024-03-18 09:48:19 +01:00
Andres Martinez Gotor
6204f1e847 Chore: Use SigV4 middleware from aws-sdk (#84462) 2024-03-18 09:33:22 +01:00
Alex Khomenko
39b32524e2 AnnotationsEditor: Remove deprecated components (#84538)
* AnnotationEditorForm: Remove deprecated components

* AnnotationEditor2: Remove deprecated components
2024-03-16 09:48:17 +02:00
Alex Khomenko
1714d52f17 Chore: Replace deprecated Form imports (#84537)
* SignupInvited: replace Form

* Chore: replace Form import

* Chore: replace HorizontalGroup

* Replace the component in OrgProfile
2024-03-16 09:48:05 +02:00
Alex Khomenko
5fa627e207 Playlist: Remove deprecated components (#84536) 2024-03-16 09:47:39 +02:00
Dan Cech
89f3b70e17 Storage: Add support for listing resource history (#84331)
* add support for listing resource history

* make watch handle custom label selectors properly

* fix tests

* Apply suggestions from code review

Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>

* properly handle special characters in json label matcher

* tidy up

---------

Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
2024-03-15 19:17:54 -04:00
Chris Bedwell
9c7a5ed506 Alerting: Fix infinite re-render when linking to alert redirect page (#84305)
fix: move where the fallback array is initialized so not to create an infinite re-render
2024-03-15 22:57:31 +00:00
ismail simsek
d0885ffdaa Chore: Bump the promlib version to v0.0.2 (#84616)
bump the promlib version
2024-03-15 22:35:07 +01:00
Darren Janeczek
59baa7a4a4 fix: data trails ignore usage syntax (#84610) 2024-03-15 21:27:31 +02:00
Josh Hunt
08f4aeded1 E2C: Change permissions for navigating to Cloud Migration (#84594)
* allow org admins / settings writers to access e2c

* test for org admin specifically
2024-03-15 17:22:39 +00:00
William Wernert
97f37b2e6f Alerting: Clamp Loki ASH range query to configured max_query_length (#83986)
* Clamp range in loki http client to configured max_query_length

Defaults to 721h to match Loki default
2024-03-15 18:59:45 +02:00
Josh Hunt
f2628bfad4 Whitelabelling: Override version in UI from config (#84392)
* Unify how the version is shown in the UI

* use versionString in dashboard help bundles

* fix lint

* remove comment

* fix test types

* make test less flakey
2024-03-15 18:39:13 +02:00
Gilles De Mey
1ce2ae427f Alerting: Query and conditions improvements (#83426) 2024-03-15 18:37:11 +02:00
Drew Slobodnjak
f273681956 Canvas: Add vertex control to connections (#83653)
* Canvas: Add vertex control to connections

* Add function for vertex conversion

* Add vertex interface

* Add future vertex handling

* Only show vertices when connection selected

* Add vertices to save model

* Apply select constraint to first midpoint

* Add some infrastructure for vertex edit

* Render vertex edit and capture events

* Save vertex edit on button release

* Handle adding new vertices

* Limit number of vertices to 10

* Handle zoom for vertex edit and creation

* Rename future to add

* Remove more references to future

* Remove unsued console log

* Clean up styles

* Add some clarity for path generation

* Add clarity to connections event handling

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-03-15 09:35:07 -07:00
github-actions[bot]
6d74553653 I18n: Download translations from Crowdin (#84601)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-15 16:22:27 +00:00
Matias Chomicki
bba1b12448 Logs popover: allow click listeners to run before closing the menu (#84583)
* Logs popover: allow click listeners to run before closing the menu

* Decrease buffer time
2024-03-15 17:24:41 +02:00
Pepe Cano
200ff7f9b4 Alerting docs: fix broken link (#84572) 2024-03-15 16:23:52 +01:00
Laura Benz
7e5ce8fc20 I18n: Add milestone automatically to Crowdin PRs (#84253)
* refactor: add milestone automatically

* refactor: remove step for extracting pr number

* refactor: milestone step
2024-03-15 16:14:11 +01:00
Torkel Ödegaard
d4b3877eb8 Table: Fixes migration for hidden columns in angular table (#84579)
* Table: Fixes migration for hidden columns in angular table

* update
2024-03-15 16:05:34 +01:00
Torkel Ödegaard
4dcbf4e5bb Select: Fixes virtualized select showing empty space above selected value (#84544)
* Select: Virtualized select bug replication

* Update with fix

* remove story

* Pin version

* Update

* Update
2024-03-15 16:00:58 +01:00
Darren Janeczek
e93ba13f7a datatrails: style: update buttons to secondary solid format (#84526)
* fix: secondary solid buttons for selecting metrics

* fix: secondary solid buttons for selecting labels

* fix: secondary solid buttons for adding filters
2024-03-15 11:00:05 -04:00
Gilles De Mey
85bd116a10 Alerting: Fix optional fields requiring validation rule (#84584)
fixes #84296
2024-03-15 15:49:05 +01:00
Sonia Aguilar
1f13a14815 Alerting: Fix wrong use of empty list in times field in the UI (#84179)
* Fix wrong use of empty list in times field in the UI

* Add tooltip for disable switch

* Show disabled badge in mute timings

* Disable time ranges when disabling time interval in the UI

* PR review comments

* remove tooltip for the field as it does not register it correctly

* remove wrong code line

* Add comment

* Address PR review comments
2024-03-15 15:48:16 +01:00
Torkel Ödegaard
4753948262 DashboardScene: Don't show switch to old dashboard architecture toggle unless you are in dev mode (#84444)
* DashboardScene: Don't show switch to old architecture toggle unless you are in dev mode

* Update
2024-03-15 15:39:04 +01:00
Karl Persson
d4e802dd47 Authn: Add function to resolve identity from org and namespace id (#84555)
* Add function to get the namespaced id

* Add function to resolve an identity through authn.Service from org and namespace id

* Switch to resolve identity for re-authenticate in another org
2024-03-15 15:08:15 +01:00
renovate[bot]
ced09883d3 Update dependency react-hook-form to v7.51.0 (#84582)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 14:08:06 +00:00
Eric Leijonmarck
6c8895e349 Service accounts: Same Org fix migration to account for duplicate entries (#84349)
* bug: fix migration to account for duplicate entries

* refactoring to create test folder for user migrations

* fix migration log

* added the migration

* additional tests

* added extSrv tests
2024-03-15 15:00:25 +01:00
Isabella Siu
a0b68deae4 Cloudwatch: Remove cloudWatchWildCardDimensionValues feature toggle (#84329) 2024-03-15 09:49:53 -04:00
Jack Westbrook
06723b9647 Chore: Pin version of playwright (#84558)
chore(playwright): pin version of playwright to prevent CI failures
2024-03-15 15:14:25 +02:00
Sonia Aguilar
fa9f692707 Alerting: Fix AlertsFolderView not showing rules when using nested folders (#84465)
* Fix AlertsFolderView not showing rules when using nested folders

* Fix tests
2024-03-15 14:08:09 +01:00
Isabel Matwawana
d06e73ac28 Docs: add alt text (#84532)
Added alt text
2024-03-15 09:04:46 -04:00
renovate[bot]
7a28ce7795 Update dependency eslint-webpack-plugin to v4.1.0 (#84571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 13:04:38 +00:00
Matias Chomicki
15a641a509 Infinite Scroll: wait for users to reach the top before triggering new requests (#84318)
* Infinite Scroll: wait for users to reach the top before triggering new requests

* Prettier

* Infinite Scroll: control top scrolling via prop

* Prettier
2024-03-15 13:52:55 +01:00
ismail simsek
eae9bfe4bc Chore: Promlib allows extendOptions to be nil (#84463)
* use logger from service

* allow extendOptions to be nil

* Update logger
2024-03-15 13:37:29 +01:00
Isabel Matwawana
94a9aeaccc Docs: fix broken links (#84531)
Fixed broken links
2024-03-15 08:36:07 -04:00
renovate[bot]
25ed621aa3 Update dependency date-fns to v3.5.0 (#84557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 12:10:17 +00:00
Sofia Papagiannaki
1208888bb6 Folders: Allow listing folders with write permission (#83527)
* Folders: Allow listing folders with write permission

* Check for subfolder access if parent does not have

* Add test

* GetFolders: fix ordering

* Apply suggestion from code review
2024-03-15 14:05:27 +02:00
Sonia Aguilar
39232a0776 Alerting: Show error message when error is thrown after clicking create alert f… (#84367)
Show error message when error is thrown after clicking create alert from panel
2024-03-15 12:36:34 +01:00
Jack Westbrook
0acb400248 Chore: Remove unused rollup plugin dependencies (#84492)
* chore(runtime): remove unused rollup-plugin-terser dependency

* chore(packages): remove more unused rollup plugins
2024-03-15 12:02:27 +01:00
renovate[bot]
a8432aad3d Update dependency @types/node to v20.11.28 2024-03-15 10:28:53 +00:00
tonypowa
500840ab77 alerting docs: slack integration (#84476)
* alerting docs: slack integration

* added links

* removed aliases and formated notes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* amended links

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* couple of minor corrections

* fixing link

* ran prettier

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-03-15 11:27:11 +01:00
Fabrizio
458d694d78 Update GitHub Actions to add datasource/Parca label (#84455) 2024-03-15 03:11:12 -07:00
kay delaney
6e6d6e368e Scenes: Restrict panel menu options when in edit mode (#84509) 2024-03-15 12:06:05 +02:00
Will Browne
9d453d0dcc Plugins: Remove direct featuremgmt.FeatureToggles dependency from plugins config (#84482) 2024-03-15 10:58:51 +01:00
kay delaney
c13e248384 Scenes: Fix issue with discarding unsaved changes modal in new dashboards (#84369) 2024-03-15 09:58:08 +00:00
Fabrizio
78d7ebd499 Fix GitHub action to add datasource/Jaeger label (#84448) 2024-03-15 10:54:00 +01:00
renovate[bot]
cc6439d989 Update dependency @manypkg/get-packages to v2.2.1 2024-03-15 09:50:28 +00:00
kay delaney
e5faeb324d Scenes: Make repeat panels respect maxPerRow (#84497) 2024-03-15 09:48:29 +00:00
Karl Persson
ebf455d107 RBAC: Don't refetch permissions when searching for users in authenticated org (#84546)
Don't refetch permissions when searching for users in authenticated org
2024-03-15 10:36:16 +01:00
renovate[bot]
25631fd107 Update dependency @grafana/scenes to v3.13.2 2024-03-15 09:27:41 +00:00
renovate[bot]
05f737b712 Update dependency @types/react to v18.2.66 2024-03-15 09:02:47 +00:00
Pepe Cano
06b8eb6279 Alerting docs: update Supported data sources (#84495)
* Alerting docs: update `Supported data sources`

* Update docs/sources/alerting/fundamentals/alert-rules/_index.md

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

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-03-15 10:00:51 +01:00
dependabot[bot]
ff03cb33f1 Bump actions/upload-artifact from 3 to 4 (#84527)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-15 08:40:46 +00:00
Charandas
759cefd94c ExtSvcAccounts: FIX tests that accidently depended on enterprise (#84535)
* ExtSvcAccounts: FIX tests that accidently depended on enterprise

* fix
2024-03-15 08:18:11 +01:00
Lucy Chen
9d4504da08 Reporting: Update api doc for deprecated old schedule (#84072)
update api doc
2024-03-15 14:46:53 +09:00
Nick Richmond
8389ce3862 Prometheus: Fix incorrect baseline in classic histogram (#83863)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-03-15 02:49:13 +02:00
Charandas
34b5303daf K8s: file-storage: provide empty for resourceVersion initially (#84523) 2024-03-14 16:33:41 -07:00
Dan Cech
0fa0cede75 Storage: streamline context handling (#84319)
streamline context handling
2024-03-14 17:12:20 -04:00
Gabriel MABILLE
2795f9827a ExtSvcAccounts: FIX prevent service account deletion (#84502)
* ExtSvcAccounts: Fix External Service Accounts Login check

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

* Remove service accounts assignments and permissions on delete

* Fix first set of tests

* Fix second batch of tests

* Fix third batch of tests

---------

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-03-14 19:11:02 +01:00
Yuri Tseretyan
827860d459 Alerting: Alerting accesscontrol utilities (#84508)
* create fake for accesscontrol.RuleService
* make errAuthorizationGeneric public
2024-03-14 14:03:53 -04:00
Timur Olzhabayev
6bc662e53b Chore: Removing error object from tracking (#84500)
Removing error object from tracking
2024-03-14 19:15:36 +02:00
Larissa Wandzura
f727e21873 Docs: Fixed a typo in the Azure config page (#84475)
fixed typo, cleaned up some language
2024-03-14 11:10:35 -05:00
Yuri Tseretyan
f7d836feed Alerting: Update rule provisioning service to accept user (#84480) 2024-03-14 12:04:10 -04:00
renovate[bot]
6d19894a7d Replace dependency rollup-plugin-terser with @rollup/plugin-terser 0.1.0 (#84487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 16:01:58 +00:00
Pepe Cano
ec42b2a361 Alerting docs: restructure Introduction (#84248)
* Rename `Data sources` title

* Relocate and rename `Introduction/Notification templates`

* Rename `alert-rules/alert-instances` to `alert-rules/multi-dimensional-alerts`

* Move `fundamentals/high-availability` to `setup/enable-ha`

* Fix 404 high-availability alerting link on Setup HA Grafana docs

* Move alert manager/contact poitns/notification templates within Notifications

* Remove `Alerting on numeric data`

* Restructure Introduction v2

* Continue Intro restructuring

* Update docs/sources/alerting/fundamentals/alert-rules/_index.md

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

* Complete contact point TODO

* Alias: alertManager

* Aliases `annotation-label` + content changes

* Aliases to `templating-labels-annotations`

* Aliases to `queries-conditions`

* Rename `rule-evaluation.md` file

* Aliases: `contact points`

* Aliases to `message-templating`

* Aliases to `alert-rules`

* Update links to new URL slugs

* Remove duplicated alias

* Remove trailing slash for external heading links

* Remove trailing slash in heading links to other grafana pages

* Change URL directory slug `fundamentals/notifications`

* rename title `Configure High Availability`

* Content changes

* Update docs/sources/alerting/fundamentals/alert-rules/_index.md

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

* Update docs/sources/alerting/set-up/configure-alert-state-history/index.md

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

* Update docs/sources/alerting/set-up/configure-high-availability/_index.md

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

* Update docs/sources/alerting/set-up/configure-alert-state-history/index.md

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

* Update docs/sources/alerting/set-up/configure-high-availability/_index.md

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

* Update docs/sources/alerting/set-up/configure-high-availability/_index.md

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

* Update docs/sources/alerting/set-up/configure-high-availability/_index.md

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

* Update docs/sources/alerting/fundamentals/alert-rules/_index.md

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

* Fix broken link reference

* Fix `queries-and-conditions`

* Fix `alert-rule-evaluation` ref link

* Fix aliases + inline doc comments

* Fix broken link

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-03-14 16:58:18 +01:00
Ashley Harrison
321148511b Chore: Rewrite ConfirmButton (#84402)
* convert to function component, clean up + fix a11y

* use position: fixed;

* fix
2024-03-14 15:50:44 +00:00
renovate[bot]
81a63efab2 Update dependency rc-cascader to v3.24.0 (#84453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 17:39:28 +02:00
Gilles De Mey
fe15bb5f48 Alerting: Update composable_kind.go (#84479)
update composable_kind.go
2024-03-14 17:20:23 +02:00
Alexander Zobnin
f36ad469d0 Access Control: Get global role from request params (#84469) 2024-03-14 16:17:24 +01:00
renovate[bot]
da66f560a5 Update dependency rc-tooltip to v6.2.0 (#84454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 14:59:32 +00:00
Joao Silva
0b033106b0 Cascader: Add clear button (#84449) 2024-03-14 14:41:54 +00:00
Darren Janeczek
73d96b6d1f datatrails: fix: clearly identify unspecified label values (#84474)
fix: clearly identify unspecified label values
2024-03-14 10:39:01 -04:00
Gilles De Mey
8765c48389 Alerting: Remove legacy alerting (#83671)
Removes legacy alerting, so long and thanks for all the fish! 🐟

---------

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Co-authored-by: Sonia Aguilar <soniaAguilarPeiron@users.noreply.github.com>
Co-authored-by: Armand Grillet <armandgrillet@users.noreply.github.com>
Co-authored-by: William Wernert <rwwiv@users.noreply.github.com>
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-03-14 15:36:35 +01:00
Alex Khomenko
f26344e176 Share modal: Remove deprecated Form components (#84173)
* EmailSharingConfiguration: Remove deprecated component

* CreatePublicDashboard: Remove deprecated component

* Update imports

* Update imports[2]

* Fix import
2024-03-14 16:26:15 +02:00
Yulia Shanyrova
9de3d75bea Plugins: Add reportInteraction into plugin search (#84283)
add reportInteraction into plugin search
2024-03-14 15:25:59 +01:00
Gilles De Mey
336acaf0bf Alerting: Promote new alerting detail view (#84277) 2024-03-14 15:18:01 +01:00
William Wernert
8690a42e33 Alerting: Disallow invalid rule namespace UIDs in provisioning API (#83938)
* Disallow invalid rule namespace UIDs in provisioning

Reject requests with rules that reference a nonexistent folder or have an empty folder uid
2024-03-14 09:58:25 -04:00
Timur Olzhabayev
8e90e02db2 Chore: Adding log also for cases where datasource UID length is invalid (#84443)
* Adding log also for datasource length
2024-03-14 14:49:07 +01:00
github-actions[bot]
660fe64bc6 I18n: Download translations from Crowdin (#84458)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-14 14:37:33 +02:00
Karl Persson
8d9521fb6d Refactor: Email verification (#84393)
* Update template names

* Add verifier that we can use to start verify process

* Use userVerifier when verifying email on update

* Add tests
---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-03-14 13:25:28 +01:00
Laura Fernández
38a8bf10f3 TimeRangePicker: Show UTC+00:00 instead of just UTC (#84395) 2024-03-14 13:06:34 +01:00
github-actions[bot]
ec5e18cd93 I18n: Download translations from Crowdin (#84435)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-14 11:45:51 +00:00
Gábor Farkas
97521ef988 postgres: improve snapshot-tests for long/wide situations (#84387) 2024-03-14 12:37:04 +01:00
Piotr Jamróz
0c4e0d0f70 Explore: Reorganize useStateSync code (#84281)
* Reorganize the code

* Simplify syncToURL

* Introduce InitState type
2024-03-14 13:27:18 +02:00
linoman
831ee9ee16 samlsettings: add sso settings saml feature flag (#84433)
* add feature flag for ssosettings saml configuration

* add generated files
2024-03-14 12:04:45 +01:00
Andreas Christou
391d14d091 Chore: Bump update checker interval to 1 day (#84404)
* Bump interval to 1hr

* 2 hours is better than 1

* Bump further to 1 day
2024-03-14 13:00:26 +02:00
Fabrizio
917b66bb7a Jaeger: Fix flaky test (#84441) 2024-03-14 12:54:04 +02:00
renovate[bot]
3692af05f8 Update dependency i18next-parser to v8.13.0 (#84437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 10:46:12 +00:00
renovate[bot]
3dc7c4a2e3 Update dependency i18next to v23.10.1 (#84436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 10:45:38 +00:00
dependabot[bot]
187d1afb9c Bump peter-murray/workflow-application-token-action from 2 to 3 (#84236)
Bumps [peter-murray/workflow-application-token-action](https://github.com/peter-murray/workflow-application-token-action) from 2 to 3.
- [Release notes](https://github.com/peter-murray/workflow-application-token-action/releases)
- [Commits](https://github.com/peter-murray/workflow-application-token-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: peter-murray/workflow-application-token-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 11:25:36 +01:00
Dmitry Filimonov
33154abcd9 FlameGraph: adds ability to add context menu items (#81675)
* pyroscope: adds ability to add context menu items

* moves things around

* removes console.log

* improvements

* Change the extra context button API shape

* Add test

* lint

---------

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2024-03-14 11:00:30 +01:00
renovate[bot]
40c2c2d6b8 Update dependency @grafana/scenes to v3.13.1 2024-03-14 09:54:46 +00:00
Josh Hunt
e6949d9838 E2C: Resources table (#84317)
* first pass at mock api and table

* finish up resources table

* i18n

* centre icon:
2024-03-14 09:46:18 +00:00
Torkel Ödegaard
5d23bc48b4 DashboardScene: Fixes panel editor padding (#84426) 2024-03-14 10:37:26 +01:00
renovate[bot]
0c472ff00d Update dependency eslint-plugin-jsdoc to v48.2.1 (#84427)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 11:34:14 +02:00
renovate[bot]
84cbd5fe5c Update dependency eslint-plugin-react to v7.34.0 (#84428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 11:30:50 +02:00
dependabot[bot]
5cc92b6202 Bump frabert/replace-string-action from 2.0 to 2.5 (#84235)
Bumps [frabert/replace-string-action](https://github.com/frabert/replace-string-action) from 2.0 to 2.5.
- [Release notes](https://github.com/frabert/replace-string-action/releases)
- [Commits](https://github.com/frabert/replace-string-action/compare/v2.0...v2.5)

---
updated-dependencies:
- dependency-name: frabert/replace-string-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 10:20:24 +01:00
renovate[bot]
0b806597c3 Update dependency date-fns to v3.4.0 (#84390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 09:10:59 +00:00
renovate[bot]
1d96707295 Update dependency eslint-plugin-jest to v27.9.0 (#84425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 10:56:05 +02:00
renovate[bot]
b3f28205a1 Update dependency @grafana/scenes to v3.13.0 (#84405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-14 08:35:41 +00:00
Pepe Cano
e1d9aa5a7b Alerting docs: document HTTP API to create templates (#84055) 2024-03-14 09:01:13 +01:00
Charandas
b6a020148b K8s: disallow MT storage functionality for Aggregator builders (#84408) 2024-03-14 01:54:30 +02:00
renovate[bot]
3696eca280 Update dependency diff to v5.2.0 (#84391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 17:45:47 +00:00
Nathan Marrs
9573c13223 Canvas: Add universal data link support (#84142) 2024-03-13 19:30:12 +02:00
Oscar Kilhed
0fe5b62fa5 Dashboard scenes: Unlink library panel inside edit mode (#84355)
Unlink library panel inside edit mode
2024-03-13 18:22:22 +01:00
Kevin Minehart
cf6bed7ae5 Trigger downstream from grafana and not the mirror (#84381) 2024-03-13 12:21:08 -05:00
Sven Grossmann
34f9bff9e0 Loki: Fix null pointer exception in case request returned an error (#84398)
Loki: Fix nullpointer in case query returned an error
2024-03-13 18:14:21 +01:00
David Harris
d3ef762cb9 docs: update angular guidance (#84363)
* docs: update angular guidance

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

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

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

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

* update

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-03-13 16:42:48 +00:00
mschaul
3a2c7d8a99 Transformations: Fix series to rows to work with only one series (#84232) 2024-03-13 10:28:29 -06:00
Giuseppe Guerra
f554bc8224 Chore: Remove go mod replace directives for otel dependencies (#81628)
* Chore: Remove go mod replace directives for otel dependencies

* go mod tidy
2024-03-13 18:27:44 +02:00
Victor Marin
90e0f8cab6 Allows re-entering edit mode after version restore (#84298)
* Allows re-entering edit mode after version restore

* refactor

* revert to previous commit
2024-03-13 18:24:26 +02:00
Selene
5c7849417b Schemas: Replace registry generation and github workflow (#83490)
* Create small registries for core and composable kinds

* Update workflow with new registries

* Fix imports in plugin schemas and deleted old registry generation files

* Remove verification and maturity

* Modify registries and add missing composable information to make schemas in kind-registry work

* Add missing aliases

* Remove unused templates

* Remove kinds verification

* Format generated code

* Add gen header

* Delete unused code and clean path in composable template

* Delete kind-registry loader

* Delete unused code

* Update License link

* Update codeowners path

* Sort imports

* More cleanup

* Remove verify-kinds.yml from codeowners

* Fix lint

* Update composable_kidns

* Fix cue extension

* Restore verify-kinds to avoid to push outdated kind's registry

* Fix composable format

* Restore code owners for verify-kinds

* Remove verify check
2024-03-13 18:05:21 +02:00
Alexander Zobnin
fd9031ca37 Access Control: Get org from request data for authorization (#84359)
* Access Control: Get org from request data for authorization

* move type to models

* Update pkg/services/accesscontrol/middleware.go

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

* refactor

* refactor

* Fix linter

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-03-13 17:05:03 +01:00
renovate[bot]
d480d3296c Update d3 (#84383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 15:42:18 +00:00
renovate[bot]
6cc51b21d1 Update dependency @grafana/scenes to v3.12.0 (#84385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 17:36:04 +02:00
Gábor Farkas
eca1bba01e postgres: add more tests (to handle zero-rows queries) (#84384) 2024-03-13 16:23:50 +01:00
renovate[bot]
2420c5aa4d Update dependency @types/node to v20.11.27 2024-03-13 15:17:45 +00:00
Dominik Prokop
8c7e65f6f4 Dashboard settings: Allow saving dashboard from JSON model view (#84343)
* Dashboard settings: Allow saving dashboard from JSON model view

* Dashboard settings: Allow saving dashboard from JSON model view

* Review fix
2024-03-13 16:15:40 +01:00
Ivana Huckova
447e72fe43 Docs: Add information about supported Loki versions by Loki data source (#84376)
* Docs: Add Loki supported versions

* Update
2024-03-13 16:03:20 +01:00
renovate[bot]
bc2d7cf8e1 Update dependency xss to v1.0.15 (#84379)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 15:02:06 +00:00
kay delaney
1e02c831ad Chore: Bump esbuild and esbuild-loader (#84164)
Chore: Bump esbuild and related dependencies
2024-03-13 14:39:30 +00:00
Joey
2f0784186b Tempo: Minor update to fix Tempo dev env as new vParquet used (#84348)
* Minor update to fix Tempo dev env as new vParquet used

* Remove vParquet version
2024-03-13 14:22:57 +00:00
Joey
1f2e9a544d Tempo: Remove Loki tab (#84346)
* Update docs

* Remove loki tab from config settings

* Remove loki query field

* Remove loki search from ds, resultTransformer, tracking and tests

* Cleanup removal of loki search

* Remove loki section from query editor docs

* Remove search type
2024-03-13 14:22:20 +00:00
Georges Chaudy
06b7f6befa k8s: ensure unified storage address is populated from config ini (#84373)
fix: ensure unified storage address is populated from config ini
2024-03-13 15:17:26 +01:00
renovate[bot]
f2567f5100 Update dependency webpackbar to v6.0.1 2024-03-13 13:49:43 +00:00
Misi
f5c78e0ad9 RBAC: Add ActionSettingsRead action to general.auth.config writer (#84366)
Add ActionSettingsRead action to general.auth.config writer
2024-03-13 14:48:13 +01:00
Sergej-Vlasov
c0d0f13a8d DashboardScene: Reset query variable query and definition on datasource change (#84347)
reset query variable query and definition on datasource change
2024-03-13 15:41:03 +02:00
Erik Sundell
c0933fa6bb Chore: Bump to latest version of plugin-e2e (#84370)
bump plugin-e2e and update tests
2024-03-13 14:37:28 +01:00
renovate[bot]
0604ddac13 Update dependency nanoid to v5.0.6 (#84372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 15:28:29 +02:00
Gábor Farkas
0981403373 PostgreSQL: Display correct initial value for tls mode (#84356) 2024-03-13 14:23:17 +01:00
renovate[bot]
cd545ecb71 Update dependency dompurify to v3.0.9 (#84371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 13:10:37 +00:00
renovate[bot]
d6acb474cf Update dependency @types/react-dom to v18.2.22 2024-03-13 12:47:58 +00:00
renovate[bot]
13f597ef63 Update dependency @glideapps/glide-data-grid to v6.0.3 (#84361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 12:25:28 +00:00
Alex Khomenko
7feeb7ce4e Cascader: Add id prop (#84240)
* Cascader: Add id prop

* Remove placeholder
2024-03-13 14:01:24 +02:00
Matias Chomicki
a89f1c2200 Popover Menu: fix issue hiding menu behind scrollable container (#84311)
* PopoverMenu: change position to fixed

* PopoverMenu: close on empty selectionchange

* Popover Menu: do not let menu overflow the window dimensions

* Prettier
2024-03-13 13:41:18 +02:00
Jack Westbrook
6599fa805d Plugins: Always load decoupled frontend assets from builds (#81873)
* Wip

* Wip

* Adapt to load external module

* build: remove cloudmonitoring from built_in_plugins, clean up webpack output

* chore(plugins): remove decoupled plugins from package.json deps

* chore(codeowners): update file for nx.json

* revert(webpack): put back path in config

* build(frontend): use nx to run prod builds of decoupled plugins with yarn build

* style(prometheus): run prettier-write to fix tsconfig.json

* style(backend): remove unused subFile.isDistDir

* revert(locales): remove formatting changes adding new line at end of files

* chore(webpack): clean up dev output

* build(nx): make grafana an nx project, bump lerna and nx

* build(plugin-configs): move cache directory to node_modules

* style(datasource-plugins): add eslint ignore for .gen.ts files

* chore(codeowners): add frontend-ops as owner of project.json

* build(webpack): add getDecoupledPlugins to automatically ignore when watching

* ci(drone): skip nx cache when building frontend packages

* style(ci): fix missing trailing comma

* Revert "style(ci): fix missing trailing comma"

This reverts commit 7520d41576.

* Revert "ci(drone): skip nx cache when building frontend packages"

This reverts commit 46938883ac.

* feat(zipkin): remove from grafana core bundle

* chore(npm): bump nx package to latest 18.0.8

* docs(dev-guide): add a note about what yarn start now builds

---------

Co-authored-by: Andres Martinez <andres.martinez@grafana.com>
2024-03-13 12:40:09 +01:00
Selene
75ea33e0cd Schemas: Delete unused code from the previous refactors (#84254)
* Delete unused code from the previous refactors

* Sort imports
2024-03-13 12:30:05 +01:00
Ivana Huckova
2a1a5145d0 Elasticsearch: Fix using of individual query time ranges when querying (#84201)
* WIP - proof of concept

* Update pkg/tsdb/elasticsearch/client/client.go

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

* update and add test

* lint

* Fix lint

* Bring back logging when creating client

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-03-13 12:49:35 +02:00
Fabrizio
8ed4d5127f Jaeger: Add tests (#83431) 2024-03-13 11:38:17 +01:00
Ivana Huckova
154896b47e Docs: Update documentation for Elasticsearch (#84350)
* Docs: Update documentation for Elasticsearch lucene query

* Update docs/sources/datasources/elasticsearch/query-editor/index.md

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

* Update docs/sources/datasources/elasticsearch/query-editor/index.md

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-03-13 12:25:28 +02:00
Timur Olzhabayev
c6140b9893 Docs: Aligning fallback values with documentation (#83617)
aligning fallback values with documentation
2024-03-13 11:19:04 +02:00
Andres Martinez Gotor
c061cc33cc Chore: Use response limit middleware from SDK (#83915) 2024-03-13 10:14:16 +01:00
Gábor Farkas
ecd6de826a Postgres: Switch the datasource plugin from lib/pq to pgx (#83768)
postgres: switch from lib/pq to pgx
2024-03-13 09:52:39 +01:00
Mihai Doarna
2acd48d1c2 SSO: fix mergeSettings() in case the DB contains empty URLs (#84290)
* fix mergeSettings() in case the db contains empty strings

* use correct github urls in test

* overwrite only urls

* update comment for mergeSettings()
2024-03-13 10:31:17 +02:00
linoman
66fa310fba SAMLSettings: implement settings strategy (#84191)
* add strategy and tests

* use settings provider service and remove multiple providers strategy

* update codeowners file

* reload from settings provider
2024-03-13 09:14:42 +01:00
Domas
9b2058f814 TracesPanel: Expose focusedSpanLink and createFocusSpanLink as options (#84060)
expose focus span link via traces panel options
2024-03-13 09:23:51 +02:00
Alex Khomenko
e6c20e91bc UserInviteForm: Remove deprecated Form components (#84293)
* UserInviteForm: Remove deprecated Form components

* Use the Form rom core
2024-03-13 08:52:57 +02:00
Leon Sorokin
608b40b2a8 Transforms: Fix field matching in Format time, and add tpl var interpolation (#84239) 2024-03-12 17:55:23 -05:00
Leon Sorokin
220fea966b CursorSync: Extract EventBus logic into shared plugin (#84111) 2024-03-12 17:15:38 -05:00
Sarah Zinger
3f5526b915 Cloudwatch: Fix issue with Grafana Assume Role (#84315) 2024-03-12 16:30:54 -04:00
Charandas
0eee72824c K8s: omit CABundle until insecure is false (#84323) 2024-03-12 21:58:02 +02:00
Yuri Tseretyan
cfc3957894 Alerting: move store.ErrAlertRuleGroupNotFound to models package (#84308)
move ErrAlertRuleGroupNotFound to models to avoid future circular dependencies
2024-03-12 15:38:21 -04:00
Isabel Matwawana
e552e21221 Docs: clarify query formatting for time range variable queries (#84074)
* Added time range variable guidance

* Reworded

* Applied review suggestion
2024-03-12 15:37:50 -04:00
Isabel Matwawana
9da48a8a48 Docs: add table visualization for logs entry to what's new (#84313)
Added new entry
2024-03-12 13:28:58 -04:00
Andres Martinez Gotor
265200799d Chore: Update grafana-plugin-sdk (#84289) 2024-03-12 17:13:23 +01:00
Gilles De Mey
e6150a792a Alerting: Always omit IDs from all routes when updating notification policy tree (#84304) 2024-03-12 18:04:49 +02:00
renovate[bot]
e421ff3e2c Update dependency webpack-dev-server to v5.0.3 2024-03-12 15:40:14 +00:00
Aaron Godin
5c96b90852 docs: rewrite grafana-com oauth to better align with naming conventions (#84294)
* docs: rewrite grafana-com oauth to better align with naming conventions

* docs: update links used to grafana-cloud auth page
2024-03-12 10:38:43 -05:00
Ezequiel Victorero
98fb8fad43 Docs: Update external snapshots cloud docs (#84255)
* Docs: Update external snapshots cloud docs

* Update docs/sources/dashboards/share-dashboards-panels/index.md

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

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-12 12:22:10 -03:00
renovate[bot]
46a35775ae Update dependency @types/lodash to v4.17.0 (#84299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 17:13:14 +02:00
Dominik Prokop
7c1ad64bb2 DashboardScene: Make sure dashboard prompt is shown when navigating away way from an edited dashboard (#84077)
DashboardScene: Make sure dashboard prompt is shown when navigating away from an edited dashboard

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2024-03-12 16:12:00 +01:00
ismail simsek
22860a7978 Chore: Use mapUtil from grafana-plugin-sdk-go (#84297)
use mapUtil from grafana-plugin-sdk-go
2024-03-12 10:08:10 -05:00
Joao Silva
6080a9c094 Cascader: Don't lose input value when typing (#84274) 2024-03-12 15:00:51 +00:00
renovate[bot]
d63bc6d2e4 Update dependency @playwright/test to v1.42.1 (#84292)
* Update dependency @playwright/test to v1.42.1

* update playwright image

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-03-12 14:53:55 +00:00
Matias Chomicki
fb172b1b33 Explore logs: remove exploreScrollableLogsContainer and track scroll to top (#84291)
* exploreScrollableLogsContainer: remove

* LogsNavigation: track scroll to top clicks

* Add missing dependency to the effect
2024-03-12 15:53:13 +01:00
Leonard Gram
f15aa2d30d CloudMigrations: draft of cloud migration tables (#83990)
* CloudMigrations: draft of cloud migration tables

* naming migration rules

* removes feature flag for migration

* tweaked db types

* removed comment
2024-03-12 15:44:10 +01:00
Marie Cruz
90ff576cb7 docs: slight update to grafana fundamentals (#84287) 2024-03-12 14:23:45 +00:00
Michael Mandrus
d69b19e431 Queries: Improve debug logging of metrics queries (#84048)
* just log everything

* fix times
2024-03-12 16:17:22 +02:00
Joey
42d8f1bef9 Tempo: Update TraceQLStreaming feature toggle stage (#84203)
Update TraceQLStreaming feature toggle stage
2024-03-12 14:10:13 +00:00
renovate[bot]
bce6a0a987 Update dependency @grafana/scenes to v3.12.0 (#84280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 14:03:20 +00:00
William Wernert
10dc6c6d75 Alerting: Add "Keep Last State" backend functionality (#83940)
* Implement keep last state for state transitions

* Respect For duration when keeping state

* Only keep transition from recording an annotation

* Add keep last state option for nodata/error in UI
2024-03-12 10:00:43 -04:00
Sergey Kostrukov
fe1ed0a9e1 Azure: Add list of clouds in frontend AzureSettings (#84039)
Add list of supported clouds in AzureSettings
2024-03-12 13:49:30 +00:00
ismail simsek
ae70cd953d Chore: Use the promlib v0.0.1 (#84210)
* use the promlib v0.0.1

* add a readme

* go mod update

* replace promlib

* update readme

* update

* update go work sum

* update 2

* update readme
2024-03-12 15:25:32 +02:00
Eric Leijonmarck
0cb9f2bb8d Users: Add back check for undefined / null for value for lastSeenAtAge in table view (#84265)
bug: add check for undefined / null for value
2024-03-12 14:22:13 +01:00
Josh Hunt
6eaab9e57d E2C: Use ConfirmModal for DisconnectModal (#84279)
change disconnect modal to use confirmmodal
2024-03-12 13:07:23 +00:00
renovate[bot]
ff62474f9b Update dependency @grafana/faro-web-sdk to v1.4.2 (#84278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 13:03:21 +00:00
Dominik Prokop
b8d4d28f4a DashboardScene: Fix Get Help panel menu for lib panels (#84272) 2024-03-12 13:54:55 +01:00
Dominik Prokop
39b682e333 DashboardScene: Fix dashboard being restored to initial state after successful save (#84183)
* Failing test

* Do not restore initial state after edit mode exit when dashboard is not dirty
2024-03-12 13:54:47 +01:00
Erik Sundell
2a7785c262 CI: Allow failed Playwright tests to fail entire build (#84244)
* bump plugin-e2e and fix failing test

* do not ignore failures

* generate trace on every test

* force test to fail for debugging purposes

* fix broken test

* regenerate drone file
2024-03-12 13:48:32 +01:00
renovate[bot]
7348d9cd47 Update dependency @grafana/faro-web-sdk to v1.4.2 (#84270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 12:42:24 +00:00
Josh Michielsen
297d73a7df InfluxDB: Add configuration option for enabling insecure gRPC connections (#83834)
* InfluxDB: add configuration option for enabling insecure gRPC connections

* fix: add insecureGrpc to InfluxOptions

* rename options label 'gRPC' -> 'Connection'

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

* update docs: rename options label 'gRPC' -> 'Connection'

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

* default insecure connection boolean to false in frontend

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

* run prettier:write

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-03-12 13:36:11 +01:00
Gilles De Mey
388e0c27f2 Alerting: Allow inserting before or after existing policy (#83704) 2024-03-12 13:28:37 +01:00
renovate[bot]
78478dc235 Update dependency @grafana/faro-core to v1.4.2 (#84267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 14:09:47 +02:00
renovate[bot]
2fe9376d12 Update dependency ol-ext to v4.0.17 2024-03-12 11:50:49 +00:00
Josh Hunt
4fc4a1c4a8 Playlists: Fix kiosk mode not activating when starting a playlist (#84262)
* Playlists: Fix Kiosk mode not activating when starting a playlist

* oops remove debugger
2024-03-12 11:48:18 +00:00
renovate[bot]
a883df633e Update dependency @types/react to v18.2.65 2024-03-12 11:30:56 +00:00
Victor Gorchilov
fa6e4bbcd0 Users: Resurrect org picker's search functionality (#78886)
[up] return search for org picker
2024-03-12 13:29:02 +02:00
Eric Leijonmarck
fbfaf8e003 OrgUsers: Refactor change LastSeenAtAge from '10 years' to 'Never' (#84247)
* refactor: change lastseenatage to Never

* removed unncessecary fragments
2024-03-12 12:18:33 +01:00
ismail simsek
c45f96e9de Chore: Fix feature toggle docs (#84256)
update docs
2024-03-12 12:07:07 +01:00
Alex Khomenko
59fed9278b Switch: Remove "transparent" prop (#83705)
* Switch: Remove transparent prop

* Cleanup

* Remove redundant prop
2024-03-12 12:51:58 +02:00
Sofia Papagiannaki
22d8258e48 Postgres: Allow disabling SNI on SSL-enabled connections (#83892)
* Postgres: Allow disabling SNI on SSL-enabled connections

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

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

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2024-03-12 12:03:24 +02:00
Adam Yeats
c2b94429e4 Google Cloud Monitor: Fix res being accessed after it becomes nil in promql_query.go (#84223)
Fix res being accessed after it becomes nil in promql_query.go
2024-03-12 10:38:16 +01:00
renovate[bot]
3085d53802 Update dependency @types/node to v20.11.26 2024-03-12 09:32:25 +00:00
renovate[bot]
6e661fa770 Update babel monorepo to v7.24.0 (#84206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 08:46:11 +00:00
Misi
63f1c30313 Auth: Set the default org after User login (#83918)
* poc

* add logger, skip hook when user is not assigned to default org

* Add tests, move to hook folder

* docs

* Skip for OrgId < 1

* Address feedback

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

* lint

* Move the hook to org_sync.go

* Update pkg/services/authn/authnimpl/sync/org_sync.go

* Handle the case when GetUserOrgList returns error

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-03-12 09:35:13 +01:00
Erik Sundell
8c06c0dea7 Panel edit: Add e2e selectors to input fields (#83246)
add selectors for input fields
2024-03-12 09:17:41 +01:00
Karl Persson
6ea9f0c447 AuthN: Use fetch user sync hook for render keys connected to a user (#84080)
* Use fetch user sync hook for render keys connected to a user
2024-03-12 09:15:14 +01:00
Victor Marin
f50624d257 Scenes: Duplicate library panels (#84159)
duplicate library panels
2024-03-12 10:11:15 +02:00
linoman
298384cea9 Disable skip button when strong password feature is enabled (#84211) 2024-03-12 08:31:52 +01:00
Armand Grillet
e33e219a9a Remove legacy alerting docs (#84190) 2024-03-12 05:37:41 +01:00
Charandas
da327ce807 K8s: enable insecure to skip server cert validation for now (#84038) 2024-03-12 01:13:14 +02:00
Alexander Weaver
6c5e94095d Alerting: Scheduler and registry handle rules by an interface (#84044)
* export Evaluation

* Export Evaluation

* Export RuleVersionAndPauseStatus

* export Eval, create interface

* Export update and add to interface

* Export Stop and Run and add to interface

* Registry and scheduler use rule by interface and not concrete type

* Update factory to use interface, update tests to work over public API rather than writing to channels directly

* Rename map in registry

* Rename getOrCreateInfo to not reference a specific implementation

* Genericize alertRuleInfoRegistry into ruleRegistry

* Rename alertRuleInfo to alertRule

* Comments on interface

* Update pkg/services/ngalert/schedule/schedule.go

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>

---------

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2024-03-11 22:57:38 +02:00
Oscar Kilhed
0b2640e9ff Dashboard scenes: Editing library panels. (#83223)
* wip

* Refactor find panel by key

* clean up lint, make isLoading optional

* change library panel so that the dashboard key is attached to the panel instead of the library panel

* do not reload everything when the library panel is already loaded

* Progress on library panel options in options pane

* We can skip building the edit scene until we have the library panel loaded

* undo changes to findLibraryPanelbyKey, changes not necessary when the panel has the findable id instead of the library panel

* fix undo

* make sure the save model gets the id from the panel and not the library panel

* remove non necessary links and data providers from dummy loading panel

* change library panel so that the dashboard key is attached to the panel instead of the library panel

* make sure the save model gets the id from the panel and not the library panel

* do not reload everything when the library panel is already loaded

* Fix merge issue

* Clean up

* lint cleanup

* wip saving

* working save

* use title from panel model

* move library panel api functions

* fix issue from merge

* Add confirm save modal. Update library panel to response from save request. Add library panel information box to panel options

* Better naming

* Remove library panel from viz panel state, use sourcePanel.parent instead. Fix edited by time formatting

* Add tests for editing library panels

* implement changed from review feedback

* minor refactor from feedback
2024-03-11 20:48:27 +01:00
David Harris
efbcd53119 docs: update angular deprecation notice (#84227)
update docs
2024-03-11 19:17:20 +00:00
Dan Cech
1ffd1cc8f4 Storage: Support listing deleted entities (#84043)
* support listing deleted entities

* fold listDeleted into List
2024-03-11 13:59:54 -04:00
Isabel Matwawana
ffd0bdafe4 Docs: fix broken link (#84103)
* Fixed broken link

* Removed trailing slash

* Ran prettier
2024-03-11 12:57:51 -04:00
Isabel Matwawana
e2cc5e57e5 Docs: add missing alt text (#84102)
Added missing alt text
2024-03-11 12:57:02 -04:00
Tobias Skarhed
5ae9cd561c Accessibility: Improve HelpModal markup (#83171)
* HelpModal: Make more accessible

* Remove console.log

* Handle custom keys for screen reader

* Rewrite using tables

* Increase gap

* Change order of help categories

* HelpModal: Add tabIndex and imrpove sr-only display
2024-03-11 16:43:55 +00:00
renovate[bot]
3449a43ff2 Update react monorepo 2024-03-11 16:24:00 +00:00
ismail simsek
3fb6319d1b Prometheus: Introduce prometheus backend library (#83952)
* Move files to prometheus-library

* refactor core prometheus to use prometheus-library

* modify client transport options

* mock

* have a type

* import aliases

* rename

* call the right method

* remove unrelated test from the library

* update codeowners

* go work sync

* update go.work.sum

* make swagger-clean && make openapi3-gen

* add promlib to makefile

* remove clilogger

* Export the function

* update unit test

* add prometheus_test.go

* fix mock type

* use mapUtil from grafana-plugin-sdk-go
2024-03-11 17:22:33 +01:00
Usman Ahmad
cfc7ea92da corrected the minor details (#84046)
* corrected the minor details

Making minor changes after the PR merged on Data sources and Data source administration.

https://github.com/grafana/grafana/pull/83712

* Apply suggestions from code review

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

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

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

* Ran prettier

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2024-03-11 16:21:37 +00:00
renovate[bot]
b6c550c524 Update dependency xss to v1.0.15 2024-03-11 15:51:26 +00:00
ismail simsek
3bb38d82ab Chore: Bump grafana-plugin-sdk-go version to v0.214.0 (#84162)
* bump grafana-plugin-sdk-go version to v0.214.0

* make swagger-clean && make openapi3-gen
2024-03-11 16:49:53 +01:00
renovate[bot]
7d1ea1c655 Update dependency rudder-sdk-js to v2.48.3 2024-03-11 15:30:46 +00:00
Will Browne
225ac8003c Plugins: Tidy config struct (#84168)
* tidy plugins config usage

* fix tests
2024-03-11 16:28:46 +01:00
Giordano Ricci
0c6b0188c8 Explore: Remove deprecated query option from splitOpen (#83973)
* Chore: remove deplrecated queries option from splitOpen

* make queries option required

* use left pane queries when splitting an existing pane
2024-03-11 15:17:07 +00:00
Karl Persson
9c292d2c3f AuthN: Use sync hook to fetch service account (#84078)
* Use sync hook to fetch service account
2024-03-11 15:56:53 +01:00
kay delaney
d8b8a2c2b0 Dashboard: Fix issue where out-of-view shared query panels caused blank dependent panels (#83966) 2024-03-11 14:53:59 +00:00
renovate[bot]
dd01743de7 Update dependency react-virtualized-auto-sizer to v1.0.24 2024-03-11 16:50:20 +02:00
Ashley Harrison
b0848c9726 Empty state: Add animation for Grot (#83770)
* add animation for grot not found

* extract default interval out into constant

* improve relative path

* extract magic numbers out into constants + throttle properly

* better width/height definitions

* use consistent background + apply to PageNotFound as well

* increase gap in command palette empty state
2024-03-11 14:46:53 +00:00
Jack Westbrook
d4b43640f3 Revert "Update dependency @swc/core to v1.4.6" (#84186)
* Revert "Update dependency @swc/core to v1.4.6"

This reverts commit 4d7220dbdf.

* chore(renovate): ignore swc/core for time being due to bugs in versions ~1.4.5
2024-03-11 16:33:37 +02:00
renovate[bot]
ad280db89e Update dependency postcss-loader to v8.1.1 2024-03-11 16:28:12 +02:00
Jo
108202f96c UsageStats: Separate context and threads for usage stats (#83963)
* separate context and threads for usage stats

* use constants

* ignore original context

* fix runMetricsFunc

* fix collector registration

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

* change background ctx

* fix test randomness

* Add traces to support bundle collector

* Remove unecessay span

* Add trace to usagestats api

* Close spans

* Mv trace to bundle

* Change span name

* use parent context

* fix runtime declare of stats

* Fix pointer dereference problem on usage stat func

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

* fix broken support bundle tests by tracer

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: gamab <gabriel.mabille@grafana.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-03-11 15:18:42 +01:00
renovate[bot]
5653518e1a Update dependency ol-ext to v4.0.16 2024-03-11 14:10:54 +00:00
Karl Persson
0b55d72fb5 FeatureToggles: Add feature toggle for sso email verification (#84184)
* FeatureToggles: Add feature toggle for sso email verification

* Rename toggle

* Fix json
2024-03-11 15:09:44 +01:00
renovate[bot]
876030f7a6 Update dependency msw to v2.2.3 2024-03-11 13:50:05 +00:00
github-actions[bot]
c21278397b I18n: Download translations from Crowdin (#84051)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-11 15:17:13 +02:00
Karl Persson
4272483c54 Auth: Only call rotate token if we have a session expiry cookie (#84169)
Only call rotate token if we have a session expiry cookie
2024-03-11 14:10:03 +01:00
carrychair
0913324668 Chore: Remove repetitive words (#84132)
remove repetitive words

Signed-off-by: carrychair <linghuchong404@gmail.com>
2024-03-11 08:55:18 -04:00
renovate[bot]
2d0fc3ef33 Update dependency mini-css-extract-plugin to v2.8.1 2024-03-11 12:53:41 +00:00
Torkel Ödegaard
8048e1360d Dashboards: Update scenes lib to 3.10 (#84075)
* Dashboards: Update scenes lib to 3.10

* Update
2024-03-11 13:33:48 +01:00
Ivan Ortega Alba
4a81a0388b Playlist: run on Scenes (#83551)
* DashboardScene: Implement playlist controls

* Mock the runtime config properly

* PlaylistSrv: with state you can subscribe to (#83828)

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-03-11 13:33:32 +01:00
Josh Hunt
1ab8857e48 E2C: Add cloud migration is_target server config option (#83419) 2024-03-11 14:29:44 +02:00
renovate[bot]
fa888af212 Update dependency marked to v12.0.1 2024-03-11 12:25:02 +00:00
Giordano Ricci
c950b716ff Chore: Remove deprecated ExploreQueryFieldProps (#83972) 2024-03-11 12:10:06 +00:00
Giordano Ricci
937390b91c Chore: Remove deprecated exploreId from QueryEditorProps (#83971) 2024-03-11 12:09:43 +00:00
ldomesjo
01c8b7b611 Documentation: Updated yaml for influxdb data sources (#84119)
* Update _index.md

Updated instructions for influx v2

* Added version:SQL to influx v3 example in _index.md
2024-03-11 12:55:21 +01:00
Selene
275ccf994b Schemas: Reduce duplicated jenny code (#84061)
* Remove jenny_ts_resources and use jenny_ts_types for all cases

* Unify TS generated files into one jenny

* Add missing imports to versioned files

* Update Parca plugin

* Fix loki

* Use LokiQuery

* Fix pyroscope tests

* Fix prettier

* 😒 fix default pyroscope value name

* Set the LokiQuery

* Update Elasticsearch and TestData

* Missed files from testdata

* Order imports
2024-03-11 12:51:44 +01:00
renovate[bot]
bd9f9c9eb0 Update dependency immer to v10.0.4 2024-03-11 13:44:39 +02:00
Leonard Gram
5a123bda80 CloudMigration: wires the service (#84081) 2024-03-11 12:40:26 +01:00
Alex Khomenko
ffe5c97b2d Chore: Remove InputControl usage from explore (#83742)
* Explore: Remove deprecated Form components from CorrelationTransformationAddModal.tsx

* Explore: Remove deprecated Form components from AddToDashboardForm.tsx
2024-03-11 13:36:36 +02:00
Alex Khomenko
4fc5c0dc21 Chore: Remove Form components from TransformationsEditor (#83743)
Chore: remove Form components from correlations
2024-03-11 13:36:24 +02:00
Ashley Harrison
0280fac0e3 DatePickerWithInput: Set zIndex for popover correctly (#84154)
set zIndex for popover correctly
2024-03-11 11:35:59 +00:00
kay delaney
8206a23061 Scenes/Repeats: Show reduced panel menu for repeat panels (#84085) 2024-03-11 13:27:12 +02:00
renovate[bot]
b2b825db69 Update dependency centrifuge to v5.0.2 2024-03-11 11:16:29 +00:00
renovate[bot]
0a12377a19 Update dependency autoprefixer to v10.4.18 2024-03-11 10:57:19 +00:00
Tobias Skarhed
940d20e115 Accessibility: Improve landmark markup (#83576)
* Landmark: main

* Landmark: add header

* Submenu: Move conditional display up

* NewsPanel: use h3 as the article label

* Use title for article id

* Update test showing a false positive

* DashboardPage: Expect submenu to not be shown
2024-03-11 11:43:22 +01:00
renovate[bot]
534855d086 Update dependency @types/node to v20.11.25 2024-03-11 10:39:32 +00:00
Victor Marin
9c22a6144e Scenes: Row controls (#83607)
* wip row controls

* wip row repeats

* wip

* wip

* row repeat functional

* refactor

* refactor to reuse RepeatRowSelect2

* refactor + tests

* remove comment

* refactor
2024-03-11 12:34:40 +02:00
Oscar Kilhed
87d6bebb9e Dashboard scenes: Remove panel menu options that are dashboard editing activities when not in edit mode. (#84156)
* remove panel menu options that are dasbhoard editing activities when the dashboard is not in edit mode

* remove corresponding keybindings when not in edit mode

* add keyboard shortcuts but inactivate them when not in edit mode

* Add tests; fix tests
2024-03-11 11:33:33 +01:00
Joey
e8ecbaffc2 UX: Update trace to logs tooltip to improve clarity (#83508)
* Update tooltip to improve clarity

* Update packages/grafana-o11y-ds-frontend/src/TraceToLogs/TraceToLogsSettings.tsx

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-03-11 10:26:59 +00:00
renovate[bot]
c5080ca135 Update dependency @types/eslint to v8.56.5 2024-03-11 10:20:02 +00:00
Georges Chaudy
15e358e3b9 k8s: add support for configuring the gRPC server address (#84006)
* k8s: add support for configuring the gRPC server address
2024-03-11 11:23:03 +02:00
renovate[bot]
4d7220dbdf Update dependency @swc/core to v1.4.6 2024-03-11 09:14:25 +00:00
Andreas Christou
07676ab8a0 Prometheus: Add missing Azure setting (#84094) 2024-03-11 08:57:42 +00:00
renovate[bot]
ea84a66ff4 Update dependency @emotion/react to v11.11.4 2024-03-11 08:53:49 +00:00
Sonia Aguilar
0e7c0d25fe Alerting: Add test for creating an alert rule with simplified routing. (#80610)
* Add test for creating an alert rule with simplified routing

* Fix mocking folders after merging from main (folder uid change)
2024-03-11 08:47:56 +01:00
Sonia Aguilar
7a741a31bd Alerting: Track when switching from simplified routing to policies routing or vice versa (#83108)
Track when switching from simplified routing to policies routing or vice versa
2024-03-11 08:47:22 +01:00
Leon Sorokin
57df3b84dc StateTimeline: Treat second time field as state endings (#84130) 2024-03-10 22:11:11 -05:00
Misi
0b71354c8d Docs: Improve SSO Settings docs (#83914)
* Improve docs

* remove trailing slash

* Update relref
2024-03-09 19:24:48 +01:00
Ryan McKinley
d82f3be6f7 QueryService: Use types from sdk (#84029) 2024-03-08 18:12:59 +02:00
Leon Sorokin
f11b10a10c BarChart: Show tooltip options unconditionally (#84109) 2024-03-08 02:10:56 +02:00
Yuri Tseretyan
21719a6b5b Chore: Fix log message in access control (#84101) 2024-03-07 23:34:22 +02:00
Yuri Tseretyan
7147af6b8e Alerting: Disable legacy alerting for ever (#83651)
* hard disable for legacy alerting
* remove alerting section from configuration file 
* update documentation to not refer to deleted section
* remove AlertingEnabled from usage in UA setting parsing
2024-03-07 16:01:11 -05:00
Christopher Moyer
8c7090bc11 docs: adds alt text to images where missing (#84028)
* adds alt text

* makes prettier
2024-03-07 12:53:10 -06:00
Lisa
a15e48052f Embed two visualization videos from the Grafana for Beginners series (#83928)
* Embed two visualization videos from Grafana for Beginners series

* Implementing Isabel's recommendation on second video placement.

* edited introductory sentence to the second video.

* Added line between text and video

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-07 20:42:16 +02:00
Dominik Prokop
1da78ac846 DashboardScene: Allow unlinking a library panel (#83956)
* DashboardScene: Allow unlinking a library panel

* Betterer

* Revert

* Review
2024-03-07 18:11:34 +01:00
Gilles De Mey
f5dab6b5a5 Alerting: Refactor analytics to use pushMeasurements (#83850) 2024-03-07 16:41:38 +01:00
linoman
6fdcc6ff18 Password Policy: Add validation labels to Update Password screen (#84052)
* add validation labels to update the password screen

* address rendering tests

* update changePassword for profile screen
2024-03-07 16:01:17 +01:00
Adela Almasan
429ef9559c FeatureToggles: Allow changing prod env safe feature toggles via URL (#84034) 2024-03-07 08:49:37 -06:00
Andreas Christou
0236053f70 Chore: Bump docker image versions (#84033)
Bump docker image versions
2024-03-07 13:04:37 +00:00
Xavi Lacasa
d1f8f7774d Document verification_email_max_lifetime_duration config option (#84057) 2024-03-07 13:51:27 +01:00
Torkel Ödegaard
edd1864439 AngularMigrate: Auto migrate graph to multiple panels (#83992)
* AngularMigrate: Auto migrate graph to multiple panels

* add unit test, and histogram migration

* add new cases to existing angular migration gdev dashboard

* fix stat feature toggle handling so all panels dont turn into stat panels 😅; fix betterer

* Use same function when clicking manual migrate button

* Update

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-03-07 12:33:30 +01:00
Pepe Cano
9c520acf9c Alerting: Minor changes to UI help text and descriptions (#84023) 2024-03-07 12:33:16 +01:00
Konrad Lalik
a4acd9d204 Alerting: Improve alert list panel and alert rules toolbar permissions handling (#83954)
* Improve alert list panel and alert rules toolbar permissions handling

* Refactor permission checking, add tests

* Remove unneccessary act wrapper

* Fix test error
2024-03-07 12:30:37 +01:00
Selene
1181141b40 Schemas: Refactor plugin's metadata (#83696)
* Remove kinds verification for kind-registry

* Read plugin's json information with json library instead of use thema binding

* Remove grafanaplugin unification

* Don't use kindsys for extract the slot name

* Fix IsGroup

* Remove all plugindef generation

* Refactor schema interfaces

* Pushed this change from a different branch by mistake...

* Create small plugin definition structure adding additional information for plugins registration

* Add some validation checks

* Delete unused code

* Fix imports lint
2024-03-07 11:09:19 +01:00
Mihai Doarna
beea7d1c2b Auth: use the scope parameter instead of a hardcoded value in appendUniqueScope() (#84053)
use the scope parameter instead of a hardcoded value
2024-03-07 12:08:58 +02:00
Sofia Papagiannaki
b8d8662bd9 Swagger: Re-generate the enterprise specification if enterprise is cloned (#81730)
* Swagger: Re-generate the enterprise specification if enterprise is cloned successfully

* API change to trigger the swagger CI step execution

* Swagger: Silence logs
2024-03-07 12:07:35 +02:00
Javier Ruiz
5a727a0b41 [Service map] Send name and namespace separately when going to traces explore (#83840)
Send name and namespace separately when going to traces explroe
2024-03-07 10:40:43 +02:00
Mihai Doarna
e3314f04e4 Auth: perform read locking on every exported func from social providers (#83960)
perform read locking on every exported func from social providers
2024-03-07 10:32:55 +02:00
Victor Marin
20d201ca6a Scenes: Remove normal and library panels from layout or rows (#83969)
* Remove normal/lib panels from layout or rows

* refactor
2024-03-07 10:24:12 +02:00
linoman
8e827afb8c Password Policy: Validate strong password upon update (#83959)
* add drawer for auth settings

* add StrongPasswordField component

* Add style to different behaviours

* update style for component

* add componenet to ChangePasswordForm

* pass the event handlers to the child component

* add style for label container

* expose strong password policy config option to front end

* enforce password validation with config option
2024-03-07 01:56:48 -06:00
linoman
7bc8b27c33 Update README.md (#84011) 2024-03-07 01:54:53 -06:00
Pepe Cano
dbb55f291a Alerting docs: update the supported export template functionality (#83816) 2024-03-07 08:42:38 +01:00
Erik Sundell
a722b2608a TimeZonePicker: Add e2e selector to change time zone settings button (#83248)
add selector to change time zone settings
2024-03-07 07:25:48 +01:00
Erik Sundell
bc34874bbb Annotations: Add selector to new query button (#83240)
add selector
2024-03-07 07:25:11 +01:00
Leon Sorokin
d549a3aabb VizTooltips: Heatmap fixes and improvements (#83876)
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
2024-03-06 19:30:33 -06:00
Alexander Weaver
201f5d3ac9 Alerting: Extract large closures in ruleRoutine (#84035)
* extract notify

* extract resetState

* move evaluate metrics inside evaluate

* split out evaluate
2024-03-06 16:39:23 -06:00
Alexander Weaver
7a171fd14a Regenerate openapidocs at 1.21.8 to match ci (#84037)
* Regenerate openapidocs at 1.21.8 to match ci

* Adjust trigger to work on the actual outputted files

* Also put go.mod and go.sum in the triggers

* manually fix

* Make an arbitrary change rather than touching the trigger to force a run

* Drop all triggers - run all the time

* Print diff - taken from @papagian's PR

* Manual fixes to swagger doc

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-03-06 16:08:45 -06:00
gotjosh
948c8c45d6 Alerting: Use Alertmanager types extracted into grafana/alerting (#83824)
* Alerting: Use Alertmanager types extracted into grafana/alerting

We're in the process of exporting all Alertmanager types into grafana/alerting so that they can be imported in the Mimir Alertmanager, without a neeed to import Grafana directly.

This change introduces type aliasing for all Alertmanager types based on their 1:1 copy that now live in grafana/alerting.

Signed-off-by: gotjosh <josue.abreu@gmail.com>
---------

Signed-off-by: gotjosh <josue.abreu@gmail.com>
2024-03-06 20:48:32 +00:00
Alexander Weaver
d5fda06147 Alerting: Decouple rule routine from scheduler (#84018)
* create rule factory for more complicated dep injection into rules

* Rules get direct access to metrics, logs, traces utilities, use factory in tests

* Use clock internal to rule

* Use sender, statemanager, evalfactory directly

* evalApplied and stopApplied

* use schedulableAlertRules behind interface

* loaded metrics reader

* 3 relevant config options

* Drop unused scheduler parameter

* Rename ruleRoutine to run

* Update READMED

* Handle long parameter lists

* remove dead branch
2024-03-06 13:44:53 -06:00
Leon Sorokin
8b9bc9a919 Histogram: Fix 'combine' option & legend rendering (#84026) 2024-03-06 20:50:28 +02:00
Marcus Efraimsson
61f6c4f84d Chore: Upgrade grafana-plugin-sdk-go (#84010)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-03-06 19:51:16 +02:00
Dai Nguyen
2142efc1a5 disable_sanitize_html update (#83643)
* disable_sanitize_html update

Added a note that states this configuration is not available for Grafana Cloud instances.

* 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>
2024-03-06 11:33:36 -06:00
Leon Sorokin
e88858edb1 Histogram: Fix heuristic for x axis distribution from bucket progression (#83975) 2024-03-06 11:27:46 -06:00
grafana-delivery-bot[bot]
7f2e245d0b Changelog: Updated changelog for 9.5.17 (#84015)
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-06 16:43:40 +00:00
Ivan Ortega Alba
920d50cb76 Worker: Use CorsWorker to avoid CORS issues (#83976) 2024-03-06 18:43:19 +02:00
Isabel Matwawana
4bb5915183 Docs: comment in SSO for terraform video (#83978)
* Commented in SSO for terraform video

* Updated youtube link
2024-03-06 11:37:07 -05:00
grafana-delivery-bot[bot]
32480b49aa Changelog: Updated changelog for 10.0.12 (#84008)
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-06 18:35:01 +02:00
linoman
6287e1f8ed Auth: Auth Drawer (#83910)
* add drawer for auth settings

* add auth drawer component

* include AuthDrawer component in auth providers page

* protect the feature as enterprise only

* add unit test
2024-03-06 17:27:55 +01:00
grafana-delivery-bot[bot]
6731aacea9 Changelog: Updated changelog for 10.1.8 (#84005)
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-06 18:21:58 +02:00
grafana-delivery-bot[bot]
1e6f14c103 Changelog: Updated changelog for 10.2.5 (#84001)
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-06 17:55:47 +02:00
Pepe Cano
ce827f9518 Configure Grafana docs: fix custom configuration file location (#83169)
* Configure Grafana docs: fix custom configuration file location

* Replace config file with `custom.ini`

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-03-06 16:46:28 +01:00
grafana-delivery-bot[bot]
d3207df8b4 Changelog: Updated changelog for 10.3.4 (#83993)
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-06 15:39:30 +00:00
grafana-delivery-bot[bot]
146ad85a56 Changelog: Updated changelog for 10.4.0 (#83987)
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-06 15:14:51 +00:00
Josh Hunt
6a4e0c692a Page: Use browser native scrollbars for the main page content (#82919)
* remove custom scroll bars from Page component

* make flagged scroller the actual scrolling element,

* enable feature flag by default

* re-enable the scroll props in Page

* rename feature toggle

* fix css

* only update when deleted

* set .scrollbar-view on our scrolling wrapper

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-03-06 15:06:47 +00:00
Kyle Brandt
0929bf7c00 Prometheus: Remove < and > from Query Builder Label Matcher operations (#83981)
They are not valid promql label matcher operations
2024-03-06 09:57:01 -05:00
Usman Ahmad
544bff2539 Docs/datasources usman (#83712)
* changed tags from oss to enterprise and cloud

* added Dashboard Panel example

* swapped the all-grafana-umbrella information to the correct page

* added minor visibility improvements in steps

* made some minor adjustments

* added minor improvements

* fixed a link

* updates links

* Apply suggestions from code review

thanks for the improved suggestions. looks more better

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

* fixed links

* fixed Grafana Enterprise link

* run prettier

* fixed add a data source links

---------

Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-03-06 08:50:49 -06:00
Tom Ratcliffe
7527d30ec9 Documentation: Fix link to .nvmrc file in developer guide (#83911)
Documentation: Fix link to .nvmrc file
2024-03-06 15:44:27 +01:00
Leon Sorokin
1dc6014b10 Dashboard: Revert descending z-index changes (#83466)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-03-06 16:31:54 +02:00
Isabel Matwawana
316601258a Docs: comment youtube videos back in (#83974)
* Commented 4 youtube links back in

* Fixed id
2024-03-06 09:06:23 -05:00
Josh Hunt
183aa09eeb Dashboards: Fix scroll position not being restored when leaving panel edit (#83787)
* Dashboards: Fix scroll position not being restored when leaving panel edit view

* remove mock from tests

* remove console log

* Remove my debugging stuff, and don't render grid if width is 0

* remove old comment (but retain old, probably unneeded css)

* rename ref

* fix it not actually working anymore!!!

* add e2e tests

* jsonnet, i guess
2024-03-06 13:57:11 +00:00
Giordano Ricci
6db7eafd7e Explore: Remove plus icon from Add button (#83587) 2024-03-06 13:00:56 +00:00
Victor Marin
d269b4bf0d Scenes: Copy/paste library panels (#83962)
* Scenes: Copy/paste library panels

* more tests
2024-03-06 14:47:18 +02:00
Ieva
2c5b72e844 AuthZ: add headers for IP range AC checks for data source proxy requests (#81662)
* add a middleware that appens headers for IP range AC to data source proxy requests

* update code

* add tests

* fix a mistake

* add logging

* refactor to reuse code

* small cleanup

* skip the plugins middleware if the header is already set

* skip the plugins middleware if the header is already set
2024-03-06 12:40:48 +00:00
Ivana Huckova
401265522e Logs volume: Add options to specify field to group by (#83823)
Logs volume: Add options to specify field to group by in options
2024-03-06 12:32:28 +01:00
brendamuir
5950dc3279 Alerting docs: adds top-level landing page tiles (#83825)
* Alerting docs: adds top-level landing page tiles

* updated description

* update frontmatter

* ran prettier

* Update docs/sources/alerting/_index.md

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

* Update docs/sources/alerting/_index.md

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

* Update docs/sources/alerting/_index.md

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

* Update docs/sources/alerting/_index.md

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

* Update docs/sources/alerting/_index.md

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

* Update docs/sources/alerting/_index.md

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

* Update docs/sources/alerting/_index.md

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

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-03-06 12:24:02 +01:00
Konrad Lalik
708aeb0682 Alerting: Pass queryType parameter to the query model in recording rules preview (#83950) 2024-03-06 11:42:28 +01:00
Jennifer Villa
d767c4f694 Remove hanging text block from traces->profiles docs (#83859)
Remove hanging text block

This is causing the page to render a bit oddly on the website
2024-03-06 09:33:09 +00:00
Eric Leijonmarck
e611a736ed Serviceaccounts: Add ability to add samename SA for different orgs (#83893)
* add ability to add samename SA for different orgs

* Update pkg/services/user/userimpl/user.go

* fix tests

* refactor name

* removed tests

* add migration

* fix linting
2024-03-06 09:53:58 +01:00
Pepe Cano
2653bd8fab Alerting docs: update file provisioning guide (#83924) 2024-03-06 09:18:59 +01:00
Fabrizio
2c09d86395 Tempo: Fix by operator to support multiple arguments (#83947) 2024-03-06 08:45:07 +01:00
Isabel Matwawana
de563aa39c Docs: fix commented out Slack team names (#83946) 2024-03-06 07:14:31 +00:00
Isabel Matwawana
db13c0839f Docs: What’s new & Upgrade guide 10.4 (#83133)
* Updated index pages and added v10.4 breaking changes, upgrade guide, and what's new pages

* Added what's new entries

* Removed empty headings

* Fixed link

* Removed duplicate entry and fixed styling

* Removed breaking changes page and references to it

* Added intro text

* Docs: 10.4 technical note for alertingUpgradeDryrunOnStart (#83262)

* Docs: 10.4 technical note for alertingUpgradeDryrunOnStart

* Apply suggestions from code review

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

* Address PR comments

* restarts -> starts

---------

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

* Fixed spelling

* Added new entries to What's new

* reorder and add intro

* Added PagerDuty data source entry

* Added entries

* Added new entries

* Fixed formatting

* Fixed page weight and links

* Apply suggestion from review

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* remove team lbac, move return to previous (#83921)

- Remove Team LBAC for Loki (it is Cloud only)
- Move Return to Previous into the Alerting section, since it only works for Alerting now
- Add a note that data sources are separate from Grafana but included for visibility

* Replaced manual note with admonition shortcode

* move Return to Previous out of Alerting section

* Added youtube links

* Commented out youtube videos and removed duplicate video embed

---------

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2024-03-05 22:02:19 -05:00
Leon Sorokin
a4b31ed140 BarChart: Improve x=time tick formatting (#83853) 2024-03-05 19:03:50 -06:00
Nathan Marrs
5c27d28ba4 Canvas: Add datalink support to rectangle and ellipse elements (#83870) 2024-03-05 15:25:12 -08:00
Nathan Marrs
38a0eab137 Canvas: Fix datalink positioning glitch (#83869) 2024-03-05 15:23:10 -08:00
Dan Cech
7e4badff1d Storage: Use our own key format and support unnamespaced objects (#83929)
* use our own key format and support unnamespaced objects

* fix tests
2024-03-05 16:31:39 -05:00
Dave Henderson
01fb2cff62 chore: bump Go to 1.21.8 (#83927)
* chore: bump Go to 1.21.8

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* bump workflows too

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

---------

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2024-03-05 15:24:34 -05:00
Ryan McKinley
3e86a4edc8 PanelTitleSearch: Show datasource usage in plugins (#83922) 2024-03-05 22:20:38 +02:00
Kyle Cunningham
cb008657cb Table Panel: Update column filters to use Stack component (#83800)
* Update filter list to use stack

* Remove dead comments
2024-03-05 21:54:31 +02:00
Kyle Cunningham
f4da9bd09e Table Panel: Text wrapping fix inspect viewing issues (#83867)
* Fix inspect viewing issues

* Fix long line wrapping

* Prettier

* Fix text wrapping

* Fix overflowing text
2024-03-06 02:00:41 +07:00
Charandas
e916372249 K8s: bug fixes for file storage to allow for watcher initialization on startup (#83873)
---------

Co-authored-by: Todd Treece <todd.treece@grafana.com>
2024-03-05 10:34:47 -08:00
Andreas Christou
3f2820a552 Chore: Bump whats new (#83841)
Bump whats new
2024-03-05 16:09:42 +00:00
Dan Cech
9fa9eaab44 Storage: Support get with resourceversion (#83849)
support getting old resourceversion, return explicit resource version in list
2024-03-05 10:57:32 -05:00
Carl Bergquist
b3efb4217e Cfg: Adds experimental scope grafana.ini settings (#83174)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-03-05 16:41:19 +01:00
Hugo Kiyodi Oshiro
7f970d4887 Plugins: Fetch instance provisioned plugins in cloud, to check full installation (#83784) 2024-03-05 16:30:14 +01:00
Dan Cech
7b4925ea37 Storage: Watch support (#82282)
* initial naive implementation

* Update pkg/services/store/entity/sqlstash/sql_storage_server.go

Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>

* tidy up

* add action column, batch watch events

* initial implementation of broadcast-based watcher

* fix up watch init

* remove batching, it just adds needless complexity

* use StreamWatcher

* make broadcaster generic

* add circular buffer to replay recent events to new watchers

* loop within poll until all events are read

* add index on entity_history.resource_version to support poller

* increment r.Since when we send events to consumer

* switch broadcaster and cache to use channels instead of mutexes

* cleanup

---------

Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>
2024-03-05 10:14:38 -05:00
Lucy Chen
71fe675fb7 Reporting: Update swagger and openapi doc for deleted deprecated endpoint for Email (#83832) 2024-03-06 00:09:44 +09:00
kay delaney
4b0547014a Scenes/LibraryPanels: Fix transformSceneToSaveModel for library panel repeats (#83843) 2024-03-05 14:09:24 +00:00
ismail simsek
2cce9aa2f7 Chore: Move tracing function in influxdb package (#83899)
move tracing function in influxdb package
2024-03-05 07:34:08 -06:00
Michael Mandrus
73c4b24a52 Queries: Fix debug logging of metrics queries (#83877)
fix log statements
2024-03-05 08:27:44 -05:00
Levente Balogh
fdd2c1c59e Plugins Catalog: Fix plugin details page initial flickering (#83896)
fix: wait for the local and remote fetches to fulfill
2024-03-05 14:23:29 +01:00
brendamuir
05865034d7 Docs: removes note as recovery threshold now in cloud (#83907) 2024-03-05 14:22:03 +01:00
Sven Grossmann
9f73fb65cd Loki: Fix permalink timerange when multiple logs share a timestamp (#83847)
* Loki: Slide permalink timerange `1ms` to make sure to include line

* find previous log with different time

* fix test not being agnostic
2024-03-05 14:04:57 +02:00
Ivan Ortega Alba
a7c06d26f1 Dashboards: Add new toggle for dashboard changes out of dashgpt toggle (#83897) 2024-03-05 14:01:31 +02:00
Ivan Ortega Alba
112c0e7a79 Dashboards: Auto-generate get stuck and quick feedback actions doesn't respond (#83879)
* Update the component only when the response is fully generated

* Fix quick feedback action doesn't respond

* Fix history not displaying after the second click

* Fix the history that moves when regenerating

---------

Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2024-03-05 12:10:46 +01:00
ismail simsek
dc4c539d46 InfluxDB: Fix sql query generation by adding quotes around the identifiers (#83765)
* Quote the identifiers

* wrap where filter with quotes

* fix query generation
2024-03-05 11:22:33 +01:00
Oscar Kilhed
bc7eacfcbd Dashboard Scenes: Add model to library panel inspect json (#83536)
* Add model to library panel inspect json

* Add missing information from library panel when inspecting its JSON

* minor refactor

* refactor inspect library panel model to show the model that was fetched from the api

* nit: improve comment

* fix library panel import path

---------

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
2024-03-05 10:51:22 +01:00
Pepe Cano
019c9618f0 Alerting docs: improve visibility on the distinct options to edit provisioned resources (#83839)
Alerting docs: specify the distinct options to edit provisioned resources
2024-03-05 10:48:04 +01:00
Oscar Kilhed
c9ac6dd3e7 Dashboard scenes: debounce name validation when saving dashboards (#83580)
* Dashboard scenes: debounce name validation when saving dashboards

* add newline
2024-03-05 10:46:03 +01:00
Yulia Shanyrova
e930b49db3 Plugins: Add intraMode 1 into fuzzy search for plugins (#83846)
add intraMode 1 into fuzzy search for plugins
2024-03-05 09:27:34 +01:00
Karl Persson
22074c5026 RBAC: add debug log for permission evaluation (#83880)
* fix: add debug log when evaluating permissions that includes target permissions
2024-03-05 08:50:19 +01:00
Torkel Ödegaard
9264e2a3bd Table: Custom headerComponent field config option (#83254)
* Table: Custom headerComponent field config option

* Table custom header component (#83830)

* Add tests, fix bug

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
Co-authored-by: Galen <galen.kistler@grafana.com>
2024-03-05 08:49:22 +01:00
Alexander Weaver
1bb38e8f95 Alerting: Move ruleRoutine to be a method on ruleInfo (#83866)
* Move ruleRoutine to ruleInfo file

* Move tests as well

* swap ruleInfo and scheduler parameters on ruleRoutine

* Fix linter complaint, receiver name
2024-03-04 17:15:55 -06:00
Kyle Cunningham
c88accdf99 Transformations: Docs for Group to nested table (#83559)
* Start group to nested table docs

* Group to nested table docs

* Remove dead content

* Update docs content

* codeincarnate/nested-table-docs/ run formatter

* Update punctuation (thanks Isabel 🙏)

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

* Update wording and structure ((thanks Isabel 🙏)

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

* More wording and structure changes (thanks Isabel 🙏)

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

* Escape backticks

* Add imagery

* Add generated docs

* Language updates

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

* Language updates

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

* Language updates

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

* Update formatting

* Rebuild transformation docs

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-04 23:31:00 +02:00
Alexander Weaver
f2a9d0a89d Alerting: Refactor ruleRoutine to take an entire ruleInfo instance (#83858)
* Make stop a real method

* ruleRoutine takes a ruleInfo reference directly rather than pieces of it

* Fix whitespace
2024-03-04 15:15:01 -06:00
Kyle Cunningham
3121fce305 Timeseries to table transformation: Improve Documentation (#83647)
* Flesh out timeseries to table docs

* Add generated documentation

* Update docs

* Fix spelling

* Fix link formatting

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

* Update language

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-04 22:57:47 +02:00
Kyle Cunningham
13f037d617 Table Panel: Fix condition for showing footer options (#83801)
* Fix condition for showing footer options

* codeincarnate/table-footer-config/ lint

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
2024-03-05 03:17:20 +07:00
Josh Hunt
52de1a9a33 Change codeowners of library panels to dashboards squad (#83862)
* Change codeowners of library panels to dashboards squad

* Update CODEOWNERS
2024-03-04 21:18:35 +02:00
Galen Kistler
f1000978cb Logs: e2e test flake in loki-table-explore-to-dash.spec.ts (#83856)
fix flake in e2e test checking monaco loading state
2024-03-04 13:01:48 -06:00
Ryan McKinley
5aa965b9e9 Prometheus: remove cue definition (#83808)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-03-04 10:23:32 -08:00
Matthew Jacobson
2e8c514cfd Alerting: Stop persisting user-defined templates to disk (#83456)
Updates Grafana Alertmanager to work with new interface from grafana/alerting#161. This change stops passing user-defined templates to the Grafana Alertmanager by persisting them to disk and instead passes them by string.
2024-03-04 20:12:49 +02:00
Alexander Weaver
fa51724bc6 Alerting: Move alertRuleInfo and tests to new files (#83854)
Move ruleinfo and tests to new files
2024-03-04 11:24:49 -06:00
Ryan McKinley
3036b50df3 Expressions: expose ConvertDataFramesToResults (#83805) 2024-03-04 18:22:56 +02:00
Alex Khomenko
9bd84b30e9 Chore: Remove deprecated components from dashboard import pages (#83747)
* Add Form component to core

* Chore: Replace deprecated components in DashboardImportPage.tsx

* Chore: Replace deprecated components in ImportDashboardForm.tsx

* Chore: Replace deprecated components in ImportDashboardOverview.tsx
2024-03-04 17:22:13 +02:00
Will Browne
c644826f50 Query: Add query type to json marshal/unmarshal (#83821)
add query type to json marshal/unmarshal
2024-03-04 16:06:57 +01:00
Kim Nylander
57935250fd [DOC] Add profile-traces intro material; update Pyroscope data source info (#83739)
* Add profile-traces intro material; update Pyroscope data source info

* Apply suggestions from code review

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

* Updates and file rename from review

* Add PYROSCOPE_VERSION

* Apply suggestions from code review

* Format tables

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

* Apply suggestions from code review

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>

* Apply suggestions from code review

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
2024-03-04 10:03:33 -05:00
tonypowa
89575f1df4 alerting:clarify silence preview (#83754)
* alerting:clarify silence preview

* prettier

* Update docs/sources/alerting/configure-notifications/create-silence.md

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

* Lint docs

---------

Co-authored-by: Armand Grillet <2117580+armandgrillet@users.noreply.github.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-03-04 16:03:20 +01:00
Leon Sorokin
7cf419c09a Dashboard: Revert LayoutItemContext (#83465) 2024-03-04 16:47:20 +02:00
Ivana Huckova
b63866baaf Loki: Interpolate variables in live queries (#83831)
* Loki: Interpolate variables in live queries

* Update to not have to rempve private

* Update comment
2024-03-04 16:26:46 +02:00
Ivan Ortega Alba
59fb26443f DashboardSceneChangeTracker: Do not load the worker until is editing (#83817) 2024-03-04 14:31:14 +01:00
kay delaney
519f965c8e Scenes/LibraryPanels: Fixes issue where repeat panel would disappear if dashboard didn't have variable used by lib panel (#83780) 2024-03-04 15:10:04 +02:00
kay delaney
ad28e3cc77 Scenes: Fix panel repeats (#83707) 2024-03-04 13:01:17 +00:00
Alexander Zobnin
82a88cc83f Access control: Extend GetUserPermissions() to query permissions in org (#83392)
* Access control: Extend GetUserPermissions() to query permissions in specific org

* Use db query to fetch permissions in org

* refactor

* refactor

* use conditional join

* minor refactor

* Add test cases

* Search permissions correctly in OSS vs Enterprise

* Get permissions from memory

* Refactor

* remove unused func

* Add tests for GetUserPermissionsInOrg

* fix linter
2024-03-04 13:29:13 +01:00
linoman
67c062acc7 Adjust HD validation default value (#83818) 2024-03-04 12:45:07 +01:00
Pepe Cano
111df1bba0 Alerting docs: update the Terraform Provision guide (#83773)
* Alerting docs: update the Terraform Provision guide

* Fix incorrect links

* Update docs/sources/alerting/set-up/provision-alerting-resources/terraform-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/terraform-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/terraform-provisioning/index.md

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

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-03-04 12:10:37 +01:00
Misi
07e26226b7 Auth: Add all settings to Azure AD SSO config UI (#83618)
* Add all settings to AzureAD UI

* prettify

* Fixes

* Load extra keys with type assertion
2024-03-04 11:55:59 +01:00
Laura Fernández
fa44aebeff ReturnToPrevious: Improve tests (#83812) 2024-03-04 11:38:00 +01:00
Mitch Seaman
9e12caebc7 Docs: typo fix (remove an extra parenthesis) (#83811) 2024-03-04 10:14:37 +00:00
Pepe Cano
244589d7ea Alerting docs: document mute-timings export endpoints (#83797) 2024-03-04 10:50:44 +01:00
Pepe Cano
9eb69b9213 Alerting docs: fix incorrect docs/reference link (#83809) 2024-03-04 10:20:10 +01:00
Todd Treece
869b89dce4 K8s: Add accept header to ctx (#83802) 2024-03-01 20:32:59 -05:00
Ryan McKinley
d7bcd119c3 K8s: improve openapi generation (#83796) 2024-03-02 00:26:04 +02:00
Laura Fernández
2184592174 ReturnToPrevious: create tests to check reportInteraction (#83757) 2024-03-01 19:01:27 +01:00
Ryan McKinley
5f6bf93dd5 Expressions: Use enumerations rather than strings (#83741) 2024-03-01 19:38:32 +02:00
Jack Westbrook
c59ebfc60f Fix: Cache busting of plugins module.js file (#83763)
fix(plugins): make sure extractPath regex matches with and without leading slash
2024-03-01 18:29:39 +01:00
Kyle Cunningham
886d8fae36 Table Panel: Improve text wrapping on hover (#83642)
* Fix up text wrapping

* Make sure there are basic cell styles

* codeincarnate/text-wrapping-hover-pt2/ run prettier

* Add comment for conditional

* Update condition

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
2024-03-02 00:20:14 +07:00
Kyle Cunningham
33cb4f9bf4 Table: Preserve filtered value state (#83631)
* Hoist state

* codeincarnate/table-filter-state/ lint

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-03-02 00:19:21 +07:00
George Robinson
96127dce62 Alerting: Fix bug in screenshot service using incorrect limit (#83786)
This commit fixes a bug in the screenshot service where
[alerting].concurrent_render_limit was used instead of
[rendering].concurrent_render_request_limit, as in the
docs.
2024-03-01 17:17:55 +00:00
Gilles De Mey
582fd53fac Alerting: Implement correct RBAC checks for creating new notification templates (#83767) 2024-03-01 18:09:14 +01:00
Gilles De Mey
fc10600ca5 Alerting: Fix editing Grafana folder via alert rule editor (#83771) 2024-03-01 18:08:42 +01:00
Gilles De Mey
675b7debe7 Alerting: Assume rule not found when everything is undefined (#83774) 2024-03-01 18:08:17 +01:00
Eric Leijonmarck
8b551b08f9 TeamLBAC: Change to public preview (#83761)
change to public preview
2024-03-01 17:05:59 +00:00
Santiago
2964901ea6 Chore: Fix typo in template not found error message (#83778) 2024-03-01 18:04:20 +01:00
Santiago
8ad367e4ad Chore: Remove redundant error check (#83769) 2024-03-01 13:28:08 -03:00
owensmallwood
0dfdb2ae47 Revert "Add FolderUID for library elements" (#83776)
Revert "Add FolderUID for library elements (#79572)"

This reverts commit 2532047e7a.
2024-03-01 18:16:43 +02:00
Ida Štambuk
068e6f6b94 Cloudwatch: Fix new ConfigEditor to add the custom namespace field (#83762) 2024-03-01 16:56:45 +01:00
foehammer
1c2b8576e1 CloudWatch: de-duplicate implementation of AWSDatasourceSettings.Load in LoadCloudWatchSettings (#83556) 2024-03-01 10:48:20 -05:00
Ashley Harrison
086d47d83c Chore: replace react-popper with floating-ui in ExemplarMarker (#83694)
* replace react-popper with floating-ui in ExemplarMarker

* fix e2e test

* floating-ui uses mousemove
2024-03-01 14:54:39 +00:00
kay delaney
10a55560df Scenes: Add support for repeated library panels (#83579) 2024-03-01 15:25:15 +02:00
Ida Štambuk
dbe621eeb4 Cloudwatch: Bump grafana/aws-sdk-go to 0.24.0 (#83480) 2024-03-01 13:52:45 +01:00
Misi
371aced092 Chore: Add enabled status to authentication_ui_provider_clicked (#83766)
Add enabled metadata to authentication_ui_provider_clicked
2024-03-01 13:49:06 +01:00
Ashley Harrison
21affd3b0e Library panels: Ensure all filters are visible on mobile (#83759)
* convert styles to emotion object syntax

* allow items to wrap
2024-03-01 12:24:19 +00:00
Gábor Farkas
142ac22023 Revert "Postgres: Switch the datasource plugin from lib/pq to pgx" (#83760)
Revert "Postgres: Switch the datasource plugin from lib/pq to pgx (#81353)"

This reverts commit 8c18d06386.
2024-03-01 12:20:47 +01:00
Jo
0aebb9ee39 Misc: Remove unused params and impossible logic (#83756)
* remove unused params and impossible logic

* remove unused param
2024-03-01 12:08:00 +01:00
Konrad Lalik
11d341d2bb Alerting: Add escape and quote support to the matcher name (#83601)
Add escape and quote support to the matcher name
2024-03-01 11:34:58 +01:00
Jo
36a19bfa83 AuthProxy: Allow disabling Auth Proxy cache (#83755)
* extract auth proxy settings

* simplify auth proxy methods

* add doc mentions
2024-03-01 11:31:06 +01:00
Levente Balogh
1cec975a66 Docs: Update "What's new in G10?" (#83467)
* docs: add info about the react-router migration into v10 what's new

* fix: linting issue

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

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

* docs: update linting

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-03-01 11:13:16 +01:00
Anton Patsev
1a7af2d843 Сorrection of spelling errors (#83565)
thanks for your contribution !
2024-03-01 11:00:15 +01:00
linoman
824c26cd5e Password Policy: add documentation (#83208)
* add documentation

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

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2024-03-01 10:56:26 +01:00
Misi
75b020c19d Cfg: Add a setting to configure if the local file system is available (#83616)
* Introduce environment.local_filesystem_available

* Only show TLS client cert, client key, client ca when local_filesystem_available is true

* Rename LocalFSAvailable to LocalFileSystemAvailable
2024-03-01 10:39:50 +01:00
idafurjes
2532047e7a Add FolderUID for library elements (#79572)
* Add FolderUID in missing places for libraryelements

* Add migration for FolderUID in library elements table

* Add Folder UIDs tolibrary panels

* Adjust dashboard import with folder uid

* Fix lint

* Rename back FolderUID to UID

* Remove default

* Check if folderUID is nil

* Add unique indes on org_id,folder_uid,name and kind

* Update pkg/services/libraryelements/database.go

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>

* Fix folder integration test, with unique index on library elements

* Make folder uids nullable and rewrite migration query

* Use dashboard uid instead of folder_uid

* Adjust test

---------

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2024-03-01 10:16:33 +01:00
Jo
2182cc47ac LDAP: Fix LDAP users authenticated via auth proxy not being able to use LDAP active sync (#83715)
* fix LDAP users authenticated via auth proxy not being able to use ldap sync

* simplify id resolution at the cost of no fallthrough

* remove unused services

* remove unused cache key
2024-03-01 10:14:32 +01:00
github-actions[bot]
4dc8094514 I18n: Download translations from Crowdin (#83695)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-01 07:59:07 +00:00
Charandas
b87ec69431 K8s: add a remote services file config option to specify aggregation config (#83646) 2024-02-29 17:29:05 -08:00
Nathan Marrs
5d7a979199 Canvas: Add ability to edit selected connections in the inline editor (#83625) 2024-02-29 16:56:40 -08:00
Leon Sorokin
859ecf2a34 VizTooltips: Render data links only when anchored (#83737) 2024-02-29 17:28:37 -06:00
Tim Levett
88ebef5cba Transformations: Add substring matcher to the 'Filter by Value' transformation (#83548) 2024-02-29 16:59:40 -06:00
Ryan McKinley
74115f1f08 Chore: fix apiserver integration tests (#83724)
Co-authored-by: Todd Treece <todd.treece@grafana.com>
2024-02-29 14:58:49 -08:00
Todd Treece
d7b031f318 Chore: Update Makefile to support go workspace (#83549) 2024-02-29 17:22:18 -05:00
Leon Sorokin
42b55aedbc DataLinks: Handle getLinks() regen during data updates and frame joining (#83654) 2024-02-29 21:46:53 +02:00
Andreas Christou
c9d8d8713b CI: Bump alpine image version (#83716)
Bump image version
2024-02-29 18:00:21 +00:00
Josh Hunt
d21a61752f Docs: Mention nvm in contribute docs (#83709)
Mention nvm in contribute docs
2024-02-29 19:43:00 +02:00
Spencer Torres
098c611b65 Docs: add ClickHouse to exploring logs/traces page (#83178) 2024-02-29 19:30:40 +02:00
JERHAV
b2cb8d8038 CloudWatch: Remove unnecessary sortDimensions function (#83450)
Remove sortDimension

Closes #83338
2024-02-29 08:54:37 -08:00
Misi
0218e94d93 Auth: Add Save and enable, Disable buttons to SSO UI (#83672)
* Add Save and enable and Disable button

* Change to use Dropdown, reorder buttons

* Improve UI

* Update public/app/features/auth-config/ProviderConfigForm.tsx

* Apply suggestions from code review

* Use Stack instead of separate Fields

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2024-02-29 17:41:08 +01:00
Josh Hunt
f0dce33034 Chore: Taint ArrayVector with never to further discourage (#83681)
Chore: Taint ArrayVector with never to further discourage
2024-02-29 16:29:17 +00:00
Ivan Ortega Alba
29d6cd8fa0 DashboardScene: Share change detection logic between saving and runtime (#81958)
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-02-29 18:18:26 +02:00
linoman
b02ae375ba Chore: Query oauth info from a new instance (#83229)
* query OAuth info from a new instance

* add `hd` validation flag

* add `disable_hd_validation` to settings map

* update documentation

---------

Co-authored-by: Jo <joao.guerreiro@grafana.com>
2024-02-29 16:48:32 +01:00
Jack Baldry
2a1d4f85c7 Update links to default Grafana branch (#83025) 2024-02-29 17:08:45 +02:00
Will Browne
549094d27c grafana/data: Gardening 👨‍🌾✂️🌳 (#83615)
* remove suspected unused dependencies from grafana/data

* un-export funcs and types

* re-export NoopTransformerOptions

* remove knip
2024-02-29 15:53:09 +01:00
Isabel Matwawana
e26cd8614d Docs: fix config file info in upgrade guide (#83273)
* Updated incorrect custom config file names and locations

* Corrected default config file name

* Updated more config file info

* Apply suggestions from code review

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>

* Reverted change

* Fixed default config file info, added second custom file option, and added note about file locations

* Added file path for second custom option

* Apply suggestion from review

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>

* Apply suggestion from review

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>

* Apply suggestions from review

Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>

* Apply suggestion from review

* Add version interpolation syntax

* Updated wording

* Ran prettier

---------

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
2024-02-29 09:39:25 -05:00
Esteban Beltran
ca81d1f22d Revert "Chore: Remove components from the graveyard folder in grafana/ui" (#83687)
Revert "Chore: Remove components from the graveyard folder in grafana/ui (#83…"

This reverts commit 6517431165.
2024-02-29 15:25:33 +01:00
github-actions[bot]
9ab03d4e20 I18n: Download translations from Crowdin (#83605)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-29 15:47:17 +02:00
David Harris
5572158eea chore: update core plugin descriptions (#83449)
* update alertmanager

* fix typo

* update candlestick

* update histogram

* update xy

* fix prettier

* dh-update-desc/ update snapshots

* dh-update-desc/ revert variable

* update failing test snapshot

---------

Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-02-29 13:14:12 +00:00
Ashley Harrison
1994d1e2c7 E2C: Implement on-prem auth flow (#83513)
* add connection modal

* extend api with connect/disconnect endpoints

* extract translations

* display stack url

* use react-hook-form

* fix links spanning whole modal

* review comments
2024-02-29 13:10:04 +00:00
Andre Pereira
036e19037e Tempo: Better fallbacks for metrics query (#83619)
* Use query as fallback when there's one series and no labels. Use "" as the fallback for empty label values. Stop using the `promLabels` value from the Tempo response

* Set refId to remove mentions of promLabels

* Add quotes around the string value, add space after comma separator

* Use name as refId when possible
2024-02-29 14:41:31 +02:00
Gábor Farkas
9f617191da grafana-data: fix the export of arrayvector (#83678) 2024-02-29 14:02:32 +02:00
Pepe Cano
88f010a72a Alerting docs: remove admonition/notes related to old Grafana versions (#83669) 2024-02-29 12:55:52 +01:00
github-actions[bot]
2a78ffdb75 Update make docs procedure (#83658)
Co-authored-by: grafanabot <bot@grafana.com>
2024-02-29 11:49:05 +00:00
Josh Hunt
0fd46a1bd3 Revert "CodeEditor: Ensure latest onChange callback is called" (#83677)
Revert "CodeEditor: Ensure latest onChange callback is called (#83599)"

This reverts commit 3363e3f2d3.
2024-02-29 11:40:11 +00:00
Laura Fernández
f0822e0aef ReturnToPrevious: Add this functionality to the "Go to panel" button on Alert rules (#83630)
Add RTP to the 'Go to panel' button
2024-02-29 12:19:59 +01:00
omahs
2a429cd7db Fix typos (#83621)
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-29 10:47:22 +00:00
Levente Balogh
f394e8333e Chore: remove the dataConnectionsConsole feature toggle (#83661)
chore: remove `dataConnectionsConsole` feature toggle
2024-02-29 10:29:41 +01:00
Selene
f8ce8d0600 Schemas: Restore spec core go generation (#83594)
* Restore spec core go generation

* Fix go imports
2024-02-29 10:20:28 +01:00
David Harris
10721bfcd9 Update angular-plugins.md (#83635)
* Update angular-plugins.md

Removes advice which only worked in `dev` instances.

* Update angular-plugins.md

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>

---------

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2024-02-29 09:03:47 +00:00
Ivana Huckova
a76e21c837 TimeSeries: Support vertical orientation (#83272)
* Time series with flipped axes

* Ass prop and fix timezone labes

* Remove not needed css

* Fix zoomplugin

* Update comment

* Fix zoomplugin

* Update

* Update TooltipPlugin2

* Update variable names

* Update naming and comments

* Update public/app/plugins/panel/timeseries/TimeSeriesPanel.tsx

Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>

---------

Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
2024-02-29 09:53:00 +01:00
Alex Khomenko
8ed932bb60 Select: Add instructions for resetting a value (#83603) 2024-02-29 08:38:09 +02:00
Isabel Matwawana
2c95782b10 Docs: restructure Configure panel options (#83438)
* Moved view json panel content from configure panel options to panel inspect view

* Converted add title and description task to reference section

* Removed edit panel section

* Updated bullet list to match content

* Removed view json content to be integrated later

* Ran prettier

* Docs: Edit Configure panel options (#83439)

* Updated intro

* Updated intro, descriptions, and repeating panels task

* Reformatted sections of task and updated wording of LLM info

* Copy edits

* Added Cloud links and updated version syntax

* Fixed link

* Fixed formatting and removed vestigial sentence
2024-02-28 23:37:29 -05:00
Darren Janeczek
88f5b62a23 VizTooltips: Tolerate missing annotation text (#83634) 2024-02-28 17:06:55 -06:00
Leon Sorokin
5eb7e09351 VizTooltips: Show data links without anchoring (#83638) 2024-02-28 17:06:05 -06:00
Darren Janeczek
6e75584505 datatrails: improve label filter behavior (#83411) 2024-02-28 16:06:31 -05:00
Darren Janeczek
d6b1aa6575 datatrails: standardize loading and blocking message indicators (#83560)
fix: standardize loading and blocking message indicators
2024-02-28 16:05:22 -05:00
Ryan McKinley
239abe4234 Chore: Restore vectorator export (#83637) 2024-02-28 23:00:00 +02:00
Alexander Weaver
a862a4264d Alerting: Export rule validation logic and make it portable (#83555)
* ValidateInterval doesn't need the entire config

* Validation no longer depends on entire folder now that we've dropped foldertitle from api

* Don't depend on entire config struct

* Export validate group
2024-02-28 14:40:13 -06:00
William Wernert
af528d2f66 Alerting/Annotations: Prevent panics from composite store jobs from crashing Grafana (#83459)
* Don't directly use pointer to json

* Don't crash entire process if a store job panics

* Add debug logs when failing to parse/handle Loki entries
2024-02-28 20:16:37 +02:00
Leon Sorokin
9190fb28e8 VizTooltip: Improve edge positioning and a11y (#83584) 2024-02-28 11:42:46 -06:00
Eric Leijonmarck
b89de96681 Anonymous: Add docs for anon users charged on enterprise (#83626)
add anon users enterprise
2024-02-28 17:35:10 +00:00
Josh Hunt
3363e3f2d3 CodeEditor: Ensure latest onChange callback is called (#83599) 2024-02-28 16:47:10 +00:00
Ryan McKinley
6517431165 Chore: Remove components from the graveyard folder in grafana/ui (#83545) 2024-02-28 08:36:53 -08:00
Victor Marin
528ce96118 Scenes: Fix lib panel and lib widget placement in collapsed/uncollapsed rows (#83516)
* wip

* tests + refactor ad panel func

* Add row functionality

* update row state only when there are children

* Add new row + copy paste panels

* Add library panel functionality

* tests

* PR mods

* reafctor + tests

* reafctor

* fix test

* refactor

* fix bug on cancelling lib widget

* dashboard now saves with lib panel widget

* add lib panels widget works in rows as well

* split add lib panel func to another PR

* Add library panel functionality

* Fix lib panel and lib widget placement in collapsed/uncollapsed rows

* refactor

* take panelKey into account when getting next panel id in dashboard

* fix tests
2024-02-28 18:25:22 +02:00
Larissa Wandzura
260a87a3f6 Docs: updated codeowners file (#83546)
* removed myself from data sources, added to admin (IAM)

* Remove accidental changes

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

* Rewrite Technical documentation codeowners for readability and consistency

Now it is consistent with the comments at the head of the file, at
least for this section of the repo.

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-28 10:02:41 -06:00
Konrad Lalik
183a42b7f6 Alerting: Improve alert rule and search interaction tracking (#83217)
* Fix alert rule interaction tracking

* Add search component interaction tracking

* Add fine-grained search input analytics
2024-02-28 16:52:56 +01:00
Ryan McKinley
07128cfec1 Chore: Restore ArrayVector (#83608) 2024-02-28 07:38:21 -08:00
Marie Cruz
ba4470dd7d docs: link annotation queries video to documentation (#83586) 2024-02-28 16:23:37 +01:00
Joe Blubaugh
b905777ba9 Alerting: Support deleting rule groups in the provisioning API (#83514)
* Alerting: feat: support deleting rule groups in the provisioning API

Adds support for DELETE to the provisioning API's alert rule groups route, which allows deleting the rule group with a
single API call. Previously, groups were deleted by deleting rules one-by-one.

Fixes #81860

This change doesn't add any new paths to the API, only new methods.

---------

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2024-02-28 10:19:02 -05:00
Arati R
467302480f Search: Include collapsed panels in search v2 (#83047)
* Include collapsed panels in searchv2
* Include collapsed row in TestReadSummaries
2024-02-28 16:11:09 +01:00
Misi
91cd17f012 Chore: Move TLS settings to the Extra Security Measures section (SSO Settings UI) (#83602)
Move TLS settings to the Extra Security Measures section
2024-02-28 16:01:02 +01:00
ismail simsek
757fa06b85 InfluxDB: Fix interpolation of multi value template variables by adding parenthesis around them (#83577)
Put parenthesis around multi value template variable
2024-02-28 15:59:06 +01:00
Ezequiel Victorero
7d6d256335 Snapshots: Change default expiration (#83550) 2024-02-28 11:45:22 -03:00
Victor Marin
58d6ce1c87 Add lib panel from empty dashboard page (#83522)
* wip

* tests + refactor ad panel func

* Add row functionality

* update row state only when there are children

* Add new row + copy paste panels

* Add library panel functionality

* tests

* PR mods

* reafctor + tests

* reafctor

* fix test

* refactor

* fix bug on cancelling lib widget

* dashboard now saves with lib panel widget

* add lib panels widget works in rows as well

* split add lib panel func to another PR

* Add library panel functionality

* Add lib panel from empty dashboard page

* refactor

* take panelKey into account when getting next panel id in dashboard

* fix tests
2024-02-28 16:41:56 +02:00
Victor Marin
04539ffccb Scenes: Add 'Import from library' functionality (#83498)
* wip

* tests + refactor ad panel func

* Add row functionality

* update row state only when there are children

* Add new row + copy paste panels

* Add library panel functionality

* tests

* PR mods

* reafctor + tests

* reafctor

* fix test

* refactor

* fix bug on cancelling lib widget

* dashboard now saves with lib panel widget

* add lib panels widget works in rows as well

* split add lib panel func to another PR

* Add library panel functionality

* refactor

* take panelKey into account when getting next panel id in dashboard

* fix tests
2024-02-28 16:41:12 +02:00
Jára Benc
393b12f49f Sql: Fix an issue with connection limits not updating when jsonData is updated (#83175) 2024-02-28 15:24:34 +01:00
Sonia Aguilar
ed3c36bb46 Alerting: Use time_intervals instead of the deprecated mute_time_intervals in a… (#83147)
* Use time_intervals instead of the deprecated mute_time_intervals in alert manager config

* don't send mute_time_intervals in the payload

* Add and update tests

* Fix usecase when having both fields in response from getting alert manager config

* Use mute_timings for grafana data source and both for cloud data source when deleting mute timing

* Use mute_timings for grafana data source and both for cloud data source when saving a new or existing alert rule

* Address first code review

* Address more review comments
2024-02-28 15:21:00 +01:00
Brendan O'Handley
90e7791086 Prometheus: Reduce flakiness in prometheus e2e tests (#83437)
* reduce flakiness in prometheus e2e tests

* prettier fix for azure docs

* Update e2e/various-suite/prometheus-config.spec.ts

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

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
2024-02-28 08:03:36 -06:00
Sven Grossmann
411c89012f Elasticsearch: Fix adhoc filters not applied in frontend mode (#83592) 2024-02-28 14:32:01 +01:00
Misi
3b7e7483c8 Auth: Align loading the legacy auth.grafananet section to the current behaviour in OAuthStrategy (#83479)
* Align oauth_strategy to the current behaviour

* lint

* Address feedback
2024-02-28 13:45:59 +01:00
Jack Baldry
acf97e43b6 Review "Team LBAC" page (#83406) 2024-02-28 09:54:19 +00:00
Tobias Skarhed
213e399563 Docs: Change link in Trusted Types (#83391) 2024-02-28 10:50:03 +01:00
Ashley Harrison
d83319365f DatePickerWithInput: use floating-ui so calendar can overflow scroll containers (#83521)
* move DatePickerWithInput to use floating-ui

* remove position: absolute from DatePicker, remove unnecessary css from CreateTokenModal
2024-02-28 09:45:11 +00:00
Victor Marin
738e9126de Scenes: Add new row and copy/paste functionalities (#83231)
* wip

* tests + refactor ad panel func

* Add row functionality

* update row state only when there are children

* Add new row + copy paste panels

* Add library panel functionality

* tests

* PR mods

* reafctor + tests

* reafctor

* fix test

* refactor

* fix bug on cancelling lib widget

* dashboard now saves with lib panel widget

* add lib panels widget works in rows as well

* split add lib panel func to another PR
2024-02-28 11:13:01 +02:00
Piotr Jamróz
ecb8447a7f Explore: Translate table title in runtime to get a better test id (#83236)
* Explore: Translate table title in runtime to get a better test id

* Fix escaping

* Retrigger the build

* Prettify
2024-02-28 09:19:20 +01:00
brendamuir
3901077f39 Alerting docs: changes weights and titles (#83519)
* Alerting docs: changes weights and titles

* language improvements to intro topic

* corrects rulle spelling

* adds alert instance info

* updates admonition note
2024-02-28 10:10:19 +02:00
Gábor Farkas
8c18d06386 Postgres: Switch the datasource plugin from lib/pq to pgx (#81353)
* postgres: switch from lib/pq to pgx

* postgres: improved tls handling
2024-02-28 07:52:45 +01:00
Señor Performo - Leandro Melendez
e8df62941b Docs: Add missing visualizations to Grafana vizualization index page (#83351)
Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
2024-02-27 14:12:08 -08:00
Scott Lepper
70009201d4 Expressions: Sql expressions with Duckdb (#81666)
duckdb temp storage of dataframes using parquet and querying from sql expressions
---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-02-27 16:16:00 -05:00
Sven Grossmann
d8b7992c0c Loki: Fix failing test waiting for Loading... copy (#83547)
fix monaco tests
2024-02-27 21:59:38 +01:00
Ryan McKinley
de75813d8d Chore: Remove the deprecated Vector type (#83469) 2024-02-27 12:28:57 -08:00
Leon Sorokin
5c60f4d468 VizTooltip: Remove use of LayoutItemContext (#83542) 2024-02-27 13:33:33 -06:00
Leon Sorokin
0f1cefa942 VizTooltip: Cleanup (#83462) 2024-02-27 12:07:55 -06:00
Jev Forsberg
a30617f8bd Transformations: Add transformation builder tests and refactor (#83285)
* baldm0mma/script_tests/ update jest.config paths

* baldm0mma/script_tests/ refactor makefile content

* baldm0mma/script_tests/ refactor file write commands

* baldm0mma/script_tests/ create test module

* baldm0mma/script_tests/ add to codeowners

* baldm0mma/script_tests/ recenter content

* baldm0mma/script_tests/ create buildMarkdownContent and update whitespace

* baldm0mma/script_tests/ run build script

* baldm0mma/script_tests/ update tests to remove make dep and node dep

* baldm0mma/script_tests/ update cntent

* baldm0mma/script_tests/ update makefile

* baldm0mma/script_tests/ update buildMarkdownContent

* baldm0mma/script_tests/ remove unused imports

* baldm0mma/script_tests/ update test annotation

* baldm0mma/script_tests/ prettier

* baldm0mma/script_tests/ update tests

* baldm0mma/script_tests/ update content

* baldm0mma/script_tests/ update annos

* baldm0mma/script_tests/ remove unused vars

* baldm0mma/script_tests/ remove unused imports

* baldm0mma/script_tests/ update annos

* baldm0mma/script_tests/ update paths

* Update scripts/docs/generate-transformations.test.ts

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

* baldm0mma/script_tests/ update comment

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-27 10:41:55 -07:00
Oscar Kilhed
19743a7fef Dashboard scenes: Change library panel to set dashboard key to panel instead of library panel. (#83420)
* change library panel so that the dashboard key is attached to the panel instead of the library panel

* make sure the save model gets the id from the panel and not the library panel

* do not reload everything when the library panel is already loaded

* Fix merge issue

* Clean up
2024-02-27 17:56:29 +01:00
김은빈
96dfb385ca Grafana: Replace magic number with a constant variable in response status (#80132)
* Chore: Replace response status with const var

* Apply suggestions from code review

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>

* Add net/http import

---------

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2024-02-27 18:39:51 +02:00
linoman
a7fbe3c6dc Password Policy: Update frontend facing messages (#83227)
* update tests

* update error messages
2024-02-27 17:34:43 +01:00
Ashley Harrison
fc29182f16 Chore: Remove React 17 peer deps (#83524)
remove react 17 peer dep
2024-02-27 16:34:00 +00:00
Jack Westbrook
0ad8c215aa Build: Update plugin-config webpack config (#83256)
build(plugin-configs): update webpack config to match latest create-plugin config
2024-02-27 17:12:53 +01:00
Sergej-Vlasov
30965d47a3 DashboardScene: Update query variable definition on query change (#83218)
* update scenes query variable definition on query change

* add variable query definition test
2024-02-27 17:48:08 +02:00
Adam Yeats
facb19fefb AzureMonitor: Fix mishandled resources vs workspaces (#83184) 2024-02-27 16:46:29 +01:00
Pepe Cano
eb25b669c6 Alerting docs: update Alerting Provisioning (#83376)
* Minor updates to Provisioning Index page

* Add instructions to export other alerting resources

* Edit example provisioning a `template` via config file

* Add `Resource` column to the `Export API endpoints` table

* Sort the `export` endpoint on the table in `Alerting Provisioning HTTP API`

* Minor updates for clarity to `Use configuration files to provision` docs

* Add `More examples` in Terraform Provisioning docs

* File provisioning: rename `Useful Links` section to `More examples`

* Minor grammar change

* Update docs/sources/alerting/set-up/provision-alerting-resources/_index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/_index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/export-alerting-resources/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/export-alerting-resources/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/export-alerting-resources/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Update docs/sources/alerting/set-up/provision-alerting-resources/file-provisioning/index.md

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

* Address requested changes to `Export` docs

* export: Minor grammar change

* Update docs/sources/alerting/set-up/provision-alerting-resources/export-alerting-resources/index.md

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

* Fix `doc-validator` issue with relative link

* Use patch fixed version of doc-validator that better supports docs/reference destinations

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-27 16:22:24 +01:00
ismail simsek
6fab62739d InfluxDB: Fix escaping template variable when it was used in parentheses (#83400)
escape properly regardless of the parentheses
2024-02-27 15:40:32 +01:00
Kristina
e564024883 Docs: change discussion link to issue link (#83434)
* change discussion link to issue link

* run prettier
2024-02-27 08:14:54 -06:00
Giuseppe Guerra
e068804a9e Plugins: Angular deprecation: Fix AngularDeprecationNotice not being rendered on first page load (#83221)
* Plugins: Angular deprecation: Wait for plugins to be inizialized before rendering AngularDeprecationNotice

* use then

* fix tests

* mockCleanUpDashboardAndVariables.mockReset();

* Handle plugin not found

* PR review feedback

* Add comment

* removed unnecessary return

* PR review feedback

* Use grafanaBootData

* Removed comments

* fix tests

* Use config for hideDeprecation as well
2024-02-27 16:14:23 +02:00
kay delaney
a8574226bb Dashboards: Fixes issue where panels would not refresh if time range updated while in panel view mode (#83418) 2024-02-27 14:14:01 +00:00
renovate[bot]
d6eefc7303 Update dependency eslint to v8.57.0 (#83517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 13:59:24 +00:00
renovate[bot]
12e0d5bef3 Update dependency diff to v5.2.0 (#83511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 13:43:13 +00:00
brendamuir
93f18404c0 Alerting docs: readjust titles (#83504)
* Alerting docs: readjust titles

* removes outdated videos

* removes menutitle
2024-02-27 15:00:09 +02:00
renovate[bot]
98efb2cf32 Update dependency browserslist to v4.23.0 (#83505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 12:52:47 +00:00
Josh Hunt
db131f3312 E2C: Refactor api with dataWithMockDelay helper: (#83509)
* E2C: Refactor api with dataWithMockDelay helper:

* update codeowners

* owner comment
2024-02-27 12:52:21 +00:00
Saturn IDC
ac284def02 CI: Fix missing vendor dependencies (#83464) 2024-02-27 12:29:58 +00:00
Joey
92f53d3670 Tracing: Add node graph panel suggestion (#83311)
* Add node graph panel suggestion

* Update logic

* Add comment

* Check for correct fields

* Simplify logic

* Also check for viz type

* Remove extra logic on boolean
2024-02-27 12:28:17 +00:00
renovate[bot]
d94db905c7 Update dependency @grafana/scenes to v3.8.0 (#83502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 13:52:12 +02:00
Will Browne
5edd96ae77 Plugins: Refactor plugin config into separate env var and request scoped services (#83261)
* seperate services for env + req

* merge with main

* fix tests

* undo changes to golden file

* fix linter

* remove unused fields

* split out new config struct

* provide config

* undo go mod changes

* more renaming

* fix tests

* undo bra.toml changes

* update go.work.sum

* undo changes

* trigger

* apply PR feedback
2024-02-27 12:38:02 +01:00
renovate[bot]
d04c579fc2 Update dependency webpack to v5.90.3 2024-02-27 11:36:22 +00:00
Gabriel MABILLE
8d9921a5ba RBAC: Fix delete team permissions on team delete (#83442)
* RBAC: Remove team permissions on delete

* Remove unecessary deletes from store function

* Nit on mock

* Add test to the database

* Nit on comment

* Add another test to check that other permissions remain
2024-02-27 12:21:26 +01:00
renovate[bot]
ffae7d111c Update dependency rudder-sdk-js to v2.48.2 2024-02-27 11:18:13 +00:00
brendamuir
45f8e7f8cf Revert "Revert "Alerting docs: rework create alert rules definition and topic"" (#83372)
* Revert "Revert "Alerting docs: rework create alert rules definition and topic…"

This reverts commit 2b4f108771.

* updates aliases

* fixes after testing aliases

* more alias updates

* test silence alias

* fix alias for mute timings

* attempt alias fix

* ran prettier

* fixes more aliases

* quick title update

* fixes alias

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

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

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

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

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

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

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

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

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

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

* Update docs/sources/alerting/configure-notifications/template-notifications/use-notification-templates.md

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

* Update docs/sources/alerting/configure-notifications/template-notifications/using-go-templating-language.md

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

* Update docs/sources/alerting/configure-notifications/create-silence.md

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

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

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

* Update docs/sources/alerting/configure-notifications/mute-timings.md

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

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

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

* Update docs/sources/alerting/manage-notifications/_index.md

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

* Update docs/sources/alerting/configure-notifications/create-notification-policy.md

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

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

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

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

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

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

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

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

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

* Update docs/sources/alerting/configure-notifications/mute-timings.md

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

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

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

* fix silence aliases

* fix canonical

* Update docs/sources/alerting/configure-notifications/template-notifications/create-notification-templates.md

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

* Update docs/sources/alerting/configure-notifications/create-notification-policy.md

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

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-27 11:56:11 +01:00
renovate[bot]
ff28c04245 Update dependency ol-ext to v4.0.15 2024-02-27 10:40:43 +00:00
github-actions[bot]
4d0fca443c I18n: Download translations from Crowdin (#83390)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-27 10:25:32 +00:00
renovate[bot]
801107892b Update dependency @types/react to v18.2.60 2024-02-27 10:22:14 +00:00
Jo
cc3b088b6c Teams: Fix missing context in team service (#83327)
fix missing context in team service
2024-02-27 11:10:54 +01:00
renovate[bot]
81eded16aa Update dependency react-virtualized-auto-sizer to v1.0.23 2024-02-27 09:55:58 +00:00
Ashley Harrison
faaf4dc1e3 E2C: Implement cloud auth flow (#83409)
* implement cloud auth

* move logic into MigrationTokenPane folder

* update PDC link

* add missed translations
2024-02-27 09:54:06 +00:00
Adela Almasan
2540842c95 Histogram: Replace null values (#83195) 2024-02-27 05:25:26 +02:00
Leon Sorokin
93fef224ae TimeSeries: Don't re-init chart with bars style on data updates (#83355) 2024-02-27 03:41:39 +02:00
Leon Sorokin
2c3596854f BarChart: TooltipPlugin2 (#80920)
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
2024-02-26 19:18:40 -06:00
renovate[bot]
2ed8201f25 Update dependency nanoid to v5.0.6 2024-02-27 00:36:47 +00:00
Adela Almasan
99271441fb Legend: Allow item copy in Table mode (#83319) 2024-02-27 02:35:45 +02:00
Leon Sorokin
4db30754a6 Graph (old): Migrate right y axis to TimeSeries via custom.axisPlacement (#83452) 2024-02-26 18:22:36 -06:00
renovate[bot]
d4a932ae33 Update dependency dompurify to v3.0.9 2024-02-27 00:05:18 +00:00
renovate[bot]
77f9d29291 Update dependency @types/semver to v7.5.8 2024-02-26 23:34:35 +00:00
renovate[bot]
f2a21f3831 Update dependency @types/react-window-infinite-loader to v1.0.9 (#83445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 00:55:27 +02:00
Yuri Tseretyan
6a11bee6af Alerting: Deprecate max_annotations_to_keep and max_annotation_age in [alerting] configuration section (#83266)
* introduce new config section [unified_alerting.state_history.annotations] and deprecate settings in [alerting]

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-02-26 17:04:27 -05:00
Isabella Siu
bdeff84068 CloudWatch: Refactor "getDimensionValuesForWildcards" (#83335) 2024-02-26 16:19:45 -05:00
renovate[bot]
6097ce5b61 Update dependency @types/react-color to v3.0.12 2024-02-26 21:19:27 +00:00
Isabella Siu
44639e1063 CloudWatch: Fetch externalId from settings instead of env (#83332) 2024-02-26 16:18:22 -05:00
Todd Treece
f8dc40df52 Chore: Point to xorm fork in go.mod (#83436) 2024-02-26 16:07:27 -05:00
renovate[bot]
0848e7dd69 Update dependency @types/react to v18.2.59 2024-02-26 21:01:35 +00:00
Isabella Siu
0bfe9db668 CloudWatch: Move SessionCache onto the instance (#83278) 2024-02-26 15:59:54 -05:00
Fabrizio
58b0323bbb Fix linting of docs file (#83441) 2024-02-26 21:03:13 +01:00
Misi
9709ac8b84 Auth: Revert provider list change (#83435)
* Load auth.grafananet as the last provider

* skip test
2024-02-26 20:59:49 +01:00
Takashi Idobe
f209a5a8b8 fix typos (#83414) 2024-02-26 10:52:44 -07:00
renovate[bot]
e9a1150b35 Update dependency @types/node to v20.11.20 2024-02-26 17:19:05 +00:00
kay delaney
c6a16e5520 Scenes/VizPanel: Add support for panel repeat options (#81818) 2024-02-26 17:03:36 +00:00
Stephanie Hingtgen
e295c38a6e Chore: fix shellchecks (#83421) 2024-02-26 08:59:55 -08:00
Nick Richmond
b3363543ea Prometheus: avoid unnecessary network requests (#83342)
* perf: avoid unnecessary network requests

* test: restore mocks to undo `jest.replaceProperty`

* chore: mirror updates for Prometheus library
2024-02-26 11:56:40 -05:00
Usman Ahmad
9f88a88303 Docs/grafana helm (#80390)
* added the helm project

* added page metadata

* added the intro section

* fixed menuTitle

* added section i.e. Setting up the Grafana Helm repository

* added the deployment section

* finished the deploying grafana section

* completed access grafana section

* updating changes

* added persistent storage section

* added debugging section

* fixed typos

* fixed headings

* fixed numerious typos

* Apply suggestions from code review

looks good now !!

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

* Apply suggestions from code review

Thanks for the changes. It looks much better now

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

* fixed the suggested changes and fixed minor typos

* Apply suggestions from code review

thanks for the improvements. looks polished now!!

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

* fixed download link

* fixed typo

* final adjustments

* corrects spelling

* makes prettier

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
2024-02-26 10:53:38 -06:00
renovate[bot]
6183f7ea6c Update dependency @types/lucene to v2.1.7 (#83422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 18:52:55 +02:00
ismail simsek
949156e842 InfluxDB: Fix fetching tag values only for selected measurement (#83353)
show tag values only for selected measurement
2024-02-26 17:28:37 +01:00
renovate[bot]
af76b8937e Update dependency @types/js-yaml to v4.0.9 (#83417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 18:16:01 +02:00
Mihai Doarna
7b2fa28e0b SSO: update info field from SocialBase struct (#83407)
update info field from SocialBase struct
2024-02-26 18:02:46 +02:00
renovate[bot]
2c38bc5f13 Update dependency @types/d3-force to v3.0.9 (#83413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 17:59:30 +02:00
Ryan McKinley
d122af6b97 Live: Improve the debug panel and add a devenv dashbaord (#83350) 2024-02-26 07:56:35 -08:00
renovate[bot]
715ea44466 Update dependency @types/common-tags to v1.8.4 (#83410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 17:43:52 +02:00
renovate[bot]
050cf85e27 Update dependency @types/chance to v1.1.6 (#83401)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 15:27:16 +00:00
Tobias Skarhed
432fffcf4c Docs: Update help keyboard shortcut (#83397) 2024-02-26 16:10:15 +01:00
Darren Janeczek
fb324fc8ac datatrails: fix: indicate __ignore_usage__ for preview queries (#82291)
* fix: indicate __ignore_usage__ for preview queries

* fix: further remove var that shouldn't be there

* refactor: move previewPanel code and add tests

* fix: use simpler `AdHocFiltersVariable` state

Co-authored-by: Andre Pereira <adrapereira@gmail.com>

---------

Co-authored-by: Andre Pereira <adrapereira@gmail.com>
2024-02-26 10:01:54 -05:00
Ashley Harrison
da4fb8b3ed E2C: Initial config to switch between cloud and onprem pages (#83380)
hacky config to switch between cloud and onprem pages
2024-02-26 14:36:34 +00:00
Isabella Siu
7f8a87458f CloudWatch: Remove unused handleGetRegions and regionCache (#83333)
* remove unused handleGetRegions and regionCache

* cleanup
2024-02-26 09:35:59 -05:00
Misi
617adb137c Auth: OAuth strategy load extra fields separately (#83408)
Load extra fields separately
2024-02-26 15:33:29 +01:00
Eric Leijonmarck
1f484fef9d Team LBAC: Add doc description of lbac rule (#83384)
* chore: add doc description of lbac rule

* spellling

* Update docs/sources/administration/data-source-management/teamlbac/_index.md

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>

---------

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2024-02-26 14:31:21 +00:00
Gábor Farkas
4c0da354ca update go.mod/sum/work (#83402)
* update go.mod/sum/work

* updated codeowners
2024-02-26 16:24:08 +02:00
Hugo Häggmark
005b2c0f25 Docs: Update HALL_OF_FAME.md (#79775)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-26 15:04:58 +01:00
idafurjes
80447dd0cc Restructure cloudmigration service (#83211)
* Restructure cloudmigation service

* Adjust codewoners and wire

* Comment out unused metrics
2024-02-26 14:52:16 +01:00
renovate[bot]
648abdbd0e Update dependency @swc/core to v1.4.2 2024-02-26 12:49:29 +00:00
Victor Marin
09c8e7ccc0 Scenes: Add new vizualisation functionality (#83145)
* wip

* tests + refactor ad panel func

* PR mods
2024-02-26 14:48:27 +02:00
renovate[bot]
445aeca04b Update dependency @react-types/shared to v3.22.1 2024-02-26 12:28:41 +00:00
Khushi Jain
d02de5ddb9 Image Rendering: Add settings for default width, height and scale (#82040)
* Add Image width & height

* ability to change default width, height and scale

* default ini

* Update conf/defaults.ini

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update pkg/setting/setting.go

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update pkg/setting/setting.go

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Added docs, changed frontend

* Update conf/defaults.ini

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update conf/defaults.ini

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update conf/defaults.ini

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

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

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update pkg/api/dtos/frontend_settings.go

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update pkg/api/frontendsettings.go

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update pkg/api/render.go

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* add query float 64

* Update packages/grafana-runtime/src/config.ts

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update public/app/features/dashboard/components/ShareModal/utils.ts

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* spacing

* fix tests

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

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

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

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

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

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

---------

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2024-02-26 13:27:34 +01:00
renovate[bot]
3f2eb8bd6a Update dependency @grafana/faro-web-sdk to v1.3.9 2024-02-26 12:04:59 +00:00
Andres Martinez Gotor
fc8a9aad22 Datasource API: Add config to ctx (#83386) 2024-02-26 13:02:55 +01:00
renovate[bot]
5756f365e3 Update dependency @grafana/faro-web-sdk to v1.3.9 2024-02-26 11:32:47 +00:00
renovate[bot]
171852546d Update dependency @grafana/faro-core to v1.3.9 2024-02-26 11:09:56 +00:00
Laura Fernández
f6fa248ac1 ReturnToPrevious: Add guidelines to returnToPrevious hook (#83219) 2024-02-26 12:08:00 +01:00
Fabrizio
2fa4ac2a73 Tempo: Remove duplicated code (#81476) 2024-02-26 11:39:26 +01:00
Gabriel MABILLE
80d6bf6da0 AuthN: Remove embedded oauth server (#83146)
* AuthN: Remove embedded oauth server

* Restore main

* go mod tidy

* Fix problem

* Remove permission intersection

* Fix test and lint

* Fix TestData test

* Revert to origin/main

* Update go.mod

* Update go.mod

* Update go.sum
2024-02-26 11:29:09 +01:00
Serge Zaitsev
d0679f0993 Chore: Add support bundle for folders (#83360)
* add support bundle for folders

* fix ProvideService in tests

* add a test for collector
2024-02-26 11:27:22 +01:00
renovate[bot]
ae00b4fb53 Update dependency @grafana/aws-sdk to v0.3.2 (#83374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 12:24:33 +02:00
Ashley Harrison
d5adcf350a E2C: Add cloud landing page (#83316)
* restructure and create cloud empty state

* use new Grid prop and run i18n:extract
2024-02-26 10:10:35 +00:00
Selene
dea0a0f6c8 Kinds: Generate k8 resources without use kindys/thema (#83310)
Generate k8 resources reading cue file directly instead of use thema/kindsys binding
2024-02-26 10:18:19 +01:00
Joey
1899afccb5 Tempo: Add support for ad-hoc filters (#83290)
* Add support for ad-hoc filters

* Add tests

* Update types
2024-02-26 08:59:13 +00:00
Erik Sundell
af4382e4c2 plugin-e2e: Fix flaky test (#83370)
fix mock issue
2024-02-26 09:21:29 +01:00
Darren Janeczek
11ff4e7b8c fix: datatrails: start step is "metric select" after reinitializing from URL (#83179)
fix: datatrails: start step is "metric select"

If restoring from a saved data trail, or URL,
the selection of metric becomes a second step.
The first step is always without a metric, and
displays the metric selection scene.
2024-02-25 12:54:10 -05:00
Todd Treece
110028706a K8s: Update codegen to support new packages (#83347)
---------

Co-authored-by: Charandas Batra <charandas.batra@grafana.com>
2024-02-23 16:36:23 -08:00
Leon Sorokin
6e6b9a62a2 VizTooltips: Use global portal (#81986)
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
2024-02-24 00:18:24 +02:00
Haris Rozajac
e4276a4ede Dashboard-Scene: Show empty state after removing last panel (#83114)
* Show empty state after removing last panel

* betterer

* Refactor isEmpty state update in DashboardScene.tsx

* don't need viewPanelScene check

* track isEmpty through a behavior

* Fix test

* Add test for empty state

* minor fix

* Refactor isEmpty check

* Don't use const

* clean up
2024-02-23 15:03:35 -07:00
ismail simsek
240480ac9b Chore: Add a key prop to warning component to prevent "should have a unique key prop" error (#83340)
add a key prop to prevent "should have a unique key prop" warning/error on the browser console
2024-02-23 23:57:12 +02:00
Isabel
dfeb33fe55 Docs: restructure Configure field overrides (#81833)
* Removed view and delete overrides sections

* Added examples heading and moved examples down one heading level

* Added override rules section and removed rule definitions from task

* Added supported visualizations section and table and docs ref links

* Docs: edit Configure field overrides (#81834)

* Formatted note

* Added missing content and general edits

* Updated screenshots and examples and general edits

* Fix small formatting issues

* Fixed links

* Uploaded images to admin, updated image links, and removed local images

* Swapped figure shortcode for simple Markdown
2024-02-23 16:51:00 -05:00
Todd Treece
e5a26a3f7c K8s: Add apimachinery and apiserver packages (#83190) 2024-02-23 15:15:43 -05:00
Todd Treece
f4b432841b Chore: Add env var check to make drone (#83337) 2024-02-23 21:28:30 +02:00
Todd Treece
2146f6ce1f Chore: Update drone signature (#83334) 2024-02-23 14:10:51 -05:00
Tania
8895b43c85 Chore: Remove docs and kinds report generators (#83277)
* Chore: Remove codegen for docs

* Remove kindsysreport
2024-02-23 20:06:43 +01:00
Todd Treece
23963a1f34 Chore: Update wire to v0.6.0 using bingo (#83323) 2024-02-23 12:48:26 -05:00
Jack Baldry
2b4f108771 Revert "Alerting docs: rework create alert rules definition and topic" (#83328) 2024-02-23 19:30:08 +02:00
Darren Janeczek
18d1ced069 style: datatrails: indicate prometheus data source (#83199)
* style: indicate prometheus data source
2024-02-23 12:03:40 -05:00
Darren Janeczek
b3c0f69576 style: datatrails: use Tag on cards (#83198)
* style: datatrails: use Tag on cards
2024-02-23 12:03:10 -05:00
Jev Forsberg
a97562906c Table: Add ability for Table to render Standard Options "No value" value when DataFrames or field values are empty (#82948)
* baldm0mma/no_value_message/ add fieldConfig to Table props

* baldm0mma/no_value_message/ add noValuesDisplayText to table props

* baldm0mma/no_value_message/ add fieldConfig to tablePanel

* baldm0mma/no_value_message/ add tests

* baldm0mma/no_value_message/ update test values

* baldm0mma/no_value_message/ update args in tests

* baldm0mma/no_value_message/ update with NO_DATA_TEXT const
2024-02-23 10:00:24 -07:00
Kristina
92fa868a77 remove oss from security config docs (#82936) 2024-02-23 10:55:44 -06:00
brendamuir
57114a4916 Alerting docs: rework create alert rules definition and topic (#83220)
* Alerting docs: rework create alert rules definition and topic

* ran prettier

* corrects note

* adds configure notifications section

* update branch

* corrects links

* parts of alert rule creation

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

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>

* moved section

* updates recording rule steps

* gets rid of configure integrations topic

* deletes configure integrations topic

* deletes links

* ran prettier

* Include contact point links

* phase 2 sorting out manage notifications

* manage notification changes

* manage notification updates

* finishing touches

* fixes links

* link fixes

* more link fix

* link fixes

* ran prettier

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-23 17:52:19 +01:00
Andreas Christou
1477e658ec CI: Add retry for yarn install (#83317)
Add retry for yarn install
2024-02-23 16:15:28 +00:00
Ieva
19b1e71fee IP range AC for data sources: compare the base of the URL only (#83305)
* compare the base of the URL and ignore the path

* change the logic to compare scheme and host explicitly

* fix the test
2024-02-23 18:13:21 +02:00
Ieva
65534e62a6 RBAC: add kind, attribute and identifier to annotation permissions during the migration (#83299)
add kind, attribute and identifier to annotation permissions during the migration
2024-02-23 16:03:23 +00:00
Jo
b2601d71d5 IAM: Remove fully rolled out feature toggles (#83308)
* remove anon stat ft

* remove split scope flag

* remove feature toggle from frontend
2024-02-23 17:53:37 +02:00
Kristina
bbe9c8661a Explore: Use rich history local storage for autocomplete (#81386)
* move autocomplete logic

* Tests

* Write to correct history

* Remove historyUpdatedAction and related code

* add helpful comments

* Add option to mute all errors/warnings for autocomplete

* Add back in legacy local storage query history for transition period

* Move params to an object for easier use and defaults

* Do not make time filter required

* fix tests

* change deprecation version and add issue number
2024-02-23 09:44:21 -06:00
Torkel Ödegaard
ea8b3267e5 DataTrails: Sticky controls (#83286)
* DataTrails: Sticky controls

* Update
2024-02-23 16:22:34 +01:00
Ashley Harrison
49e18a3e7a Chore: replace react-popper with floating-ui in Popover (#82922)
* replace react-popper with floating-ui in Popover

* update HoverCard

* fix unit tests

* mock useTransitionStyles to ensure consistent unit test results
2024-02-23 15:00:24 +00:00
Darren Janeczek
83c01f9711 datatrails: detect if current trail state is bookmarked (#83283)
* fix: detect if current trail state is bookmarked
2024-02-23 17:00:10 +02:00
Ashley Harrison
604e02be15 Grid: Add alignItems prop (#83314)
add alignItems props to Grid
2024-02-23 14:25:44 +00:00
Joey
1631e41303 Tempo: Add template variable interpolation for filters (#83213)
* Interpolate template variables in filters

* Add tests
2024-02-23 14:03:35 +00:00
Todd Treece
49d3cb29eb Chore: Add go workspace (#83191)
---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-02-23 08:54:24 -05:00
Daniel Reimhult
43b186a52e Unit: Add SI prefix for empty unit (#79897)
* Unit: Add SI prefix for empty unit

* Units: Change name from SI prefix to SI short
2024-02-23 15:24:12 +02:00
Andreas Christou
7730a38474 CI: Remove inline-builds flag (#83306)
Remove inline-builds
2024-02-23 15:11:04 +02:00
Erik Sundell
3e456127cb E2E: Add plugin-e2e scenario verification tests (#79969)
* add playwright test and plugin-e2e

* run tests in ci

* add ds config tests

* add panel edit tests

* add annotation test

* add variable edit page tests

* add explore page tests

* add panel plugin tests

* add readme

* remove comments

* fix broken test

* remove user.json

* remove newline in starlark

* fix lint issue

* ignore failure of playwright tests

* update code owners

* add detailed error messages in every expect

* update message frame

* fix link

* upload report to gcp

* echo url

* add playwright developer guide

* bump plugin-e2e

* add custom provisioning dir

* update plugin-e2e

* remove not used imports

* fix typo

* minor fixes

* use latest version of plugin-e2e

* fix broken link

* use latest plugin-e2e

* add feature toggle scenario verification tests

* bump version

* use auth file from package

* fix type error

* add panel data assertions

* rename parent dir and bump version

* fix codeowners

* reset files

* remove not used file

* update plugin-e2e

* separate tests per role

* pass prov dir

* skip using provisioning fixture

* wip

* fix permission test

* move to e2e dir

* fix path to readme

* post comment with report url

* format starlark

* post comment with report url

* post comment with report url

* fix token

* make test fail

* fix exit code

* bump version

* bump to latest plugin-e2e

* revert reporting message

* remove comments

* readding report comment

* change exit code

* format starlark

* force test to fail

* add new step that posts comment

* fix link

* use latest playwright image

* fix failing test

* format starlark

* remove unused fixture

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2024-02-23 12:39:30 +01:00
Ashley Harrison
b25667223c Box: add direction prop to Box (#83296)
add "direction" prop to Box
2024-02-23 13:38:36 +02:00
George Robinson
a0353b237a Alerting: Update swagger specs (#83260) 2024-02-23 11:25:43 +00:00
Ashley Harrison
a3c73ae7c4 E2C: Add initial empty state (#83232)
* update subtitle

* add empty state

* rename to InfoPaneLeft/Right

* use &apos;

* add "direction" prop to Box

* update subtitle

* Revert "add "direction" prop to Box"

This reverts commit 99f82a27c7.
2024-02-23 13:18:09 +02:00
Ashley Harrison
c63456612e Chore: replace react-popper with floating-ui in time pickers (#82640)
* replace react-popper with floating-ui in RelativeTimeRangePicker

* replace react-popper with floating-ui in DateTimePicker
2024-02-23 10:45:04 +00:00
Ben Donnelly
fa37d8467f fix(build): make python and gcc are needed for some yarn dependencies… (#83228)
fix(build): make python and gcc are needed for some yarn dependencies to build
2024-02-23 11:14:54 +01:00
renovate[bot]
d4bc0fe018 Update dependency stylelint to v16 (#83252)
* Update dependency stylelint to v16

* remove stylelint-config-prettier since it's no longer necessary

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-02-23 11:56:38 +02:00
renovate[bot]
ad80518db0 Update dependency webpack-dev-server to v5 (#83258)
* Update dependency webpack-dev-server to v5

* update webpack.hot config (is this even used anymore?)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-02-23 11:43:16 +02:00
renovate[bot]
217154f85d Update dependency stylelint-config-sass-guidelines to v11 (#83253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-23 09:20:02 +00:00
Konrad Lalik
cc9ff3f8c9 Alerting: Add Loki ASH tests checking proper rendering of timeline chart component (#83235)
Add Loki ASH tests checking proper rendering of timeline chart component
2024-02-23 09:19:16 +01:00
Kyle Cunningham
a4cc4179c8 Table: Fix units showing in footer after reductions without units (#82081)
* Add preservesUnits property to reducer registry items

* Hide units when appropriate

* Prettier

* some code cleanup

* Prevent error when no stat is selected.

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-02-22 22:28:15 -06:00
Alvaro Huarte
49299ebd9c Table Component: Improve text-wrapping behavior of cells (#82872)
* Fix text-wrapping of cells in Tables

* Set wordbreak on hover for long texts without spaces
2024-02-23 06:20:56 +02:00
Kim Nylander
62163f8844 [DOC] Tempo data source: fix broken link and clarify traces to profile (#83135)
* Update Tempo data source to fix broken link

* Correct profiles content

* Move explanation table up

* Chagnes from prettier

* Resolve conflict
2024-02-22 16:22:00 -06:00
Ezequiel Victorero
455bccea2a Scenes: Render old snapshots (#82277) 2024-02-22 16:56:31 -03:00
Torkel Ödegaard
086e60488f DataTrails: Remove the adhoc filters label (#83237) 2024-02-22 20:11:09 +01:00
Andreas Christou
d503107d7a Docker: Add workaround for building on arm64 (#83242)
Add workaround for building on arm64
2024-02-22 18:59:06 +00:00
Haris Rozajac
28fa2849df Dashboard-Scene: View panel as table in edit mode (#83077)
* WIP: working functionality

* betterer

* Fully working: Alerts show up, toggling table view doesn't update viz type in options pane

* betterer

* improve

* betterer

* Refactoring a bit

* wrong step

* move data provider to vizPanel

* Update

* update

* More refactorings

* Fix InspectJsonTab tests (except 1); remove obsolete PanelControls

* Fixed test

* Update

* minor fix

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-02-22 10:34:21 -07:00
George Robinson
a564c8c439 Alerting: Keep order of time and mute time intervals consistent (#83257) 2024-02-22 16:57:20 +00:00
Misi
1ef2e8d366 Chore: Allow self-serve for ssoSettingsApi feature toggle (#83140)
* Set AllowSelfServe to true ssoSettingsApi

* Align ft registry validation with latest changes
2024-02-22 18:33:27 +02:00
renovate[bot]
18ec6fcdd3 Update dependency sass-loader to v14 (#83255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 18:26:01 +02:00
George Robinson
1ed1242358 Alerting: Basic support for time_intervals (#83216)
This commit adds basic support for time_intervals, as mute_time_intervals
is deprecated in Alertmanager and scheduled to be removed before 1.0.
It does not add support for time_intervals in API or file provisioning,
nor does it support exporting time intervals. This will be added in
later commits to keep the changes as simple as possible.
2024-02-22 15:58:56 +00:00
renovate[bot]
13cb09b178 Update dependency postcss-loader to v8 (#83161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 15:52:20 +00:00
renovate[bot]
0b62c15e4b Update dependency rc-drawer to v7 (#83162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 15:48:37 +00:00
Gábor Farkas
ae77fe3602 postgres: do not use unexported grafana-core config (#83241)
* postgres: do not use unexported grafana-core config

* fixed wrong value
2024-02-22 16:47:03 +01:00
Jack Westbrook
5f89c69b66 Chore: Bump Lerna 8.x.x (#83233)
* chore(lerna): bump lerna to 8.x.x

* chore(lerna): run lerna repair command to update lerna.json

* ci(drone): use raw output (no quotes) when updating package.json version

* ci(drone): update config file
2024-02-22 16:22:23 +01:00
Isabel
5f41cc632e Docs: update import troubleshoot dashboards links (#83124)
* Updated links to former manage dashboards content

* Removed links to manage dashboards and added export content to Sharing page

* Replaced grafana links with cloud docs links

* Removed trailing slash from link

* trigger CI

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-22 09:34:16 -05:00
Jack Westbrook
15d83960ec Chore: Align usage of tsconfig in yarn workspaces to 1.3.0-rc1 (#83160)
chore(tsconfig): align all usage in workspaces to 1.3.0-rc1
2024-02-22 15:30:20 +01:00
Joey
ee5dc14e17 Tempo: Remove trace to metrics feature toggle (#82884)
* Remove trace to metrics feature toggle

* Fix after merge
2024-02-22 13:30:41 +00:00
Sonia Aguilar
2a1873f038 Alerting: Fix saving evaluation group. (#83188)
fix saving evaluation group
2024-02-22 14:29:57 +01:00
Gábor Farkas
3ba33fe278 mysql: do not use unexported grafana-core config (#83062)
* mysql: do not use unexported grafana-core config

* updated test
2024-02-22 14:22:14 +01:00
Marie Cruz
74c0463cd3 Docs: update grafana fundamentals (#83075)
* docs: update grafana fundamentals

* fix: lint issues

* docs: added more content on grafana fundamentals tutorial
2024-02-22 13:27:29 +01:00
Leon Sorokin
dbbbfa282d StateTimeline: Properly type tooltip prop, remove ts-ignore (#83189) 2024-02-22 06:14:53 -06:00
Jack Westbrook
0dcdfc261b Monaco Editor: Load via ESM (#78261)
* chore(monaco): bump monaco-editor to latest version

* feat(codeeditor): use esm to load monaco editor

* revert(monaco): put back previous version

* feat(monaco): setup MonacoEnvironment when bootstrapping app

* feat(monaco): load monaco languages from registry as workers

* feat(webpack): clean up warnings, remove need to copy monaco into lib

* fix(plugins): wip - remove amd loader workaround in systemjs hooks

* chore(azure): clean up so QueryField passes typecheck

* test(jest): update config to fix failing tests due to missing monaco-editor

* test(jest): update config to work with monaco-editor and kusto

* test(jest): prevent message eventlistener in nodeGraph/layout.worker tripping up monaco tests

* test(plugins): wip - remove amd related tests from systemjs hooks

* test(alerting): prefer clearAllMocks to prevent monaco editor failing due to missing matchMedia

* test(parca): fix failing test due to undefined backendSrv

* chore: move monacoEnv to app/core

* test: increase testing-lib timeout to 2secs, fix parca test to assert dom element

* feat(plugins): share kusto via systemjs

* test(e2e): increase timeout for checking monaco editor in exemplars spec

* test(e2e): assert monaco has loaded by checking the spinner is gone and window.monaco exists

* test(e2e): check for monaco editor textarea

* test(e2e): check monaco editor is loaded before assertions

* test(e2e): add waitForMonacoToLoad util to reduce duplication

* test(e2e): fix failing mysql spec

* chore(jest): add comment to setupTests explaining need to incresae default timeout

* chore(nodegraph): improve comment in layout.worker.utils to better explain the need for file
2024-02-22 12:31:40 +01:00
Josh Hunt
0dbf2da254 MigrateToCloud: Add API interface for frontend (#83215)
Add RTK Query mocks
2024-02-22 13:12:00 +02:00
Ashley Harrison
5561ace467 Navigation: Scroll the active menu item into view when menu is an overlay (#83212)
scroll the active menu item into view even when not docked
2024-02-22 11:04:18 +00:00
Pepe Cano
9c42826c30 Alerting docs: fix broken link and apply the Writer toolkit guideline to other links (#83209)
* Fix `/docs/reference` cannot be used within admonitions

* Remove `relref` links to apply Writers toolkit guidelines
2024-02-22 11:31:59 +01:00
Fabrizio
a35dc9ad4e Allow build and release process for Zipkin plugin (#83116) 2024-02-22 10:49:51 +01:00
Fabrizio
8852b1dcc5 Run analysis steps only on grafana/grafana (#83185) 2024-02-22 10:26:50 +01:00
Konrad Lalik
b02183e9ac Alerting: Fix dashboard nav drawers disappearing (#82890)
Add DashNav modal renderer to handle modals rendered from Toolbar buttons
2024-02-22 10:16:27 +01:00
Fabrizio
3dea5e30c3 Yarn: Clean up PnP fragments (#83138) 2024-02-22 10:04:58 +01:00
Klesh Wong
9282c7a7a4 AuthProxy: Invalidate previous cached item for user when changes are made to any header (#81445)
* fix: sign in using auth_proxy with role a -> b -> a would end up with role b

* Update pkg/services/authn/clients/proxy.go

Co-authored-by: Karl Persson <kalle.persson92@gmail.com>

* Update pkg/services/authn/clients/proxy.go

Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
2024-02-22 10:02:31 +01:00
Agnès Toulet
8d68159b52 Public Dashboards: Disable email-sharing when there is no license (#80887)
* PublicDashboards: Disable email-shared dashboards when feature is disabled

* fix pubdash creation when it was email-shared

* add feature name const in OSS

* update doc

* Update service.go

* fix test & linter

* fix test

* Update query_test.go

* update tests

* fix imports

* fix doc linter issues

* Update docs/sources/administration/enterprise-licensing/_index.md

* fix after merge
2024-02-22 09:34:14 +01:00
Pablo
cfcf03bf7a CloudWatch: Add Firehose kms-related metrics (#83192)
Add KMS firehose metrics
2024-02-21 14:57:31 -05:00
Josh Hunt
030b83d8f2 NestedFolderPicker: Seperate state from Browse Dashboards (#82672)
* initial very very early stab at isolated state for nested folder picker

* more

* complete state rework. still need to do search

* tidy up some comments

* split api hook into seperate file, start to try and get search results back (its not working)

* Fix loading status

* Reset files

* cleanup

* fix tests

* return object

* restore hiding items

* restore

* restore

* remove those comments

* rename hooks

* rename hooks

* simplify selectors - thanks ash!!!

* more ci please?
2024-02-21 20:02:37 +02:00
Jev Forsberg
d883af08dd Dependencies(Dev): Add @types/eslint-scope (#83118)
baldm0mma/add_eslint-scope_dep/ add dep and yarn add
2024-02-21 10:26:49 -07:00
github-actions[bot]
ac88cfbdbb I18n: Download translations from Crowdin (#83182)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-21 18:23:53 +02:00
Alex Khomenko
5132828a2b Chore: Remove Form usage from notification policies (#81758)
* Chore: Replace Form component usage in EditDefaultPolicyForm.tsx

* Chore: Replace Form component usage in EditNotificationPolicyForm.tsx

* Remove ts-ignore
2024-02-21 18:14:49 +02:00
Ivan Ortega Alba
5460d75e74 QueryVariableEditor: Select a variable ds does not work (#83144) 2024-02-21 17:57:53 +02:00
Darren Janeczek
db4b4c4b0a datatrails: refactor: auto query generator, use more suitable queries (#82494)
* refactor: datatrails auto query generator

* fix: use "per-second rate" instead
2024-02-21 10:52:49 -05:00
Ashley Harrison
c75502dd8c Cloud migration UI: Add migrate-to-cloud route (#83072)
* add migrate-to-cloud route

* fix chunk name

* gate route behind feature toggle

* update permission checks
2024-02-21 15:50:13 +00:00
Sergej-Vlasov
e1edec02d0 DashboardScene: Validate variable name in scenes variable editor (#82415)
* add variable name validation

* adjust variable name validation logic

* move variable name validation logic to model

* add tests for onValidateVariableName

* extract variable name validation itest into separate describe
2024-02-21 17:16:57 +02:00
linoman
7e8b679237 OAuth: Improve domain validation (#83110)
* enforce hd claim validation

* add tests
2024-02-21 15:40:18 +01:00
Khushi Jain
1394b3341f Chore: Remove gf-form from datasource/loki and datasource/cloud-monitoring (#80117)
* Chore: Remove gf-form from datasource/loki

* remove query field

* update betterer
2024-02-21 16:37:40 +02:00
Carl Bergquist
028d0d0c2c Rename scope.name to scope.title since name exists in metadata. (#83172)
name is part of metadata which is confusing

Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-02-21 09:32:57 -05:00
Joey
2258e6bd16 Traces: Add traces panel suggestion (#83089)
* Add traces panel suggestion

* Render suggestion

* Update styling

* Update styling
2024-02-21 13:49:41 +00:00
Alexander Zobnin
9bbb7f67e0 Chore: Move store interface to top level (#83153)
* Chore: Move store interface to top level

* Update store mock
2024-02-21 14:32:54 +01:00
Ben Sully
be71277d33 Plugins: fix loading of modules which resolve to Promises (#82299)
* Plugins: fix loading of modules which resolve to Promises

Prior to this commit we expected the default export of a plugin module
to be an object with a `plugin` field.

This is the case for the vast majority of plugins, but if a plugin uses
webpack's `asyncWebAssembly` feature then the default export will actually
be a promise which resolves to such an object.

This commit checks the result of the SystemJS import to make sure it has
a `plugin` field. If not, and if the `default` field looks like a Promise,
it recursively attempts to resolve the Promise until the object looks like
a plugin.

I think this may have broken with the SystemJS upgrade (#70068) because it used
to work without this change in Grafana 10.1, but it's difficult to say
for sure.

* Use Promise.resolve instead of await to clean up some logic

* Override systemJSPrototype.import instead of handling defaults inside importPluginModule

* Add comment to explain why we're overriding systemJS' import

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

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-02-21 13:25:00 +00:00
Ryan McKinley
809c1eaddb Snapshots: delete from same org (#83111)
delete in org
2024-02-21 08:04:15 -05:00
Esteban Beltran
49a3553b94 Sandbox: Fix custom variable query editors not working inside the sandbox (#83152) 2024-02-21 13:31:16 +01:00
Giuseppe Guerra
68fe045ec7 Plugins: Remove pluginsInstrumentationStatusSource feature toggle (#83067)
* Plugins: Remove pluginsInstrumentationStatusSource feature toggle

* update tests

* Inline pluginRequestDurationWithLabels, pluginRequestCounterWithLabels, pluginRequestDurationSecondsWithLabels
2024-02-21 12:57:40 +01:00
Dan83
b6b5935992 Chore: Remove Form usage in NewFolderForm components (#83028)
* Chore: Remove Form usage from NewFolderForm

* Chore: Remove Form usage from NewFolderForm

* Chore: Remove Form usage from NewFolderForm

* Replace HorizontalGroup with Stack

* add Default Values and launch prettier
2024-02-21 13:56:04 +02:00
Torkel Ödegaard
bfdb4625a0 Grafana/UI: Replace Splitter with useSplitter hook and refactor PanelEdit snapping logic to useSnappingSplitter hook (#82895)
* Hook refactor

* Update

* Test

* Update

* Both directions work

* fixes

* refactoring

* Update

* Update

* update

* Remove consolo.log

* Update

* Fix
2024-02-21 12:34:19 +01:00
Laura Fernández
6b31b1fc03 TimeRangeList: absolute time range list not scrollable (#82887) 2024-02-21 12:28:57 +01:00
brendamuir
d091e4c264 Alerting docs: adds simplified alert routing (#82158)
* Alerting docs: adds simplified alert routing

* adds to preview section

* adds numbering

* adds indent

* deletes fullstop

* ran prettier

* adds feature toggle notes

* fixes spelling error
2024-02-21 12:21:44 +01:00
Gábor Farkas
a62dccb0c0 plugins: add more configuration parameters to the plugin-config (#83060)
* envvars: add more configs

* made row-limit optional

* more consistent naming
2024-02-21 12:32:10 +02:00
Jack Westbrook
778d80f922 Chore: Remove React from o11y dependencies and align zipkin and tempo dependencies (#83143)
chore(zipkin): remove react from o11y dependencies, tidy tempo and zipkin dependencies
2024-02-21 11:02:16 +01:00
Wilbert Guo
1352072338 Cloudwatch: Fix filter button issue in Variable Editor (#83082) 2024-02-21 10:55:06 +01:00
brendamuir
4720c99bd5 Alerting docs: Fix migrating alert links (#83141)
* Alerting docs: fixes migrating links

* Fixes underscores and stars

* Corrects numbering

* ran prettier

* Fix links

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

* Update docs/sources/alerting/set-up/migrating-alerts/_index.md

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-21 10:41:12 +01:00
Alexander Zobnin
e7a1ecca28 Annotations: Improve query performance when using dashboard filter (#83112)
* Annotations: Improve query performance when using dashboard filter

* Add dashboard id filter
2024-02-21 10:30:26 +01:00
Eric Leijonmarck
620cc6dced Team LBAC: Add epilogue to permissions (#82523)
* add epilogue to permissions

* gs
linting fix

* update docs

* Revert "update docs"

This reverts commit 0902ce2d8a.
2024-02-21 09:26:09 +00:00
Andrej Ocenas
d48bf34227 DataFrame: Improve typing of arrayToDataFrame helper and fix null/undefined handling (#83104) 2024-02-21 10:14:29 +01:00
brendamuir
4b2ef36165 Alerting docs: fixes oncall broken links (#83139) 2024-02-21 09:39:13 +01:00
Torkel Ödegaard
64e0a4282e DataQuery: Track panel plugin id not type (#83091) 2024-02-21 09:38:42 +01:00
Charandas
0bd009fb53 K8s: fix nil deref from dummy factory for API Server options (#83132) 2024-02-20 23:00:02 +02:00
Sonia Aguilar
16dee3cf1c Alerting: Protect possible undefined (#83128)
Protect possible undefined
2024-02-20 21:17:40 +01:00
Sven Grossmann
f2c0309d71 Logs Panel: Add option extra UI functionality for log context (#83123)
* use ref rather than state

* add `getLogRowContextUi` to panel
2024-02-20 21:07:47 +01:00
Carl Bergquist
53c19e4988 move codespell check into /docs (#83109)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-02-20 20:40:31 +01:00
grafana-delivery-bot[bot]
8f3d49687e Release: Bump version to 11.0.0-pre (#83119)
"Release: Updated versions in package to 11.0.0-pre"

Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-02-20 19:02:36 +00:00
Jan Garaj
8162ec2960 CloudWatch: Update AWS/ES metrics (#83037)
CloudWatch: update AWS/ES metrics
2024-02-20 13:46:29 -05:00
Jan Garaj
ef23148b36 CloudWatch: Update AWS/EC2 metrics (#83039)
CloudWatch: update AWS/EC2 metrics
2024-02-20 12:13:50 -05:00
Jack Westbrook
3ca01f5486 Yarn: Fix workspace refs (#83117)
* Wip

* chore(yarn): refresh lock file
2024-02-20 18:03:07 +01:00
Kyle Brandt
4859cdeae5 K8S/Scopes: App-server for storing scope objects (#81996)
Build out app-server stub

---------

Signed-off-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-02-20 18:28:27 +02:00
Fabrizio
d1c5e491ac Zipkin: Decouple Zipkin plugin (#81354) 2024-02-20 18:24:40 +02:00
Josh Hunt
db1388ca22 Chore: Temp remove betterer json from precommit (#83113) 2024-02-20 18:16:31 +02:00
Andres Martinez Gotor
7f9ebe5464 Chore: Make the secret table name configurable (#83106) 2024-02-20 16:56:43 +01:00
Jan Garaj
3829da0616 CloudWatch: Update AWS/Lambda metrics (#83038) 2024-02-20 16:39:03 +01:00
Piotr Jamróz
30178d468f Skip a flaky test (#82522)
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2024-02-20 15:08:29 +01:00
Jack Baldry
8c963ad90c Use updated default branch for links to Grafana repository (#83026) 2024-02-20 14:05:55 +00:00
Laura Fernández
c237a39020 ReturnToPrevious: Check the state of the RTP feature toggle in the hook (#83087) 2024-02-20 15:05:12 +01:00
Ida Štambuk
5431c51490 Cloudwatch: Add linting to restrict imports from core (#82538)
---------

Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
2024-02-20 14:52:11 +01:00
Isabel
f18b9ddac6 Docs: add information about filtering for annotations (#82957)
* Added information about filtering for annotations

* Update generate-transformations.ts
2024-02-20 08:46:38 -05:00
Kristina
9d6da82e36 Query History: Count using SQL, not post query (#82208)
* Count in SQL, not externally

* Fix linter
2024-02-20 07:32:40 -06:00
Timur Olzhabayev
1c8a2f136d Docs: making docs clearer on subpath (#82239)
* making docs clearer on subpath

* Update docs/sources/tutorials/run-grafana-behind-a-proxy/index.md

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>

* Update docs/sources/tutorials/run-grafana-behind-a-proxy/index.md

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>

* Update docs/sources/tutorials/run-grafana-behind-a-proxy/index.md

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>

* Update docs/sources/tutorials/run-grafana-behind-a-proxy/index.md

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>

---------

Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
2024-02-20 15:18:32 +02:00
Lev Zakharov
8138ca34a4 Parca: Apply template variables for labelSelector in query (#82910)
* Parca: Apply template variables for labelSelector in query

* Remove unused imports

---------

Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
2024-02-20 12:58:47 +00:00
Carl Bergquist
5e65820bee Cleanup root folder by moving a few files intro /contribute (#83103)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-02-20 14:54:46 +02:00
Pepe Cano
5b918f555c Alerting docs: correct notification-policies link (#83099) 2024-02-20 13:50:31 +01:00
Yulia Shanyrova
8586893731 Plugins: Fix enable button to appear after installing APP plugin (#82511)
* Fix enable button to appear after installing APP plugin

* add plugin isFullyInstalled check for grafana cloud
2024-02-20 12:48:51 +01:00
Fabrizio
f683ba8bfc Run downstream patch check only for grafana/grafana (#83050) 2024-02-20 12:21:38 +01:00
Pepe Cano
b6098f2dde Alerting docs: clean up Cloud links (#83073)
* Use fixed `/docs/grafana-cloud/alerting-and-irm` URLs for cloud references

* Fix `docs/grafana-cloud/` data sources links

* Fix `docs/grafana-cloud/` Panel & Visualization links

* Fix `/docs/grafana-cloud/` link to Dashboard page

* Set root directory `docs/reference` for non-cloud pages

* Fix `admonition` cannot use a  `docs/reference` relative link

* Update `doc-validator`

https://github.com/grafana/technical-documentation/releases/tag/doc-validator%2Fv4.1.0

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

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-02-20 11:49:39 +01:00
Jan Garaj
914f033497 CloudWatch: Update AWS/AutoScaling metrics (#83036) 2024-02-20 11:22:28 +01:00
Will Browne
941881266a Plugins: Remove unused metadata.md file (#83086)
* remove unused metadata

* remove CODEOWNERS ref
2024-02-20 12:11:50 +02:00
Ivana Huckova
dc718a7d9d Loki: Pass time range variable in variable editor (#82900)
* Loki: Pass time range variable in variable editor

* Remove not needed type

* Update

* Add tests, not re-run if type does not change

* Add range as dependency
2024-02-20 10:07:42 +01:00
Torkel Ödegaard
6db2d1a411 DashboardScene: Simplify controls a bit (#82908)
* DashboardScene: Simplify controls a bit

* update tests

* more test updates

* Update

* improvements

* Fix

* Fix merge

* Update

* update
2024-02-20 08:43:02 +01:00
Gábor Farkas
57499845c2 envvars: improve tests (#83071)
* envvars: improve tests

* removed commented-out code

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>

---------

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2024-02-20 09:41:11 +02:00
Matthew Jacobson
87ab98ea95 Alerting: Fix panic in provisioning filter contacts by unknown name (#83070) 2024-02-19 17:30:13 +02:00
Oscar Kilhed
b56f6ed0dc Dashboard scenes: Fixes inspect library panels (#82879)
* working except for links

* Make sure the links are present on the library panels

* add tests, add empty links before panel is loaded, refactor legacy representation

* Update

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-02-19 15:25:45 +01:00
ismail simsek
1f98028962 Chore: Bump grafana-plugin-sdk-go version to v0.212.0 (#83064)
bump version v0.212.0
2024-02-19 15:12:46 +01:00
renovate[bot]
2768c92519 Update dependency @react-types/overlays to v3.8.5 2024-02-19 13:25:37 +00:00
renovate[bot]
d90774e8c2 Update dependency @react-types/menu to v3.9.7 2024-02-19 12:51:25 +00:00
Tobias Skarhed
6ca26dd043 Grafana UI: Add code variant to Text component (#82318)
* Text: Add code variant

* Add TextLinkVariants

* Add don't
2024-02-19 14:49:34 +02:00
renovate[bot]
b4a77937fd Update dependency @react-types/button to v3.9.2 2024-02-19 12:12:10 +00:00
Jack Baldry
72c8ae2d8a Remove duplicate paragraph and wrap in note (#82575) 2024-02-19 11:21:51 +00:00
github-actions[bot]
d541416615 Update make docs procedure (#83045)
Co-authored-by: grafanabot <bot@grafana.com>
2024-02-19 13:16:52 +02:00
Jan Garaj
bfd5475e1e CloudWatch: Update AWS/Kafka metrics (#83035) 2024-02-19 12:04:23 +01:00
renovate[bot]
2175509929 Update React Aria 2024-02-19 11:04:09 +00:00
Hugo Kiyodi Oshiro
4910a901de Plugins: Disable uninstall while cloud uninstall is not completed (#81907) 2024-02-19 12:00:47 +01:00
Gábor Farkas
7f77be8f85 postgres: tls: only use non-empty certificates (#82182) 2024-02-19 11:58:42 +01:00
Hugo Kiyodi Oshiro
dcc977005c Plugins: Disable update button when cloud install is not completed (#81716) 2024-02-19 09:38:06 +01:00
Serge Zaitsev
1aff748e8f Use split scopes instead of substr in search v1 (#82092)
* use split scopes instead of substr in search v1

* tests, of course

* yet, some test helpers dont use split scopes

* another test helper to fix

* add permission.identifier to group by

* check if attribute is uid

* fix tests

* use SplitScope()

* fix more tests
2024-02-18 22:26:08 +01:00
Leon Sorokin
94a274635b VizTooltips: Fix series labels after zooming (#82985) 2024-02-17 00:38:13 -06:00
renovate[bot]
a02519895e Update dependency msw to v2.2.1 2024-02-17 06:37:32 +00:00
Leon Sorokin
edb799bf82 VizTooltips: Fix drag-zoom causing annotation init in other shared-cursor panels (#82986) 2024-02-17 00:35:41 -06:00
Ryan McKinley
f23f50f58d Expressions: Add model struct for the query types (not map[string]any) (#82745) 2024-02-17 02:59:11 +02:00
Matthew Jacobson
46a77c0074 Alerting: Validate upgraded receivers early to display in preview (#82956)
Previously receivers were only validated before saving the alertmanager
configuration. This is a suboptimal experience for those upgrading with preview
as the failed channel upgrade will return an API error instead of being
summarized in the table.
2024-02-16 15:17:07 -05:00
2676 changed files with 73202 additions and 104667 deletions

View File

@@ -9,8 +9,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"packages/grafana-data/src/dataframe/ArrayDataFrame.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"packages/grafana-data/src/dataframe/CircularDataFrame.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
@@ -34,14 +33,10 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"],
[0, 0, 0, "Do not use any type assertions.", "8"],
[0, 0, 0, "Unexpected any. Specify a different type.", "9"],
[0, 0, 0, "Do not use any type assertions.", "10"],
[0, 0, 0, "Unexpected any. Specify a different type.", "11"],
[0, 0, 0, "Do not use any type assertions.", "12"],
[0, 0, 0, "Unexpected any. Specify a different type.", "13"],
[0, 0, 0, "Unexpected any. Specify a different type.", "14"],
[0, 0, 0, "Do not use any type assertions.", "15"]
[0, 0, 0, "Do not use any type assertions.", "11"]
],
"packages/grafana-data/src/dataframe/StreamingDataFrame.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
@@ -370,11 +365,6 @@ exports[`better eslint`] = {
"packages/grafana-data/src/types/variables.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"packages/grafana-data/src/types/vector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"packages/grafana-data/src/utils/OptionsUIBuilders.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
@@ -449,25 +439,9 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"]
],
"packages/grafana-data/src/vector/AppendedVectors.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"]
],
"packages/grafana-data/src/vector/ArrayVector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"packages/grafana-data/src/vector/CircularVector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"packages/grafana-data/src/vector/ConstantVector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"packages/grafana-data/src/vector/FormattedVector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"packages/grafana-data/src/vector/FunctionalVector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
@@ -477,11 +451,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"],
[0, 0, 0, "Unexpected any. Specify a different type.", "9"]
],
"packages/grafana-data/src/vector/SortedVector.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
[0, 0, 0, "Unexpected any. Specify a different type.", "8"]
],
"packages/grafana-data/test/__mocks__/pluginMocks.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
@@ -795,6 +765,9 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "11"],
[0, 0, 0, "Unexpected any. Specify a different type.", "12"]
],
"packages/grafana-runtime/src/services/pluginExtensions/getPluginExtensions.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"packages/grafana-runtime/src/utils/DataSourceWithBackend.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
@@ -1163,9 +1136,6 @@ exports[`better eslint`] = {
"packages/grafana-ui/src/utils/useAsyncDependency.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"plugins-bundled/internal/input-datasource/src/InputDatasource.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/core/TableModel.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
@@ -1189,11 +1159,9 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Do not use any type assertions.", "5"],
[0, 0, 0, "Do not use any type assertions.", "6"],
[0, 0, 0, "Do not use any type assertions.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"],
[0, 0, 0, "Do not use any type assertions.", "9"],
[0, 0, 0, "Do not use any type assertions.", "10"],
[0, 0, 0, "Do not use any type assertions.", "11"]
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Do not use any type assertions.", "8"],
[0, 0, 0, "Do not use any type assertions.", "9"]
],
"public/app/core/components/GraphNG/hooks.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
@@ -1455,78 +1423,12 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"]
],
"public/app/features/alerting/AlertTab.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
],
"public/app/features/alerting/AlertTabCtrl.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"],
[0, 0, 0, "Unexpected any. Specify a different type.", "6"],
[0, 0, 0, "Unexpected any. Specify a different type.", "7"],
[0, 0, 0, "Unexpected any. Specify a different type.", "8"],
[0, 0, 0, "Unexpected any. Specify a different type.", "9"],
[0, 0, 0, "Unexpected any. Specify a different type.", "10"],
[0, 0, 0, "Unexpected any. Specify a different type.", "11"],
[0, 0, 0, "Unexpected any. Specify a different type.", "12"],
[0, 0, 0, "Unexpected any. Specify a different type.", "13"],
[0, 0, 0, "Unexpected any. Specify a different type.", "14"],
[0, 0, 0, "Unexpected any. Specify a different type.", "15"],
[0, 0, 0, "Unexpected any. Specify a different type.", "16"],
[0, 0, 0, "Unexpected any. Specify a different type.", "17"],
[0, 0, 0, "Unexpected any. Specify a different type.", "18"],
[0, 0, 0, "Unexpected any. Specify a different type.", "19"],
[0, 0, 0, "Unexpected any. Specify a different type.", "20"],
[0, 0, 0, "Unexpected any. Specify a different type.", "21"],
[0, 0, 0, "Unexpected any. Specify a different type.", "22"],
[0, 0, 0, "Do not use any type assertions.", "23"],
[0, 0, 0, "Unexpected any. Specify a different type.", "24"],
[0, 0, 0, "Unexpected any. Specify a different type.", "25"],
[0, 0, 0, "Unexpected any. Specify a different type.", "26"],
[0, 0, 0, "Unexpected any. Specify a different type.", "27"],
[0, 0, 0, "Unexpected any. Specify a different type.", "28"],
[0, 0, 0, "Unexpected any. Specify a different type.", "29"],
[0, 0, 0, "Unexpected any. Specify a different type.", "30"],
[0, 0, 0, "Unexpected any. Specify a different type.", "31"],
[0, 0, 0, "Unexpected any. Specify a different type.", "32"],
[0, 0, 0, "Unexpected any. Specify a different type.", "33"]
],
"public/app/features/alerting/EditNotificationChannelPage.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/features/alerting/StateHistory.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"]
],
"public/app/features/alerting/TestRuleResult.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"public/app/features/alerting/components/NotificationChannelForm.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"]
],
"public/app/features/alerting/components/NotificationChannelOptions.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/features/alerting/components/OptionElement.tsx:5381": [
"public/app/features/alerting/routes.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/features/alerting/state/ThresholdMapper.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/features/alerting/state/actions.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"public/app/features/alerting/state/alertDef.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
@@ -1578,11 +1480,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "11"],
[0, 0, 0, "Styles should be written using objects.", "12"],
[0, 0, 0, "Styles should be written using objects.", "13"],
[0, 0, 0, "Styles should be written using objects.", "14"],
[0, 0, 0, "Styles should be written using objects.", "15"],
[0, 0, 0, "Styles should be written using objects.", "16"],
[0, 0, 0, "Styles should be written using objects.", "17"],
[0, 0, 0, "Styles should be written using objects.", "18"]
[0, 0, 0, "Styles should be written using objects.", "14"]
],
"public/app/features/alerting/unified/NotificationPolicies.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
@@ -1663,13 +1561,6 @@ exports[`better eslint`] = {
"public/app/features/alerting/unified/components/GrafanaAlertmanagerDeliveryWarning.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/features/alerting/unified/components/HoverCard.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"]
],
"public/app/features/alerting/unified/components/Label.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
@@ -2154,32 +2045,10 @@ exports[`better eslint`] = {
"public/app/features/alerting/unified/components/rule-editor/rule-types/RuleTypePicker.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/features/alerting/unified/components/rule-viewer/RuleViewer.v1.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"],
[0, 0, 0, "Styles should be written using objects.", "5"],
[0, 0, 0, "Styles should be written using objects.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"],
[0, 0, 0, "Styles should be written using objects.", "8"],
[0, 0, 0, "Styles should be written using objects.", "9"],
[0, 0, 0, "Styles should be written using objects.", "10"],
[0, 0, 0, "Styles should be written using objects.", "11"],
[0, 0, 0, "Styles should be written using objects.", "12"]
],
"public/app/features/alerting/unified/components/rule-viewer/RuleViewerLayout.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"]
],
"public/app/features/alerting/unified/components/rule-viewer/RuleViewerVisualization.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"]
],
"public/app/features/alerting/unified/components/rules/ActionButton.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
@@ -2356,23 +2225,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"]
],
"public/app/features/alerting/unified/home/GettingStarted.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"],
[0, 0, 0, "Styles should be written using objects.", "5"],
[0, 0, 0, "Styles should be written using objects.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"],
[0, 0, 0, "Styles should be written using objects.", "8"],
[0, 0, 0, "Styles should be written using objects.", "9"],
[0, 0, 0, "Styles should be written using objects.", "10"],
[0, 0, 0, "Styles should be written using objects.", "11"],
[0, 0, 0, "Styles should be written using objects.", "12"],
[0, 0, 0, "Styles should be written using objects.", "13"],
[0, 0, 0, "Styles should be written using objects.", "14"]
],
"public/app/features/alerting/unified/hooks/useAlertmanagerConfig.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
@@ -2451,9 +2303,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"]
],
"public/app/features/annotations/components/StandardAnnotationQueryEditor.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/features/annotations/events_processing.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
@@ -2561,10 +2410,21 @@ exports[`better eslint`] = {
"public/app/features/dashboard-scene/panel-edit/PanelDataPane/PanelDataPane.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/features/dashboard-scene/saving/DashboardPrompt.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/features/dashboard-scene/saving/DetectChangesWorker.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
],
"public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx:5381": [
[0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "0"],
[0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"]
],
"public/app/features/dashboard-scene/saving/getDashboardChanges.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
],
"public/app/features/dashboard-scene/saving/getSaveDashboardChange.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
@@ -3037,6 +2897,9 @@ exports[`better eslint`] = {
"public/app/features/dashboard/state/actions.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/features/dashboard/state/getPanelPluginToMigrateTo.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/features/dashboard/state/initDashboard.test.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
@@ -3067,9 +2930,6 @@ exports[`better eslint`] = {
"public/app/features/datasources/components/DataSourceTypeCardList.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/features/datasources/components/EditDataSource.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/features/datasources/components/picker/DataSourceCard.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
@@ -3340,10 +3200,6 @@ exports[`better eslint`] = {
"public/app/features/explore/TraceView/components/TracePageHeader/Actions/ActionButton.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/features/explore/TraceView/components/TracePageHeader/Actions/TracePageActions.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"]
],
"public/app/features/explore/TraceView/components/TracePageHeader/SearchBar/NextPrevResult.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
@@ -3403,11 +3259,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "5"],
[0, 0, 0, "Styles should be written using objects.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"],
[0, 0, 0, "Styles should be written using objects.", "8"],
[0, 0, 0, "Styles should be written using objects.", "9"],
[0, 0, 0, "Styles should be written using objects.", "10"],
[0, 0, 0, "Styles should be written using objects.", "11"],
[0, 0, 0, "Styles should be written using objects.", "12"]
[0, 0, 0, "Styles should be written using objects.", "8"]
],
"public/app/features/explore/TraceView/components/TraceTimelineViewer/SpanBarRow.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
@@ -3705,17 +3557,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"]
],
"public/app/features/library-panels/components/LibraryPanelsSearch/LibraryPanelsSearch.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"],
[0, 0, 0, "Styles should be written using objects.", "5"],
[0, 0, 0, "Styles should be written using objects.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"],
[0, 0, 0, "Styles should be written using objects.", "8"]
],
"public/app/features/library-panels/components/LibraryPanelsView/actions.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
@@ -4036,9 +3877,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"]
],
"public/app/features/profile/ChangePasswordForm.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/features/query/components/QueryEditorRow.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"],
@@ -4152,12 +3990,6 @@ exports[`better eslint`] = {
"public/app/features/search/utils.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/features/serviceaccounts/components/CreateTokenModal.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"]
],
"public/app/features/serviceaccounts/components/ServiceAccountProfile.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
@@ -4236,7 +4068,10 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/features/templating/template_srv.mock.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"]
],
"public/app/features/templating/template_srv.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
@@ -4590,10 +4425,6 @@ exports[`better eslint`] = {
"public/app/plugins/datasource/azuremonitor/azure_monitor/azure_monitor_datasource.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/QueryField.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
],
"public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
@@ -4643,9 +4474,6 @@ exports[`better eslint`] = {
"public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryEditor.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
"public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/DynamicLabelsField.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
@@ -4874,9 +4702,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
],
"public/app/plugins/datasource/grafana-testdata-datasource/nodeGraphUtils.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/datasource/grafana-testdata-datasource/runStreams.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
@@ -4884,14 +4709,11 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/grafana/components/QueryEditor.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Do not use any type assertions.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Do not use any type assertions.", "5"],
[0, 0, 0, "Do not use any type assertions.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"]
[0, 0, 0, "Styles should be written using objects.", "4"]
],
"public/app/plugins/datasource/grafana/components/TimePickerInput.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
@@ -5186,6 +5008,12 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"]
],
"public/app/plugins/datasource/jaeger/_importedDependencies/model/transform-trace-data.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/jaeger/_importedDependencies/types/trace.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/datasource/jaeger/configuration/ConfigEditor.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"]
],
@@ -5197,6 +5025,10 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
],
"public/app/plugins/datasource/jaeger/helpers/createFetchResponse.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
],
"public/app/plugins/datasource/jaeger/testResponse.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
@@ -5240,10 +5072,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "12"],
[0, 0, 0, "Styles should be written using objects.", "13"]
],
"public/app/plugins/datasource/loki/components/LokiOptionFields.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"]
],
"public/app/plugins/datasource/loki/components/monaco-query-field/MonacoQueryField.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"]
@@ -5622,38 +5450,12 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"public/app/plugins/datasource/tempo/LokiSearch.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
],
"public/app/plugins/datasource/tempo/ServiceGraphSection.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/components/AdHocFilter/AdHocFilterRenderer.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/loki/LanguageProvider.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/loki/monaco-query-field/MonacoQueryField.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/loki/monaco-query-field/monaco-completion-provider/CompletionDataProvider.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/loki/monaco-query-field/monaco-completion-provider/index.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/loki/types.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/prometheus/language_utils.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
@@ -5662,12 +5464,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/store.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/test/helpers/createFetchResponse.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"]
@@ -5676,12 +5472,11 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "0"]
],
"public/app/plugins/datasource/tempo/datasource.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Do not use any type assertions.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Do not use any type assertions.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Unexpected any. Specify a different type.", "3"],
[0, 0, 0, "Unexpected any. Specify a different type.", "4"],
[0, 0, 0, "Unexpected any. Specify a different type.", "5"]
[0, 0, 0, "Unexpected any. Specify a different type.", "4"]
],
"public/app/plugins/datasource/tempo/language_provider.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
@@ -5714,38 +5509,10 @@ exports[`better eslint`] = {
"public/app/plugins/datasource/zipkin/utils/transforms.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/panel/alertGroups/AlertGroup.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"],
[0, 0, 0, "Styles should be written using objects.", "5"],
[0, 0, 0, "Styles should be written using objects.", "6"]
],
"public/app/plugins/panel/alertlist/AlertInstances.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"]
],
"public/app/plugins/panel/alertlist/AlertList.tsx:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"],
[0, 0, 0, "Unexpected any. Specify a different type.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"],
[0, 0, 0, "Styles should be written using objects.", "5"],
[0, 0, 0, "Styles should be written using objects.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"],
[0, 0, 0, "Styles should be written using objects.", "8"],
[0, 0, 0, "Styles should be written using objects.", "9"],
[0, 0, 0, "Styles should be written using objects.", "10"],
[0, 0, 0, "Styles should be written using objects.", "11"],
[0, 0, 0, "Styles should be written using objects.", "12"]
],
"public/app/plugins/panel/alertlist/AlertListMigrationHandler.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
],
"public/app/plugins/panel/alertlist/UnifiedAlertList.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
@@ -5905,12 +5672,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "3"],
[0, 0, 0, "Styles should be written using objects.", "4"]
],
"public/app/plugins/panel/gettingstarted/components/Step.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
[0, 0, 0, "Styles should be written using objects.", "2"],
[0, 0, 0, "Styles should be written using objects.", "3"]
],
"public/app/plugins/panel/gettingstarted/components/TutorialCard.tsx:5381": [
[0, 0, 0, "Styles should be written using objects.", "0"],
[0, 0, 0, "Styles should be written using objects.", "1"],
@@ -5972,9 +5733,6 @@ exports[`better eslint`] = {
[0, 0, 0, "Styles should be written using objects.", "6"],
[0, 0, 0, "Styles should be written using objects.", "7"]
],
"public/app/plugins/panel/live/types.ts:5381": [
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
],
"public/app/plugins/panel/logs/LogsPanel.tsx:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"]
],
@@ -6519,9 +6277,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"plugins-bundled/internal/input-datasource/src/InputConfigEditor.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/angular/components/code_editor/code_editor.ts:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
@@ -6629,85 +6384,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/features/alerting/AlertRuleList.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/features/alerting/partials/alert_tab.html:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/features/annotations/partials/event_editor.html:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
@@ -6852,9 +6528,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/cloud-monitoring/components/AnnotationsHelp.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
@@ -6862,7 +6535,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryEditor.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryField.tsx:5381": [
@@ -6870,12 +6542,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LegacyLogGroupNamesSelection.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
@@ -6944,14 +6610,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/loki/components/AnnotationsQueryEditor.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/loki/components/LokiOptionFields.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/loki/components/LokiQueryField.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
@@ -7066,11 +6724,6 @@ exports[`no gf-form usage`] = {
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/tempo/_importedDependencies/datasources/loki/LokiQueryField.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]
],
"public/app/plugins/datasource/zipkin/QueryField.tsx:5381": [
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"],
[0, 0, 0, "gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.", "5381"]

View File

@@ -1028,12 +1028,6 @@
"count": 5
}
],
"/packages/grafana-ui/src/components/Splitter/Splitter.tsx": [
{
"message": "Do not use any type assertions.",
"count": 1
}
],
"/packages/grafana-ui/src/components/StatsPicker/StatsPicker.story.tsx": [
{
"message": "Unexpected any. Specify a different type.",
@@ -1564,12 +1558,6 @@
"count": 1
}
],
"/public/app/core/specs/time_series.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 1
}
],
"/public/app/core/time_series2.ts": [
{
"message": "Unexpected any. Specify a different type.",
@@ -1790,12 +1778,6 @@
"count": 1
}
],
"/public/app/features/alerting/unified/AlertsFolderView.test.tsx": [
{
"message": "Unexpected any. Specify a different type.",
"count": 1
}
],
"/public/app/features/alerting/unified/AlertsFolderView.tsx": [
{
"message": "Styles should be written using objects.",
@@ -2930,12 +2912,6 @@
"count": 1
}
],
"/public/app/features/dashboard-scene/panel-edit/VizPanelManager.test.tsx": [
{
"message": "Unexpected any. Specify a different type.",
"count": 1
}
],
"/public/app/features/dashboard-scene/saving/SaveDashboardForm.tsx": [
{
"message": "Use data-testid for E2E selectors instead of aria-label",
@@ -2954,12 +2930,6 @@
"count": 1
}
],
"/public/app/features/dashboard-scene/scene/DashboardScene.test.tsx": [
{
"message": "Unexpected any. Specify a different type.",
"count": 1
}
],
"/public/app/features/dashboard-scene/scene/PanelMenuBehavior.tsx": [
{
"message": "Unexpected any. Specify a different type.",
@@ -2970,18 +2940,6 @@
"count": 1
}
],
"/public/app/features/dashboard-scene/scene/setDashboardPanelContext.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 1
}
],
"/public/app/features/dashboard-scene/serialization/angularMigration.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 2
}
],
"/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
@@ -3055,7 +3013,7 @@
"/public/app/features/dashboard/components/DashExportModal/DashboardExporter.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 21
"count": 6
}
],
"/public/app/features/dashboard/components/DashExportModal/DashboardExporter.ts": [
@@ -3441,7 +3399,7 @@
"/public/app/features/dashboard/state/DashboardMigrator.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 19
"count": 12
}
],
"/public/app/features/dashboard/state/DashboardMigrator.ts": [
@@ -3457,7 +3415,7 @@
"/public/app/features/dashboard/state/DashboardModel.repeat.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 7
"count": 4
}
],
"/public/app/features/dashboard/state/DashboardModel.test.ts": [
@@ -3507,7 +3465,7 @@
"/public/app/features/dashboard/state/initDashboard.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 2
"count": 1
}
],
"/public/app/features/dashboard/utils/getPanelMenu.test.ts": [
@@ -3880,12 +3838,6 @@
"count": 1
}
],
"/public/app/features/explore/TraceView/components/TracePageHeader/Actions/TracePageActions.tsx": [
{
"message": "Styles should be written using objects.",
"count": 2
}
],
"/public/app/features/explore/TraceView/components/TracePageHeader/SearchBar/NextPrevResult.tsx": [
{
"message": "Styles should be written using objects.",
@@ -3937,7 +3889,7 @@
"/public/app/features/explore/TraceView/components/TracePageHeader/TracePageHeader.tsx": [
{
"message": "Styles should be written using objects.",
"count": 13
"count": 9
}
],
"/public/app/features/explore/TraceView/components/TraceTimelineViewer/SpanBarRow.tsx": [
@@ -4643,7 +4595,7 @@
"/public/app/features/plugins/tests/datasource_srv.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 4
"count": 3
}
],
"/public/app/features/plugins/utils.ts": [
@@ -4743,7 +4695,7 @@
"/public/app/features/query/state/updateQueries.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 12
"count": 11
}
],
"/public/app/features/search/page/components/ActionRow.tsx": [
@@ -5103,7 +5055,7 @@
"/public/app/features/transformers/prepareTimeSeries/prepareTimeSeries.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 2
"count": 1
}
],
"/public/app/features/transformers/prepareTimeSeries/prepareTimeSeries.ts": [
@@ -5266,12 +5218,6 @@
"count": 1
}
],
"/public/app/features/variables/query/QueryVariableEditor.test.tsx": [
{
"message": "Unexpected any. Specify a different type.",
"count": 1
}
],
"/public/app/features/variables/query/QueryVariableEditor.tsx": [
{
"message": "Unexpected any. Specify a different type.",
@@ -5309,7 +5255,7 @@
"/public/app/features/variables/query/queryRunners.test.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 7
"count": 1
}
],
"/public/app/features/variables/query/queryRunners.ts": [
@@ -7104,46 +7050,6 @@
"count": 2
}
],
"/public/app/plugins/panel/table-old/column_options.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 22
}
],
"/public/app/plugins/panel/table-old/editor.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 9
}
],
"/public/app/plugins/panel/table-old/module.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 12
}
],
"/public/app/plugins/panel/table-old/renderer.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 12
},
{
"message": "Do not use any type assertions.",
"count": 1
}
],
"/public/app/plugins/panel/table-old/transformers.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 9
}
],
"/public/app/plugins/panel/table-old/types.ts": [
{
"message": "Unexpected any. Specify a different type.",
"count": 13
}
],
"/public/app/plugins/panel/table/TablePanel.tsx": [
{
"message": "Styles should be written using objects.",

View File

@@ -1,13 +1,8 @@
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.8. DO NOT EDIT.
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.9. DO NOT EDIT.
# All tools are designed to be build inside $GOBIN.
BINGO_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
GOPATH ?= $(shell go env GOPATH)
ifeq ($(OS),Windows_NT)
PATHSEP := $(if $(COMSPEC),;,:)
GOBIN ?= $(firstword $(subst $(PATHSEP), ,$(subst \,/,${GOPATH})))/bin
else
GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
endif
GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
GO ?= $(shell which go)
# Below generated variables ensure that every time a tool under each variable is invoked, the correct version
@@ -64,9 +59,9 @@ $(SWAGGER): $(BINGO_DIR)/swagger.mod
@echo "(re)installing $(GOBIN)/swagger-v0.30.2"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=swagger.mod -o=$(GOBIN)/swagger-v0.30.2 "github.com/go-swagger/go-swagger/cmd/swagger"
WIRE := $(GOBIN)/wire-v0.5.0
WIRE := $(GOBIN)/wire-v0.6.0
$(WIRE): $(BINGO_DIR)/wire.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/wire-v0.5.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=wire.mod -o=$(GOBIN)/wire-v0.5.0 "github.com/google/wire/cmd/wire"
@echo "(re)installing $(GOBIN)/wire-v0.6.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=wire.mod -o=$(GOBIN)/wire-v0.6.0 "github.com/google/wire/cmd/wire"

View File

@@ -1,4 +1,4 @@
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.8. DO NOT EDIT.
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.9. DO NOT EDIT.
# All tools are designed to be build inside $GOBIN.
# Those variables will work only until 'bingo get' was invoked, or if tools were installed via Makefile's Variables.mk.
GOBIN=${GOBIN:=$(go env GOBIN)}
@@ -22,5 +22,5 @@ LEFTHOOK="${GOBIN}/lefthook-v1.4.8"
SWAGGER="${GOBIN}/swagger-v0.30.2"
WIRE="${GOBIN}/wire-v0.5.0"
WIRE="${GOBIN}/wire-v0.6.0"

View File

@@ -1,6 +1,5 @@
[run]
init_cmds = [
["GO_BUILD_DEV=1", "make", "gen-go"],
["GO_BUILD_DEV=1", "make", "build-go"],
["make", "gen-jsonnet"],
["./bin/grafana", "server", "-packaging=dev", "cfg:app_mode=development"]
@@ -17,7 +16,6 @@ watch_exts = [".go", ".ini", ".toml", ".template.html"]
ignore_files = [".*_gen.go"]
build_delay = 1500
cmds = [
["GO_BUILD_DEV=1", "make", "gen-go"],
["GO_BUILD_DEV=1", "make", "build-go"],
["make", "gen-jsonnet"],
["./bin/grafana", "server", "-packaging=dev", "cfg:app_mode=development"]

View File

@@ -105,7 +105,7 @@
- Notice to makers/users of custom data sources, there is a minor breaking change in 2.2 that
require an update to custom data sources for them to work in 2.2. [Read this doc](https://github.com/grafana/grafana/tree/master/docs/sources/datasources/plugin_api.md) for more on the
data source api change.
- Data source api changes, [PLUGIN_CHANGES.md](https://github.com/grafana/grafana/blob/master/public/app/plugins/PLUGIN_CHANGES.md)
- Data source api changes, [PLUGIN_CHANGES.md](https://github.com/grafana/grafana/blob/main/public/app/plugins/PLUGIN_CHANGES.md)
- The duplicate query function used in data source editors is changed, and moveMetricQuery function was renamed
**Tech (Note for devs)**

View File

@@ -198,7 +198,7 @@ slack channel (link to slack channel in readme).
### Breaking changes
- **Plugin API**: Both data source and panel plugin api (and plugin.json schema) have been updated, requiring an update to plugins. See [plugin api](https://github.com/grafana/grafana/blob/master/public/app/plugins/plugin_api.md) for more info.
- **Plugin API**: Both data source and panel plugin api (and plugin.json schema) have been updated, requiring an update to plugins. See [plugin api](https://github.com/grafana/grafana/blob/main/public/app/plugins/plugin_api.md) for more info.
- **InfluxDB 0.8.x** The data source for the old version of influxdb (0.8.x) is no longer included in default builds, but can easily be installed via improved plugin system, closes [#3523](https://github.com/grafana/grafana/issues/3523)
- **KairosDB** The data source is no longer included in default builds, but can easily be installed via improved plugin system, closes [#3524](https://github.com/grafana/grafana/issues/3524)
- **Templating**: Templating value formats (glob/regex/pipe etc) are now handled automatically and not specified by the user, this makes variable values possible to reuse in many contexts. It can in some edge cases break existing dashboards that have template variables that do not reload on dashboard load. To fix any issue just go into template variable options and update the variable (so it's values are reloaded.).

View File

@@ -100,7 +100,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
## Tech
- **Go**: Grafana is now built using golang 1.9
- **Webpack**: Changed from systemjs to webpack (see readme or building from source guide for new build instructions). Systemjs is still used to load plugins but now plugins can only import a limited set of dependencies. See [PLUGIN_DEV.md](https://github.com/grafana/grafana/blob/master/PLUGIN_DEV.md) for more details on how this can effect some plugins.
- **Webpack**: Changed from systemjs to webpack (see readme or building from source guide for new build instructions). Systemjs is still used to load plugins but now plugins can only import a limited set of dependencies. See [PLUGIN_DEV.md](https://github.com/grafana/grafana/blob/main/PLUGIN_DEV.md) for more details on how this can effect some plugins.
# 4.5.2 (2017-09-22)

View File

@@ -1291,4 +1291,4 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
- **Text Panel**: The text panel does no longer by default allow unsanitized HTML. [#4117](https://github.com/grafana/grafana/issues/4117). This means that if you have text panels with scripts tags they will no longer work as before. To enable unsafe javascript execution in text panels enable the settings `disable_sanitize_html` under the section `[panels]` in your Grafana ini file, or set env variable `GF_PANELS_DISABLE_SANITIZE_HTML=true`.
- **Dashboard**: Panel property `minSpan` replaced by `maxPerRow`. Dashboard migration will automatically migrate all dashboard panels using the `minSpan` property to the new `maxPerRow` property [#12991](https://github.com/grafana/grafana/pull/12991)
For older release notes, refer to the [CHANGELOG_ARCHIVE.md](https://github.com/grafana/grafana/blob/master/CHANGELOG_ARCHIVE.md)
For older release notes, refer to the [CHANGELOG_ARCHIVE.md](https://github.com/grafana/grafana/blob/main/CHANGELOG_ARCHIVE.md)

View File

@@ -544,7 +544,7 @@ Issue [#29407](https://github.com/grafana/grafana/issues/29407)
We have upgraded AngularJS from version 1.6.6 to 1.8.2. Due to this upgrade some old angular plugins might stop working and will require a small update. This is due to the deprecation and removal of pre-assigned bindings. So if your custom angular controllers expect component bindings in the controller constructor you need to move this code to an `$onInit` function. For more details on how to migrate AngularJS code open the [migration guide](https://docs.angularjs.org/guide/migration) and search for **pre-assigning bindings**.
In order not to break all angular panel plugins and data sources we have some custom [angular inject behavior](https://github.com/grafana/grafana/blob/master/public/app/core/injectorMonkeyPatch.ts) that makes sure that bindings for these controllers are still set before constructor is called so many old angular panels and data source plugins will still work. Issue [#28736](https://github.com/grafana/grafana/issues/28736)
In order not to break all angular panel plugins and data sources we have some custom [angular inject behavior](https://github.com/grafana/grafana/blob/main/public/app/core/injectorMonkeyPatch.ts) that makes sure that bindings for these controllers are still set before constructor is called so many old angular panels and data source plugins will still work. Issue [#28736](https://github.com/grafana/grafana/issues/28736)
### Deprecations
@@ -1288,8 +1288,8 @@ This option to group query variable values into groups by tags has been an exper
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
- **Backend plugins**: Grafana now requires backend plugins to be signed, otherwise Grafana will not load/start them. This is an additional security measure to make sure backend plugin binaries and files haven't been tampered with. Refer to [Upgrade Grafana](https://grafana.com/docs/grafana/latest/installation/upgrading/#upgrading-to-v7-0) for more information.
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
**Deprecation warnings**
@@ -1304,7 +1304,7 @@ Not just visualizing data from anywhere, in Grafana 7 you can transform it too.
Data transformations will provide a common set of data operations that were previously duplicated as custom features in many panels or data sources but are now an integral part of the Grafana data processing pipeline and something all data sources and panels can take advantage of.
In Grafana 7.0 we have a shared data model for both time series and table data that we call [DataFrame](https://github.com/grafana/grafana/blob/master/docs/sources/plugins/developing/dataframe.md). A DataFrame is like a table with columns but we refer to columns as fields. A time series is simply a DataFrame with two fields (time & value).
In Grafana 7.0 we have a shared data model for both time series and table data that we call [DataFrame](https://github.com/grafana/grafana/blob/main/docs/sources/plugins/developing/dataframe.md). A DataFrame is like a table with columns but we refer to columns as fields. A time series is simply a DataFrame with two fields (time & value).
**Transformations shipping in 7.0**
@@ -1414,7 +1414,7 @@ We have also extended the time zone options so you can select any of the standar
### Features / Enhancements
- **Docker**: Upgrade to Alpine 3.11. [#24056](https://github.com/grafana/grafana/pull/24056), [@aknuds1](https://github.com/aknuds1)
- **Forms**: Remove Forms namespace [BREAKING]. Will cause all `Forms` imports to stop working. See migration guide in [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)[#24378](https://github.com/grafana/grafana/pull/24378), [@tskarhed](https://github.com/tskarhed)
- **Forms**: Remove Forms namespace [BREAKING]. Will cause all `Forms` imports to stop working. See migration guide in [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)[#24378](https://github.com/grafana/grafana/pull/24378), [@tskarhed](https://github.com/tskarhed)
### Bug Fixes
@@ -1429,7 +1429,7 @@ We have also extended the time zone options so you can select any of the standar
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
@@ -1484,8 +1484,8 @@ We have also extended the time zone options so you can select any of the standar
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.

File diff suppressed because it is too large Load Diff

View File

@@ -96,16 +96,22 @@
},
{
"files": [
"public/app/plugins/datasource/azuremonitor/*.{ts,tsx}",
"public/app/plugins/datasource/azuremonitor/**/*.{ts,tsx}",
"public/app/plugins/datasource/cloud-monitoring/*.{ts,tsx}",
"public/app/plugins/datasource/cloud-monitoring/**/*.{ts,tsx}",
"public/app/plugins/datasource/elasticsearch/*.{ts,tsx}",
"public/app/plugins/datasource/elasticsearch/**/*.{ts,tsx}",
"public/app/plugins/datasource/grafana-postgresql-datasource/*.{ts,tsx}",
"public/app/plugins/datasource/grafana-postgresql-datasource/**/*.{ts,tsx}",
"public/app/plugins/datasource/grafana-pyroscope-datasource/*.{ts,tsx}",
"public/app/plugins/datasource/grafana-pyroscope-datasource/**/*.{ts,tsx}",
"public/app/plugins/datasource/grafana-testdata-datasource/*.{ts,tsx}",
"public/app/plugins/datasource/grafana-testdata-datasource/**/*.{ts,tsx}",
"public/app/plugins/datasource/azuremonitor/*.{ts,tsx}",
"public/app/plugins/datasource/azuremonitor/**/*.{ts,tsx}",
"public/app/plugins/datasource/cloud-monitoring/*.{ts,tsx}",
"public/app/plugins/datasource/cloud-monitoring/**/*.{ts,tsx}",
"public/app/plugins/datasource/jaeger/*.{ts,tsx}",
"public/app/plugins/datasource/jaeger/**/*.{ts,tsx}",
"public/app/plugins/datasource/loki/*.{ts,tsx}",
"public/app/plugins/datasource/loki/**/*.{ts,tsx}",
"public/app/plugins/datasource/mysql/*.{ts,tsx}",
"public/app/plugins/datasource/mysql/**/*.{ts,tsx}",
"public/app/plugins/datasource/parca/*.{ts,tsx}",
@@ -115,7 +121,11 @@
"public/app/plugins/datasource/loki/*.{ts,tsx}",
"public/app/plugins/datasource/loki/**/*.{ts,tsx}",
"public/app/plugins/datasource/elasticsearch/*.{ts,tsx}",
"public/app/plugins/datasource/elasticsearch/**/*.{ts,tsx}"
"public/app/plugins/datasource/elasticsearch/**/*.{ts,tsx}",
"public/app/plugins/datasource/cloudwatch/*.{ts,tsx}",
"public/app/plugins/datasource/cloudwatch/**/*.{ts,tsx}",
"public/app/plugins/datasource/zipkin/*.{ts,tsx}",
"public/app/plugins/datasource/zipkin/**/*.{ts,tsx}"
],
"settings": {
"import/resolver": {

86
.github/CODEOWNERS vendored
View File

@@ -13,13 +13,11 @@
# Documentation
/.changelog-archive @grafana/grafana-release-guild
/.codespellignore @grafana/docs-tooling
/CHANGELOG.md @grafana/grafana-release-guild
/CODE_OF_CONDUCT.md @grafana/grafana-community-support
/CONTRIBUTING.md @grafana/grafana-community-support
/GOVERNANCE.md @RichiH
/HALL_OF_FAME.md @grafana/grafana-community-support
/ISSUE_TRIAGE.md @grafana/grafana-community-support
/LICENSE @torkelo
/LICENSING.md @torkelo
/MAINTAINERS.md @RichiH
@@ -28,36 +26,42 @@
/ROADMAP.md @torkelo
/SECURITY.md @grafana/security-team
/SUPPORT.md @torkelo
/UPGRADING_DEPENDENCIES.md @grafana/docs-grafana
/WORKFLOW.md @torkelo
/contribute/ @grafana/grafana-community-support
/contribute/UPGRADING_DEPENDENCIES.md @grafana/docs-grafana
/devenv/README.md @grafana/docs-grafana
# Technical documentation
# START Technical documentation
# `make docs` procedure and related workflows are owned @grafana/docs-tooling. Slack #docs.
# Documentation sources might have different owners.
/docs/ @grafana/docs-tooling
/docs/sources/ @Eve832
/docs/sources/administration/ @jdbaldry
/docs/sources/alerting/ @brendamuir
/docs/sources/dashboards/ @imatwawana
/docs/sources/datasources/ @lwandz13
/docs/sources/explore/ @grafana/explore-squad
/docs/sources/fundamentals @chri2547
/docs/sources/getting-started/ @chri2547
/docs/sources/introduction/ @chri2547
/docs/sources/old-alerting/ @brendamuir
/docs/sources/panels-visualizations/ @imatwawana
/docs/ @grafana/docs-tooling
/docs/.codespellignore @grafana/docs-tooling
/docs/sources/ @Eve832
/docs/sources/administration/ @jdbaldry @lwandz13
/docs/sources/alerting/ @brendamuir
/docs/sources/dashboards/ @imatwawana
/docs/sources/datasources/ @jdbaldry
/docs/sources/explore/ @grafana/explore-squad
/docs/sources/fundamentals @chri2547
/docs/sources/getting-started/ @chri2547
/docs/sources/introduction/ @chri2547
/docs/sources/panels-visualizations/ @imatwawana
/docs/sources/release-notes/ @Eve832 @GrafanaWriter
/docs/sources/setup-grafana/ @chri2547
/docs/sources/upgrade-guide/ @imatwawana
/docs/sources/whatsnew/ @imatwawana
/docs/sources/developers/plugins/ @Eve832 @josmperez @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/panels-visualizations/query-transform-data/transform-data/index.md @imatwawana @baldm0mma
/docs/sources/release-notes/ @Eve832 @GrafanaWriter
/docs/sources/setup-grafana/ @chri2547
/docs/sources/upgrade-guide/ @imatwawana
/docs/sources/whatsnew/ @imatwawana
/docs/sources/developers/plugins/ @Eve832 @josmperez @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
# END Technical documentation
# Backend code
/go.mod @grafana/backend-platform
/go.sum @grafana/backend-platform
/go.work @grafana/grafana-app-platform-squad
/go.work.sum @grafana/grafana-app-platform-squad
/.bingo/ @grafana/backend-platform
/pkg/README.md @grafana/backend-platform
/pkg/ruleguard.rules.go @grafana/backend-platform
@@ -98,6 +102,9 @@
/pkg/mocks/ @grafana/backend-platform
/pkg/models/ @grafana/backend-platform
/pkg/server/ @grafana/backend-platform
/pkg/apiserver @grafana/grafana-app-platform-squad
/pkg/apimachinery @grafana/grafana-app-platform-squad
/pkg/promlib @grafana/observability-metrics
/pkg/services/annotations/ @grafana/backend-platform
/pkg/services/apikey/ @grafana/identity-access-team
/pkg/services/cleanup/ @grafana/backend-platform
@@ -164,8 +171,8 @@
/devenv/bulk-dashboards/ @grafana/dashboards-squad
/devenv/bulk-folders/ @grafana/grafana-frontend-platform
/devenv/bulk_alerting_dashboards/ @grafana/alerting-backend-product
/devenv/create_docker_compose.sh @grafana/backend-platform
/devenv/alert_rules.yaml @grafana/alerting-backend-product
/devenv/dashboards.yaml @grafana/dashboards-squad
/devenv/datasources.yaml @grafana/backend-platform
/devenv/datasources_docker.yaml @grafana/backend-platform
@@ -270,20 +277,18 @@
/pkg/services/store/ @grafana/grafana-app-platform-squad
/pkg/infra/filestorage/ @grafana/grafana-app-platform-squad
/pkg/modules/ @grafana/grafana-app-platform-squad
/pkg/kindsysreport/ @grafana/grafana-app-platform-squad
/pkg/services/grpcserver/ @grafana/grafana-app-platform-squad
/pkg/generated @grafana/grafana-app-platform-squad
# Alerting
/pkg/services/ngalert/ @grafana/alerting-backend-product
/pkg/services/sqlstore/migrations/ualert/ @grafana/alerting-backend-product
/pkg/services/alerting/ @grafana/alerting-backend-product
/pkg/tests/api/alerting/ @grafana/alerting-backend-product
/public/app/features/alerting/ @grafana/alerting-frontend
# Library Services
/pkg/services/libraryelements/ @grafana/grafana-frontend-platform
/pkg/services/librarypanels/ @grafana/grafana-frontend-platform
/pkg/services/libraryelements/ @grafana/dashboards-squad
/pkg/services/librarypanels/ @grafana/dashboards-squad
# Plugins
/pkg/api/pluginproxy/ @grafana/plugins-platform-backend
@@ -307,6 +312,7 @@
/public/app/core/internationalization/ @grafana/grafana-frontend-platform
/e2e/ @grafana/grafana-frontend-platform
/e2e/cloud-plugins-suite/ @grafana/partner-datasources
/e2e/plugin-e2e/plugin-e2e-api-tests/ @grafana/plugins-platform-frontend
/packages/ @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-e2e-selectors/ @grafana/grafana-frontend-platform
/packages/grafana-e2e/ @grafana/grafana-frontend-platform
@@ -343,6 +349,8 @@
# root files, mostly frontend
/.browserslistrc @grafana/frontend-ops
/package.json @grafana/frontend-ops
/nx.json @grafana/frontend-ops
/project.json @grafana/frontend-ops
/tsconfig.json @grafana/frontend-ops
/.editorconfig @grafana/frontend-ops
/.eslintignore @grafana/frontend-ops
@@ -359,7 +367,6 @@
/.vim @zoltanbedi
/jest.config.js @grafana/frontend-ops
/latest.json @grafana/frontend-ops
/metadata.md @grafana/plugins-platform
/stylelint.config.js @grafana/frontend-ops
/tools/ @grafana/frontend-ops
/lefthook.yml @grafana/frontend-ops
@@ -367,6 +374,7 @@
/.husky/pre-commit @grafana/frontend-ops
/cypress.config.js @grafana/grafana-frontend-platform
/.levignore.js @grafana/plugins-platform-frontend
playwright.config.ts @grafana/plugins-platform-frontend
# public folder
@@ -376,8 +384,13 @@
/public/app/core/components/GraphNG/ @grafana/dataviz-squad
/public/app/core/components/TimeSeries/ @grafana/dataviz-squad
/public/app/core/components/TimelineChart/ @grafana/dataviz-squad
/public/app/core/components/Form/ @grafana/grafana-frontend-platform
/public/app/features/all.ts @grafana/grafana-frontend-platform
/public/app/features/admin/ @grafana/identity-access-team
# Temp owners until Enterprise team takes over
/public/app/features/migrate-to-cloud @grafana/grafana-frontend-platform
/public/app/features/auth-config/ @grafana/identity-access-team
/public/app/features/annotations/ @grafana/dashboards-squad
/public/app/features/api-keys/ @grafana/identity-access-team
@@ -398,7 +411,7 @@
/public/app/features/folders/ @grafana/grafana-frontend-platform
/public/app/features/inspector/ @grafana/dashboards-squad
/public/app/features/invites/ @grafana/grafana-frontend-platform
/public/app/features/library-panels/ @grafana/grafana-frontend-platform
/public/app/features/library-panels/ @grafana/dashboards-squad
/public/app/features/logs/ @grafana/observability-logs
/public/app/features/live/ @grafana/grafana-app-platform-squad
/public/app/features/manage-dashboards/ @grafana/dashboards-squad
@@ -422,7 +435,6 @@
/public/app/features/transformers/timeSeriesTable/ @grafana/dataviz-squad @grafana/app-o11y-visualizations
/public/app/features/users/ @grafana/identity-access-team
/public/app/features/variables/ @grafana/dashboards-squad
/public/app/plugins/panel/alertGroups/ @grafana/alerting-frontend
/public/app/plugins/panel/alertlist/ @grafana/alerting-frontend
/public/app/plugins/panel/annolist/ @grafana/grafana-frontend-platform
/public/app/plugins/panel/barchart/ @grafana/dataviz-squad
@@ -523,7 +535,7 @@
/scripts/generate-icon-bundle.js @grafana/plugins-platform-frontend @grafana/grafana-frontend-platform
/scripts/levitate-parse-json-report.js @grafana/plugins-platform-frontend
/scripts/docs/generate-transformations.ts @grafana/dataviz-squad
/scripts/docs/generate-transformations* @grafana/dataviz-squad
/scripts/webpack/ @grafana/frontend-ops
/scripts/generate-a11y-report.sh @grafana/grafana-frontend-platform
.pa11yci.conf.js @grafana/grafana-frontend-platform
@@ -598,11 +610,12 @@
/pkg/services/supportbundles/ @grafana/identity-access-team
# Grafana Operator Experience Team
/pkg/infra/httpclient/httpclientprovider/sigv4_middleware.go @grafana/grafana-operator-experience-squad
/pkg/infra/httpclient/httpclientprovider/sigv4_middleware_test.go @grafana/grafana-operator-experience-squad
/pkg/services/caching/ @grafana/grafana-operator-experience-squad
/pkg/services/featuremgmt/ @grafana/grafana-operator-experience-squad
/pkg/services/cloudmigrations/ @grafana/grafana-operator-experience-squad
/pkg/services/cloudmigration/ @grafana/grafana-operator-experience-squad
# Feature toggles
/pkg/services/featuremgmt/ @grafana/grafana-backend-services-squad
# Kind definitions
/kinds/dashboard @grafana/dashboards-squad
@@ -616,7 +629,7 @@ embed.go @grafana/grafana-as-code
/pkg/registry/apis/ @grafana/grafana-app-platform-squad
/pkg/codegen/ @grafana/grafana-as-code
/pkg/kinds/*/*_gen.go @grafana/grafana-as-code
/pkg/registry/corekind/ @grafana/grafana-as-code
/pkg/registry/schemas/ @grafana/grafana-as-code
/public/app/plugins/*gen.go @grafana/grafana-as-code
/cue.mod/ @grafana/grafana-as-code
@@ -697,5 +710,4 @@ embed.go @grafana/grafana-as-code
/conf/provisioning/alerting/ @grafana/alerting-backend-product
/conf/provisioning/dashboards/ @grafana/dashboards-squad
/conf/provisioning/datasources/ @grafana/plugins-platform-backend
/conf/provisioning/notifiers/ @bergquist
/conf/provisioning/plugins/ @grafana/plugins-platform-backend

4
.github/bot.md vendored
View File

@@ -9,8 +9,8 @@ Comment commands:
Label commands:
* Add label `bot/question` the the bot will close with standard question message and add label `type/question`
* Add label `bot/duplicate` the the bot will close with standard duplicate message and add label `type/duplicate`
* Add label `bot/question` the bot will close with standard question message and add label `type/question`
* Add label `bot/duplicate` the bot will close with standard duplicate message and add label `type/duplicate`
* Add label `bot/needs more info` for bot to request more info (or use comment command mentioned above)
* Add label `bot/close feature request` for bot to close a feature request with standard message and adds label `not implemented`
* Add label `bot/no new info` for bot to close an issue where we asked for more info but has not received any updates in at least 14 days.

View File

@@ -118,7 +118,7 @@
},
{
"type": "changedfiles",
"matches": [ "public/app/plugins/datasource/jaeger"],
"matches": [ "public/app/plugins/datasource/jaeger/**/*"],
"action": "updateLabel",
"addLabel": "datasource/Jaeger"
},
@@ -146,6 +146,12 @@
"action": "updateLabel",
"addLabel": "datasource/OpenTSDB"
},
{
"type": "changedfiles",
"matches": [ "public/app/plugins/datasource/parca/**/*"],
"action": "updateLabel",
"addLabel": "datasource/Parca"
},
{
"type": "changedfiles",
"matches": [ "public/app/plugins/datasource/grafana-pyroscope-datasource/**/*", "pkg/tsdb/grafana-pyroscope-datasource/**/*"],

View File

@@ -9,6 +9,7 @@
"loader-utils", // v3 requires upstream changes in ngtemplate-loader. ignore, and remove when we remove angular.
"monaco-editor", // due to us exposing this via @grafana/ui/CodeEditor's props bumping can break plugins
"@fingerprintjs/fingerprintjs", // we don't want to bump to v4 due to licensing changes
"@swc/core", // versions ~1.4.5 contain multiple bugs related to baseUrl resolution breaking builds.
],
"includePaths": ["package.json", "packages/**", "public/app/plugins/**"],
"ignorePaths": ["emails/**", "plugins-bundled/**", "**/mocks/**", "packages/grafana-e2e/**"],

View File

@@ -16,7 +16,7 @@ jobs:
- name: Set go version
uses: actions/setup-go@v4
with:
go-version: '1.21.6'
go-version: '1.21.8'
- name: Build swagger
run: |
make -C pkg/services/ngalert/api/tooling post.json api.json

View File

@@ -47,7 +47,7 @@ jobs:
name: Set go version
uses: actions/setup-go@v4
with:
go-version: '1.21.6'
go-version: '1.21.8'
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
@@ -67,3 +67,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -11,9 +11,11 @@ on:
- grafana-azure-monitor-datasource
- grafana-pyroscope-datasource
- grafana-testdata-datasource
- jaeger
- parca
- stackdriver
- tempo
- zipkin
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ inputs.plugin_id }}
@@ -184,7 +186,7 @@ jobs:
exit 1
fi
- name: store build artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: ${{ steps.get_dir.outputs.dir }}/ci/packages/*.zip

View File

@@ -7,7 +7,7 @@ jobs:
doc-validator:
runs-on: "ubuntu-latest"
container:
image: "grafana/doc-validator:v4.0.0"
image: "grafana/doc-validator:v4.1.1"
steps:
- name: "Checkout code"
uses: "actions/checkout@v4"

View File

@@ -113,3 +113,10 @@ jobs:
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
- name: Run auto-milestone
uses: grafana/grafana-github-actions-go/auto-milestone@main
if: steps.crowdin-download.outputs.pull_request_url
with:
pr: ${{ steps.crowdin-download.outputs.pull_request_number }}
token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -53,7 +53,7 @@ jobs:
echo "TEAM=${TEAM}" >> $GITHUB_ENV
- name: "Prepare payload"
uses: frabert/replace-string-action@v2.0
uses: frabert/replace-string-action@v2.5
id: preparePayload
with:
# replace double quotes with single quotes to avoid breaking the JSON payload sent to Slack
@@ -64,7 +64,7 @@ jobs:
- name: Get Token
id: get_workflow_token
uses: peter-murray/workflow-application-token-action@v2
uses: peter-murray/workflow-application-token-action@v3
with:
application_id: ${{ secrets.APP_GRAFANA_TEAM_CHECKER_ID }}
application_private_key: ${{ secrets.APP_GRAFANA_TEAM_CHECKER_KEY }}

View File

@@ -35,7 +35,7 @@ jobs:
- name: Set go version
uses: actions/setup-go@v4
with:
go-version: '1.21.6'
go-version: '1.21.8'
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
@@ -50,3 +50,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -33,3 +33,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -31,3 +31,4 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
if: github.repository == 'grafana/grafana'

View File

@@ -18,6 +18,7 @@ on:
jobs:
trigger_downstream_patch_check:
uses: grafana/security-patch-actions/.github/workflows/test-patches.yml@main
if: github.repository == 'grafana/grafana'
with:
src_repo: "${{ github.repository }}"
src_ref: "${{ github.head_ref }}" # this is the source branch name, Ex: "feature/newthing"

View File

@@ -36,7 +36,7 @@ jobs:
- name: "Setup Go"
uses: "actions/setup-go@v4"
with:
go-version: '1.21.6'
go-version: '1.21.8'
- name: "Verify kinds"
run: go run .github/workflows/scripts/kinds/verify-kinds.go

View File

@@ -39,7 +39,7 @@ jobs:
- name: "Setup Go"
uses: "actions/setup-go@v4"
with:
go-version: '1.21.6'
go-version: '1.21.8'
- name: "Verify kinds"
run: go run .github/workflows/scripts/kinds/verify-kinds.go

View File

@@ -1,116 +1,53 @@
package main
import (
"archive/zip"
"context"
"errors"
"fmt"
"io"
"net/http"
"golang.org/x/text/cases"
"golang.org/x/text/language"
"os"
"path/filepath"
"regexp"
"strconv"
"strings"
"testing/fstest"
"cuelang.org/go/cue"
cueformat "cuelang.org/go/cue/format"
"github.com/google/go-github/github"
"github.com/grafana/codejen"
"github.com/grafana/grafana/pkg/codegen"
"github.com/grafana/grafana/pkg/cuectx"
"github.com/grafana/grafana/pkg/plugins/pfs"
"github.com/grafana/grafana/pkg/plugins/pfs/corelist"
"github.com/grafana/grafana/pkg/registry/corekind"
"github.com/grafana/kindsys"
"github.com/grafana/thema"
"golang.org/x/oauth2"
"github.com/grafana/grafana/pkg/registry/schemas"
)
const (
GITHUB_OWNER = "grafana"
GITHUB_REPO = "kind-registry"
)
var nonAlphaNumRegex = regexp.MustCompile("[^a-zA-Z0-9 ]+")
// main This script verifies that stable kinds are not updated once published (new schemas
// can be added but existing ones cannot be updated).
// If the env variable CODEGEN_VERIFY is not present, this also generates kind files into a
// local "next" folder, ready to be published in the kind-registry repo.
// It generates kind files into a local "next" folder, ready to be published in the kind-registry repo.
// If kind names are given as parameters, the script will make the above actions only for the
// given kinds.
func main() {
var corek []kindsys.Kind
var compok []kindsys.Composable
kindRegistry, err := NewKindRegistry()
defer kindRegistry.cleanUp()
if err != nil {
die(err)
}
// Search for the latest version directory present in the kind-registry repo
latestRegistryDir, err := kindRegistry.findLatestDir()
if err != nil {
die(fmt.Errorf("failed to get latest directory for published kinds: %s", err))
}
errs := make([]error, 0)
// Kind verification
for _, kind := range corekind.NewBase(nil).All() {
name := kind.Props().Common().MachineName
err := verifyKind(kindRegistry, kind, name, "core", latestRegistryDir)
if err != nil {
errs = append(errs, err)
continue
}
corek = append(corek, kind)
}
for _, pp := range corelist.New(nil) {
for _, kind := range pp.ComposableKinds {
si, err := kindsys.FindSchemaInterface(kind.Def().Properties.SchemaInterface)
if err != nil {
errs = append(errs, err)
continue
}
name := strings.ToLower(fmt.Sprintf("%s/%s", strings.TrimSuffix(kind.Lineage().Name(), si.Name()), si.Name()))
err = verifyKind(kindRegistry, kind, name, "composable", latestRegistryDir)
if err != nil {
errs = append(errs, err)
continue
}
compok = append(compok, kind)
}
}
die(errs...)
if _, set := os.LookupEnv("CODEGEN_VERIFY"); set {
os.Exit(0)
}
// File generation
jfs := codejen.NewFS()
outputPath := filepath.Join(".github", "workflows", "scripts", "kinds")
coreJennies := codejen.JennyList[kindsys.Kind]{}
corekinds, err := schemas.GetCoreKinds()
die(err)
composableKinds, err := schemas.GetComposableKinds()
die(err)
coreJennies := codejen.JennyList[schemas.CoreKind]{}
coreJennies.Append(
KindRegistryJenny(outputPath),
CoreKindRegistryJenny(outputPath),
)
corefs, err := coreJennies.GenerateFS(corek...)
corefs, err := coreJennies.GenerateFS(corekinds...)
die(err)
die(jfs.Merge(corefs))
composableJennies := codejen.JennyList[kindsys.Composable]{}
composableJennies := codejen.JennyList[schemas.ComposableKind]{}
composableJennies.Append(
ComposableKindRegistryJenny(outputPath),
)
composablefs, err := composableJennies.GenerateFS(compok...)
composablefs, err := composableJennies.GenerateFS(composableKinds...)
die(err)
die(jfs.Merge(composablefs))
@@ -180,101 +117,8 @@ func die(errs ...error) {
}
}
// verifyKind verifies that stable kinds are not updated once published (new schemas
// can be added but existing ones cannot be updated)
func verifyKind(registry *kindRegistry, kind kindsys.Kind, name string, category string, latestRegistryDir string) error {
oldKindString, err := registry.getPublishedKind(name, category, latestRegistryDir)
if err != nil {
return err
}
var oldKind kindsys.Kind
if oldKindString != "" {
switch category {
case "core":
oldKind, err = loadCoreKind(name, oldKindString)
case "composable":
oldKind, err = loadComposableKind(name, oldKindString)
default:
return fmt.Errorf("kind can only be core or composable")
}
}
if err != nil {
return err
}
// Kind is new - no need to compare it
if oldKind == nil {
return nil
}
// Check that maturity isn't downgraded
if kind.Maturity().Less(oldKind.Maturity()) {
return fmt.Errorf("kind maturity can't be downgraded once a kind is published")
}
if oldKind.Maturity().Less(kindsys.MaturityStable) {
return nil
}
// Check that old schemas do not contain updates
err = thema.IsAppendOnly(oldKind.Lineage(), kind.Lineage())
if err != nil {
return fmt.Errorf("existing schemas in lineage %s cannot be modified: %w", name, err)
}
return nil
}
func isLess(v1 []uint64, v2 []uint64) bool {
if len(v1) == 1 || len(v2) == 1 {
return v1[0] < v2[0]
}
return v1[0] < v2[0] || (v1[0] == v2[0] && isLess(v1[2:], v2[2:]))
}
func loadCoreKind(name string, kind string) (kindsys.Kind, error) {
fs := fstest.MapFS{
fmt.Sprintf("%s.cue", name): &fstest.MapFile{
Data: []byte(kind),
},
}
rt := cuectx.GrafanaThemaRuntime()
def, err := cuectx.LoadCoreKindDef(fmt.Sprintf("%s.cue", name), rt.Context(), fs)
if err != nil {
return nil, fmt.Errorf("%s is not a valid kind: %w", name, err)
}
return kindsys.BindCore(rt, def)
}
func loadComposableKind(name string, kind string) (kindsys.Kind, error) {
parts := strings.Split(name, "/")
if len(parts) > 1 {
name = parts[1]
}
fs := fstest.MapFS{
fmt.Sprintf("%s.cue", name): &fstest.MapFile{
Data: []byte(kind),
},
}
rt := cuectx.GrafanaThemaRuntime()
def, err := pfs.LoadComposableKindDef(fs, rt, fmt.Sprintf("%s.cue", name))
if err != nil {
return nil, fmt.Errorf("%s is not a valid kind: %w", name, err)
}
return kindsys.BindComposable(rt, def)
}
// KindRegistryJenny generates kind files into the "next" folder of the local kind registry.
func KindRegistryJenny(path string) codegen.OneToOne {
// CoreKindRegistryJenny generates kind files into the "next" folder of the local kind registry.
func CoreKindRegistryJenny(path string) codejen.OneToOne[schemas.CoreKind] {
return &kindregjenny{
path: path,
}
@@ -288,35 +132,18 @@ func (j *kindregjenny) JennyName() string {
return "KindRegistryJenny"
}
func (j *kindregjenny) Generate(kind kindsys.Kind) (*codejen.File, error) {
name := kind.Props().Common().MachineName
core, ok := kind.(kindsys.Core)
if !ok {
return nil, fmt.Errorf("kind sent to KindRegistryJenny must be a core kind")
}
newKindBytes, err := kindToBytes(core.Def().V)
func (j *kindregjenny) Generate(kind schemas.CoreKind) (*codejen.File, error) {
newKindBytes, err := kindToBytes(kind.CueFile)
if err != nil {
return nil, err
}
path := filepath.Join(j.path, "next", "core", name, name+".cue")
path := filepath.Join(j.path, "next", "core", kind.Name, kind.Name+".cue")
return codejen.NewFile(path, newKindBytes, j), nil
}
// kindToBytes converts a kind cue value to a .cue file content
func kindToBytes(kind cue.Value) ([]byte, error) {
node := kind.Syntax(
cue.All(),
cue.Schema(),
cue.Docs(true),
)
return cueformat.Node(node)
}
// ComposableKindRegistryJenny generates kind files into the "next" folder of the local kind registry.
func ComposableKindRegistryJenny(path string) codejen.OneToOne[kindsys.Composable] {
func ComposableKindRegistryJenny(path string) codejen.OneToOne[schemas.ComposableKind] {
return &ckrJenny{
path: path,
}
@@ -330,149 +157,73 @@ func (j *ckrJenny) JennyName() string {
return "ComposableKindRegistryJenny"
}
func (j *ckrJenny) Generate(k kindsys.Composable) (*codejen.File, error) {
si, err := kindsys.FindSchemaInterface(k.Def().Properties.SchemaInterface)
if err != nil {
panic(err)
}
func (j *ckrJenny) Generate(k schemas.ComposableKind) (*codejen.File, error) {
name := strings.ToLower(fmt.Sprintf("%s/%s", k.Name, k.Filename))
name := strings.ToLower(fmt.Sprintf("%s/%s", strings.TrimSuffix(k.Lineage().Name(), si.Name()), si.Name()))
v := fixComposableKindFormat(k)
newKindBytes, err := kindToBytes(k.Def().V)
newKindBytes, err := kindToBytes(v)
if err != nil {
return nil, err
}
newKindBytes = []byte(fmt.Sprintf("package grafanaplugin\n\n%s", newKindBytes))
return codejen.NewFile(filepath.Join(j.path, "next", "composable", name+".cue"), newKindBytes, j), nil
return codejen.NewFile(filepath.Join(j.path, "next", "composable", name), newKindBytes, j), nil
}
type kindRegistry struct {
zipDir string
zipFile *zip.ReadCloser
// kindToBytes converts a kind cue value to a .cue file content
func kindToBytes(kind cue.Value) ([]byte, error) {
node := kind.Syntax(
cue.All(),
cue.Schema(),
cue.Docs(true),
)
return cueformat.Node(node)
}
// NewKindRegistry downloads the archive of the kind-registry GH repository and open it
func NewKindRegistry() (*kindRegistry, error) {
ctx := context.Background()
tc := oauth2.NewClient(ctx, nil)
client := github.NewClient(tc)
// Create a temporary file to store the downloaded archive
file, err := os.CreateTemp("", "*.zip")
if err != nil {
return nil, fmt.Errorf("failed to create temporary file: %w", err)
}
defer file.Close()
// Get the repository archive URL
archiveURL, _, err := client.Repositories.GetArchiveLink(ctx, GITHUB_OWNER, GITHUB_REPO, github.Zipball, &github.RepositoryContentGetOptions{})
if err != nil {
return nil, fmt.Errorf("failed to get archive URL: %w", err)
func fixComposableKindFormat(schema schemas.ComposableKind) cue.Value {
variant := "PanelCfg"
if schema.CueFile.LookupPath(cue.ParsePath("composableKinds.DataQuery")).Exists() {
variant = "DataQuery"
}
// Download the archive file
httpClient := http.DefaultClient
resp, err := httpClient.Get(archiveURL.String())
if err != nil {
return nil, fmt.Errorf("failed to download archive: %w", err)
}
defer resp.Body.Close()
newCue := schema.CueFile.Context().CompileString(
fmt.Sprintf("schemaInterface: %q\n", variant) +
fmt.Sprintf("name: %q + %q\n\n", UpperCamelCase(schema.Name), variant) +
"lineage: _",
)
// Save the downloaded archive to the temporary file
_, err = io.Copy(file, resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to save archive: %w", err)
}
// Open the zip file for reading
zipDir := file.Name()
zipFile, err := zip.OpenReader(zipDir)
if err != nil {
return nil, fmt.Errorf("failed to open zip file %s: %w", zipDir, err)
}
return &kindRegistry{
zipDir: zipDir,
zipFile: zipFile,
}, nil
lineagePath := cue.MakePath(cue.Str("composableKinds"), cue.Str(variant), cue.Str("lineage"))
return newCue.FillPath(cue.MakePath(cue.Str("lineage")), schema.CueFile.LookupPath(lineagePath))
}
// cleanUp removes the archive from the temporary files and closes the zip reader
func (registry *kindRegistry) cleanUp() {
if registry.zipDir != "" {
err := os.Remove(registry.zipDir)
if err != nil {
fmt.Fprint(os.Stderr, fmt.Errorf("failed to remove zip archive: %w", err))
}
func UpperCamelCase(s string) string {
s = LowerCamelCase(s)
// Uppercase the first letter
if len(s) > 0 {
s = strings.ToUpper(s[:1]) + s[1:]
}
if registry.zipFile != nil {
err := registry.zipFile.Close()
if err != nil {
fmt.Fprint(os.Stderr, fmt.Errorf("failed to close zip file reader: %w", err))
}
}
return s
}
// findLatestDir get the latest version directory published in the kind registry
func (registry *kindRegistry) findLatestDir() (string, error) {
re := regexp.MustCompile(`([0-9]+)\.([0-9]+)\.([0-9]+)`)
latestVersion := []uint64{0, 0, 0}
latestDir := ""
func LowerCamelCase(s string) string {
// Replace all non-alphanumeric characters by spaces
s = nonAlphaNumRegex.ReplaceAllString(s, " ")
for _, file := range registry.zipFile.File {
if !file.FileInfo().IsDir() {
continue
}
// Title case s
s = cases.Title(language.AmericanEnglish, cases.NoLower).String(s)
parts := re.FindStringSubmatch(file.Name)
if parts == nil || len(parts) < 4 {
continue
}
// Remove all spaces
s = strings.ReplaceAll(s, " ", "")
version := make([]uint64, len(parts)-1)
for i := 1; i < len(parts); i++ {
version[i-1], _ = strconv.ParseUint(parts[i], 10, 32)
}
if isLess(latestVersion, version) {
latestVersion = version
latestDir = file.Name
}
// Lowercase the first letter
if len(s) > 0 {
s = strings.ToLower(s[:1]) + s[1:]
}
return latestDir, nil
}
// getPublishedKind retrieves the latest published kind from the kind registry
func (registry *kindRegistry) getPublishedKind(name string, category string, latestRegistryDir string) (string, error) {
if latestRegistryDir == "" {
return "", nil
}
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)
}
defer file.Close()
data, err := io.ReadAll(file)
if err != nil {
return "", fmt.Errorf("failed to read file: %w", err)
}
return string(data), nil
return s
}

View File

@@ -4,7 +4,7 @@ on:
pull_request:
branches: [ main ]
paths:
- '**/*.cue'
- '**/*.cue'
jobs:
main:
@@ -18,10 +18,9 @@ jobs:
- name: "Setup Go"
uses: "actions/setup-go@v4"
with:
go-version: '1.21.6'
go-version: '1.21.8'
- name: "Verify kinds"
run: go run .github/workflows/scripts/kinds/verify-kinds.go
env:
CODEGEN_VERIFY: 1
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

14
.gitignore vendored
View File

@@ -24,9 +24,6 @@ __debug_bin*
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
# we temporarily commit this file because yarn downloading it
# somehow produces different checksum values
!.yarn/cache/pa11y-ci-https-1e9675e9e1-668c9119bd.zip
.pnp.*
# Enterprise emails
@@ -134,9 +131,7 @@ pkg/services/quota/quotaimpl/storage/storage.json
/devenv/bulk-dashboards/*.json
/devenv/bulk-folders/*/*.json
/devenv/bulk_alerting_dashboards/*.json
/devenv/datasources_bulk.yaml
/devenv/bulk_alerting_dashboards/bulk_alerting_datasources.yaml
/scripts/build/release_publisher/release_publisher
*.patch
@@ -174,6 +169,11 @@ compilation-stats.json
/e2e/build_results.zip
/e2e/extensions
/e2e/extensions-suite
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
/playwright/.auth/
# grafana server
/scripts/grafana-server/server.log
@@ -202,6 +202,7 @@ public/api-spec.json
deployment_tools_config.json
.betterer.cache
.nx
# Temporary file for backporting PRs
.pr-body.txt
@@ -212,3 +213,6 @@ public/app/plugins/**/dist/
# Ignore transpiled JavaScript resulting from the generate-transformations.ts script.
/public/app/features/transformers/docs/*.js
/scripts/docs/generate-transformations.js
# Go coverage files created with go test -cover -coverprogile=something.out ...
*.out

View File

@@ -67,6 +67,8 @@ files = [
"**/pkg/tsdb/parca/**/*",
"**/pkg/tsdb/tempo/*",
"**/pkg/tsdb/tempo/**/*",
"**/pkg/tsdb/cloudwatch/*",
"**/pkg/tsdb/cloudwatch/**/*",
]
[linters-settings.gocritic]

View File

@@ -103,7 +103,7 @@ var config = {
rootElement: '.main-view',
// the unified alerting promotion alert's content contrast is too low
// see https://github.com/grafana/grafana/pull/41829
threshold: 6,
threshold: 7,
},
{
url: '${HOST}/datasources',

View File

@@ -32,11 +32,5 @@ public/api-merged.json
public/api-enterprise-spec.json
public/openapi3.json
# Generated Kinds report
kinds/report.json
# Generated schema docs
docs/sources/developers/kinds/
# Crowdin files
public/locales/**/*.json

View File

@@ -1,3 +1,247 @@
<!-- 10.4.0 START -->
# 10.4.0 (2024-03-06)
### Features and enhancements
- **AuthToken:** Remove client token rotation feature toggle. [#82886](https://github.com/grafana/grafana/issues/82886), [@kalleep](https://github.com/kalleep)
- **Plugins:** Enable feature toggle angularDeprecationUI by default. [#82880](https://github.com/grafana/grafana/issues/82880), [@xnyo](https://github.com/xnyo)
- **Table Component:** Improve text-wrapping behavior of cells. [#82872](https://github.com/grafana/grafana/issues/82872), [@ahuarte47](https://github.com/ahuarte47)
- **Alerting:** Dry-run legacy upgrade on startup. [#82835](https://github.com/grafana/grafana/issues/82835), [@JacobsonMT](https://github.com/JacobsonMT)
- **Tempo:** Upgrade @grafana/lezer-traceql patch version to use trace metrics syntax. [#82532](https://github.com/grafana/grafana/issues/82532), [@joey-grafana](https://github.com/joey-grafana)
- **Logs Panel:** Add CSV to download options. [#82480](https://github.com/grafana/grafana/issues/82480), [@gtk-grafana](https://github.com/gtk-grafana)
- **Folders:** Switch order of the columns in folder table indexes so that org_id becomes first. [#82454](https://github.com/grafana/grafana/issues/82454), [@papagian](https://github.com/papagian)
- **Logs panel:** Table UI - Guess string field types. [#82397](https://github.com/grafana/grafana/issues/82397), [@gtk-grafana](https://github.com/gtk-grafana)
- **Alerting:** Send alerts to APIv2 when using the Alertmanager contact point. [#82373](https://github.com/grafana/grafana/issues/82373), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Emit warning when creating or updating unusually large groups. [#82279](https://github.com/grafana/grafana/issues/82279), [@alexweav](https://github.com/alexweav)
- **Keybindings:** Change 'h' to 'mod+h' to open help modal. [#82253](https://github.com/grafana/grafana/issues/82253), [@tskarhed](https://github.com/tskarhed)
- **Chore:** Update arrow and prometheus dependencies. [#82215](https://github.com/grafana/grafana/issues/82215), [@ryantxu](https://github.com/ryantxu)
- **Alerting:** Enable group-level rule evaluation jittering by default, remove feature toggle. [#82212](https://github.com/grafana/grafana/issues/82212), [@alexweav](https://github.com/alexweav)
- **Loki Log Context:** Always show label filters with at least one parsed label. [#82211](https://github.com/grafana/grafana/issues/82211), [@svennergr](https://github.com/svennergr)
- **Logs Panel:** Table UI - better default column spacing. [#82205](https://github.com/grafana/grafana/issues/82205), [@gtk-grafana](https://github.com/gtk-grafana)
- **RBAC:** Migration to remove the scope from permissions where action is alert.instances:read. [#82202](https://github.com/grafana/grafana/issues/82202), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **JWT Authentication:** Add support for specifying groups in auth.jwt for teamsync. [#82175](https://github.com/grafana/grafana/issues/82175), [@Jguer](https://github.com/Jguer)
- **Alerting:** GA alertingPreviewUpgrade and enable by default. [#82038](https://github.com/grafana/grafana/issues/82038), [@JacobsonMT](https://github.com/JacobsonMT)
- **Elasticsearch:** Apply ad-hoc filters to annotation queries. [#82032](https://github.com/grafana/grafana/issues/82032), [@mikelv92](https://github.com/mikelv92)
- **Alerting:** Show legacy provisioned alert rules warning. [#81902](https://github.com/grafana/grafana/issues/81902), [@gillesdemey](https://github.com/gillesdemey)
- **Tempo:** Support TraceQL metrics queries. [#81886](https://github.com/grafana/grafana/issues/81886), [@adrapereira](https://github.com/adrapereira)
- **Tempo:** Support backtick strings. [#81802](https://github.com/grafana/grafana/issues/81802), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Dashboards:** Remove `advancedDataSourcePicker` feature toggle. [#81790](https://github.com/grafana/grafana/issues/81790), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **CloudWatch:** Remove references to pkg/infra/metrics. [#81744](https://github.com/grafana/grafana/issues/81744), [@iwysiu](https://github.com/iwysiu)
- **Licensing:** Redact license when overriden by env variable. [#81726](https://github.com/grafana/grafana/issues/81726), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Explore:** Disable cursor sync. [#81698](https://github.com/grafana/grafana/issues/81698), [@ifrost](https://github.com/ifrost)
- **Tempo:** Add custom headers middleware for grpc client. [#81693](https://github.com/grafana/grafana/issues/81693), [@aocenas](https://github.com/aocenas)
- **Chore:** Update test database initialization. [#81673](https://github.com/grafana/grafana/issues/81673), [@DanCech](https://github.com/DanCech)
- **Elasticsearch:** Implement CheckHealth method in the backend. [#81671](https://github.com/grafana/grafana/issues/81671), [@mikelv92](https://github.com/mikelv92)
- **Tooltips:** Hide dimension configuration when tooltip mode is hidden. [#81627](https://github.com/grafana/grafana/issues/81627), [@codeincarnate](https://github.com/codeincarnate)
- **Alerting:** Show warning when cp does not exist and invalidate the form. [#81621](https://github.com/grafana/grafana/issues/81621), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **User:** Add uid colum to user table. [#81615](https://github.com/grafana/grafana/issues/81615), [@ryantxu](https://github.com/ryantxu)
- **Cloudwatch:** Remove core imports from infra/log. [#81543](https://github.com/grafana/grafana/issues/81543), [@njvrzm](https://github.com/njvrzm)
- **Alerting:** Add pagination and improved search for notification policies. [#81535](https://github.com/grafana/grafana/issues/81535), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Move action buttons in the alert list view. [#81341](https://github.com/grafana/grafana/issues/81341), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Grafana/ui:** Add deprecation notices to the legacy layout components. [#81328](https://github.com/grafana/grafana/issues/81328), [@Clarity-89](https://github.com/Clarity-89)
- **Cloudwatch:** Deprecate cloudwatchNewRegionsHandler feature toggle and remove core imports from featuremgmt. [#81310](https://github.com/grafana/grafana/issues/81310), [@njvrzm](https://github.com/njvrzm)
- **Candlestick:** Add tooltip options. [#81307](https://github.com/grafana/grafana/issues/81307), [@adela-almasan](https://github.com/adela-almasan)
- **Folders:** Forbid performing operations on folders via dashboards HTTP API. [#81264](https://github.com/grafana/grafana/issues/81264), [@undef1nd](https://github.com/undef1nd)
- **Feature Management:** Move awsDatasourcesNewFormStyling to Public Preview. [#81257](https://github.com/grafana/grafana/issues/81257), [@idastambuk](https://github.com/idastambuk)
- **Alerting:** Update API to use folders' full paths. [#81214](https://github.com/grafana/grafana/issues/81214), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Datasources:** Add concurrency number to the settings. [#81212](https://github.com/grafana/grafana/issues/81212), [@itsmylife](https://github.com/itsmylife)
- **CloudWatch:** Remove dependencies on grafana/pkg/setting. [#81208](https://github.com/grafana/grafana/issues/81208), [@iwysiu](https://github.com/iwysiu)
- **Logs:** Table UI - Allow users to resize field selection section. [#81201](https://github.com/grafana/grafana/issues/81201), [@gtk-grafana](https://github.com/gtk-grafana)
- **Dashboards:** Remove emptyDashboardPage feature flag. [#81188](https://github.com/grafana/grafana/issues/81188), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **Cloudwatch:** Import httpClient from grafana-plugin-sdk-go instead of grafana/infra. [#81187](https://github.com/grafana/grafana/issues/81187), [@idastambuk](https://github.com/idastambuk)
- **Logs:** Table UI - Enable feature flag by default (GA). [#81185](https://github.com/grafana/grafana/issues/81185), [@gtk-grafana](https://github.com/gtk-grafana)
- **Tempo:** Improve tags UX. [#81166](https://github.com/grafana/grafana/issues/81166), [@joey-grafana](https://github.com/joey-grafana)
- **Table:** Cell inspector auto-detecting JSON. [#81152](https://github.com/grafana/grafana/issues/81152), [@gtk-grafana](https://github.com/gtk-grafana)
- **Grafana/ui:** Add Space component. [#81145](https://github.com/grafana/grafana/issues/81145), [@Clarity-89](https://github.com/Clarity-89)
- **Grafana/ui:** Add deprecation notice to the Form component. [#81068](https://github.com/grafana/grafana/issues/81068), [@Clarity-89](https://github.com/Clarity-89)
- **Alerting:** Swap order between Annotations and Labels step in the alert rule form. [#81060](https://github.com/grafana/grafana/issues/81060), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Plugins:** Change managedPluginsInstall to public preview. [#81053](https://github.com/grafana/grafana/issues/81053), [@oshirohugo](https://github.com/oshirohugo)
- **Tempo:** Add span, trace vars to trace to metrics interpolation. [#81046](https://github.com/grafana/grafana/issues/81046), [@joey-grafana](https://github.com/joey-grafana)
- **Tempo:** Support multiple filter expressions for service graph queries. [#81037](https://github.com/grafana/grafana/issues/81037), [@domasx2](https://github.com/domasx2)
- **Alerting:** Support for simplified notification settings in rule API. [#81011](https://github.com/grafana/grafana/issues/81011), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Plugins:** Add fuzzy search to plugins catalogue. [#81001](https://github.com/grafana/grafana/issues/81001), [@Ukochka](https://github.com/Ukochka)
- **CloudWatch:** Only override contextDialer when using PDC. [#80992](https://github.com/grafana/grafana/issues/80992), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Alerting:** Add a feature flag to periodically save states. [#80987](https://github.com/grafana/grafana/issues/80987), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **RBAC:** Return the underlying error instead of internal server or bad request for managed permission endpoints. [#80974](https://github.com/grafana/grafana/issues/80974), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Correlations:** Enable correlations feature toggle by default. [#80881](https://github.com/grafana/grafana/issues/80881), [@ifrost](https://github.com/ifrost)
- **Transformations:** Focus search input on drawer open. [#80859](https://github.com/grafana/grafana/issues/80859), [@codeincarnate](https://github.com/codeincarnate)
- **Packaging:** Use the GRAFANA_HOME variable in postinst script on Debian. [#80853](https://github.com/grafana/grafana/issues/80853), [@denisse-dev](https://github.com/denisse-dev)
- **Visualizations:** Hue gradient mode now applies to the line color . [#80805](https://github.com/grafana/grafana/issues/80805), [@torkelo](https://github.com/torkelo)
- **Drawer:** Resizable via draggable edge . [#80796](https://github.com/grafana/grafana/issues/80796), [@torkelo](https://github.com/torkelo)
- **Alerting:** Add setting to distribute rule group evaluations over time. [#80766](https://github.com/grafana/grafana/issues/80766), [@alexweav](https://github.com/alexweav)
- **Logs Panel:** Permalink (copy shortlink). [#80764](https://github.com/grafana/grafana/issues/80764), [@gtk-grafana](https://github.com/gtk-grafana)
- **VizTooltips:** Copy to clipboard functionality. [#80761](https://github.com/grafana/grafana/issues/80761), [@adela-almasan](https://github.com/adela-almasan)
- **AuthN:** Support reloading SSO config after the sso settings have changed. [#80734](https://github.com/grafana/grafana/issues/80734), [@mgyongyosi](https://github.com/mgyongyosi)
- **Logs Panel:** Add total count to logs volume panel in explore. [#80730](https://github.com/grafana/grafana/issues/80730), [@gtk-grafana](https://github.com/gtk-grafana)
- **Caching:** Remove useCachingService feature toggle. [#80695](https://github.com/grafana/grafana/issues/80695), [@mmandrus](https://github.com/mmandrus)
- **Table:** Support showing data links inline. . [#80691](https://github.com/grafana/grafana/issues/80691), [@ryantxu](https://github.com/ryantxu)
- **Storage:** Add support for sortBy selector. [#80680](https://github.com/grafana/grafana/issues/80680), [@DanCech](https://github.com/DanCech)
- **Alerting:** Add metric counting rule groups per org. [#80669](https://github.com/grafana/grafana/issues/80669), [@alexweav](https://github.com/alexweav)
- **RBAC:** Cover plugin routes. [#80578](https://github.com/grafana/grafana/issues/80578), [@gamab](https://github.com/gamab)
- **Profiling:** Import godeltaprof/http/pprof. [#80509](https://github.com/grafana/grafana/issues/80509), [@korniltsev](https://github.com/korniltsev)
- **Tempo:** Add warning message when scope missing in TraceQL. [#80472](https://github.com/grafana/grafana/issues/80472), [@joey-grafana](https://github.com/joey-grafana)
- **Cloudwatch:** Move getNextRefIdChar util from app/core/utils to @grafana/data. [#80471](https://github.com/grafana/grafana/issues/80471), [@idastambuk](https://github.com/idastambuk)
- **DataFrame:** Add optional unique id definition. [#80428](https://github.com/grafana/grafana/issues/80428), [@aocenas](https://github.com/aocenas)
- **Canvas:** Add element snapping and alignment. [#80407](https://github.com/grafana/grafana/issues/80407), [@nmarrs](https://github.com/nmarrs)
- **Logs:** Add show context to dashboard panel. [#80403](https://github.com/grafana/grafana/issues/80403), [@svennergr](https://github.com/svennergr)
- **Canvas:** Support context menu in panel edit mode. [#80335](https://github.com/grafana/grafana/issues/80335), [@nmarrs](https://github.com/nmarrs)
- **VizTooltip:** Add sizing options. [#80306](https://github.com/grafana/grafana/issues/80306), [@Develer](https://github.com/Develer)
- **Plugins:** Parse defaultValues correctly for nested options. [#80302](https://github.com/grafana/grafana/issues/80302), [@oshirohugo](https://github.com/oshirohugo)
- **Geomap:** Support geojson styling properties. [#80272](https://github.com/grafana/grafana/issues/80272), [@drew08t](https://github.com/drew08t)
- **Runtime:** Add property for disabling caching. [#80245](https://github.com/grafana/grafana/issues/80245), [@aangelisc](https://github.com/aangelisc)
- **Alerting:** Log scheduler maxAttempts, guard against invalid retry counts, log retry errors. [#80234](https://github.com/grafana/grafana/issues/80234), [@alexweav](https://github.com/alexweav)
- **Alerting:** Improve integration with dashboards. [#80201](https://github.com/grafana/grafana/issues/80201), [@konrad147](https://github.com/konrad147)
- **Transformations:** Use an explicit join seperator when converting from an array to string field. [#80169](https://github.com/grafana/grafana/issues/80169), [@ryantxu](https://github.com/ryantxu)
- **Build:** Update plugin IDs list in build and release process. [#80160](https://github.com/grafana/grafana/issues/80160), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **NestedFolders:** Support Shared with me folder for showing items you've been granted access to. [#80141](https://github.com/grafana/grafana/issues/80141), [@joshhunt](https://github.com/joshhunt)
- **Log Context:** Add highlighted words to log rows. [#80119](https://github.com/grafana/grafana/issues/80119), [@svennergr](https://github.com/svennergr)
- **Tempo:** Add `}` when `{` is inserted automatically. [#80113](https://github.com/grafana/grafana/issues/80113), [@harrymaurya05](https://github.com/harrymaurya05)
- **Time Range:** Copy-paste Time Range. [#80107](https://github.com/grafana/grafana/issues/80107), [@harisrozajac](https://github.com/harisrozajac)
- **PanelContext:** Remove deprecated onSplitOpen. [#80087](https://github.com/grafana/grafana/issues/80087), [@harisrozajac](https://github.com/harisrozajac)
- **Docs:** Add HAProxy rewrite information considering `serve_from_sub_path` setting. [#80062](https://github.com/grafana/grafana/issues/80062), [@simPod](https://github.com/simPod)
- **Table:** Keep expanded rows persistent when data changes if it has unique ID. [#80031](https://github.com/grafana/grafana/issues/80031), [@aocenas](https://github.com/aocenas)
- **SSO Config:** Add generic OAuth. [#79972](https://github.com/grafana/grafana/issues/79972), [@Clarity-89](https://github.com/Clarity-89)
- **FeatureFlags:** Remove the unsupported/undocumented option to read flags from a file. [#79959](https://github.com/grafana/grafana/issues/79959), [@ryantxu](https://github.com/ryantxu)
- **Transformations:** Add Group to Nested Tables Transformation. [#79952](https://github.com/grafana/grafana/issues/79952), [@codeincarnate](https://github.com/codeincarnate)
- **Cloudwatch Metrics:** Adjust error handling. [#79911](https://github.com/grafana/grafana/issues/79911), [@idastambuk](https://github.com/idastambuk)
- **Tempo:** Decouple Tempo from Grafana core. [#79888](https://github.com/grafana/grafana/issues/79888), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Table Panel:** Filter column values with operators or expressions. [#79853](https://github.com/grafana/grafana/issues/79853), [@ahuarte47](https://github.com/ahuarte47)
- **Chore:** Generate shorter UIDs. [#79843](https://github.com/grafana/grafana/issues/79843), [@ryantxu](https://github.com/ryantxu)
- **Alerting:** MuteTiming service return errutil + GetTiming by name. [#79772](https://github.com/grafana/grafana/issues/79772), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Azure Monitor:** Add select all subscription option for ARG queries. [#79582](https://github.com/grafana/grafana/issues/79582), [@alyssabull](https://github.com/alyssabull)
- **Alerting:** Enable sending notifications to a specific topic on Telegram. [#79546](https://github.com/grafana/grafana/issues/79546), [@th0th](https://github.com/th0th)
- **Logs Panel:** Table UI - Reordering table columns via drag-and-drop. [#79536](https://github.com/grafana/grafana/issues/79536), [@gtk-grafana](https://github.com/gtk-grafana)
- **Cloudwatch:** Add AWS/EMRServerless and AWS/KafkaConnect Metrics . [#79532](https://github.com/grafana/grafana/issues/79532), [@DugeraProve](https://github.com/DugeraProve)
- **Transformations:** Move transformation help to drawer component. [#79247](https://github.com/grafana/grafana/issues/79247), [@codeincarnate](https://github.com/codeincarnate)
- **Stat:** Support no value in spark line. [#78986](https://github.com/grafana/grafana/issues/78986), [@FOWind](https://github.com/FOWind)
- **NodeGraph:** Use layered layout instead of force based layout. [#78957](https://github.com/grafana/grafana/issues/78957), [@aocenas](https://github.com/aocenas)
- **Alerting:** Create alertingQueryOptimization feature flag for alert query optimization. [#78932](https://github.com/grafana/grafana/issues/78932), [@JacobsonMT](https://github.com/JacobsonMT)
- **Dashboard:** New EmbeddedDashboard runtime component . [#78916](https://github.com/grafana/grafana/issues/78916), [@torkelo](https://github.com/torkelo)
- **Alerting:** Show warning when query optimized. [#78751](https://github.com/grafana/grafana/issues/78751), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Add support for TTL for pushover for Mimir Alertmanager. [#78687](https://github.com/grafana/grafana/issues/78687), [@gillesdemey](https://github.com/gillesdemey)
- **Grafana/ui:** Enable removing values in multiselect opened state. [#78662](https://github.com/grafana/grafana/issues/78662), [@FOWind](https://github.com/FOWind)
- **SQL datasources:** Consistent interval handling. [#78517](https://github.com/grafana/grafana/issues/78517), [@gabor](https://github.com/gabor)
- **Alerting:** During legacy migration reduce the number of created silences. [#78505](https://github.com/grafana/grafana/issues/78505), [@JacobsonMT](https://github.com/JacobsonMT)
- **UI:** New share button and toolbar reorganize. [#77563](https://github.com/grafana/grafana/issues/77563), [@evictorero](https://github.com/evictorero)
- **Alerting:** Update rule API to address folders by UID. [#74600](https://github.com/grafana/grafana/issues/74600), [@papagian](https://github.com/papagian)
- **Reports:** Add uid column to the database. (Enterprise)
- **Plugins:** Add metrics for cloud plugin install. (Enterprise)
- **RBAC:** Make seeding resilient to failed plugin loading. (Enterprise)
- **Plugins:** Support disabling caching at a plugin instance level. (Enterprise)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#82914](https://github.com/grafana/grafana/issues/82914), [@volcanonoodle](https://github.com/volcanonoodle)
- **LibraryPanels/RBAC:** Fix issue where folder scopes weren't being correctly inherited. [#82700](https://github.com/grafana/grafana/issues/82700), [@kaydelaney](https://github.com/kaydelaney)
- **Table Panel:** Fix display of ad-hoc filter actions. [#82442](https://github.com/grafana/grafana/issues/82442), [@codeincarnate](https://github.com/codeincarnate)
- **Loki:** Update `@grafana/lezer-logql` to `0.2.3` containing fix for ip label name. [#82378](https://github.com/grafana/grafana/issues/82378), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix slack double pound and email summary. [#82333](https://github.com/grafana/grafana/issues/82333), [@gillesdemey](https://github.com/gillesdemey)
- **Elasticsearch:** Fix resource calls for paths that include `:`. [#82327](https://github.com/grafana/grafana/issues/82327), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Return provenance of notification templates. [#82274](https://github.com/grafana/grafana/issues/82274), [@julienduchesne](https://github.com/julienduchesne)
- **LibraryPanels:** Fix issue with repeated library panels. [#82255](https://github.com/grafana/grafana/issues/82255), [@kaydelaney](https://github.com/kaydelaney)
- **Loki:** Fix fetching of values for label if no previous equality operator. [#82251](https://github.com/grafana/grafana/issues/82251), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix data races and improve testing. [#81994](https://github.com/grafana/grafana/issues/81994), [@diegommm](https://github.com/diegommm)
- **chore:** Fix typo in GraphTresholdsStyleMode enum. [#81960](https://github.com/grafana/grafana/issues/81960), [@paulJonesCalian](https://github.com/paulJonesCalian)
- **CloudWatch:** Fix code editor not resizing on mount when content height is &gt; 200px. [#81911](https://github.com/grafana/grafana/issues/81911), [@kevinwcyu](https://github.com/kevinwcyu)
- **FieldOptions:** Revert scalable unit option as we already support this via custom prefix/suffixes . [#81893](https://github.com/grafana/grafana/issues/81893), [@torkelo](https://github.com/torkelo)
- **Browse Dashboards:** Imported dashboards now display immediately in the dashboard list. [#81819](https://github.com/grafana/grafana/issues/81819), [@ashharrison90](https://github.com/ashharrison90)
- **Elasticsearch:** Set middlewares from Grafana's `httpClientProvider`. [#81814](https://github.com/grafana/grafana/issues/81814), [@svennergr](https://github.com/svennergr)
- **Folders:** Fix failure to update folder in SQLite. [#81795](https://github.com/grafana/grafana/issues/81795), [@papagian](https://github.com/papagian)
- **Plugins:** Never disable add new data source for core plugins. [#81774](https://github.com/grafana/grafana/issues/81774), [@oshirohugo](https://github.com/oshirohugo)
- **Alerting:** Fixes for pending period. [#81718](https://github.com/grafana/grafana/issues/81718), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix editing group of nested folder. [#81665](https://github.com/grafana/grafana/issues/81665), [@gillesdemey](https://github.com/gillesdemey)
- **Plugins:** Don't auto prepend app sub url to plugin asset paths. [#81658](https://github.com/grafana/grafana/issues/81658), [@wbrowne](https://github.com/wbrowne)
- **Alerting:** Fix inconsistent AM raw config when applied via sync vs API. [#81655](https://github.com/grafana/grafana/issues/81655), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Fix support check for export with modifications. [#81602](https://github.com/grafana/grafana/issues/81602), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix selecting empty contact point value for notification policy inheritance. [#81482](https://github.com/grafana/grafana/issues/81482), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix child provisioned polices not being rendered as provisioned. [#81449](https://github.com/grafana/grafana/issues/81449), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Tempo:** Fix durations in TraceQL. [#81418](https://github.com/grafana/grafana/issues/81418), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Logs:** Fix toggleable filters to be applied for specified query. [#81368](https://github.com/grafana/grafana/issues/81368), [@ivanahuckova](https://github.com/ivanahuckova)
- **Loki:** Fix label not being added to all subexpressions. [#81360](https://github.com/grafana/grafana/issues/81360), [@svennergr](https://github.com/svennergr)
- **Loki/Elastic:** Assert queryfix value to always be string. [#81349](https://github.com/grafana/grafana/issues/81349), [@svennergr](https://github.com/svennergr)
- **Tempo:** Add query ref in the query editor. [#81343](https://github.com/grafana/grafana/issues/81343), [@joey-grafana](https://github.com/joey-grafana)
- **Transformations:** Use the display name of the original y field for the predicted field of the regression analysis transformation. [#81332](https://github.com/grafana/grafana/issues/81332), [@oscarkilhed](https://github.com/oscarkilhed)
- **Field:** Fix perf regression in getUniqueFieldName(). [#81323](https://github.com/grafana/grafana/issues/81323), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Fix scheduler to group folders by the unique key (orgID and UID). [#81303](https://github.com/grafana/grafana/issues/81303), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Fix migration edge-case race condition for silences. [#81206](https://github.com/grafana/grafana/issues/81206), [@JacobsonMT](https://github.com/JacobsonMT)
- **Explore:** Set default time range to now-1h. [#81135](https://github.com/grafana/grafana/issues/81135), [@ifrost](https://github.com/ifrost)
- **Elasticsearch:** Fix URL creation and allowlist for `/_mapping` requests. [#80970](https://github.com/grafana/grafana/issues/80970), [@svennergr](https://github.com/svennergr)
- **Postgres:** Handle single quotes in table names in the query editor. [#80951](https://github.com/grafana/grafana/issues/80951), [@gabor](https://github.com/gabor)
- **Folders:** Fix creating/updating a folder whose title has leading and trailing spaces. [#80909](https://github.com/grafana/grafana/issues/80909), [@papagian](https://github.com/papagian)
- **Loki:** Fix missing timerange in query builder values request. [#80829](https://github.com/grafana/grafana/issues/80829), [@svennergr](https://github.com/svennergr)
- **Elasticsearch:** Fix showing of logs when `__source` is log message field. [#80804](https://github.com/grafana/grafana/issues/80804), [@ivanahuckova](https://github.com/ivanahuckova)
- **Pyroscope:** Fix stale value for query in query editor. [#80753](https://github.com/grafana/grafana/issues/80753), [@joey-grafana](https://github.com/joey-grafana)
- **Stat:** Fix data links that refer to fields. [#80693](https://github.com/grafana/grafana/issues/80693), [@ajwerner](https://github.com/ajwerner)
- **RBAC:** Clean up data source permissions after data source deletion. [#80654](https://github.com/grafana/grafana/issues/80654), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Fix MuteTiming Get API to return provenance status. [#80494](https://github.com/grafana/grafana/issues/80494), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Tempo:** Fix regression caused by #79938. [#80465](https://github.com/grafana/grafana/issues/80465), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Alerting:** Fix preview getting the correct queries from the form. [#80458](https://github.com/grafana/grafana/issues/80458), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix firing alerts title when showing active in Insights panel. [#80414](https://github.com/grafana/grafana/issues/80414), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Postgres:** Fix enabling the socks proxy. [#80361](https://github.com/grafana/grafana/issues/80361), [@gabor](https://github.com/gabor)
- **Alerting:** Fix group filter. [#80358](https://github.com/grafana/grafana/issues/80358), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Increase size of kvstore value type for MySQL to LONGTEXT. [#80331](https://github.com/grafana/grafana/issues/80331), [@JacobsonMT](https://github.com/JacobsonMT)
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80329](https://github.com/grafana/grafana/issues/80329), [@alexweav](https://github.com/alexweav)
- **Loki:** Fix bug duplicating parsed labels across multiple log lines. [#80292](https://github.com/grafana/grafana/issues/80292), [@svennergr](https://github.com/svennergr)
- **Alerting:** Fix NoData & Error alerts not resolving when rule is reset. [#80184](https://github.com/grafana/grafana/issues/80184), [@JacobsonMT](https://github.com/JacobsonMT)
- **Loki:** Fix metric time splitting to split starting with the start time. [#80085](https://github.com/grafana/grafana/issues/80085), [@svennergr](https://github.com/svennergr)
- **Rendering:** Fix streaming panels always reaching timeout. [#80022](https://github.com/grafana/grafana/issues/80022), [@AgnesToulet](https://github.com/AgnesToulet)
- **Plugins:** Fix colon in CallResource URL returning an error when creating plugin resource request. [#79746](https://github.com/grafana/grafana/issues/79746), [@GiedriusS](https://github.com/GiedriusS)
- **PDF:** Fix initialization when SMTP is disabled. (Enterprise)
- **PDF:** Fix repeated panels placement issue. (Enterprise)
- **Report CSV:** Fix timeout with streaming panels. (Enterprise)
- **RBAC:** Avoid repopulating removed basic role permissions if the permission scope has changed. (Enterprise)
### Breaking changes
We're adding a between the response of the ID token HD parameter and the list of allowed domains. This feature can be disabled through the configuration toggle `validate_hd `. Anyone using the legacy Google OAuth configuration should disable this validation if the ID Token response doesn't have the HD parameter. Issue [#83726](https://github.com/grafana/grafana/issues/83726)
If you use an automated provisioning (eg, Terraform) for custom roles, and have provisioned a role that includes permission with action `alert.instances:read` and some scope, you will need to update the permission in your provisioning files by removing the scope. Issue [#82202](https://github.com/grafana/grafana/issues/82202)
**The following breaking change occurs only when feature flag `nestedFolders` is enabled.**
If the folder title contains the symbol `/` (forward-slash) the notifications created from the rules that are placed in that folder will contain an escape sequence for that symbol in the label `grafana_folder`.
For example, the folder title is `Grafana / Folder`. Currently the label `grafana_folder` will contain the title as it is. If PR is merged - the label value will be `Grafana \/ Folder`.
This can break notifications if notification policies have matches that match that label and folder. Issue [#81214](https://github.com/grafana/grafana/issues/81214)
`PanelContext.onSplitOpen` is removed. In the context of Explore, plugins should use `field.getLinks` to get a list of data link models. Issue [#80087](https://github.com/grafana/grafana/issues/80087)
The unstable alert rule API has been changed and now expects a folder UID instead of the folder title as namespace path parameter.
I addition to this, the responses that used to return the folder title now return `<folder parent UID>/<folder title>` to uniquely identify them.
Any consumers of the specific API should be appropriately adapted. Issue [#74600](https://github.com/grafana/grafana/issues/74600)
### Plugin development fixes & changes
- **Grafana/UI:** Add new Splitter component . [#82357](https://github.com/grafana/grafana/issues/82357), [@torkelo](https://github.com/torkelo)
<!-- 10.4.0 END -->
<!-- 10.3.4 START -->
# 10.3.4 (2024-03-06)
### Features and enhancements
- **Chore:** Improve domain validation for Google OAuth - Backport 83229 to v10.3.x. [#83725](https://github.com/grafana/grafana/issues/83725), [@linoman](https://github.com/linoman)
### Bug fixes
- **LDAP:** Fix LDAP users authenticated via auth proxy not being able to use LDAP active sync. [#83750](https://github.com/grafana/grafana/issues/83750), [@Jguer](https://github.com/Jguer)
- **Tempo:** Add template variable interpolation for filters (#83213). [#83706](https://github.com/grafana/grafana/issues/83706), [@joey-grafana](https://github.com/joey-grafana)
- **Elasticsearch:** Fix adhoc filters not applied in frontend mode. [#83596](https://github.com/grafana/grafana/issues/83596), [@svennergr](https://github.com/svennergr)
- **Dashboards:** Fixes issue where panels would not refresh if time range updated while in panel view mode. [#83525](https://github.com/grafana/grafana/issues/83525), [@kaydelaney](https://github.com/kaydelaney)
- **Auth:** Fix email verification bypass when using basic authentication. [#83484](https://github.com/grafana/grafana/issues/83484)
- **AuthProxy:** Invalidate previous cached item for user when changes are made to any header. [#83203](https://github.com/grafana/grafana/issues/83203), [@klesh](https://github.com/klesh)
- **LibraryPanels/RBAC:** Fix issue where folder scopes weren't being correctly inherited. [#82902](https://github.com/grafana/grafana/issues/82902), [@kaydelaney](https://github.com/kaydelaney)
- **LibraryPanels:** Fix issue with repeated library panels. [#82259](https://github.com/grafana/grafana/issues/82259), [@kaydelaney](https://github.com/kaydelaney)
- **Plugins:** Don't auto prepend app sub url to plugin asset paths. [#82147](https://github.com/grafana/grafana/issues/82147), [@wbrowne](https://github.com/wbrowne)
- **Elasticsearch:** Set middlewares from Grafana's `httpClientProvider`. [#81929](https://github.com/grafana/grafana/issues/81929), [@svennergr](https://github.com/svennergr)
- **Folders:** Fix failure to update folder in SQLite. [#81862](https://github.com/grafana/grafana/issues/81862), [@papagian](https://github.com/papagian)
- **Loki/Elastic:** Assert queryfix value to always be string. [#81463](https://github.com/grafana/grafana/issues/81463), [@svennergr](https://github.com/svennergr)
### Breaking changes
We're adding a between the response of the ID token HD parameter and the list of allowed domains. This feature can be disabled through the configuration toggle `validate_hd `. Anyone using the legacy Google OAuth configuration should disable this validation if the ID Token response doesn't have the HD parameter. Issue [#83725](https://github.com/grafana/grafana/issues/83725)
<!-- 10.3.4 END -->
<!-- 10.3.3 START -->
# 10.3.3 (2024-02-02)
@@ -113,6 +357,24 @@ Users who have InfluxDB datasource configured with SQL querying language must up
Removes `NamespaceID` from responses of all GET routes underneath the path `/api/ruler/grafana/api/v1/rules` - 3 affected endpoints. All affected routes are not in the publicly documented or `stable` marked portion of the ngalert API. This only breaks clients who are directly using the unstable portion of the API. Such clients should use `NamespaceUID` rather than `NamespaceID` to identify namespaces. Issue [#79359](https://github.com/grafana/grafana/issues/79359)
<!-- 10.3.0 END -->
<!-- 10.2.5 START -->
# 10.2.5 (2024-03-06)
### Features and enhancements
- **Alerting:** Add setting to distribute rule group evaluations over time. [#81404](https://github.com/grafana/grafana/issues/81404), [@alexweav](https://github.com/alexweav)
### Bug fixes
- **Cloudwatch:** Fix errors while loading queries/datasource on Safari. [#83842](https://github.com/grafana/grafana/issues/83842), [@kevinwcyu](https://github.com/kevinwcyu)
- **Elasticsearch:** Fix adhoc filters not applied in frontend mode. [#83595](https://github.com/grafana/grafana/issues/83595), [@svennergr](https://github.com/svennergr)
- **Auth:** Fix email verification bypass when using basic authentication. [#83489](https://github.com/grafana/grafana/issues/83489)
- **Alerting:** Fix queries and expressions in rule view details. [#82875](https://github.com/grafana/grafana/issues/82875), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Plugins:** Don't auto prepend app sub url to plugin asset paths. [#82146](https://github.com/grafana/grafana/issues/82146), [@wbrowne](https://github.com/wbrowne)
- **Folders:** Fix failure to update folder in SQLite. [#81861](https://github.com/grafana/grafana/issues/81861), [@papagian](https://github.com/papagian)
<!-- 10.2.5 END -->
<!-- 10.2.4 START -->
# 10.2.4 (2024-01-29)
@@ -238,7 +500,7 @@ Removes `NamespaceID` from responses of all GET routes underneath the path `/api
- **Alerting:** Show receiver in groups view to avoid duplication in the list. [#77109](https://github.com/grafana/grafana/issues/77109), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Allow more time before Alertmanager expire-resolves alerts. [#77094](https://github.com/grafana/grafana/issues/77094), [@alexweav](https://github.com/alexweav)
- **Tempo:** Add new structural operators. [#77056](https://github.com/grafana/grafana/issues/77056), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **ServiceAccount:** Add pagination to service accout table. [#77044](https://github.com/grafana/grafana/issues/77044), [@kalleep](https://github.com/kalleep)
- **ServiceAccount:** Add pagination to service account table. [#77044](https://github.com/grafana/grafana/issues/77044), [@kalleep](https://github.com/kalleep)
- **Transformations:** Cumulative and window modes for `Add field from calculation`. [#77029](https://github.com/grafana/grafana/issues/77029), [@mdvictor](https://github.com/mdvictor)
- **Plugins:** Allow disabling angular deprecation UI for specific plugins. [#77026](https://github.com/grafana/grafana/issues/77026), [@xnyo](https://github.com/xnyo)
- **Stat:** Add panel option to control wide layout. [#77018](https://github.com/grafana/grafana/issues/77018), [@nmarrs](https://github.com/nmarrs)
@@ -346,7 +608,7 @@ Removes `NamespaceID` from responses of all GET routes underneath the path `/api
- **Organize fields transformation:** Fix re-ordering of fields using drag and drop. [#77172](https://github.com/grafana/grafana/issues/77172), [@adela-almasan](https://github.com/adela-almasan)
- **Bug fix:** Correctly set permissions on provisioned dashboards. [#77155](https://github.com/grafana/grafana/issues/77155), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **InfluxDB:** Fix adhoc filter calls by properly checking optional parameter in metricFindQuery. [#77113](https://github.com/grafana/grafana/issues/77113), [@itsmylife](https://github.com/itsmylife)
- **Alerting:** Fix NoRulesSplash being rendered for some seconds, fater creating a rule. [#77048](https://github.com/grafana/grafana/issues/77048), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix NoRulesSplash being rendered for some seconds, faster creating a rule. [#77048](https://github.com/grafana/grafana/issues/77048), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **RBAC:** Allow scoping access to root level dashboards. [#76987](https://github.com/grafana/grafana/issues/76987), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Dont show 1 firing series when no data in Expressions PreviewSummary. [#76981](https://github.com/grafana/grafana/issues/76981), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **InfluxDB:** Fix aliasing with $measurement or $m on backend mode. [#76917](https://github.com/grafana/grafana/issues/76917), [@itsmylife](https://github.com/itsmylife)
@@ -719,7 +981,7 @@ For the existing backend mode users who have table visualization might see some
- **Pyroscope:** Fix error when no profile types are returned. [#75143](https://github.com/grafana/grafana/issues/75143), [@aocenas](https://github.com/aocenas)
- **BarChart:** Axes centered zero, borders, and colors. [#75136](https://github.com/grafana/grafana/issues/75136), [@leeoniya](https://github.com/leeoniya)
- **Plugins:** Refresh plugin info after installation. [#75074](https://github.com/grafana/grafana/issues/75074), [@oshirohugo](https://github.com/oshirohugo)
- **LDAP:** FIX Enable users on successfull login . [#75073](https://github.com/grafana/grafana/issues/75073), [@gamab](https://github.com/gamab)
- **LDAP:** FIX Enable users on successful login . [#75073](https://github.com/grafana/grafana/issues/75073), [@gamab](https://github.com/gamab)
- **XYChart:** Fix numerous axis options. [#75044](https://github.com/grafana/grafana/issues/75044), [@leeoniya](https://github.com/leeoniya)
- **Trace View:** Remove "deployment.environment" default traces 2 logs tag. [#74986](https://github.com/grafana/grafana/issues/74986), [@domasx2](https://github.com/domasx2)
- **Snapshots:** Use appUrl on snapshot list page. [#74944](https://github.com/grafana/grafana/issues/74944), [@evictorero](https://github.com/evictorero)
@@ -789,6 +1051,15 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **Drawer:** Make content scroll by default. [#75287](https://github.com/grafana/grafana/issues/75287), [@ashharrison90](https://github.com/ashharrison90)
<!-- 10.2.0 END -->
<!-- 10.1.8 START -->
# 10.1.8 (2024-03-06)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#83492](https://github.com/grafana/grafana/issues/83492)
<!-- 10.1.8 END -->
<!-- 10.1.7 START -->
# 10.1.7 (2024-01-29)
@@ -816,7 +1087,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **Loki:** Cache extracted labels. [#75905](https://github.com/grafana/grafana/issues/75905), [@gtk-grafana](https://github.com/gtk-grafana)
- **DataSourcePicker:** Disable autocomplete for the search input . [#75900](https://github.com/grafana/grafana/issues/75900), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Plugins:** Refresh plugin info after installation. [#75225](https://github.com/grafana/grafana/issues/75225), [@oshirohugo](https://github.com/oshirohugo)
- **LDAP:** FIX Enable users on successfull login . [#75176](https://github.com/grafana/grafana/issues/75176), [@gamab](https://github.com/gamab)
- **LDAP:** FIX Enable users on successful login . [#75176](https://github.com/grafana/grafana/issues/75176), [@gamab](https://github.com/gamab)
- **Loki:** Fix filters not being added with multiple expressions and parsers. [#75172](https://github.com/grafana/grafana/issues/75172), [@svennergr](https://github.com/svennergr)
- **Recorded Queries:** Add org isolation (remote write target per org), and fix cross org Delete/List. (Enterprise)
- **Auditing and UsageInsights:** FIX Loki configuration to use proxy env variables. (Enterprise)
@@ -924,7 +1195,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **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)
- **Transformations:** 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)
@@ -991,7 +1262,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **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)
- **Plugins:** Enable feature toggles for long running queries by default. [#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)
@@ -1017,7 +1288,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **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)
- **Alerting:** Make QueryEditor not collapsible. [#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)
@@ -1299,6 +1570,15 @@ Starting with 10.0, changing the folder UID is deprecated. It will be removed in
- **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.12 START -->
# 10.0.12 (2024-03-06)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#83493](https://github.com/grafana/grafana/issues/83493)
<!-- 10.0.12 END -->
<!-- 10.0.11 START -->
# 10.0.11 (2024-01-29)
@@ -1840,6 +2120,20 @@ The `database` field has been deprecated in the Elasticsearch datasource provisi
- **InteractiveTable:** Updated design and minor tweak to Correlactions page. [#66443](https://github.com/grafana/grafana/issues/66443), [@torkelo](https://github.com/torkelo)
<!-- 10.0.0-preview END -->
<!-- 9.5.17 START -->
# 9.5.17 (2024-03-05)
### Features and enhancements
- Bump go-git to v5.11.0. [#83711](https://github.com/grafana/grafana/issues/83711), [@papagian](https://github.com/papagian)
- **Plugins:** Bump otelgrpc instrumentation to 0.47.0. [#83674](https://github.com/grafana/grafana/issues/83674), [@wbrowne](https://github.com/wbrowne)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#83494](https://github.com/grafana/grafana/issues/83494)
<!-- 9.5.17 END -->
<!-- 9.5.16 START -->
# 9.5.16 (2024-01-29)
@@ -1871,7 +2165,7 @@ The `database` field has been deprecated in the Elasticsearch datasource provisi
- **Alerting:** Fix state manager to not keep datasource_uid and ref_id labels in state after Error. [#77391](https://github.com/grafana/grafana/issues/77391), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Transformations:** Config overrides being lost when config from query transform is applied. [#75347](https://github.com/grafana/grafana/issues/75347), [@IbrahimCSAE](https://github.com/IbrahimCSAE)
- **LDAP:** FIX Enable users on successfull login . [#75192](https://github.com/grafana/grafana/issues/75192), [@gamab](https://github.com/gamab)
- **LDAP:** FIX Enable users on successful login . [#75192](https://github.com/grafana/grafana/issues/75192), [@gamab](https://github.com/gamab)
- **Auditing and UsageInsights:** FIX Loki configuration to use proxy env variables. (Enterprise)
<!-- 9.5.14 END -->

View File

@@ -1,9 +1,9 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=alpine:3.18.5
ARG JS_IMAGE=node:20-alpine3.18
ARG BASE_IMAGE=alpine:3.19.1
ARG JS_IMAGE=node:20-alpine
ARG JS_PLATFORM=linux/amd64
ARG GO_IMAGE=golang:1.21.6-alpine3.18
ARG GO_IMAGE=golang:1.21.8-alpine
ARG GO_SRC=go-builder
ARG JS_SRC=js-builder
@@ -20,6 +20,8 @@ COPY packages packages
COPY plugins-bundled plugins-bundled
COPY public public
RUN apk add --no-cache make build-base python3
RUN yarn install --immutable
COPY tsconfig.json .eslintrc .editorconfig .browserslistrc .prettierrc.js ./
@@ -38,6 +40,9 @@ ARG GO_BUILD_TAGS="oss"
ARG WIRE_TAGS="oss"
ARG BINGO="true"
# This is required to allow building on arm64 due to https://github.com/golang/go/issues/22040
RUN apk add --no-cache binutils-gold
# Install build dependencies
RUN if grep -i -q alpine /etc/issue; then \
apk add --no-cache gcc g++ make git; \
@@ -50,6 +55,9 @@ COPY .bingo .bingo
# Include vendored dependencies
COPY pkg/util/xorm/go.* pkg/util/xorm/
COPY pkg/apiserver/go.* pkg/apiserver/
COPY pkg/apimachinery/go.* pkg/apimachinery/
COPY pkg/promlib/go.* pkg/promlib/
RUN go mod download
RUN if [[ "$BINGO" = "true" ]]; then \

View File

@@ -173,7 +173,7 @@ Supermajority votes must be called explicitly in a separate thread on the approp
Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
A vote on a single proposal is considered successful if at least two thirds of those eligible to vote vote in favor.
A vote on a single proposal is considered successful if at least two thirds of those eligible to vote in favor.
If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from at least two thirds of those eligible to vote. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.

View File

@@ -2,4 +2,4 @@
List of previous team members that have had a big impact on the company or the product and contributed during a long period of time.
- Hugo Häggmark ([School of applied technology](https://salt.study))
- Hugo Häggmark ([Björn Lundén](https://www.bjornlunden.se/))

View File

@@ -18,7 +18,7 @@ packaging/
kinds/
pkg/kinds/
pkg/kindsys/
pkg/registry/corekind/
pkg/registry/schemas/
grafana-mixin/
public/app/plugins/datasource/tempo
public/app/features/explore/TraceView/components

View File

@@ -10,7 +10,7 @@ include .bingo/Variables.mk
.PHONY: all deps-go deps-js deps build-go build-backend build-server build-cli build-js build build-docker-full build-docker-full-ubuntu lint-go golangci-lint test-go test-js gen-ts test run run-frontend clean devenv devenv-down protobuf drone help gen-go gen-cue fix-cue
GO = go
GO_FILES ?= ./pkg/...
GO_FILES ?= ./pkg/... ./pkg/apiserver/... ./pkg/apimachinery/... ./pkg/promlib/...
SH_FILES ?= $(shell find ./scripts -name *.sh)
GO_BUILD_FLAGS += $(if $(GO_BUILD_DEV),-dev)
GO_BUILD_FLAGS += $(if $(GO_BUILD_TAGS),-build-tags=$(GO_BUILD_TAGS))
@@ -45,12 +45,12 @@ $(NGALERT_SPEC_TARGET):
$(MERGED_SPEC_TARGET): swagger-oss-gen swagger-enterprise-gen $(NGALERT_SPEC_TARGET) $(SWAGGER) ## Merge generated and ngalert API specs
# known conflicts DsPermissionType, AddApiKeyCommand, Json, Duration (identical models referenced by both specs)
$(SWAGGER) mixin $(SPEC_TARGET) $(ENTERPRISE_SPEC_TARGET) $(NGALERT_SPEC_TARGET) --ignore-conflicts -o $(MERGED_SPEC_TARGET)
$(SWAGGER) mixin -q $(SPEC_TARGET) $(ENTERPRISE_SPEC_TARGET) $(NGALERT_SPEC_TARGET) --ignore-conflicts -o $(MERGED_SPEC_TARGET)
swagger-oss-gen: $(SWAGGER) ## Generate API Swagger specification
@echo "re-generating swagger for OSS"
rm -f $(SPEC_TARGET)
SWAGGER_GENERATE_EXTENSION=false $(SWAGGER) generate spec -m -w pkg/server -o $(SPEC_TARGET) \
SWAGGER_GENERATE_EXTENSION=false $(SWAGGER) generate spec -q -m -w pkg/server -o $(SPEC_TARGET) \
-x "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" \
-x "github.com/prometheus/alertmanager" \
-i pkg/api/swagger_tags.json \
@@ -66,7 +66,7 @@ else
swagger-enterprise-gen: $(SWAGGER) ## Generate API Swagger specification
@echo "re-generating swagger for enterprise"
rm -f $(ENTERPRISE_SPEC_TARGET)
SWAGGER_GENERATE_EXTENSION=false $(SWAGGER) generate spec -m -w pkg/server -o $(ENTERPRISE_SPEC_TARGET) \
SWAGGER_GENERATE_EXTENSION=false $(SWAGGER) generate spec -q -m -w pkg/server -o $(ENTERPRISE_SPEC_TARGET) \
-x "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" \
-x "github.com/prometheus/alertmanager" \
-i pkg/api/swagger_tags.json \
@@ -77,7 +77,7 @@ endif
swagger-gen: gen-go $(MERGED_SPEC_TARGET) swagger-validate
swagger-validate: $(MERGED_SPEC_TARGET) $(SWAGGER) ## Validate API spec
$(SWAGGER) validate $(<)
$(SWAGGER) validate --skip-warnings $(<)
swagger-clean:
rm -f $(SPEC_TARGET) $(MERGED_SPEC_TARGET) $(OAPI_SPEC_TARGET)
@@ -103,10 +103,8 @@ openapi3-gen: swagger-gen ## Generates OpenApi 3 specs from the Swagger 2 alread
##@ Building
gen-cue: ## Do all CUE/Thema code generation
@echo "generate code from .cue files"
go generate ./pkg/plugins/plugindef
go generate ./kinds/gen.go
go generate ./public/app/plugins/gen.go
go generate ./pkg/kindsysreport/codegen/report.go
gen-go: $(WIRE)
@echo "generate go files"
@@ -168,7 +166,8 @@ test-go: test-go-unit test-go-integration
.PHONY: test-go-unit
test-go-unit: ## Run unit tests for backend with flags.
@echo "test backend unit tests"
$(GO) test -short -covermode=atomic -timeout=30m ./pkg/...
go list -f '{{.Dir}}/...' -m | xargs \
$(GO) test -short -covermode=atomic -timeout=30m
.PHONY: test-go-integration
test-go-integration: ## Run integration tests for backend with flags.
@@ -256,7 +255,7 @@ build-docker-full-ubuntu: ## Build Docker image based on Ubuntu for development.
--build-arg COMMIT_SHA=$$(git rev-parse HEAD) \
--build-arg BUILD_BRANCH=$$(git rev-parse --abbrev-ref HEAD) \
--build-arg BASE_IMAGE=ubuntu:22.04 \
--build-arg GO_IMAGE=golang:1.21.6 \
--build-arg GO_IMAGE=golang:1.21.8 \
--tag grafana/grafana$(TAG_SUFFIX):dev-ubuntu \
$(DOCKER_BUILD_ARGS)
@@ -319,6 +318,7 @@ gen-ts:
# Use this make target to regenerate the configuration YAML files when
# you modify starlark files.
drone: $(DRONE)
bash scripts/drone/env-var-check.sh
$(DRONE) starlark --format
$(DRONE) lint .drone.yml --trusted
$(DRONE) --server https://drone.grafana.net sign --save grafana/grafana

View File

@@ -44,7 +44,7 @@ Once a PR is approved as per above, any team member MAY merge the PR.
## Backporting a PR
Critical bug fixes needed for a previous minor release should be backported to the respective release branches after coordinating with the delivery team.
Please see the [contibution guide](./contribute/merge-pull-request.md#should-the-pull-request-be-backported) for further details.
Please see the [contribution guide](./contribute/merge-pull-request.md#should-the-pull-request-be-backported) for further details.
# Release workflow

View File

@@ -9,10 +9,6 @@ app_mode = production
# instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty
instance_name = ${HOSTNAME}
# force migration will run migrations that might cause dataloss
# Deprecated, use clean_upgrade option in [unified_alerting.upgrade] instead.
force_migration = false
#################################### Paths ###############################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
@@ -94,6 +90,10 @@ read_timeout = 0
#exampleHeader1 = exampleValue1
#exampleHeader2 = exampleValue2
[environment]
# Sets whether the local file system is available for Grafana to use. Default is true for backward compatibility.
local_file_system_available = true
#################################### GRPC Server #########################
[grpc_server]
network = "tcp"
@@ -134,6 +134,9 @@ log_queries =
# For "mysql", use either "true", "false", or "skip-verify".
ssl_mode = disable
# For "postregs", use either "1" to enable or "0" to disable SNI
ssl_sni =
# Database drivers may support different transaction isolation levels.
# Currently, only "mysql" driver supports isolation levels.
# If the value is empty - driver's default isolation level is applied.
@@ -469,6 +472,9 @@ auto_assign_org_role = Viewer
# Require email validation before sign up completes
verify_email_enabled = false
# Redirect to default OrgId after login
login_default_org_id =
# Background text for the user field on the login page
login_hint = email or username
password_hint = password
@@ -496,6 +502,9 @@ editors_can_admin = false
# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
user_invite_max_lifetime_duration = 24h
# The duration in time a verification email, used to update the email address of a user, remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 1h (1 hour).
verification_email_max_lifetime_duration = 1h
# Enter a comma-separated list of usernames to hide them in the Grafana UI. These users are shown to Grafana admins and to themselves.
hidden_users =
@@ -679,6 +688,7 @@ token_url = https://oauth2.googleapis.com/token
api_url = https://openidconnect.googleapis.com/v1/userinfo
signout_redirect_url =
allowed_domains =
validate_hd = true
hosted_domain =
allowed_groups =
role_attribute_path =
@@ -827,7 +837,7 @@ enabled = false
header_name = X-WEBAUTH-USER
header_property = username
auto_sign_up = true
sync_ttl = 60
sync_ttl = 15
whitelist =
headers =
headers_encoded = false
@@ -930,6 +940,13 @@ workload_identity_token_file =
# Disabled by default, needs to be explicitly enabled
user_identity_enabled = false
# Specifies whether user identity authentication fallback credentials should be enabled in data sources
# Enabling this allows data source creators to provide fallback credentials for backend initiated requests
# e.g. alerting, recorded queries etc.
# Enabled by default, needs to be explicitly disabled
# Will not have any effect if user identity is disabled above
user_identity_fallback_credentials_enabled = true
# Override token URL for Azure Active Directory
# By default is the same as token URL configured for AAD authentication settings
user_identity_token_url =
@@ -1125,7 +1142,7 @@ alerting_rule_group_rules = 100
#################################### Unified Alerting ####################
[unified_alerting]
# Enable the Unified Alerting sub-system and interface. When enabled we'll migrate all of your alert rules and notification channels to the new system. New alert rules will be created and your notification channels will be converted into an Alertmanager configuration. Previous data is preserved to enable backwards compatibility but new data is removed when switching. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
# Enable the Alerting sub-system and interface.
enabled =
# Comma-separated list of organization IDs for which to disable unified alerting. Only supported if unified alerting is enabled.
@@ -1192,17 +1209,17 @@ ha_gossip_interval = 200ms
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
ha_push_pull_interval = 60s
# Enable or disable alerting rule execution. The alerting UI remains visible. This option has a legacy version in the `[alerting]` section that takes precedence.
# Enable or disable alerting rule execution. The alerting UI remains visible.
execute_alerts = true
# Alert evaluation timeout when fetching data from the datasource. This option has a legacy version in the `[alerting]` section that takes precedence.
# Alert evaluation timeout when fetching data from the datasource.
# The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
evaluation_timeout = 30s
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. The default value is 1.
max_attempts = 1
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time. This option has a legacy version in the `[alerting]` section that takes precedence.
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
min_interval = 10s
@@ -1292,6 +1309,10 @@ loki_basic_auth_username =
# Optional password for basic authentication on requests sent to Loki. Can be left blank.
loki_basic_auth_password =
# For "loki" only.
# Optional max query length for queries sent to Loki. Default is 721h which matches the default Loki value.
loki_max_query_length = 721h
[unified_alerting.state_history.external_labels]
# Optional extra labels to attach to outbound state history records or log streams.
# Any number of label key-value-pairs can be provided.
@@ -1299,12 +1320,16 @@ loki_basic_auth_password =
# ex.
# mylabelkey = mylabelvalue
[unified_alerting.upgrade]
# If set to true when upgrading from legacy alerting to Unified Alerting, grafana will first delete all existing
# Unified Alerting resources, thus re-upgrading all organizations from scratch. If false or unset, organizations that
# have previously upgraded will not lose their existing Unified Alerting data when switching between legacy and
# Unified Alerting. Should be kept false when not needed as it may cause unintended data-loss if left enabled.
clean_upgrade = false
[unified_alerting.state_history.annotations]
# Controls retention of annotations automatically created while evaluating alert rules.
# Alert state history backend must be configured to be annotations (see setting [unified_alerting.state_history].backend).
# Configures how long alert annotations are stored for. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Ex 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_age =
# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
max_annotations_to_keep =
# NOTE: this configuration options are not used yet.
[remote.alertmanager]
@@ -1328,43 +1353,6 @@ password =
sync_interval = 5m
#################################### Alerting ############################
[alerting]
# Enable the legacy alerting sub-system and interface. If Unified Alerting is already enabled and you try to go back to legacy alerting, all data that is part of Unified Alerting will be deleted. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
enabled =
# Makes it possible to turn off alert execution but alerting UI is visible
execute_alerts = true
# Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
error_or_timeout = alerting
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
nodata_or_nullvalues = no_data
# Alert notifications can include images, but rendering many images at the same time can overload the server
# This limit will protect the server from render overloading and make sure notifications are sent out quickly
concurrent_render_limit = 5
# Default setting for alert calculation timeout. Default value is 30
evaluation_timeout_seconds = 30
# Default setting for alert notification timeout. Default value is 30
notification_timeout_seconds = 30
# Default setting for max attempts to sending alert notifications. Default value is 3
max_attempts = 3
# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
min_interval_seconds = 1
# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as an duration. Ex 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_annotation_age =
# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
max_annotations_to_keep =
#################################### Annotations #########################
[annotations]
# Configures the batch size for the annotation clean-up job. This setting is used for dashboard, API, and alert annotations.
@@ -1568,6 +1556,12 @@ concurrent_render_request_limit = 30
# Default is 5m. This should be more than enough for most deployments.
# Change the value only if image rendering is failing and you see `Failed to get the render key from cache` in Grafana logs.
render_key_lifetime = 5m
# Default width for panel screenshot
default_image_width = 1000
# Default height for panel screenshot
default_image_height = 500
# Default scale for panel screenshot
default_image_scale = 1
[panels]
# here for to support old env variables, can remove after a few months
@@ -1820,3 +1814,8 @@ read_only_toggles =
[public_dashboards]
# Set to false to disable public dashboards
enabled = true
###################################### Cloud Migration ######################################
[cloud_migration]
# Set to true to enable target-side migration UI
is_target = false

View File

@@ -1,25 +0,0 @@
# # config file version
apiVersion: 1
# notifiers:
# - name: default-slack-temp
# type: slack
# org_name: Main Org.
# is_default: true
# uid: notifier1
# settings:
# recipient: "XXX"
# token: "xoxb"
# uploadImage: true
# url: https://slack.com
# - name: default-email
# type: email
# org_id: 1
# uid: notifier2
# is_default: false
# settings:
# addresses: example11111@example.com
# delete_notifiers:
# - name: default-slack-temp
# org_name: Main Org.
# uid: notifier1

View File

@@ -9,10 +9,6 @@
# instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty
;instance_name = ${HOSTNAME}
# force migration will run migrations that might cause dataloss
# Deprecated, use clean_upgrade option in [unified_alerting.upgrade] instead.
;force_migration = false
#################################### Paths ####################################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
@@ -124,6 +120,9 @@
# For "mysql", use either "true", "false", or "skip-verify".
;ssl_mode = disable
# For "postregs", use either "1" to enable or "0" to disable SNI
;ssl_sni =
# Database drivers may support different transaction isolation levels.
# Currently, only "mysql" driver supports isolation levels.
# If the value is empty - driver's default isolation level is applied.
@@ -449,6 +448,9 @@
# Require email validation before sign up completes
;verify_email_enabled = false
# Redirect to default OrgId after login
;login_default_org_id =
# Background text for the user field on the login page
;login_hint = email or username
;password_hint = password
@@ -476,6 +478,9 @@
# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
;user_invite_max_lifetime_duration = 24h
# The duration in time a verification email, used to update the email address of a user, remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 1h (1 hour).
;verification_email_max_lifetime_duration = 1h
# Enter a comma-separated list of users login to hide them in the Grafana UI. These users are shown to Grafana admins and themselves.
; hidden_users =
@@ -643,6 +648,7 @@
;api_url = https://openidconnect.googleapis.com/v1/userinfo
;signout_redirect_url =
;allowed_domains =
;validate_hd =
;hosted_domain =
;allowed_groups =
;role_attribute_path =
@@ -857,6 +863,13 @@
# Disabled by default, needs to be explicitly enabled
;user_identity_enabled = false
# Specifies whether user identity authentication fallback credentials should be enabled in data sources
# Enabling this allows data source creators to provide fallback credentials for backend initiated requests
# e.g. alerting, recorded queries etc.
# Enabled by default, needs to be explicitly disabled
# Will not have any effect if user identity is disabled above
;user_identity_fallback_credentials_enabled = true
# Override token URL for Azure Active Directory
# By default is the same as token URL configured for AAD authentication settings
;user_identity_token_url =
@@ -1112,17 +1125,17 @@
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;ha_push_pull_interval = "60s"
# Enable or disable alerting rule execution. The alerting UI remains visible. This option has a legacy version in the `[alerting]` section that takes precedence.
# Enable or disable alerting rule execution. The alerting UI remains visible.
;execute_alerts = true
# Alert evaluation timeout when fetching data from the datasource. This option has a legacy version in the `[alerting]` section that takes precedence.
# Alert evaluation timeout when fetching data from the datasource.
# The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;evaluation_timeout = 30s
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. The default value is 1.
;max_attempts = 1
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time. This option has a legacy version in the `[alerting]` section that takes precedence.
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;min_interval = 10s
@@ -1189,54 +1202,25 @@
# Optional password for basic authentication on requests sent to Loki. Can be left blank.
; loki_basic_auth_password = "mypass"
# For "loki" only.
# Optional max query length for queries sent to Loki. Default is 721h which matches the default Loki value.
; loki_max_query_length = 360h
[unified_alerting.state_history.external_labels]
# Optional extra labels to attach to outbound state history records or log streams.
# Any number of label key-value-pairs can be provided.
; mylabelkey = mylabelvalue
[unified_alerting.upgrade]
# If set to true when upgrading from legacy alerting to Unified Alerting, grafana will first delete all existing
# Unified Alerting resources, thus re-upgrading all organizations from scratch. If false or unset, organizations that
# have previously upgraded will not lose their existing Unified Alerting data when switching between legacy and
# Unified Alerting. Should be kept false when not needed as it may cause unintended data-loss if left enabled.
;clean_upgrade = false
#################################### Alerting ############################
[alerting]
# Disable legacy alerting engine & UI features
;enabled = false
# Makes it possible to turn off alert execution but alerting UI is visible
;execute_alerts = true
# Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
;error_or_timeout = alerting
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
;nodata_or_nullvalues = no_data
# Alert notifications can include images, but rendering many images at the same time can overload the server
# This limit will protect the server from render overloading and make sure notifications are sent out quickly
;concurrent_render_limit = 5
# Default setting for alert calculation timeout. Default value is 30
;evaluation_timeout_seconds = 30
# Default setting for alert notification timeout. Default value is 30
;notification_timeout_seconds = 30
# Default setting for max attempts to sending alert notifications. Default value is 3
;max_attempts = 3
# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
;min_interval_seconds = 1
[unified_alerting.state_history.annotations]
# This section controls retention of annotations automatically created while evaluating alert rules
# when alerting state history backend is configured to be annotations (a setting [unified_alerting.state_history].backend
# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
;max_annotation_age =
# This setting should be expressed as an duration. Ex 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_age =
# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
;max_annotations_to_keep =
max_annotations_to_keep =
#################################### Annotations #########################
[annotations]

View File

@@ -4,7 +4,7 @@ The main goal of issue triage is to categorize all incoming Grafana issues and m
> **Note:** This information is for Grafana project Maintainers, Owners, and Admins. If you are a Contributor, then you will not be able to perform most of the tasks in this topic.
The core maintainers of the Grafana project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
The core maintainers of the Grafana project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently, one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
Triage helps ensure issues resolve quickly by:
@@ -136,13 +136,13 @@ To make it easier for everyone to understand and find issues they're searching f
Depending on the issue, you might not feel all this information is needed. Use your best judgement. If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the above information to clarify the problem. Label issue with `needs more info` and add any related `area/*` or `datasource/*` labels. Alternatively, use `bot/needs more info` label and the Grafana bot will request it for you.
If the author provides the standard information but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time.
If the author provides the standard information, but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time.
If the author does not respond to the requested information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided.
When you feel you have all the information needed you're ready to [categorizing the issue](#3-categorizing-an-issue).
If you receive a notification with additional information provided but you are not anymore on issue triage and you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
If you receive a notification with additional information provided, but you are not anymore on issue triage and you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
## 3. Categorizing an issue
@@ -312,7 +312,7 @@ When an issue has all basic information provided, but the triage responsible hav
Investigating issues can be a very time consuming task, especially for the maintainers, given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services, etc that are being used with Grafana. There is a certain number of combinations that are more common than others, and these are in general easier for maintainers to investigate.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise the issue is highly likely to be closed.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise, the issue is highly likely to be closed.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments) the issue if you happen to have the same problem. If you have further details that may help investigating the issue please provide as much information as possible.

View File

@@ -109,7 +109,7 @@ fully Go modules compatible, but can be viewed using
### Error source
You can optionally specify an error source that describes from where an
error originates. By default it's _server_ and means the error originates
error originates. By default, it's _server_ and means the error originates
from within the application, e.g. Grafana. The `errutil.WithDownstream()`
option may be appended to the NewBase function call to denote an error
originates from a _downstream_ server/service. The error source information

View File

@@ -80,7 +80,7 @@ func doSomething(ctx context.Context) {
### Enable certain log levels for certain loggers
During development it's convenient to enable certain log level, e.g. debug, for certain loggers to minimize the generated log output and make it easier to find things. See [[log.filters]](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#filters) for information how to configure this.
During development, it's convenient to enable certain log level, e.g. debug, for certain loggers to minimize the generated log output and make it easier to find things. See [[log.filters]](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#filters) for information how to configure this.
It's also possible to configure multiple loggers:

View File

@@ -33,7 +33,7 @@ Tests must use the standard library, `testing`. For assertions, prefer using [te
We have a [testsuite](https://github.com/grafana/grafana/tree/main/pkg/tests/testsuite) package which provides utilities for package-level setup and teardown.
Currently this is just used to ensure that test databases are correctly set up and torn down, but it also provides a place we can attach future tasks.
Currently, this is just used to ensure that test databases are correctly set up and torn down, but it also provides a place we can attach future tasks.
Each package SHOULD include a [TestMain](https://pkg.go.dev/testing#hdr-Main) function that calls `testsuite.Run(m)`:
@@ -78,7 +78,7 @@ func TestIntegrationFoo(t *testing.T) {
Use respectively [`assert.*`](https://github.com/stretchr/testify#assert-package) functions to make assertions that
should _not_ halt the test ("soft checks") and [`require.*`](https://github.com/stretchr/testify#require-package)
functions to make assertions that _should_ halt the test ("hard checks"). Typically you want to use the latter type of
functions to make assertions that _should_ halt the test ("hard checks"). Typically, you want to use the latter type of
check to assert that errors have or have not happened, since continuing the test after such an assertion fails is
chaotic (the system under test will be in an undefined state) and you'll often have segfaults in practice.

View File

@@ -124,7 +124,7 @@ If you're unsure, see the existing [changelog](https://github.com/grafana/grafan
The pull request title should be formatted according to `<Area>: <Summary>` (Both "Area" and "Summary" should start with a capital letter).
The Grafana team _squashes_ all commits into one when we accept a pull request. The title of the pull request becomes the subject line of the squashed commit message. We still encourage contributors to write informative commit messages, as they becomes a part of the Git commit body.
The Grafana team _squashes_ all commits into one when we accept a pull request. The title of the pull request becomes the subject line of the squashed commit message. We still encourage contributors to write informative commit messages, as they become a part of the Git commit body.
We use the pull request title when we generate change logs for releases. As such, we strive to make the title as informative as possible.
@@ -133,7 +133,7 @@ We use the pull request title when we generate change logs for releases. As such
## Configuration changes
If your PR includes configuration changes, all of the following files must be changed correspondingly:
If your PR includes configuration changes, all the following files must be changed correspondingly:
- conf/defaults.ini
- conf/sample.ini

View File

@@ -8,7 +8,7 @@ Make sure you have the following dependencies installed before setting up your d
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature). See [.nvmrc](../.nvmrc) for supported version. It's recommend you use a version manager such as [nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm), or similar.
- GCC (required for Cgo dependencies)
### macOS
@@ -76,6 +76,7 @@ After the command has finished, we can start building our source code:
yarn start
```
This command will generate sass theme files, build all external plugins, then build the frontend assets.
Once `yarn start` has built the assets, it will continue to do so whenever any of the files change. This means you don't have to manually build the assets every time you change the code.
> Troubleshooting: if your first build works, but after pulling updates you see unexpected errors in the "Type-checking in progress..." stage, these can be caused by the [tsbuildinfo cache supporting incremental builds](https://www.typescriptlang.org/tsconfig#incremental). You can `rm tsconfig.tsbuildinfo` and re-try.
@@ -151,7 +152,7 @@ go run build.go test
### Run SQLLite, PostgreSQL and MySQL integration tests
By default grafana runs SQLite, to run test with SQLite
By default, grafana runs SQLite, to run test with SQLite
```bash
go test -covermode=atomic -tags=integration ./pkg/...
@@ -171,9 +172,11 @@ make test-go-integration-postgres
### Run end-to-end tests
The end to end tests in Grafana use [Cypress](https://www.cypress.io/) to run automated scripts in a headless Chromium browser. Read more about our [e2e framework](/contribute/style-guides/e2e.md).
The end to end tests in Grafana use [Cypress](https://www.cypress.io/) and [Playwright](https://playwright.dev/) to run automated scripts in a browser. Read more about our Cypress [e2e framework](/contribute/style-guides/e2e.md).
To run the tests:
#### Running Cypress tests
To run all tests in a headless Chromium browser.
```
yarn e2e
@@ -197,6 +200,34 @@ To choose a single test to follow in the browser as it runs, use `yarn e2e:dev`
yarn e2e:dev
```
#### To run the Playwright tests:
**Note:** If you're using VS Code as your development editor, it's recommended to install the [Playwright test extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright). It allows you to run, debug and generate Playwright tests from within the editor. For more information about the extension and how to install it, refer to the [Playwright documentation](https://playwright.dev/docs/getting-started-vscode).
Each version of Playwright needs specific versions of browser binaries to operate. You will need to use the Playwright CLI to install these browsers.
```
yarn playwright install chromium
```
To run all tests in a headless Chromium browser and display results in the terminal.
```
yarn e2e:playwright
```
For a better developer experience, open the Playwright UI where you can easily walk through each step of the test and visually see what was happening before, during and after each step.
```
yarn e2e:playwright:ui
```
To open the HTML reporter for the last test run session.
```
yarn e2e:playwright:report
```
## Configure Grafana for development
The default configuration, `defaults.ini`, is located in the `conf` directory.
@@ -300,7 +331,7 @@ For some people, typically using the bash shell, ulimit fails with an error simi
ulimit: open files: cannot modify limit: Operation not permitted
```
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already a ulimit command that you can tweak.
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already an ulimit command that you can tweak.
## Next steps

View File

@@ -6,7 +6,7 @@ This document defines technical terms used in Grafana.
## TLS/SSL
The acronyms [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) (Transport Layer Security and
The acronyms [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) (Transport Layer Security) and
[SSL](https://en.wikipedia.org/wiki/SSL) (Secure Socket Layer) are both used to describe the HTTPS security layer,
and are in practice synonymous. However, TLS is considered the current name for the technology, and SSL is considered
[deprecated](https://tools.ietf.org/html/rfc7568).

View File

@@ -180,7 +180,7 @@ const getStyles = (theme: GrafanaTheme2) => ({
});
```
Use hook useStyles2(getStyles) to memoize the styles generation and try to avoid passing props to the the getStyles function and instead compose classes using emotion cx function.
Use hook useStyles2(getStyles) to memoize the styles generation and try to avoid passing props to the getStyles function and instead compose classes using emotion cx function.
#### Use `ALL_CAPS` for constants.

158
devenv/alert_rules.yaml Normal file
View File

@@ -0,0 +1,158 @@
apiVersion: 1
groups:
- orgId: 1
name: testEvaluationGroup
folder: gdev dashboards
interval: 5m
rules:
- uid: bddn0v6f1kgzkc
title: e2e-ReturnToPrevious-test
condition: C
data:
- refId: A
relativeTimeRange:
from: 600
to: 0
datasourceUid: PD8C576611E62080A
model:
intervalMs: 1000
maxDataPoints: 43200
refId: A
- refId: B
datasourceUid: __expr__
model:
conditions:
- evaluator:
params: []
type: gt
operator:
type: and
query:
params:
- B
reducer:
params: []
type: last
type: query
datasource:
type: __expr__
uid: __expr__
expression: A
intervalMs: 1000
maxDataPoints: 43200
reducer: last
refId: B
type: reduce
- refId: C
datasourceUid: __expr__
model:
conditions:
- evaluator:
params:
- 0
type: gt
operator:
type: and
query:
params:
- C
reducer:
params: []
type: last
type: query
datasource:
type: __expr__
uid: __expr__
expression: B
intervalMs: 1000
maxDataPoints: 43200
refId: C
type: threshold
dashboardUid: j6T00KRZz
panelId: 7
noDataState: NoData
execErrState: Error
for: 5m
annotations:
__dashboardUid__: j6T00KRZz
__panelId__: "7"
labels: {}
isPaused: false
- orgId: 1
name: testEvaluationGroup2
folder: gdev dashboards
interval: 10m
rules:
- uid: dddyksihq7h1ca
title: e2e-ReturnToPrevious-test-2
condition: C
data:
- refId: A
relativeTimeRange:
from: 600
to: 0
datasourceUid: PD8C576611E62080A
model:
intervalMs: 1000
maxDataPoints: 43200
refId: A
- refId: B
datasourceUid: __expr__
model:
conditions:
- evaluator:
params: []
type: gt
operator:
type: and
query:
params:
- B
reducer:
params: []
type: last
type: query
datasource:
type: __expr__
uid: __expr__
expression: A
intervalMs: 1000
maxDataPoints: 43200
reducer: last
refId: B
type: reduce
- refId: C
datasourceUid: __expr__
model:
conditions:
- evaluator:
params:
- 0
type: gt
operator:
type: and
query:
params:
- C
reducer:
params: []
type: last
type: query
datasource:
type: __expr__
uid: __expr__
expression: B
intervalMs: 1000
maxDataPoints: 43200
refId: C
type: threshold
dashboardUid: j6T00KRZz
panelId: 3
noDataState: NoData
execErrState: Error
for: 10m
annotations:
__dashboardUid__: j6T00KRZz
__panelId__: "3"
labels: {}
isPaused: false

View File

@@ -1,9 +0,0 @@
apiVersion: 1
providers:
- name: 'Bulk alerting dashboards'
folder: 'Bulk alerting dashboards'
type: file
options:
path: devenv/bulk_alerting_dashboards

View File

@@ -1,169 +0,0 @@
{
alertingDashboard(dashboardCounter, datasourceCounter):: {
title: "alerting-title-" + dashboardCounter,
editable: true,
gnetId: null,
graphTooltip: 0,
id: null,
links: [],
panels: [
{
alert: {
conditions: [
{
evaluator: {
params: [
65
],
type: "gt"
},
operator: {
type: "and"
},
query: {
params: [
"A",
"5m",
"now"
]
},
reducer: {
params: [],
type: "avg"
},
type: "query"
}
],
executionErrorState: "alerting",
frequency: "24h",
handler: 1,
name: "bulk alerting " + dashboardCounter,
noDataState: "no_data",
notifications: []
},
aliasColors: {},
bars: false,
dashLength: 10,
dashes: false,
datasource: "gfdev-bulkalerting-" + datasourceCounter,
fill: 1,
gridPos: {
h: 9,
w: 12,
x: 0,
y: 0
},
id: 1,
legend: {
avg: false,
current: false,
max: false,
min: false,
show: true,
total: false,
values: false
},
lines: true,
linewidth: 1,
nullPointMode: "null",
percentage: false,
pointradius: 5,
points: false,
renderer: "flot",
seriesOverrides: [],
spaceLength: 10,
stack: false,
steppedLine: false,
targets: [
{
expr: "go_goroutines",
format: "time_series",
intervalFactor: 1,
refId: "A"
}
],
thresholds: [
{
colorMode: "critical",
fill: true,
line: true,
op: "gt",
value: 50
}
],
timeFrom: null,
timeShift: null,
title: "Panel Title",
tooltip: {
shared: true,
sort: 0,
value_type: "individual"
},
type: "graph",
xaxis: {
buckets: null,
mode: "time",
name: null,
show: true,
values: []
},
yaxes: [
{
format: "short",
label: null,
logBase: 1,
max: null,
min: null,
show: true
},
{
format: "short",
label: null,
logBase: 1,
max: null,
min: null,
show: true
}
]
}
],
schemaVersion: 16,
tags: [],
templating: {
list: []
},
time: {
from: "now-6h",
to: "now"
},
timepicker: {
refresh_intervals: [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
time_options: [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
timezone: "",
uid: null,
version: 0
},
}

View File

@@ -1,14 +0,0 @@
local arr = std.range(1, 100);
{
"apiVersion": 1,
"datasources": [
{
"name": 'gfdev-bulkalerting-' + counter,
"type": "prometheus",
"access": "proxy",
"url": "http://localhost:9090"
}
for counter in arr
],
}

View File

@@ -1,806 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 147,
"links": [],
"liveNow": false,
"panels": [
{
"alert": {
"alertRuleTags": {},
"conditions": [
{
"evaluator": {
"params": [
177
],
"type": "gt"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"enabled": true,
"executionErrorState": "alerting",
"for": "0m",
"frequency": "60s",
"handler": 1,
"name": "TestData - Always Alerting",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 10,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"isNew": true,
"legend": {
"show": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.4.0-pre",
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "200,445,100,150,200,220,190",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 177
}
],
"timeRegions": [],
"title": "Always Alerting",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"alert": {
"alertRuleTags": {},
"conditions": [
{
"evaluator": {
"params": [
100
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"for": "900000h",
"frequency": "1m",
"handler": 1,
"name": "TestData - Always Pending",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 10,
"x": 10,
"y": 0
},
"hiddenSeries": false,
"id": 7,
"isNew": true,
"legend": {
"show": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"alertThreshold": true
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "200,445,100,150,200,220,190",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 100
}
],
"timeRegions": [],
"title": "Always Pending with For",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"gridPos": {
"h": 20,
"w": 4,
"x": 20,
"y": 0
},
"id": 9,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A"
}
],
"title": "Alert list",
"type": "alertlist"
},
{
"alert": {
"alertRuleTags": {},
"conditions": [
{
"evaluator": {
"params": [
177
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"15m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"for": "1m",
"frequency": "1m",
"handler": 1,
"name": "TestData - Always Alerting For",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 10,
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 6,
"isNew": true,
"legend": {
"show": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.4.0-pre",
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "200,445,100,150,200,220,190",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 177
}
],
"timeRegions": [],
"title": "Always Alerting with For",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
60
],
"type": "gt"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"enabled": true,
"frequency": "60s",
"handler": 1,
"name": "TestData - Always OK",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 10,
"x": 10,
"y": 7
},
"hiddenSeries": false,
"id": 3,
"isNew": true,
"legend": {
"show": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.4.0-pre",
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 60
}
],
"timeRegions": [],
"title": "Always OK",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"max": "125",
"min": "0",
"show": true
},
{
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
1
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"15m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"for": "5m",
"frequency": "1m",
"handler": 1,
"name": "TestData - No data",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 10,
"x": 0,
"y": 13
},
"hiddenSeries": false,
"id": 5,
"isNew": true,
"legend": {
"show": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.4.0-pre",
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenario": "random_walk",
"scenarioId": "no_data_points",
"stringInput": "",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 1
}
],
"timeRegions": [],
"title": "No data",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
}
],
"schemaVersion": 37,
"tags": [
"gdev",
"alerting"
],
"templating": {
"list": [
{
"current": {
"text": "TestData",
"value": "TestData"
},
"hide": 0,
"includeAll": false,
"label": "alert name filter",
"multi": false,
"name": "namefilter",
"options": [
{
"selected": true,
"text": "TestData",
"value": "TestData"
},
{
"selected": false,
"text": "Prometheus",
"value": "Prometheus"
},
{
"selected": false,
"text": "Graphite",
"value": "Graphite"
}
],
"query": "TestData,Prometheus,Graphite",
"skipUrlSync": false,
"type": "custom"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Alerting with TestData",
"uid": "7MeksYbmk",
"version": 1,
"weekStart": ""
}

View File

@@ -0,0 +1,447 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 209,
"links": [],
"panels": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 2,
"w": 24,
"x": 0,
"y": 0
},
"id": 9,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "## This dashboard requires alpha panels to be enabled!",
"mode": "markdown"
},
"pluginVersion": "11.0.0-pre",
"type": "text"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 4,
"w": 15,
"x": 0,
"y": 2
},
"id": 2,
"options": {
"channel": {
"namespace": "devenv",
"path": "weather",
"scope": "stream"
},
"display": "none",
"json": {
"hello": "world"
},
"message": "weather,location=west,sensor=A temperature=82\nweather,location=east,sensor=A temperature=76",
"publish": "influx"
},
"title": "Panel Title",
"type": "live"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 15,
"y": 2
},
"id": 4,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": []
},
"pluginVersion": "11.0.0-pre",
"targets": [
{
"channel": "stream/devenv/weather",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "Weather (values)",
"transformations": [
{
"id": "sortBy",
"options": {
"fields": {},
"sort": [
{
"desc": true,
"field": "time"
}
]
}
}
],
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 4,
"w": 15,
"x": 0,
"y": 6
},
"id": 5,
"options": {
"channel": {
"namespace": "devenv",
"path": "weather",
"scope": "stream"
},
"display": "none",
"json": {
"hello": "world"
},
"message": "weather,location=west,sensor=A temperature=90\nweather,location=east,sensor=A temperature=80",
"publish": "influx"
},
"title": "Panel Title",
"type": "live"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 10
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"channel": "stream/devenv/weather",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
},
{
"channel": "stream/devenv/weatherX",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"hide": false,
"queryType": "measurements",
"refId": "B"
}
],
"title": "Panel Title",
"type": "timeseries"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 4,
"w": 15,
"x": 0,
"y": 17
},
"id": 6,
"options": {
"channel": {
"namespace": "devenv",
"path": "weather",
"scope": "stream"
},
"display": "none",
"json": {
"hello": "world"
},
"message": "weatherX,location=west,sensor=X temperature=82\nweatherX,location=east,sensor=X temperature=76",
"publish": "influx"
},
"title": "Panel Title",
"type": "live"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 15,
"y": 17
},
"id": 7,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": []
},
"pluginVersion": "11.0.0-pre",
"targets": [
{
"channel": "stream/devenv/weatherX",
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"queryType": "measurements",
"refId": "A"
}
],
"title": "WeatherX (values)",
"transformations": [
{
"id": "sortBy",
"options": {
"fields": {},
"sort": [
{
"desc": true,
"field": "time"
}
]
}
}
],
"type": "table"
},
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"gridPos": {
"h": 4,
"w": 15,
"x": 0,
"y": 21
},
"id": 8,
"options": {
"channel": {
"namespace": "devenv",
"path": "weather",
"scope": "stream"
},
"display": "none",
"json": {
"hello": "world"
},
"message": "weatherX,location=west,sensor=X temperature=90\nweatherX,location=east,sensor=X temperature=22",
"publish": "influx"
},
"title": "Panel Title",
"type": "live"
}
],
"schemaVersion": 39,
"tags": [
"gdev",
"live-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-1m",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "live test",
"uid": "addoomtlivedev",
"version": 17,
"weekStart": ""
}

View File

@@ -241,7 +241,7 @@
}
},
"percentage": false,
"pluginVersion": "10.4.0-pre",
"pluginVersion": "11.0.0-pre",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -311,7 +311,281 @@
"content": "# Graph panel >> Timeseries panel\n\nKnown issues:\n* hiding null/empty series\n* time regions",
"mode": "markdown"
},
"pluginVersion": "10.4.0-pre",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A"
}
],
"title": "Status + Notes",
"type": "text"
},
{
"aliasColors": {},
"bars": true,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"unit": "short"
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 11,
"w": 16,
"x": 0,
"y": 11
},
"hiddenSeries": false,
"id": 28,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": false,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"percentage": false,
"pluginVersion": "11.0.0-pre",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 3
}
],
"thresholds": [],
"timeRegions": [],
"title": "Flot graph - x axis series mode",
"tooltip": {
"shared": false,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "series",
"show": true,
"values": [
"total"
]
},
"yaxes": [
{
"$$hashKey": "object:88",
"format": "short",
"logBase": 1,
"show": true
},
{
"$$hashKey": "object:89",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"gridPos": {
"h": 11,
"w": 8,
"x": 16,
"y": 11
},
"id": 29,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "# Graph panel >> Bar chart panel\n",
"mode": "markdown"
},
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A"
}
],
"title": "Status + Notes",
"type": "text"
},
{
"aliasColors": {},
"bars": true,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"unit": "short"
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 11,
"w": 16,
"x": 0,
"y": 22
},
"hiddenSeries": false,
"id": 30,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": false,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"percentage": false,
"pluginVersion": "11.0.0-pre",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 3
}
],
"thresholds": [],
"timeRegions": [],
"title": "Flot graph - x axis histogram mode",
"tooltip": {
"shared": false,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "histogram",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:193",
"format": "short",
"logBase": 1,
"show": true
},
{
"$$hashKey": "object:194",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"gridPos": {
"h": 11,
"w": 8,
"x": 16,
"y": 22
},
"id": 31,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "# Graph panel >> Histogram panel\n",
"mode": "markdown"
},
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -335,7 +609,7 @@
"h": 10,
"w": 16,
"x": 0,
"y": 11
"y": 33
},
"id": 2,
"options": {
@@ -411,7 +685,7 @@
"h": 10,
"w": 8,
"x": 16,
"y": 11
"y": 33
},
"id": 7,
"options": {
@@ -423,7 +697,7 @@
"content": "# Table (old) >> Table\n\nKnown issues:\n* wrapping text\n* style changes",
"mode": "markdown"
},
"pluginVersion": "10.4.0-pre",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -460,7 +734,7 @@
"h": 8,
"w": 8,
"x": 0,
"y": 21
"y": 43
},
"id": 9,
"mappingType": 1,
@@ -517,64 +791,65 @@
"valueName": "avg"
},
{
"colorBackground": false,
"colorValue": true,
"colors": [
"#299c46",
"#73BF69",
"#d44a3a"
],
"datasource": {
"type": "testdata",
"uid": "PD8C576611E62080A"
},
"format": "ms",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
"fieldConfig": {
"defaults": {
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "ms"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 21
"y": 43
},
"id": 23,
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "connected",
"pluginVersion": "6.2.0-pre",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "p95",
"prefixFontSize": "80%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": true
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"tableColumn": "",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -584,18 +859,8 @@
"refId": "A"
}
],
"thresholds": "",
"title": "singlestat (old, internal. Migrated if schema < 28)",
"type": "singlestat",
"valueFontSize": "120%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "avg"
"type": "stat"
},
{
"datasource": {
@@ -606,7 +871,7 @@
"h": 8,
"w": 8,
"x": 16,
"y": 21
"y": 43
},
"id": 10,
"options": {
@@ -618,7 +883,7 @@
"content": "# Singlestat >> Stat\n\nKnown issues:\n* limited options",
"mode": "markdown"
},
"pluginVersion": "10.4.0-pre",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -640,7 +905,7 @@
"h": 10,
"w": 16,
"x": 0,
"y": 29
"y": 51
},
"id": 24,
"options": {
@@ -693,7 +958,7 @@
"h": 10,
"w": 8,
"x": 16,
"y": 29
"y": 51
},
"id": 25,
"options": {
@@ -705,7 +970,7 @@
"content": "# grafana-piechart-panel >> piechart\n\nKnown issues:\n* TBD",
"mode": "markdown"
},
"pluginVersion": "10.4.0-pre",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -719,47 +984,35 @@
"type": "text"
},
{
"circleMaxSize": 30,
"circleMinSize": 2,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(245, 54, 54, 0.9)"
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 0
},
{
"color": "rgba(50, 172, 45, 0.97)",
"value": 10
}
]
}
},
"overrides": []
},
"decimals": 0,
"esMetric": "Count",
"gridPos": {
"h": 10,
"w": 16,
"x": 0,
"y": 39
"y": 61
},
"hideEmpty": false,
"hideZero": false,
"id": 26,
"initialZoom": 1,
"locationData": "countries",
"mapCenter": "(0°, 0°)",
"mapCenterLatitude": 0,
"mapCenterLongitude": 0,
"maxDataPoints": 1,
"mouseWheelZoom": false,
"options": {
"basemap": {
"name": "Basemap",
@@ -831,6 +1084,15 @@
}
},
"pluginVersion": "10.4.0-pre",
"showLegend": true,
"stickyLabels": false,
"tableQueryOptions": {
"geohashField": "geohash",
"latitudeField": "latitude",
"longitudeField": "longitude",
"metricField": "metric",
"queryType": "geohash"
},
"targets": [
{
"csvFileName": "flight_info_by_state.csv",
@@ -842,6 +1104,7 @@
"scenarioId": "csv_file"
}
],
"thresholds": "0,10",
"title": "grafana-worldmap-panel",
"transformations": [
{
@@ -859,7 +1122,10 @@
}
}
],
"type": "grafana-worldmap-panel"
"type": "grafana-worldmap-panel",
"unitPlural": "",
"unitSingle": "",
"valueName": "total"
},
{
"datasource": {
@@ -870,7 +1136,7 @@
"h": 10,
"w": 8,
"x": 16,
"y": 39
"y": 61
},
"id": 27,
"options": {
@@ -882,7 +1148,7 @@
"content": "# grafana-worldmap-panel >> geomap\n\nKnown issues:\n* TBD",
"mode": "markdown"
},
"pluginVersion": "10.4.0-pre",
"pluginVersion": "11.0.0-pre",
"targets": [
{
"datasource": {
@@ -910,10 +1176,11 @@
"from": "now-6h",
"to": "now"
},
"timeRangeUpdatedDuringEditOrView": false,
"timepicker": {},
"timezone": "",
"title": "Devenv - Panel migrations",
"uid": "cdd412c4",
"version": 67,
"version": 68,
"weekStart": ""
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,271 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 988,
"links": [],
"panels": [
{
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"fillOpacity": 70,
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineWidth": 0,
"spanNulls": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 13,
"w": 15,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"alignValue": "left",
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"mergeValues": true,
"rowHeight": 0.9,
"showValue": "auto",
"tooltip": {
"maxHeight": 600,
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"rawFrameContent": "[\n {\n \"schema\": {\n \"refId\": \"A\",\n \"meta\": {\n \"typeVersion\": [\n 0,\n 0\n ]\n },\n \"name\": \"A\",\n \"fields\": [\n {\n \"name\": \"channel\",\n \"config\": {\n \"selector\": \"channel\"\n },\n \"type\": \"string\"\n },\n {\n \"name\": \"name\",\n \"config\": {\n \"selector\": \"name\"\n },\n \"type\": \"string\"\n },\n {\n \"name\": \"starttime\",\n \"config\": {\n \"selector\": \"starttime\"\n },\n \"type\": \"string\"\n },\n {\n \"name\": \"endtime\",\n \"config\": {\n \"selector\": \"endtime\"\n },\n \"type\": \"string\"\n },\n {\n \"name\": \"duration_minutes\",\n \"config\": {\n \"selector\": \"duration_minutes\"\n },\n \"type\": \"number\"\n },\n {\n \"name\": \"state\",\n \"config\": {\n \"selector\": \"state\"\n },\n \"type\": \"string\"\n }\n ]\n },\n \"data\": {\n \"values\": [\n [\n \"Channel 1\",\n \"Channel 2\",\n \"Channel 1\",\n \"Channel 2\"\n ],\n [\n \"Event 1\",\n \"Event 2\",\n \"Event 3\",\n \"Event 4\"\n ],\n [\n \"2024-02-28T08:00:00Z\",\n \"2024-02-28T09:00:00Z\",\n \"2024-02-28T11:00:00Z\",\n \"2024-02-28T12:30:00Z\"\n ],\n [\n \"2024-02-28T10:00:00Z\",\n \"2024-02-28T10:30:00Z\",\n \"2024-02-28T14:00:00Z\",\n \"2024-02-28T13:30:00Z\"\n ],\n [\n 120,\n 90,\n 180,\n 60\n ],\n [\n \"OK\",\n \"ERROR\",\n \"NO_DATA\",\n \"WARNING\"\n ]\n ]\n }\n }\n]",
"refId": "A",
"scenarioId": "raw_frame"
}
],
"title": "Raw frames w/enums",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"channel": false,
"duration_minutes": true,
"name": true
},
"includeByName": {},
"indexByName": {},
"renameByName": {}
}
},
{
"id": "convertFieldType",
"options": {
"conversions": [
{
"destinationType": "time",
"enumConfig": {
"text": [
"2024-02-28T08:00:00Z",
"2024-02-28T09:00:00Z",
"2024-02-28T11:00:00Z",
"2024-02-28T12:30:00Z"
]
},
"targetField": "starttime"
},
{
"destinationType": "time",
"targetField": "endtime"
},
{
"destinationType": "enum",
"enumConfig": {
"text": [
"OK",
"ERROR",
"NO_DATA",
"WARNING"
]
},
"targetField": "state"
}
],
"fields": {}
}
},
{
"id": "partitionByValues",
"options": {
"fields": [
"channel"
],
"keepFields": false,
"naming": {
"asLabels": false
}
}
}
],
"type": "state-timeline"
},
{
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"fillOpacity": 70,
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineWidth": 0,
"spanNulls": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 15,
"x": 0,
"y": 13
},
"id": 2,
"options": {
"alignValue": "left",
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"mergeValues": true,
"rowHeight": 0.9,
"showValue": "auto",
"tooltip": {
"maxHeight": 600,
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"alias": "Channel 1",
"csvContent": "starttime,endtime,state\n1709107200000,1709114400000,OK\n1709118000000,1709128800000,NO_DATA",
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"refId": "A",
"scenarioId": "csv_content"
},
{
"alias": "Channel 2",
"csvContent": "starttime,endtime,state\n1709110800000,1709116200000,ERROR\n1709123400000,1709127000000,WARNING",
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "PD8C576611E62080A"
},
"refId": "B",
"scenarioId": "csv_content"
}
],
"title": "CSV content",
"type": "state-timeline"
}
],
"refresh": "",
"schemaVersion": 39,
"tags": [
"gdev",
"panel-tests",
"graph-ng",
"demo"
],
"templating": {
"list": []
},
"time": {
"from": "2024-02-28T07:47:21.428Z",
"to": "2024-02-28T14:12:43.391Z"
},
"timeRangeUpdatedDuringEditOrView": false,
"timepicker": {},
"timezone": "browser",
"title": "Panel Tests - StateTimeline - multiple frames with endTime",
"uid": "cdf3gkge5reo0f",
"version": 4,
"weekStart": ""
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,7 @@ Spin up a service with the following command from the base directory of this
repository.
```bash
make devenv=oauth
make devenv=auth/oauth
```
This will add the `oauth/docker-compose` block to the `docker-compose` file used

View File

@@ -1,5 +1,5 @@
mimir_backend:
image: grafana/mimir:r274-1780c50
image: us.gcr.io/kubernetes-dev/mimir:santihernandezc-remove_id_from_grafana_config-d3826b4f8-WIP
container_name: mimir_backend
command:
- -target=backend

View File

@@ -43,7 +43,6 @@ storage:
bloom_filter_false_positive: .05 # bloom filter false positive rate. lower values create larger filters but fewer false positives
v2_index_downsample_bytes: 1000 # number of bytes per index record
v2_encoding: zstd # block encoding/compression. options: none, gzip, lz4-64k, lz4-256k, lz4-1M, lz4, snappy, zstd, s2
version: vParquet
wal:
path: /tmp/tempo/wal # where to store the the wal locally
v2_encoding: snappy # wal encoding/compression. options: none, gzip, lz4-64k, lz4-256k, lz4-1M, lz4, snappy, zstd, s2

View File

@@ -1,202 +0,0 @@
local numAlerts = std.extVar('alerts');
local condition = std.extVar('condition');
local arr = std.range(1, numAlerts);
local alertDashboardTemplate = {
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
65
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"frequency": "10s",
"handler": 1,
"for": "1m",
"name": "bulk alerting",
"noDataState": "no_data",
"notifications": [
{
"id": 2
}
]
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "Prometheus",
"fill": 1,
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:117",
"expr": "go_goroutines",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 50
}
],
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"schemaVersion": 16,
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "New dashboard",
"uid": null,
"version": 0
};
{
['alert-' + std.toString(x) + '.json']:
alertDashboardTemplate + {
panels: [
alertDashboardTemplate.panels[0] +
{
alert+: {
name: 'Alert rule ' + x,
conditions: [
alertDashboardTemplate.panels[0].alert.conditions[0] +
{
evaluator+: {
params: [condition]
}
},
],
},
},
],
uid: 'alert-' + x,
title: 'Alert ' + x
},
for x in arr
}

View File

@@ -84,27 +84,6 @@ slack() {
http://admin:admin@grafana.loc/api/alert-notifications/2
}
provision() {
alerts=1
condition=65
while getopts ":a:c:" o; do
case "${o}" in
a)
alerts=${OPTARG}
;;
c)
condition=${OPTARG}
;;
esac
done
shift $((OPTIND-1))
requiresJsonnet
find grafana/provisioning/dashboards/alerts -maxdepth 1 -name 'alert*.json' -delete
jsonnet -m grafana/provisioning/dashboards/alerts grafana/provisioning/alerts.jsonnet --ext-code alerts=$alerts --ext-code condition=$condition
}
pause() {
curl -H "Content-Type: application/json" \
-d '{"paused":true}' \
@@ -126,9 +105,6 @@ usage() {
echo -e " [-u]\t\t\t url"
echo -e " [-r]\t\t\t send reminders"
echo -e " [-e <remind every>]\t\t default 10m\n"
echo -e " provision\t provision alerts"
echo -e " [-a <alert rule count>]\t default 1"
echo -e " [-c <condition value>]\t default 65\n"
echo -e " pause\t\t pause all alerts"
echo -e " unpause\t unpause all alerts"
}
@@ -140,8 +116,6 @@ main() {
setup
elif [[ $cmd == "slack" ]]; then
slack "${@:2}"
elif [[ $cmd == "provision" ]]; then
provision "${@:2}"
elif [[ $cmd == "pause" ]]; then
pause
elif [[ $cmd == "unpause" ]]; then

View File

@@ -1,202 +0,0 @@
local numAlerts = std.extVar('alerts');
local condition = std.extVar('condition');
local arr = std.range(1, numAlerts);
local alertDashboardTemplate = {
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
65
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"frequency": "10s",
"handler": 1,
"for": "1m",
"name": "bulk alerting",
"noDataState": "no_data",
"notifications": [
{
"id": 2
}
]
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "Prometheus",
"fill": 1,
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"$$hashKey": "object:117",
"expr": "go_goroutines",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 50
}
],
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"schemaVersion": 16,
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "New dashboard",
"uid": null,
"version": 0
};
{
['alert-' + std.toString(x) + '.json']:
alertDashboardTemplate + {
panels: [
alertDashboardTemplate.panels[0] +
{
alert+: {
name: 'Alert rule ' + x,
conditions: [
alertDashboardTemplate.panels[0].alert.conditions[0] +
{
evaluator+: {
params: [condition]
}
},
],
},
},
],
uid: 'alert-' + x,
title: 'Alert ' + x
},
for x in arr
}

View File

@@ -21,6 +21,7 @@
"barchart-tooltips-legends": (import '../dev-dashboards/panel-barchart/barchart-tooltips-legends.json'),
"candlestick": (import '../dev-dashboards/panel-candlestick/candlestick.json'),
"canvas-connection-examples": (import '../dev-dashboards/panel-canvas/canvas-connection-examples.json'),
"canvas-datalinks": (import '../dev-dashboards/panel-canvas/canvas-datalinks.json'),
"canvas-examples": (import '../dev-dashboards/panel-canvas/canvas-examples.json'),
"color_modes": (import '../dev-dashboards/panel-common/color_modes.json'),
"config-from-query": (import '../dev-dashboards/transforms/config-from-query.json'),
@@ -58,6 +59,7 @@
"join-by-labels": (import '../dev-dashboards/transforms/join-by-labels.json'),
"lazy_loading": (import '../dev-dashboards/panel-common/lazy_loading.json'),
"linked-viz": (import '../dev-dashboards/panel-common/linked-viz.json'),
"live-publish": (import '../dev-dashboards/live/live-publish.json'),
"loki_fakedata": (import '../dev-dashboards/datasource-loki/loki_fakedata.json'),
"loki_query_splitting": (import '../dev-dashboards/datasource-loki/loki_query_splitting.json'),
"migrations": (import '../dev-dashboards/migrations/migrations.json'),
@@ -90,6 +92,7 @@
"table_sparkline_cell": (import '../dev-dashboards/panel-table/table_sparkline_cell.json'),
"table_tests": (import '../dev-dashboards/panel-table/table_tests.json'),
"table_tests_new": (import '../dev-dashboards/panel-table/table_tests_new.json'),
"tall_dashboard": (import '../dev-dashboards/scenarios/tall_dashboard.json'),
"templating-dashboard-links-and-variables": (import '../dev-dashboards/feature-templating/templating-dashboard-links-and-variables.json'),
"templating-repeating-panels": (import '../dev-dashboards/feature-templating/templating-repeating-panels.json'),
"templating-repeating-rows": (import '../dev-dashboards/feature-templating/templating-repeating-rows.json'),
@@ -100,9 +103,10 @@
"testdata-test-variable-output": (import '../dev-dashboards/feature-templating/testdata-test-variable-output.json'),
"testdata-variables-textbox": (import '../dev-dashboards/feature-templating/testdata-variables-textbox.json'),
"testdata-variables-that-update-on-time-c": (import '../dev-dashboards/feature-templating/testdata-variables-that-update-on-time-change.json'),
"testdata_alerts": (import '../dev-dashboards/alerting/testdata_alerts.json'),
"text-options": (import '../dev-dashboards/panel-text/text-options.json'),
"time_zone_support": (import '../dev-dashboards/scenarios/time_zone_support.json'),
"timeline-align-endtime": (import '../dev-dashboards/panel-timeline/timeline-align-endtime.json'),
"timeline-align-nulls-retain": (import '../dev-dashboards/panel-timeline/timeline-align-nulls-retain.json'),
"timeline-demo": (import '../dev-dashboards/panel-timeline/timeline-demo.json'),
"timeline-modes": (import '../dev-dashboards/panel-timeline/timeline-modes.json'),
"timeline-thresholds-mappings": (import '../dev-dashboards/panel-timeline/timeline-thresholds-mappings.json'),

View File

@@ -14,27 +14,6 @@ bulkDashboard() {
ln -s -f ../../../devenv/bulk-dashboards/bulk-dashboards.yaml ../conf/provisioning/dashboards/custom.yaml
}
bulkAlertingDashboard() {
requiresJsonnet
jsonnet -o "bulk_alerting_dashboards/bulk_alerting_datasources.yaml" ./bulk_alerting_dashboards/datasources.jsonnet
COUNTER=1
DS=1
MAX=1000
while [ $COUNTER -lt $MAX ]; do
jsonnet -o "bulk_alerting_dashboards/alerting_dashboard${COUNTER}.json" \
-e "local bulkDash = import 'bulk_alerting_dashboards/dashboard.libsonnet'; bulkDash.alertingDashboard(${COUNTER}, ${DS})"
let COUNTER=COUNTER+1
let DS=COUNTER/10
let DS=DS+1
done
ln -s -f ../../../devenv/bulk_alerting_dashboards/bulk_alerting_dashboards.yaml ../conf/provisioning/dashboards/custom.yaml
ln -s -f ../../../devenv/bulk_alerting_dashboards/bulk_alerting_datasources.yaml ../conf/provisioning/datasources/custom.yaml
}
bulkFolders() {
./bulk-folders/bulk-folders.sh "$1"
ln -s -f ../../../devenv/bulk-folders/bulk-folders.yaml ../conf/provisioning/dashboards/bulk-folders.yaml
@@ -70,12 +49,6 @@ undev() {
rm -rf bulk-folders/Bulk\ Folder*
echo -e " \xE2\x9C\x94 Reverting bulk-folders provisioning"
# Removing generated dashboard and datasource files from bulk-alerting-dashboards
rm -f bulk_alerting_dashboards/alerting_dashboard*.json
rm -f "bulk_alerting_dashboards/bulk_alerting_datasources.yaml"
echo -e " \xE2\x9C\x94 Reverting bulk-alerting-dashboards provisioning"
# Removing the symlinks
rm -f ../conf/provisioning/dashboards/custom.yaml
rm -f ../conf/provisioning/dashboards/bulk-folders.yaml
@@ -88,7 +61,6 @@ usage() {
echo -e "\n"
echo "Usage:"
echo " bulk-dashboards - provision 400 dashboards"
echo " bulk-alerting-dashboards - provision 400 dashboards with alerts"
echo " bulk-folders [folders] [dashboards] - provision many folders with dashboards"
echo " bulk-folders - provision 200 folders with 3 dashboards in each"
echo " no args - provision core datasources and dev dashboards"
@@ -104,9 +76,7 @@ main() {
local cmd=$1
local arg1=$2
if [[ $cmd == "bulk-alerting-dashboards" ]]; then
bulkAlertingDashboard
elif [[ $cmd == "bulk-dashboards" ]]; then
if [[ $cmd == "bulk-dashboards" ]]; then
bulkDashboard
elif [[ $cmd == "bulk-folders" ]]; then
bulkFolders "$arg1"

View File

@@ -9,7 +9,6 @@ include docs.mk
.PHONY: sources/panels-visualizations/query-transform-data/transform-data/index.md
sources/panels-visualizations/query-transform-data/transform-data/index.md: ## Generate the Transform Data page source.
sources/panels-visualizations/query-transform-data/transform-data/index.md:
cd $(CURDIR)/.. && npx tsc ./scripts/docs/generate-transformations.ts && \
node ./scripts/docs/generate-transformations.js > $(CURDIR)/$@ && \
node -e "require('./scripts/docs/generate-transformations').buildMarkdownContent()" && \
npx prettier -w $(CURDIR)/$@

View File

@@ -6,6 +6,18 @@
# [Semantic versioning](https://semver.org/) is used to help the reader identify the significance of changes.
# Changes are relevant to this script and the support docs.mk GNU Make interface.
#
# ## 6.0.1 (2024-02-28)
#
# ### Added
#
# - Suppress new errors relating to absent content introduced in https://github.com/grafana/website/pull/17561.
#
# ## 6.0.0 (2024-02-16)
#
# ### Changed
#
# - Require `jq` for human readable `make doc-validator` output.
#
# ## 5.4.0 (2024-02-12)
#
# ### Changed
@@ -702,6 +714,13 @@ POSIX_HERESTRING
case "${image}" in
'grafana/doc-validator')
if ! command -v jq >/dev/null 2>&1; then
errr '`jq` must be installed for the `doc-validator` target to work.'
note 'To install `jq`, refer to https://jqlang.github.io/jq/download/,'
exit 1
fi
proj="$(new_proj "$1")"
printf '\r\n'
"${PODMAN}" run \
@@ -714,8 +733,10 @@ case "${image}" in
"${DOCS_IMAGE}" \
"--include=${DOC_VALIDATOR_INCLUDE}" \
"--skip-checks=${DOC_VALIDATOR_SKIP_CHECKS}" \
/hugo/content/docs \
"$(proj_canonical "${proj}")" | sed "s#$(proj_dst "${proj}")#sources#"
"/hugo/content$(proj_canonical "${proj}")" \
"$(proj_canonical "${proj}")" \
| sed "s#$(proj_dst "${proj}")#sources#" \
| jq -r '"ERROR: \(.location.path):\(.location.range.start.line // 1):\(.location.range.start.column // 1): \(.message)" + if .suggestions[0].text then "\nSuggestion: \(.suggestions[0].text)" else "" end'
;;
'grafana/vale')
proj="$(new_proj "$1")"
@@ -807,7 +828,8 @@ EOF
-e '/rm -rf dist*/ d' \
-e '/Press Ctrl+C to stop/ d' \
-e '/make/ d' \
-e '/WARNING: The manual_mount source directory/ d'
-e '/WARNING: The manual_mount source directory/ d' \
-e '/docs\/_index.md .* not found/ d'
fi
;;
esac

View File

@@ -15,6 +15,7 @@ labels:
- oss
cascade:
TEMPO_VERSION: latest
PYROSCOPE_VERSION: latest
title: Grafana open source documentation
---
@@ -81,8 +82,8 @@ title: Grafana open source documentation
<h4>Provisioning</h4>
<p>Learn how to automate your Grafana configuration.</p>
</a>
<a href="{{< relref "whatsnew/whats-new-in-v10-3/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v10.3</h4>
<a href="{{< relref "whatsnew/whats-new-in-v10-4/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v10.4</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>

View File

@@ -10,7 +10,7 @@ description: Data source management information for Grafana administrators
labels:
products:
- enterprise
- oss
- cloud
title: Data source management
weight: 100
---
@@ -21,27 +21,15 @@ Grafana supports many different storage backends for your time series data (data
Refer to [data sources]({{< relref "../../datasources" >}}) for more information about using data sources in Grafana.
Only users with the organization admin role can add data sources.
## Add a data source
Before you can create your first dashboard, you need to add your data source.
{{% admonition type="note" %}}
Only users with the organization admin role can add data sources.
{{% /admonition %}}
**To add a data source:**
1. Click **Connections** in the left-side menu.
1. Enter the name of a specific data source in the search dialog. You can filter by **Data source** to only see data sources.
1. Click the data source you want to add.
1. Configure the data source following instructions specific to that data source.
For links to data source-specific documentation, see [Data sources]({{< relref "../../datasources" >}}).
## Data source permissions
You can configure data source permissions to allow or deny certain users the ability to query, edit, or administrate a data source. Each data sources configuration includes a Permissions tab where you can restrict data source permissions to specific users, service accounts, teams, or roles.
Query permission allows users to query the data source. Edit permission allows users to query the data source, edit the data sources configuration and delete the data source. Admin permission allows users to query and edit the data source, change permissions on the data source and enable or disable query caching for the data source.
- The `query` permission allows users to query the data source.
- The `edit` permission allows users to query the data source, edit the data sources configuration and delete the data source.
- The `admin` permission allows users to query and edit the data source, change permissions on the data source and enable or disable query caching for the data source.
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}) and [Grafana Cloud](/docs/grafana-cloud).
@@ -71,7 +59,7 @@ You can assign data source permissions to users, service accounts, teams, and ro
1. Click **Connections** in the left-side menu.
1. Under Your connections, click **Data sources**.
1. Select the data source for which you want to edit permissions.
1. On the Permissions tab, find the user, service account, team, or role permission you want to update.
1. On the Permissions tab, find the **User**, **Service Account**, **Team**, or **Role** permission you want to update.
1. Select a different option in the **Permission** dropdown.
<div class="clearfix"></div>
@@ -81,7 +69,7 @@ You can assign data source permissions to users, service accounts, teams, and ro
1. Click **Connections** in the left-side menu.
1. Under Your connections, click **Data sources**.
1. Select the data source from which you want to remove permissions.
1. On the Permissions tab, find the user, service account, team, or role permission you want to remove.
1. On the Permissions tab, find the **User**, **Service Account**, **Team**, or **Role** permission you want to remove.
1. Click the **X** next to the permission.
<div class="clearfix"></div>
@@ -178,22 +166,3 @@ This action impacts all cache-enabled data sources. If you are using Memcached,
### Sending a request without cache
If a data source query request contains an `X-Cache-Skip` header, then Grafana skips the caching middleware, and does not search the cache for a response. This can be particularly useful when debugging data source queries using cURL.
## Add data source plugins
Grafana ships with several [built-in data sources]({{< relref "../../datasources#built-in-core-data-sources" >}}).
You can add additional data sources as plugins, which you can install or create yourself.
### Find data source plugins in the plugin catalog
To view available data source plugins, go to the [plugin catalog](/grafana/plugins/?type=datasource) and select the "Data sources" filter.
For details about the plugin catalog, refer to [Plugin management]({{< relref "../../administration/plugin-management/" >}}).
You can further filter the plugin catalog's results for data sources provided by the Grafana community, Grafana Labs, and partners.
If you use [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}), you can also filter by Enterprise-supported plugins.
For more documentation on a specific data source plugin's features, including its query language and editor, refer to its plugin catalog page.
### Create a data source plugin
To build your own data source plugin, refer to the ["Build a data source plugin"](/developers/plugin-tools/tutorials/build-a-data-source-plugin) tutorial and our documentation about [building a plugin](/developers/plugin-tools).

View File

@@ -14,57 +14,55 @@ weight: 100
# Team LBAC
{{% admonition type="note" %}}
Creating Team LBAC rules is available for preview preview for logs with Loki in Grafana Cloud. Report any unexpected behavior to the Grafana Support team.
{{% /admonition %}}
Team Label Based Access Control (LBAC) simplifies and streamlines data source access management based on team memberships.
**Current Limitation:**
{{< admonition type="note" >}}
Creating Team LBAC rules is available for preview for logs with Loki in Grafana Cloud.
Report any unexpected behavior to the Grafana Support team.
{{< /admonition >}}
- Any user with `query` permissions for a Loki data source can query all logs if there are no Team LBAC rules configured for any of the users team.
- An admin that is part of a team, would have it's Team LBAC rules applied to the request.
You can configure user access based upon team memberships using LogQL.
Team LBAC controls access to logs depending on the rules set for each team.
Grafana's new **Team LBAC** (Label Based Access Control) feature for Loki is a significant enhancement that simplifies and streamlines data source access management based on team memberships.
This feature addresses two common challenges faced by Grafana users:
**Team LBAC** in the context of Loki, is a way to control access to logs based on labels present depending on the rules set for each team. Users wanting fine grained access to their logs in Loki, can now configure their users access based on their team memberships via **LogQL**.
1. Having a high number of Grafana Cloud data sources.
Team LBAC lets Grafana administrators reduce the total number of data sources per instance from hundreds, to one.
1. Using the same dashboard across multiple teams.
Team LBAC lets Grafana Teams use the same dashboard with different access control rules.
This feature addresses two common challenge faced by Grafana users:
To set up Team LBAC for a Loki data source, refer to [Configure Team LBAC](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/administration/data-source-management/teamlbac/configure-teamlbac-for-loki/).
1. High volume of Grafana Cloud datasource. Team LBAC lets Grafana Admins reduce the total volume of data sources per instance from hundreds, to one.
1. Hard for teams to share dashboard. Team LBAC lets Grafana Teams share the same dashboard despite different access control rules.
## Limitations
For setting up Team LBAC for a Loki data source, refer to [Configure Team LBAC]({{< relref "./configure-teamlbac-for-loki/" >}}).
- If there are no Team LBAC rules for a user's team, that user can query all logs.
- If an administrator is part of a team with Team LBAC rules, those rules are applied to the administrator requests.
- Cloud Access Policies (CAP) LBAC rules override Team LBAC rules.
Cloud Access Policies are the access controls from Grafana Cloud.
If there are any CAP LBAC rules configured for the same data source, then only the CAP LBAC rules are applied.
#### Datasource Permissions
You must remove any label selectors from your Cloud Access Policies to use Team LBAC.
For more information about CAP label selectors, refer to [Use label-based access control (LBAC) with access policies](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/label-access-policies/).
Datasource permissions allow the users access to query the datasource. The permissions are set at the datasource level and are inherited by all the teams and users that are part of the datasource.
## Data source permissions
We recommend to create a new loki datasource for Team LBAC rules with only teams having `query` permission. This will allow you to have a clear separation of datasources for Team LBAC and the datasources that are not using Team LBAC.
Data source permissions allow the users access to query the data source.
Administrators set the permissions at the data source level.
All the teams and users that are part of the data source inherit those permissions.
## Recommended setup
It's recommended that you create a single Loki data source for using Team LBAC rules so you have a clear separation of data sources using Team LBAC and those that aren't.
All teams should have with only teams having `query` permission.
You should create another Loki data source configured without Team LBAC for full access to the logs.
## Team LBAC rules
Team LBAC rules are added to the http request to Loki data source. Setting up Team LBAC rules for any team will apply those rules to the teams.
Users who want teams with a specific set of label selectors can add rules for each team.
Grafana adds Team LBAC rules to the HTTP request via the Loki data source.
Configuring multiple rules for a team, each rule is evaluated separately. If a team has `X` number of rules configured for it, all rules will be applied to the request and the result will be the an "OR" operation of the `X` number of rules.
If you configure multiple rules for a team, each rule is evaluated separately.
Query results include lines that match any of the rules.
Only users with data source Admin permissions can edit LBAC rules at the data source permissions tab. Changing LBAC rules requires the same access level as editing data source permissions (admin permission for data source).
Only users with data source `Admin` permissions can edit Team LBAC rules in the **Data source permissions** tab because changing LBAC rules requires the same access level as editing data source permissions.
For setting up Team LBAC Rules for the data source, refer to [Create Team LBAC rules]({{< relref "./create-teamlbac-rules/" >}}).
### FAQ
> #### "If a team does not have a rule, what happens?"
If a team does not have a rule; any users that are part of that team having query permissions for loki will have access to **all** logs.
> #### "Can I use CAPs (cloud access policies) together with TeamLBAC rules?"
No, CAP (cloud access policies) always have precedence. If there are any CAP LBAC configured for the same datasource and there are TeamLBAC rules configured, then only the CAP LBAC will be applied.
Cloud access policies are the access controls from Grafana Cloud, the CAP configured for loki should only to be used to gain read access to the logs.
> #### "If administrator forget to add rule for a team, what happens?"
The teams that does not have a rule applied to it, would be able to query all logs if `query` permissions are setup for their role within Grafana.
**Note:** A user who is part of a team within Grafana without a rule will be able to query all logs if there are role based queriying setup.
To set up Team LBAC for a Loki data source, refer to [Configure Team LBAC](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/administration/data-source-management/teamlbac/configure-teamlbac-for-loki/).

View File

@@ -31,6 +31,13 @@ Team LBAC is available on Cloud for data sources created with basic authenticati
1. Define Label Selector for the Rule
- Add a label selector to the rule. Refer to Loki query documentation for guidance on the types of log selections you can specify.
### LBAC rule
A LBAC rule is a `logql` query that runs as a query to the loki instance for your logs. Each rule is it's own filtering operating independently from the other rules within a team. For example, you can create a label policy that includes all log lines with the label.
One rule `{namespace="dev", cluster="us-west-0"}` created with multiple namespaces will be seen as `namespace="dev"` **AND** `cluster="us-west-0"`.
Two rules `{namespace="dev"}`, `{cluster="us-west-0"}` created for a team will be seen as `namespace="dev"` **OR** `cluster="us-west-0"`.
#### Best practices
We recommend you only add `query` permissions for teams that should use the data source and only `Admin` have `Admin` permissions.

View File

@@ -196,6 +196,13 @@ The active users limit is turned off immediately.
Settings updates at runtime are not affected by an expired license.
#### Email sharing
External users can't access dashboards shared via email anymore.
These dashboards are now private but you can make them public and accessible to everyone if you want to.
Grafana keeps your sharing configurations and restores them after you update your license.
## Grafana Enterprise license restrictions
When you become a Grafana Enterprise customer, you receive a license that governs your use of Grafana Enterprise.

View File

@@ -15,7 +15,7 @@ weight: 600
# Provision Grafana
In previous versions of Grafana, you could only use the API for provisioning data sources and dashboards. But that required the service to be running before you started creating dashboards and you also needed to set up credentials for the HTTP API. In v5.0 we decided to improve this experience by adding a new active provisioning system that uses config files. This will make GitOps more natural as data sources and dashboards can be defined via files that can be version controlled. We hope to extend this system to later add support for users, orgs and alerts as well.
In previous versions of Grafana, you could only use the API for provisioning data sources and dashboards. But that required the service to be running before you started creating dashboards and you also needed to set up credentials for the HTTP API. In v5.0 we decided to improve this experience by adding a new active provisioning system that uses config files. This will make GitOps more natural as data sources and dashboards can be defined via files that can be version controlled. We hope to extend this system to later add support for users and orgs as well.
## Config File
@@ -427,78 +427,6 @@ This feature doesn't currently allow you to create nested folder structures, tha
For information on provisioning Grafana Alerting, refer to [Provision Grafana Alerting resources]({{< relref "../../alerting/set-up/provision-alerting-resources/" >}}).
## Alert Notification Channels
{{% admonition type="note" %}}
Alert Notification Channels are part of legacy alerting, which is deprecated and will be removed in Grafana 10. Use the Provision contact points section in [Create and manage alerting resources using file provisioning]({{< relref "../../alerting/set-up/provision-alerting-resources/file-provisioning" >}}).
{{% /admonition %}}
Alert Notification Channels can be provisioned by adding one or more YAML config files in the [`provisioning/notifiers`](/administration/configuration/#provisioning) directory.
Each config file can contain the following top-level fields:
- `notifiers`, a list of alert notifications that will be added or updated during start up. If the notification channel already exists, Grafana will update it to match the configuration file.
- `delete_notifiers`, a list of alert notifications to be deleted before inserting/updating those in the `notifiers` list.
Provisioning looks up alert notifications by uid, and will update any existing notification with the provided uid.
By default, exporting a dashboard as JSON will use a sequential identifier to refer to alert notifications. The field `uid` can be optionally specified to specify a string identifier for the alert name.
```json
{
...
"alert": {
...,
"conditions": [...],
"frequency": "24h",
"noDataState": "ok",
"notifications": [
{"uid": "notifier1"},
{"uid": "notifier2"},
]
}
...
}
```
### Example Alert Notification Channels Config File
```yaml
notifiers:
- name: notification-channel-1
type: slack
uid: notifier1
# either
org_id: 2
# or
org_name: Main Org.
is_default: true
send_reminder: true
frequency: 1h
disable_resolve_message: false
# See `Supported Settings` section for settings supported for each
# alert notification type.
settings:
recipient: 'XXX'
uploadImage: true
token: 'xoxb' # legacy setting since Grafana v7.2 (stored non-encrypted)
url: https://slack.com # legacy setting since Grafana v7.2 (stored non-encrypted)
# Secure settings that will be encrypted in the database (supported since Grafana v7.2). See `Supported Settings` section for secure settings supported for each notifier.
secure_settings:
token: 'xoxb'
url: https://slack.com
delete_notifiers:
- name: notification-channel-1
uid: notifier1
# either
org_id: 2
# or
org_name: Main Org.
- name: notification-channel-2
# default org_id: 1
```
### Supported Settings
The following sections detail the supported settings and secure settings for each alert notification type. Secure settings are stored encrypted in the database and you add them to `secure_settings` in the YAML file instead of `settings`.

View File

@@ -22,7 +22,7 @@ Recorded queries allow you to see trends over time by taking a snapshot of a dat
For our plugins that do not return time series, it might be useful to plot historical data. For example, you might want to query ServiceNow to see a history of request response times but it can only return current point-in-time metrics.
{{% admonition type="note" %}}
Available in [Grafana Enterprise]({{< relref "../../introduction/grafana-enterprise/" >}}).
Available in [Grafana Enterprise](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/introduction/grafana-enterprise/) and [Grafana Cloud](https://grafana.com/docs/grafana-cloud/).
{{% /admonition %}}
## How recorded queries work

View File

@@ -29,140 +29,140 @@ To learn more about the Grafana resources to which you can apply RBAC, refer to
The following list contains role-based access control actions.
| Action | Applicable scope | Description |
| ------------------------------------ | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `alert.instances.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alerts and silences in data sources that support alerting. |
| `alert.instances.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage alerts and silences in data sources that support alerting. |
| `alert.instances:create` | n/a | Create silences in the current organization. |
| `alert.instances:read` | n/a | Read alerts and silences in the current organization. |
| `alert.instances:write` | n/a | Update and expire silences in the current organization. |
| `alert.notifications.external:read` | `datasources:*`<br>`datasources:uid:*` | Read templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications:write` | n/a | Manage templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.notifications:read` | n/a | Read all templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.rules.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alert rules in data sources that support alerting (Prometheus, Mimir, and Loki) |
| `alert.rules.external:write` | `datasources:*`<br>`datasources:uid:*` | Create, update, and delete alert rules in data sources that support alerting (Mimir and Loki). |
| `alert.rules:create` | `folders:*`<br>`folders:uid:*` | Create Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:delete` | `folders:*`<br>`folders:uid:*` | Delete Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:read` | `folders:*`<br>`folders:uid:*` | Read Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:write` | `folders:*`<br>`folders:uid:*` | Update Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.provisioning:read` | n/a | Read all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `alert.provisioning.secrets:read` | n/a | Same as `alert.provisioning:read` plus ability to export resources with decrypted secrets. |
| `alert.provisioning:write` | n/a | Update all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `annotations:create` | `annotations:*`<br>`annotations:type:*` | Create annotations. |
| `annotations:delete` | `annotations:*`<br>`annotations:type:*` | Delete annotations. |
| `annotations:read` | `annotations:*`<br>`annotations:type:*` | Read annotations and annotation tags. |
| `annotations:write` | `annotations:*`<br>`annotations:type:*` | Update annotations. |
| `apikeys:create` | n/a | Create API keys. |
| `apikeys:read` | `apikeys:*`<br>`apikeys:id:*` | Read API keys. |
| `apikeys:delete` | `apikeys:*`<br>`apikeys:id:*` | Delete API keys. |
| `dashboards:create` | `folders:*`<br>`folders:uid:*` | Create dashboards in one or more folders and their subfolders. |
| `dashboards:delete` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Delete one or more dashboards. |
| `dashboards.insights:read` | n/a | Read dashboard insights data and see presence indicators. |
| `dashboards.permissions:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read permissions for one or more dashboards. |
| `dashboards.permissions:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update permissions for one or more dashboards. |
| `dashboards:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read one or more dashboards. |
| `dashboards:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update one or more dashboards. |
| `dashboards.public:write` | `dashboards:*`<br>`dashboards:uid:*` | Write public dashboard configuration. |
| `datasources.caching:read` | `datasources:*`<br>`datasources:uid:*` | Read data source query caching settings. |
| `datasources.caching:write` | `datasources:*`<br>`datasources:uid:*` | Update data source query caching settings. |
| `datasources:create` | n/a | Create data sources. |
| `datasources:delete` | `datasources:*`<br>`datasources:uid:*` | Delete data sources. |
| `datasources:explore` | n/a | Enable access to the **Explore** tab. |
| `datasources.id:read` | `datasources:*`<br>`datasources:uid:*` | Read data source IDs. |
| `datasources.insights:read` | n/a | Read data sources insights data. |
| `datasources.permissions:read` | `datasources:*`<br>`datasources:uid:*` | List data source permissions. |
| `datasources.permissions:write` | `datasources:*`<br>`datasources:uid:*` | Update data source permissions. |
| `datasources:query` | `datasources:*`<br>`datasources:uid:*` | Query data sources. |
| `datasources:read` | `datasources:*`<br>`datasources:uid:*` | List data sources. |
| `datasources:write` | `datasources:*`<br>`datasources:uid:*` | Update data sources. |
| `featuremgmt.read` | n/a | Read feature toggles. |
| `featuremgmt.write` | n/a | Write feature toggles. |
| `folders.permissions:read` | `folders:*`<br>`folders:uid:*` | Read permissions for one or more folders and their subfolders. |
| `folders.permissions:write` | `folders:*`<br>`folders:uid:*` | Update permissions for one or more folders and their subfolders. |
| `folders:create` | n/a | Create folders in the root level. If granted together with `folders:write`, also allows creating subfolders under all folders that the user can update. |
| `folders:delete` | `folders:*`<br>`folders:uid:*` | Delete one or more folders and their subfolders. |
| `folders:read` | `folders:*`<br>`folders:uid:*` | Read one or more folders and their subfolders. |
| `folders:write` | `folders:*`<br>`folders:uid:*` | Update one or more folders and their subfolders. If granted together with `folders:create` permission, also allows creating subfolders under these folders. |
| `ldap.config:reload` | n/a | Reload the LDAP configuration. |
| `ldap.status:read` | n/a | Verify the availability of the LDAP server or servers. |
| `ldap.user:read` | n/a | Read users via LDAP. |
| `ldap.user:sync` | n/a | Sync users via LDAP. |
| `library.panels:create` | `folders:*` <br> `folders:uid:*` | Create a library panel in one or more folders and their subfolders. |
| `library.panels:read` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Read one or more library panels. |
| `library.panels:write` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Update one or more library panels. |
| `library.panels:delete` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Delete one or more library panels. |
| `licensing.reports:read` | n/a | Get custom permission reports. |
| `licensing:delete` | n/a | Delete the license token. |
| `licensing:read` | n/a | Read licensing information. |
| `licensing:write` | n/a | Update the license token. |
| `org.users:write` | `users:*` <br> `users:id:*` | Update the organization role (`Viewer`, `Editor`, or `Admin`) of a user. |
| `org.users:add` | `users:*` <br> `users:id:*` | Add a user to an organization or invite a new user to an organization. |
| `org.users:read` | `users:*` <br> `users:id:*` | Get user profiles within an organization. |
| `org.users:remove` | `users:*` <br> `users:id:*` | Remove a user from an organization. |
| `orgs.preferences:read` | n/a | Read organization preferences. |
| `orgs.preferences:write` | n/a | Update organization preferences. |
| `orgs.quotas:read` | n/a | Read organization quotas. |
| `orgs.quotas:write` | n/a | Update organization quotas. |
| `orgs:create` | n/a | Create an organization. |
| `orgs:delete` | n/a | Delete one or more organizations. |
| `orgs:read` | n/a | Read one or more organizations. |
| `orgs:write` | n/a | Update one or more organizations. |
| `plugins.app:access` | `plugins:*` <br> `plugins:id:*` | Access one or more application plugins (still enforcing the organization role) |
| `plugins:install` | n/a | Install and uninstall plugins. |
| `plugins:write` | `plugins:*` <br> `plugins:id:*` | Edit settings for one or more plugins. |
| `provisioning:reload` | `provisioners:*` | Reload provisioning files. To find the exact scope for specific provisioner, see [Scope definitions]({{< relref "#scope-definitions" >}}). |
| `reports:create` | n/a | Create reports. |
| `reports:write` | `reports:*` <br> `reports:id:*` | Update reports. |
| `reports.settings:read` | n/a | Read report settings. |
| `reports.settings:write` | n/a | Update report settings. |
| `reports:delete` | `reports:*` <br> `reports:id:*` | Delete reports. |
| `reports:read` | `reports:*` <br> `reports:id:*` | List all available reports or get a specific report. |
| `reports:send` | `reports:*` <br> `reports:id:*` | Send a report email. |
| `roles:delete` | `permissions:type:delegate` | Delete a custom role. |
| `roles:read` | `roles:*` <br> `roles:uid:*` | List roles and read a specific with its permissions. |
| `roles:write` | `permissions:type:delegate` | Create or update a custom role. |
| `roles:write` | `permissions:type:escalate` | Reset basic roles to their default permissions. |
| `server.stats:read` | n/a | Read Grafana instance statistics. |
| `server.usagestats.report:read` | n/a | View usage statistics report. |
| `serviceaccounts:write` | `serviceaccounts:*` | Create Grafana service accounts. |
| `serviceaccounts:create` | n/a | Update Grafana service accounts. |
| `serviceaccounts:delete` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Delete Grafana service accounts. |
| `serviceaccounts:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service accounts. |
| `serviceaccounts.permissions:write` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Update Grafana service account permissions to control who can do what with the service account. |
| `serviceaccounts.permissions:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service account permissions to see who can do what with the service account. |
| `settings:read` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Read the [Grafana configuration settings]({{< relref "../../../../setup-grafana/configure-grafana/" >}}) |
| `settings:write` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Update any Grafana configuration settings that can be [updated at runtime]({{< relref "../../../../setup-grafana/configure-grafana/settings-updates-at-runtime" >}}). |
| `support.bundles:create` | n/a | Create support bundles. |
| `support.bundles:delete` | n/a | Delete support bundles. |
| `support.bundles:read` | n/a | List and download support bundles. |
| `status:accesscontrol` | `services:accesscontrol` | Get access-control enabled status. |
| `teams.permissions:read` | `teams:*`<br>`teams:id:*` | Read members and Team Sync setup for teams. |
| `teams.permissions:write` | `teams:*`<br>`teams:id:*` | Add, remove and update members and manage Team Sync setup for teams. |
| `teams.roles:add` | `permissions:type:delegate` | Assign a role to a team. |
| `teams.roles:read` | `teams:*`<br>`teams:id:*` | List roles assigned directly to a team. |
| `teams.roles:remove` | `permissions:type:delegate` | Unassign a role from a team. |
| `teams:create` | n/a | Create teams. |
| `teams:delete` | `teams:*`<br>`teams:id:*` | Delete one or more teams. |
| `teams:read` | `teams:*`<br>`teams:id:*` | Read one or more teams and team preferences. |
| `teams:write` | `teams:*`<br>`teams:id:*` | Update one or more teams and team preferences. |
| `users.authtoken:read` | `global.users:*` <br> `global.users:id:*` | List authentication tokens that are assigned to a user. |
| `users.authtoken:write` | `global.users:*` <br> `global.users:id:*` | Update authentication tokens that are assigned to a user. |
| `users.password:write` | `global.users:*` <br> `global.users:id:*` | Update a users password. |
| `users.permissions:read` | `users:*` | List permissions of a user. |
| `users.permissions:write` | `global.users:*` <br> `global.users:id:*` | Update a users organization-level permissions. |
| `users.quotas:read` | `global.users:*` <br> `global.users:id:*` | List a users quotas. |
| `users.quotas:write` | `global.users:*` <br> `global.users:id:*` | Update a users quotas. |
| `users.roles:add` | `permissions:type:delegate` | Assign a role to a user or a service account. |
| `users.roles:read` | `users:*` | List roles assigned directly to a user or a service account. |
| `users.roles:remove` | `permissions:type:delegate` | Unassign a role from a user or a service account. |
| `users:create` | n/a | Create a user. |
| `users:delete` | `global.users:*` <br> `global.users:id:*` | Delete a user. |
| `users:disable` | `global.users:*` <br> `global.users:id:*` | Disable a user. |
| `users:enable` | `global.users:*` <br> `global.users:id:*` | Enable a user. |
| `users:logout` | `global.users:*` <br> `global.users:id:*` | Sign out a user. |
| `users:read` | `global.users:*` | Read or search user profiles. |
| `users:write` | `global.users:*` <br> `global.users:id:*` | Update a users profile. |
| Action | Applicable scope | Description |
| ------------------------------------ | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `alert.instances.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alerts and silences in data sources that support alerting. |
| `alert.instances.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage alerts and silences in data sources that support alerting. |
| `alert.instances:create` | n/a | Create silences in the current organization. |
| `alert.instances:read` | n/a | Read alerts and silences in the current organization. |
| `alert.instances:write` | n/a | Update and expire silences in the current organization. |
| `alert.notifications.external:read` | `datasources:*`<br>`datasources:uid:*` | Read templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications.external:write` | `datasources:*`<br>`datasources:uid:*` | Manage templates, contact points, notification policies, and mute timings in data sources that support alerting. |
| `alert.notifications:write` | n/a | Manage templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.notifications:read` | n/a | Read all templates, contact points, notification policies, and mute timings in the current organization. |
| `alert.rules.external:read` | `datasources:*`<br>`datasources:uid:*` | Read alert rules in data sources that support alerting (Prometheus, Mimir, and Loki) |
| `alert.rules.external:write` | `datasources:*`<br>`datasources:uid:*` | Create, update, and delete alert rules in data sources that support alerting (Mimir and Loki). |
| `alert.rules:create` | `folders:*`<br>`folders:uid:*` | Create Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:delete` | `folders:*`<br>`folders:uid:*` | Delete Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:read` | `folders:*`<br>`folders:uid:*` | Read Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.rules:write` | `folders:*`<br>`folders:uid:*` | Update Grafana alert rules in a folder and its subfolders. Combine this permission with `folders:read` in a scope that includes the folder and `datasources:query` in the scope of data sources the user can query. |
| `alert.provisioning:read` | n/a | Read all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `alert.provisioning.secrets:read` | n/a | Same as `alert.provisioning:read` plus ability to export resources with decrypted secrets. |
| `alert.provisioning:write` | n/a | Update all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required. |
| `annotations:create` | `annotations:*`<br>`annotations:type:*` | Create annotations. |
| `annotations:delete` | `annotations:*`<br>`annotations:type:*` | Delete annotations. |
| `annotations:read` | `annotations:*`<br>`annotations:type:*` | Read annotations and annotation tags. |
| `annotations:write` | `annotations:*`<br>`annotations:type:*` | Update annotations. |
| `apikeys:create` | n/a | Create API keys. |
| `apikeys:read` | `apikeys:*`<br>`apikeys:id:*` | Read API keys. |
| `apikeys:delete` | `apikeys:*`<br>`apikeys:id:*` | Delete API keys. |
| `dashboards:create` | `folders:*`<br>`folders:uid:*` | Create dashboards in one or more folders and their subfolders. |
| `dashboards:delete` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Delete one or more dashboards. |
| `dashboards.insights:read` | n/a | Read dashboard insights data and see presence indicators. |
| `dashboards.permissions:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read permissions for one or more dashboards. |
| `dashboards.permissions:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update permissions for one or more dashboards. |
| `dashboards:read` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Read one or more dashboards. |
| `dashboards:write` | `dashboards:*`<br>`dashboards:uid:*`<br>`folders:*`<br>`folders:uid:*` | Update one or more dashboards. |
| `dashboards.public:write` | `dashboards:*`<br>`dashboards:uid:*` | Write public dashboard configuration. |
| `datasources.caching:read` | `datasources:*`<br>`datasources:uid:*` | Read data source query caching settings. |
| `datasources.caching:write` | `datasources:*`<br>`datasources:uid:*` | Update data source query caching settings. |
| `datasources:create` | n/a | Create data sources. |
| `datasources:delete` | `datasources:*`<br>`datasources:uid:*` | Delete data sources. |
| `datasources:explore` | n/a | Enable access to the **Explore** tab. |
| `datasources.id:read` | `datasources:*`<br>`datasources:uid:*` | Read data source IDs. |
| `datasources.insights:read` | n/a | Read data sources insights data. |
| `datasources.permissions:read` | `datasources:*`<br>`datasources:uid:*` | List data source permissions. |
| `datasources.permissions:write` | `datasources:*`<br>`datasources:uid:*` | Update data source permissions. |
| `datasources:query` | `datasources:*`<br>`datasources:uid:*` | Query data sources. |
| `datasources:read` | `datasources:*`<br>`datasources:uid:*` | List data sources. |
| `datasources:write` | `datasources:*`<br>`datasources:uid:*` | Update data sources. |
| `featuremgmt.read` | n/a | Read feature toggles. |
| `featuremgmt.write` | n/a | Write feature toggles. |
| `folders.permissions:read` | `folders:*`<br>`folders:uid:*` | Read permissions for one or more folders and their subfolders. |
| `folders.permissions:write` | `folders:*`<br>`folders:uid:*` | Update permissions for one or more folders and their subfolders. |
| `folders:create` | n/a | Create folders in the root level. If granted together with `folders:write`, also allows creating subfolders under all folders that the user can update. |
| `folders:delete` | `folders:*`<br>`folders:uid:*` | Delete one or more folders and their subfolders. |
| `folders:read` | `folders:*`<br>`folders:uid:*` | Read one or more folders and their subfolders. |
| `folders:write` | `folders:*`<br>`folders:uid:*` | Update one or more folders and their subfolders. If granted together with `folders:create` permission, also allows creating subfolders under these folders. |
| `ldap.config:reload` | n/a | Reload the LDAP configuration. |
| `ldap.status:read` | n/a | Verify the availability of the LDAP server or servers. |
| `ldap.user:read` | n/a | Read users via LDAP. |
| `ldap.user:sync` | n/a | Sync users via LDAP. |
| `library.panels:create` | `folders:*` <br> `folders:uid:*` | Create a library panel in one or more folders and their subfolders. |
| `library.panels:read` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Read one or more library panels. |
| `library.panels:write` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Update one or more library panels. |
| `library.panels:delete` | `folders:*` <br> `folders:uid:*` <br> `library.panels:*` <br> `library.panels:uid:*` | Delete one or more library panels. |
| `licensing.reports:read` | n/a | Get custom permission reports. |
| `licensing:delete` | n/a | Delete the license token. |
| `licensing:read` | n/a | Read licensing information. |
| `licensing:write` | n/a | Update the license token. |
| `org.users:write` | `users:*` <br> `users:id:*` | Update the organization role (`Viewer`, `Editor`, or `Admin`) of a user. |
| `org.users:add` | `users:*` <br> `users:id:*` | Add a user to an organization or invite a new user to an organization. |
| `org.users:read` | `users:*` <br> `users:id:*` | Get user profiles within an organization. |
| `org.users:remove` | `users:*` <br> `users:id:*` | Remove a user from an organization. |
| `orgs.preferences:read` | n/a | Read organization preferences. |
| `orgs.preferences:write` | n/a | Update organization preferences. |
| `orgs.quotas:read` | n/a | Read organization quotas. |
| `orgs.quotas:write` | n/a | Update organization quotas. |
| `orgs:create` | n/a | Create an organization. |
| `orgs:delete` | n/a | Delete one or more organizations. |
| `orgs:read` | n/a | Read one or more organizations. |
| `orgs:write` | n/a | Update one or more organizations. |
| `plugins.app:access` | `plugins:*` <br> `plugins:id:*` | Access one or more application plugins (still enforcing the organization role) |
| `plugins:install` | n/a | Install and uninstall plugins. |
| `plugins:write` | `plugins:*` <br> `plugins:id:*` | Edit settings for one or more plugins. |
| `provisioning:reload` | `provisioners:*` | Reload provisioning files. To find the exact scope for specific provisioner, see [Scope definitions]({{< relref "#scope-definitions" >}}). |
| `reports:create` | n/a | Create reports. |
| `reports:write` | `reports:*` <br> `reports:id:*` | Update reports. |
| `reports.settings:read` | n/a | Read report settings. |
| `reports.settings:write` | n/a | Update report settings. |
| `reports:delete` | `reports:*` <br> `reports:id:*` | Delete reports. |
| `reports:read` | `reports:*` <br> `reports:id:*` | List all available reports or get a specific report. |
| `reports:send` | `reports:*` <br> `reports:id:*` | Send a report email. |
| `roles:delete` | `permissions:type:delegate` | Delete a custom role. |
| `roles:read` | `roles:*` <br> `roles:uid:*` | List roles and read a specific role with its permissions. |
| `roles:write` | `permissions:type:delegate` | Create or update a custom role. |
| `roles:write` | `permissions:type:escalate` | Reset basic roles to their default permissions. |
| `server.stats:read` | n/a | Read Grafana instance statistics. |
| `server.usagestats.report:read` | n/a | View usage statistics report. |
| `serviceaccounts:write` | `serviceaccounts:*` | Create Grafana service accounts. |
| `serviceaccounts:create` | n/a | Update Grafana service accounts. |
| `serviceaccounts:delete` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Delete Grafana service accounts. |
| `serviceaccounts:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service accounts. |
| `serviceaccounts.permissions:write` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Update Grafana service account permissions to control who can do what with the service account. |
| `serviceaccounts.permissions:read` | `serviceaccounts:*` <br> `serviceaccounts:id:*` | Read Grafana service account permissions to see who can do what with the service account. |
| `settings:read` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Read the [Grafana configuration settings]({{< relref "../../../../setup-grafana/configure-grafana/" >}}) |
| `settings:write` | `settings:*`<br>`settings:auth.saml:*`<br>`settings:auth.saml:enabled` (property level) | Update any Grafana configuration settings that can be [updated at runtime]({{< relref "../../../../setup-grafana/configure-grafana/settings-updates-at-runtime" >}}). |
| `support.bundles:create` | n/a | Create support bundles. |
| `support.bundles:delete` | n/a | Delete support bundles. |
| `support.bundles:read` | n/a | List and download support bundles. |
| `status:accesscontrol` | `services:accesscontrol` | Get access-control enabled status. |
| `teams.permissions:read` | `teams:*`<br>`teams:id:*` | Read members and Team Sync setup for teams. |
| `teams.permissions:write` | `teams:*`<br>`teams:id:*` | Add, remove and update members and manage Team Sync setup for teams. |
| `teams.roles:add` | `permissions:type:delegate` | Assign a role to a team. |
| `teams.roles:read` | `teams:*`<br>`teams:id:*` | List roles assigned directly to a team. |
| `teams.roles:remove` | `permissions:type:delegate` | Unassign a role from a team. |
| `teams:create` | n/a | Create teams. |
| `teams:delete` | `teams:*`<br>`teams:id:*` | Delete one or more teams. |
| `teams:read` | `teams:*`<br>`teams:id:*` | Read one or more teams and team preferences. To list teams through the UI one of the following permissions is required in addition to `teams:read`: `teams:write`, `teams.permissions:read` or `teams.permissions:write`. |
| `teams:write` | `teams:*`<br>`teams:id:*` | Update one or more teams and team preferences. |
| `users.authtoken:read` | `global.users:*` <br> `global.users:id:*` | List authentication tokens that are assigned to a user. |
| `users.authtoken:write` | `global.users:*` <br> `global.users:id:*` | Update authentication tokens that are assigned to a user. |
| `users.password:write` | `global.users:*` <br> `global.users:id:*` | Update a users password. |
| `users.permissions:read` | `users:*` | List permissions of a user. |
| `users.permissions:write` | `global.users:*` <br> `global.users:id:*` | Update a users organization-level permissions. |
| `users.quotas:read` | `global.users:*` <br> `global.users:id:*` | List a users quotas. |
| `users.quotas:write` | `global.users:*` <br> `global.users:id:*` | Update a users quotas. |
| `users.roles:add` | `permissions:type:delegate` | Assign a role to a user or a service account. |
| `users.roles:read` | `users:*` | List roles assigned directly to a user or a service account. |
| `users.roles:remove` | `permissions:type:delegate` | Unassign a role from a user or a service account. |
| `users:create` | n/a | Create a user. |
| `users:delete` | `global.users:*` <br> `global.users:id:*` | Delete a user. |
| `users:disable` | `global.users:*` <br> `global.users:id:*` | Disable a user. |
| `users:enable` | `global.users:*` <br> `global.users:id:*` | Enable a user. |
| `users:logout` | `global.users:*` <br> `global.users:id:*` | Sign out a user. |
| `users:read` | `global.users:*` | Read or search user profiles. |
| `users:write` | `global.users:*` <br> `global.users:id:*` | Update a users profile. |
### Grafana OnCall action definitions (beta)

View File

@@ -110,7 +110,7 @@ The following tables list permissions associated with basic and fixed roles.
### Alerting roles
If alerting is [enabled]({{< relref "../../../../alerting/set-up/migrating-alerts" >}}), you can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.
You can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.
Access to Grafana alert rules is an intersection of many permissions:

View File

@@ -1,8 +1,8 @@
---
aliases:
- about-alerting/
- ./unified-alerting/alerting/
- ./alerting/unified-alerting/
- about-alerting/ # /docs/grafana/<GRAFANA_VERSION>/about-alerting
- ./unified-alerting/alerting/ # /docs/grafana/<GRAFANA_VERSION>/unified-alerting/alerting/
- ./alerting/unified-alerting/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/
canonical: https://grafana.com/docs/grafana/latest/alerting/
description: Learn about the key benefits and features of Grafana Alerting
labels:
@@ -10,91 +10,57 @@ labels:
- cloud
- enterprise
- oss
title: Alerting
menuTitle: Alerting
title: Grafana Alerting
weight: 114
hero:
title: Grafana Alerting
level: 1
image: /media/docs/alerting/alerting-bell-icon.png
width: 100
height: 100
description: Grafana Alerting allows you to learn about problems in your systems moments after they occur.
cards:
title_class: pt-0 lh-1
items:
- title: Introduction
href: ./fundamentals/
description: Learn more about the fundamentals and available features that help you create, manage, and respond to alerts; and improve your teams ability to resolve issues quickly.
height: 24
- title: Set up
href: ./set-up/
description: Set up your implementation of Grafana Alerting.
height: 24
- title: Configure alert rules
href: ./alerting-rules/
description: Create, manage, view, and adjust alert rules to alert on your metrics data or log entries from multiple data sources — no matter where your data is stored.
height: 24
- title: Configure notifications
href: ./configure-notifications/
description: Choose how, when, and where to send your alert notifications.
height: 24
- title: Detect and respond
href: ./manage-notifications/
description: Monitor, respond to, and triage issues within your services.
height: 24
- title: Monitor
href: ./monitor/
description: Monitor your alerting metrics to ensure you identify potential issues before they become critical.
height: 24
---
# Alerting
{{< docs/hero-simple key="hero" >}}
Grafana Alerting allows you to learn about problems in your systems moments after they occur.
---
Monitor your incoming metrics data or log entries and set up your Alerting system to watch for specific events or circumstances and then send notifications when those things are found.
## Overview
Monitor your incoming metrics data or log entries and set up your Grafana Alerting system to watch for specific events or circumstances.
In this way, you eliminate the need for manual monitoring and provide a first line of defense against system outages or changes that could turn into major incidents.
Using Grafana Alerting, you create queries and expressions from multiple data sources — no matter where your data is stored — giving you the flexibility to combine your data and alert on your metrics and logs in new and unique ways. You can then create, manage, and take action on your alerts from a single, consolidated view, and improve your teams ability to identify and resolve issues quickly.
Grafana Alerting is available for Grafana OSS, Grafana Enterprise, or Grafana Cloud. With Mimir and Loki alert rules you can run alert expressions closer to your data and at massive scale, all managed by the Grafana UI you are already familiar with.
## Explore
Watch this video to learn more about Grafana Alerting: {{< vimeo 720001629 >}}
_Refer to [Manage your alert rules][alerting-rules] for current instructions._
## Key features and benefits
**One page for all alerts**
A single Grafana Alerting page consolidates both Grafana-managed alerts and alerts that reside in your Prometheus-compatible data source in one single place.
**Multi-dimensional alerts**
Alert rules can create multiple individual alert instances per alert rule, known as multi-dimensional alerts, giving you the power and flexibility to gain visibility into your entire system with just a single alert rule. You do this by adding labels to your query to specify which component is being monitored and generate multiple alert instances for a single alert rule. For example, if you want to monitor each server in a cluster, a multi-dimensional alert will alert on each CPU, whereas a standard alert will alert on the overall server.
**Route alerts**
Route each alert instance to a specific contact point based on labels you define. Notification policies are the set of rules for where, when, and how the alerts are routed to contact points.
**Silence alerts**
Silences stop notifications from getting created and last for only a specified window of time.
Silences allow you to stop receiving persistent notifications from one or more alert rules. You can also partially pause an alert based on certain criteria. Silences have their own dedicated section for better organization and visibility, so that you can scan your paused alert rules without cluttering the main alerting view.
**Mute timings**
A mute timing is a recurring interval of time when no new notifications for a policy are generated or sent. Use them to prevent alerts from firing a specific and reoccurring period, for example, a regular maintenance period.
Similar to silences, mute timings do not prevent alert rules from being evaluated, nor do they stop alert instances from being shown in the user interface. They only prevent notifications from being created.
## Design your Alerting system
Monitoring complex IT systems and understanding whether everything is up and running correctly is a difficult task. Setting up an effective alert management system is therefore essential to inform you when things are going wrong before they start to impact your business outcomes.
Designing and configuring an alert management set up that works takes time.
Here are some tips on how to create an effective alert management set up for your business:
**Which are the key metrics for your business that you want to monitor and alert on?**
- Find events that are important to know about and not so trivial or frequent that recipients ignore them.
- Alerts should only be created for big events that require immediate attention or intervention.
- Consider quality over quantity.
**Which type of Alerting do you want to use?**
- Choose between Grafana-managed Alerting or Grafana Mimir or Loki-managed Alerting; or both.
**How do you want to organize your alerts and notifications?**
- Be selective about who you set to receive alerts. Consider sending them to whoever is on call or a specific Slack channel.
- Automate as far as possible using the Alerting API or alerts as code (Terraform).
**How can you reduce alert fatigue?**
- Avoid noisy, unnecessary alerts by using silences, mute timings, or pausing alert rule evaluation.
- Continually tune your alert rules to review effectiveness. Remove alert rules to avoid duplication or ineffective alerts.
- Think carefully about priority and severity levels.
- Continually review your thresholds and evaluation rules.
## Useful links
- [Introduction to Alerting][fundamentals]
{{% docs/reference %}}
[alerting-rules]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules"
[alerting-rules]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules"
[fundamentals]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals"
[fundamentals]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals"
{{% /docs/reference %}}
{{< card-grid key="cards" type="simple" >}}

View File

@@ -1,58 +1,48 @@
---
aliases:
- old-alerting/create-alerts/
- rules/
- unified-alerting/alerting-rules/
- ./create-alerts/
- rules/ # /docs/grafana/<GRAFANA_VERSION>/alerting/rules/
- unified-alerting/alerting-rules/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/
- ./create-alerts/ # /docs/grafana/<GRAFANA_VERSION>/alerting/create-alerts/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/
description: Configure the features and integrations you need to create and manage your alerts
description: Configure alert rules
labels:
products:
- cloud
- enterprise
- oss
menuTitle: Configure
title: Configure Alerting
title: Configure alert rules
weight: 120
---
# Configure Alerting
# Configure alert rules
Configure the features and integrations that you need to create and manage your alerts.
An alert rule consists of one or more queries and expressions that select the data you want to measure. It also contains a condition, which is the threshold that an alert rule must meet or exceed in order to fire.
**Configure alert rules**
Create, manage, view, and adjust alert rules to alert on your metrics data or log entries from multiple data sources — no matter where your data is stored.
[Configure Grafana-managed alert rules][create-grafana-managed-rule].
The main parts of alert rule creation are:
[Configure data source-managed alert rules][create-mimir-loki-managed-rule]
1. Select your data source
1. Query your data
1. Normalize your data
1. Set your threshold
**Configure recording rules**
**Query, expressions, and alert condition**
_Recording rules are only available for compatible Prometheus or Loki data sources._
What are you monitoring? How are you measuring it?
For more information, see [Configure recording rules][create-mimir-loki-managed-recording-rule].
{{< admonition type="note" >}}
Expressions can only be used for Grafana-managed alert rules.
{{< /admonition >}}
**Configure contact points**
**Evaluation**
For information on how to configure contact points, see [Configure contact points][manage-contact-points].
How do you want your alert to be evaluated?
**Configure notification policies**
**Labels and notifications**
For information on how to configure notification policies, see [Configure notification policies][create-notification-policy].
How do you want to route your alert? What kind of additional labels could you add to annotate your alert rules and ease searching?
{{% docs/reference %}}
[create-mimir-loki-managed-rule]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-mimir-loki-managed-rule"
[create-mimir-loki-managed-rule]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/create-mimir-loki-managed-rule"
**Annotations**
[create-mimir-loki-managed-recording-rule]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-mimir-loki-managed-recording-rule"
[create-mimir-loki-managed-recording-rule]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/create-mimir-loki-managed-recording-rule"
[create-grafana-managed-rule]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-grafana-managed-rule"
[create-grafana-managed-rule]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/create-grafana-managed-rule"
[manage-contact-points]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points"
[manage-contact-points]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/manage-contact-points"
[create-notification-policy]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-notification-policy"
[create-notification-policy]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/create-notification-policy"
{{% /docs/reference %}}
Do you want to add more context on the alert in your notification messages, for example, what caused the alert to fire? Which server did it happen on?

View File

@@ -1,6 +1,6 @@
---
aliases:
- ../unified-alerting/alerting-rules/create-grafana-managed-rule/
- ../unified-alerting/alerting-rules/create-grafana-managed-rule/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/create-grafana-managed-rule/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/create-grafana-managed-rule/
description: Configure Grafana-managed alert rules to create alerts that can act on data from any of our supported data sources
keywords:
@@ -38,8 +38,6 @@ Grafana managed alert rules can only be edited or deleted by users with Edit per
If you delete an alerting resource created in the UI, you can no longer retrieve it.
To make a backup of your configuration and to be able to restore deleted alerting resources, create your alerting resources using file provisioning, Terraform, or the Alerting API.
Watch this video to learn more about creating alert rules: {{< vimeo 720001934 >}}
In the following sections, well guide you through the process of creating your Grafana-managed alert rules.
To create a Grafana-managed alert rule, use the in-product alert creation flow and follow these steps to help you.
@@ -80,10 +78,6 @@ Define a query to get the data you want to measure and a condition that needs to
b. Click **Preview** to verify that the expression is successful.
{{% admonition type="note" %}}
The recovery threshold feature is currently only available in OSS.
{{% /admonition %}}
1. To add a recovery threshold, turn the **Custom recovery threshold** toggle on and fill in a value for when your alert rule should stop firing.
You can only add one recovery threshold in a query and it must be the alert condition.
@@ -111,33 +105,84 @@ To do this, you need to make sure that your alert rule is in the right evaluatio
1. Turn on pause alert notifications, if required.
**Note**:
Pause alert rule evaluation to prevent noisy alerting while tuning your alerts. Pausing stops alert rule evaluation and does not create any alert instances. This is different to mute timings, which stop notifications from being delivered, but still allow for alert rule evaluation and the creation of alert instances.
You can pause alert rule evaluation to prevent noisy alerting while tuning your alerts. Pausing stops alert rule evaluation and does not create any alert instances. This is different to mute timings, which stop notifications from being delivered, but still allow for alert rule evaluation and the creation of alert instances.
{{< admonition type="note" >}}
You can pause alert rule evaluation to prevent noisy alerting while tuning your alerts.
Pausing stops alert rule evaluation and doesn't create any alert instances.
This is different to mute timings, which stop notifications from being delivered, but still allows for alert rule evaluation and the creation of alert instances.
{{< /admonition >}}
1. In **Configure no data and error handling**, configure alerting behavior in the absence of data.
Use the guidelines in [No data and error handling](#configure-no-data-and-error-handling).
## Configure notifications
## Configure labels and notifications
Add labels to your alert rules to set which notification policy should handle your firing alert instances.
{{< admonition type="note" >}}
This section is for all Cloud instances and OSS instances with the alertingSimplifiedRouting feature toggle enabled.
{{< /admonition >}}
All alert rules and instances, irrespective of their labels, match the default notification policy. If there are no nested policies, or no nested policies match the labels in the alert rule or alert instance, then the default notification policy is the matching policy.
In the **Labels** section, you can optionally choose whether to add labels to organize your alert rules, make searching easier, as well as set which notification policy should handle your firing alert instance.
1. Add labels if you want to change the way your notifications are routed.
In the **Configure notifications** section, you can choose to select a contact point directly from the alert rule form or choose to use notification policy routing as well as set up mute timings and groupings.
Complete the following steps to set up labels and notifications.
1. Add labels, if required.
Add custom labels by selecting existing key-value pairs from the drop down, or add new labels by entering the new key or value.
1. Preview your alert instance routing set up.
2. Configure who receives a notification when an alert rule fires by either choosing **Select contact point** or **Use notification policy**.
**Select contact point**
1. Choose this option to select an existing contact point.
All notifications for this alert rule are sent to this contact point automatically and notification policies are not used.
2. You can also optionally select a mute timing as well as groupings and timings to define when not to send notifications.
{{< admonition type="note" >}}
An auto-generated notification policy is generated. Only admins can view these auto-generated policies from the **Notification policies** list view. Any changes have to be made in the alert rules form. {{< /admonition >}}
**Use notification policy**
3. Choose this option to use the notification policy tree to direct your notifications.
{{< admonition type="note" >}}
All alert rules and instances, irrespective of their labels, match the default notification policy. If there are no nested policies, or no nested policies match the labels in the alert rule or alert instance, then the default notification policy is the matching policy.
{{< /admonition >}}
4. Preview your alert instance routing set up.
Based on the labels added, alert instances are routed to the following notification policies displayed.
5. Expand each notification policy below to view more details.
6. Click **See details** to view alert routing details and an email preview.
## Configure notifications
{{< admonition type="note" >}}
This section is for OSS instances without the alertingSimplifiedRouting feature toggle enabled.
{{< /admonition >}}
1. Add labels to your alert rules to set which notification policy should handle your firing alert instances.
All alert rules and instances, irrespective of their labels, match the default notification policy. If there are no nested policies, or no nested policies match the labels in the alert rule or alert instance, then the default notification policy is the matching policy.
Add labels if you want to change the way your notifications are routed.
Add custom labels by selecting existing key-value pairs from the drop down, or add new labels by entering the new key or value.
2. Preview your alert instance routing set up.
Based on the labels added, alert instances are routed to the following notification policies displayed.
Expand each notification policy below to view more details.
3. Expand each notification policy below to view more details.
1. Click **See details** to view alert routing details and an email preview.
4. Click **See details** to view alert routing details and an email preview.
5. Click **Save rule**.
## Add annotations
@@ -178,7 +223,7 @@ For more information, see [expressions documentation][expression-queries].
To generate a separate alert for each series, create a multi-dimensional rule. Use `Math`, `Reduce`, or `Resample` expressions to create a multi-dimensional rule. For example:
- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data][alerting-on-numeric-data].
- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data][alerting-on-numeric-data]).
- Add a `Math` expression with the condition for the rule. Not needed in case a query or a reduce expression already returns 0 if rule should not fire, or a positive number if it should fire. Some examples: `$B > 70` if it should fire in case value of B query/expression is more than 70. `$B < $C * 100` in case it should fire if value of B is less than value of C multiplied by 100. If queries being compared have multiple series in their results, series from different queries are matched if they have the same labels or one is a subset of the other.
![Query section multi dimensional](/static/img/docs/alerting/unified/rule-edit-multi-8-0.png 'Query section multi dimensional screenshot')
@@ -225,20 +270,20 @@ This will open the alert rule form, allowing you to configure and create your al
{{% docs/reference %}}
[add-a-query]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/panels-visualizations/query-transform-data#add-a-query"
[add-a-query]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA_VERSION>/panels-visualizations/query-transform-data#add-a-query"
[add-a-query]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/visualizations/panels-visualizations/query-transform-data#add-a-query"
[alerting-on-numeric-data]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/evaluate-grafana-alerts#alerting-on-numeric-data-1"
[alerting-on-numeric-data]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/evaluate-grafana-alerts#alerting-on-numeric-data-1"
[alerting-on-numeric-data]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/alert-rules/queries-conditions#alert-on-numeric-data"
[alerting-on-numeric-data]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/alert-rules/queries-conditions#alert-on-numeric-data"
[annotation-label]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/annotation-label"
[annotation-label]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/annotation-label"
[annotation-label]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/alert-rules/annotation-label"
[annotation-label]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/alert-rules/annotation-label"
[expression-queries]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/panels-visualizations/query-transform-data/expression-queries"
[expression-queries]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA_VERSION>/panels-visualizations/query-transform-data/expression-queries"
[expression-queries]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/visualizations/panels-visualizations/query-transform-data/expression-queries"
[fundamentals]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals"
[fundamentals]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals"
[time-units-and-relative-ranges]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/dashboards/use-dashboards#time-units-and-relative-ranges"
[time-units-and-relative-ranges]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA_VERSION>/dashboards/use-dashboards#time-units-and-relative-ranges"
[time-units-and-relative-ranges]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/visualizations/dashboards/use-dashboards#time-units-and-relative-ranges"
{{% /docs/reference %}}

View File

@@ -1,9 +1,9 @@
---
aliases:
- ../unified-alerting/alerting-rules/create-cortex-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-mimir-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-cortex-loki-managed-recording-rule/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/create-cortex-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-mimir-loki-managed-recording-rule/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/create-mimir-loki-managed-recording-rule/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/create-mimir-loki-managed-recording-rule/
description: Configure recording rules for an external Grafana Mimir or Loki instance
description: Create recording rules for an external Grafana Mimir or Loki instance
keywords:
- grafana
- alerting
@@ -16,13 +16,16 @@ labels:
- cloud
- enterprise
- oss
title: Configure recording rules
title: Create recording rules
weight: 300
---
# Configure recording rules
# Create recording rules
You can create and manage recording rules for an external Grafana Mimir or Loki instance. Recording rules calculate frequently needed expressions or computationally expensive expressions in advance and save the result as a new set of time series. Querying this new time series is faster, especially for dashboards since they query the same expression every time the dashboards refresh.
You can create and manage recording rules for an external Grafana Mimir or Loki instance.
Recording rules calculate frequently needed expressions or computationally expensive expressions in advance and save the result as a new set of time series. Querying this new time series is faster, especially for dashboards since they query the same expression every time the dashboards refresh.
For more information on recording rules in Prometheus, refer to [Defining recording rules in Prometheus](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/).
**Note:**
@@ -48,13 +51,14 @@ To create recording rules, follow these steps.
1. Click **Alerts & IRM** -> **Alerting** ->
**Alert rules**.
1. Click **New recording rule**.
1. Select **Rule type** -> **Recording**.
1. Click **+New recording rule**.
1. Set rule name.
1. Enter recording rule name.
The recording rule name must be a Prometheus metric name and contain no whitespace.
1. Define query.
1. Define recording rule.
- Select your Loki or Prometheus data source.
- Enter a query.
1. Add namespace and group.
@@ -65,9 +69,8 @@ To create recording rules, follow these steps.
1. Click **Save rule** to save the rule or **Save rule and exit** to save the rule and go back to the Alerting page.
{{% docs/reference %}}
[annotation-label]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/annotation-label"
[annotation-label]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/annotation-label"
[annotation-label]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/alert-rules/annotation-label"
[annotation-label]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/alert-rules/annotation-label"
[configure-grafana]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/setup-grafana/configure-grafana"
[configure-grafana]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA_VERSION>/setup-grafana/configure-grafana"
[configure-grafana]: "/docs/ -> /docs/grafana/<GRAFANA_VERSION>/setup-grafana/configure-grafana"
{{% /docs/reference %}}

View File

@@ -1,8 +1,8 @@
---
aliases:
- ../unified-alerting/alerting-rules/create-cortex-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-mimir-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-mimir-loki-managed-rule/
- ../unified-alerting/alerting-rules/create-cortex-loki-managed-recording-rule/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/create-cortex-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-mimir-loki-managed-recording-rule/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/create-mimir-loki-managed-recording-rule/
- ../unified-alerting/alerting-rules/create-mimir-loki-managed-rule/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/alerting-rules/create-mimir-loki-managed-rule/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/create-mimir-loki-managed-rule/
description: Configure data source-managed alert rules alert for an external Grafana Mimir or Loki instance
keywords:
@@ -129,6 +129,6 @@ Annotations add metadata to provide more information on the alert in your alert
[alerting]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting"
[alerting]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting"
[annotation-label]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/annotation-label"
[annotation-label]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/annotation-label"
[annotation-label]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/alert-rules/annotation-label"
[annotation-label]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/alert-rules/annotation-label"
{{% /docs/reference %}}

View File

@@ -1,77 +0,0 @@
---
aliases:
- ../contact-points/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/
- ../contact-points/create-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/create-contact-point/
- ../contact-points/delete-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/delete-contact-point/
- ../contact-points/edit-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/edit-contact-point/
- ../contact-points/test-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/test-contact-point/
- ../manage-notifications/manage-contact-points/ # /docs/grafana/<GRAFANA_VERSION>/alerting/manage-notifications/manage-contact-points/
- create-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-contact-point/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/manage-contact-points/
description: Configure contact points to define how your contacts are notified when an alert rule fires
keywords:
- grafana
- alerting
- guide
- contact point
- templating
labels:
products:
- cloud
- enterprise
- oss
title: Configure contact points
weight: 410
---
# Configure contact points
Use contact points to define how your contacts are notified when an alert rule fires. You can add, edit, delete, and test a contact point.
## Add a contact point
Complete the following steps to add a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points**.
1. From the **Choose Alertmanager** dropdown, select an Alertmanager. By default, **Grafana Alertmanager** is selected.
1. On the **Contact Points** tab, click **+ Add contact point**.
1. Enter a descriptive name for the contact point.
1. From **Integration**, select a type and fill out mandatory fields. For example, if you choose email, enter the email addresses. Or if you choose Slack, enter the Slack channel(s) and users who should be contacted.
1. Some contact point integrations, like email or webhook, have optional settings. In **Optional settings**, specify additional settings for the selected contact point integration.
1. In Notification settings, optionally select **Disable resolved message** if you do not want to be notified when an alert resolves.
1. To add another contact point integration, click **Add contact point integration** and repeat steps 6 through 8.
1. Save your changes.
## Edit a contact point
Complete the following steps to edit a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points** to view a list of existing contact points.
1. On the **Contact Points** tab, find the contact point you want to edit, and then click **Edit**.
1. Update the contact point and save your changes.
## Delete a contact point
Complete the following steps to delete a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points** to view a list of existing contact points.
1. On the **Contact Points** tab, find the contact point you want to delete, and then click **More** -> **Delete**.
1. In the confirmation dialog, click **Yes, delete**.
{{% admonition type="note" %}}
You cannot delete contact points that are in use by a notification policy. Either delete the notification policy or update it to use another contact point.
{{% /admonition %}}
## Test a contact point
Complete the following steps to test a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points** to view a list of existing contact points.
1. On the **Contact Points** tab, find the contact point you want to test, then click **Edit**. You can also create a new contact point if needed.
1. Click **Test** to open the contact point testing modal.
1. Choose whether to send a predefined test notification or choose custom to add your own custom annotations and labels to include in the notification.
1. Click **Send test notification** to fire the alert.

View File

@@ -1,50 +0,0 @@
---
aliases:
- alerting/manage-notifications/manage-contact-points/configure-integrations/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/manage-contact-points/integrations/
description: Configure contact point integrations to select your preferred communication channels for receiving notifications of firing alerts.
keywords:
- Grafana
- alerting
- guide
- notifications
- integrations
- contact points
labels:
products:
- cloud
- enterprise
- oss
title: Configure contact point integrations
weight: 100
---
# Configure contact point integrations
Configure contact point integrations in Grafana to select your preferred communication channel for receiving notifications when your alert rules are firing. Each integration has its own configuration options and setup process. In most cases, this involves providing an API key or a Webhook URL.
Once configured, you can use integrations as part of your contact points to receive notifications whenever your alert changes its state. In this section, we'll cover the basic steps to configure your integrations, so you can start receiving real-time alerts and stay on top of your monitoring data.
## List of supported integrations
| Name | Type |
| ----------------------- | ------------------------- |
| DingDing | `dingding` |
| Discord | `discord` |
| Email | `email` |
| Google Chat | `googlechat` |
| Hipchat | `hipchat` |
| Kafka | `kafka` |
| Line | `line` |
| Microsoft Teams | `teams` |
| Opsgenie | `opsgenie` |
| Pagerduty | `pagerduty` |
| Prometheus Alertmanager | `prometheus-alertmanager` |
| Pushover | `pushover` |
| Sensu | `sensu` |
| Sensu Go | `sensugo` |
| Slack | `slack` |
| Telegram | `telegram` |
| Threema | `threema` |
| VictorOps | `victorops` |
| Webhook | `webhook` |

View File

@@ -1,5 +1,7 @@
---
canonical: https://grafana.com/docs/grafana/latest/alerting/fundamentals/annotation-label/variables-label-annotation/
aliases:
- ../fundamentals/annotation-label/variables-label-annotation/ # /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/annotation-label/variables-label-annotation/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/templating-labels-annotations/
description: Learn about how to template labels and annotations
keywords:
- grafana
@@ -13,13 +15,15 @@ labels:
- enterprise
- oss
title: Templating labels and annotations
weight: 117
weight: 500
---
# Templating labels and annotations
You can use templates to include data from queries and expressions in labels and annotations. For example, you might want to set the severity label for an alert based on the value of the query, or use the instance label from the query in a summary annotation so you know which server is experiencing high CPU usage.
When using custom labels with templates it is important to make sure that the label value does not change between consecutive evaluations of the alert rule as this will end up creating large numbers of distinct alerts. However, it is OK for the template to produce different label values for different alerts. For example, do not put the value of the query in a custom label as this will end up creating a new set of alerts each time the value changes. Instead use annotations.
All templates should be written in [text/template](https://pkg.go.dev/text/template). Regardless of whether you are templating a label or an annotation, you should write each template inline inside the label or annotation that you are templating. This means you cannot share templates between labels and annotations, and instead you will need to copy templates wherever you want to use them.
Each template is evaluated whenever the alert rule is evaluated, and is evaluated for every alert separately. For example, if your alert rule has a templated summary annotation, and the alert rule has 10 firing alerts, then the template will be executed 10 times, once for each alert. You should try to avoid doing expensive computations in your templates as much as possible.
@@ -445,6 +449,5 @@ example.com:8080
```
{{% docs/reference %}}
[explore]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/explore"
[explore]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA_VERSION>/explore"
[explore]: "/docs/ -> /docs/grafana/<GRAFANA_VERSION>/explore"
{{% /docs/reference %}}

View File

@@ -0,0 +1,26 @@
---
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications
description: Configure how, when, and where to send your alert notifications
keywords:
- grafana
- alert
- notifications
labels:
products:
- cloud
- enterprise
- oss
menuTitle: Configure notifications
title: Configure notifications
weight: 125
---
# Configure notifications
Choose how, when, and where to send your alert notifications.
As a first step, define your contact points; where to send your alert notifications to. A contact point is a set of one or more integrations that are used to deliver notifications.
Next, create a notification policy which is a set of rules for where, when and how your alerts are routed to contact points. In a notification policy, you define where to send your alert notifications by choosing one of the contact points you created.
Optionally, you can add notification templates to contact points for reuse and consistent messaging in your notifications.

View File

@@ -1,9 +1,10 @@
---
aliases:
- ../notifications/
- ../old-alerting/notifications/
- ../unified-alerting/notifications/
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/create-notification-policy/
- ../notifications/ # /docs/grafana/<GRAFANA_VERSION>/alerting/notifications/
- ../unified-alerting/notifications/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/notifications/
- ../alerting-rules/create-notification-policy/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-notification-policy/
- ../manage-notifications/create-notification-policy/ # /docs/grafana/<GRAFANA_VERSION>/alerting/manage-notifications/create-notification-policy/
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications/create-notification-policy/
description: Configure notification policies to determine how alerts are routed to contact points
keywords:
- grafana
@@ -36,10 +37,6 @@ For more information on notification policies, see [fundamentals of Notification
## Edit default notification policy
{{% admonition type="note" %}}
Before Grafana v8.2, the configuration of the embedded Alertmanager was shared across organizations. Users of Grafana 8.0 and 8.1 are advised to use the new Grafana 8 Alerts only if they have one organization. Otherwise, silences for the Grafana managed alerts will be visible by all organizations.
{{% /admonition %}}
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Notification policies**.
1. From the **Choose Alertmanager** dropdown, select an external Alertmanager. By default, the **Grafana Alertmanager** is selected.
@@ -111,6 +108,6 @@ An example of an alert configuration.
- Create specific routes for particular teams that handle their own on-call rotations.
{{% docs/reference %}}
[notification-policies]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/notification-policies"
[notification-policies]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/notification-policies"
[notification-policies]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/fundamentals/notifications/notification-policies"
[notification-policies]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/fundamentals/notifications/notification-policies"
{{% /docs/reference %}}

View File

@@ -1,12 +1,13 @@
---
aliases:
- ../silences/create-silence/
- ../silences/edit-silence/
- ../silences/linking-to-silence-form/
- ../silences/remove-silence/
- ../unified-alerting/silences/
- ../silences/
canonical: https://grafana.com/docs/grafana/latest/alerting/manage-notifications/create-silence/
- ../silences/create-silence/ # /docs/grafana/<GRAFANA_VERSION>/alerting/silences/create-silence/
- ../silences/edit-silence/ # /docs/grafana/<GRAFANA_VERSION>/alerting/silences/edit-silence/
- ../silences/linking-to-silence-form/ # /docs/grafana/<GRAFANA_VERSION>/alerting/silences/linking-to-silence-form/
- ../silences/remove-silence/ # /docs/grafana/<GRAFANA_VERSION>/alerting/silences/remove-silence/
- ../unified-alerting/silences/ # /docs/grafana/<GRAFANA_VERSION>/alerting/unified-alerting/silences/
- ../silences/ # /docs/grafana/<GRAFANA_VERSION>/alerting/silences/
- ../manage-notifications/create-silence/ # /docs/grafana/<GRAFANA_VERSION>/alerting/manage-notifications/create-silence/
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications/create-silence/
description: Create silences to stop notifications from getting created for a specified window of time
keywords:
- grafana
@@ -18,15 +19,19 @@ labels:
- cloud
- enterprise
- oss
title: Manage silences
weight: 410
title: Configure silences
weight: 440
---
# Manage silences
# Configure silences
Silences stop notifications from getting created and last for only a specified window of time.
**Note that inhibition rules are not supported in the Grafana Alertmanager.**
{{< admonition type="note" >}}
- Inhibition rules are not supported in the Grafana Alertmanager.
- The preview of silenced alerts only applies to alerts in firing state.
{{< /admonition >}}
## Add silences
@@ -38,7 +43,7 @@ To add a silence, complete the following steps.
1. Click **Create silence** to open the Create silence page.
1. In **Silence start and end**, select the start and end date to indicate when the silence should go into effect and expire.
1. Optionally, in **Duration**, specify how long the silence is enforced. This automatically updates the end time in the **Silence start and end** field.
1. In the **Label** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to.
1. In the **Label** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to. Any matching alerts (in firing state) will show in the **Affected alert instances** field
1. In **Comment**, add details about the silence.
1. Click **Submit**.

View File

@@ -0,0 +1,144 @@
---
aliases:
- ../contact-points/create-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/create-contact-point/
- ../contact-points/delete-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/delete-contact-point/
- ../contact-points/edit-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/edit-contact-point/
- ../contact-points/test-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/contact-points/test-contact-point/
- ../manage-notifications/manage-contact-points/ # /docs/grafana/<GRAFANA_VERSION>/alerting/manage-notifications/manage-contact-points/
- ../alerting-rules/create-contact-point/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-contact-point/
- ../alerting-rules/manage-contact-points/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points/
- ../alerting-rules/create-notification-policy/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-notification-policy/
- ../alerting-rules/manage-contact-points/integrations/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points/integrations/
- ../manage-notifications/manage-contact-points/ # /docs/grafana/<GRAFANA_VERSION>/alerting/manage-notifications/manage-contact-points/
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/
description: Configure contact points to define how your contacts are notified when an alert rule fires
keywords:
- grafana
- alerting
- guide
- contact point
- templating
labels:
products:
- cloud
- enterprise
- oss
title: Configure contact points
weight: 410
---
# Configure contact points
Use contact points to define how your contacts are notified when an alert rule fires. You can add, edit, delete, and test a contact point.
Configure contact point integrations in Grafana to select your preferred communication channel for receiving notifications when your alert rules are firing.
## Add a contact point
Complete the following steps to add a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points**.
1. From the **Choose Alertmanager** dropdown, select an Alertmanager. By default, **Grafana Alertmanager** is selected.
1. On the **Contact Points** tab, click **+ Add contact point**.
1. Enter a descriptive name for the contact point.
1. From **Integration**, select a type and fill out mandatory fields. For example, if you choose email, enter the email addresses. Or if you choose Slack, enter the Slack channel(s) and users who should be contacted.
1. Some contact point integrations, like email or webhook, have optional settings. In **Optional settings**, specify additional settings for the selected contact point integration.
1. In Notification settings, optionally select **Disable resolved message** if you do not want to be notified when an alert resolves.
1. To add another contact point integration, click **Add contact point integration** and repeat steps 6 through 8.
1. Save your changes.
## Edit a contact point
Complete the following steps to edit a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points** to view a list of existing contact points.
1. On the **Contact Points** tab, find the contact point you want to edit, and then click **Edit**.
1. Update the contact point and save your changes.
## Delete a contact point
Complete the following steps to delete a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points** to view a list of existing contact points.
1. On the **Contact Points** tab, find the contact point you want to delete, and then click **More** -> **Delete**.
1. In the confirmation dialog, click **Yes, delete**.
{{% admonition type="note" %}}
You cannot delete contact points that are in use by a notification policy. Either delete the notification policy or update it to use another contact point.
{{% /admonition %}}
## Test a contact point
Complete the following steps to test a contact point.
1. In the left-side menu, click **Alerts & IRM** and then **Alerting**.
1. Click **Contact points** to view a list of existing contact points.
1. On the **Contact Points** tab, find the contact point you want to test, then click **Edit**. You can also create a new contact point if needed.
1. Click **Test** to open the contact point testing modal.
1. Choose whether to send a predefined test notification or choose custom to add your own custom annotations and labels to include in the notification.
1. Click **Send test notification** to fire the alert.
## Manage contact points
The Contact points list view lists all existing contact points and notification templates.
On the **Contact Points** tab, you can:
- Search for name and type of contact points and integrations
- View all existing contact points and integrations
- View how many notification policies each contact point is being used for and navigate directly to the linked notification policies
- View the status of notification deliveries
- Export individual contact points or all contact points in JSON, YAML, or Terraform format
- Delete contact points that are not in use by a notification policy
On the **Notification templates** tab, you can:
- View, edit, copy or delete existing notification templates
## Configure contact point integrations
Each contact point integration has its own configuration options and setup process. In most cases, this involves providing an API key or a Webhook URL.
Once configured, you can use integrations as part of your contact points to receive notifications whenever your alert changes its state. In this section, we'll cover the basic steps to configure your integrations, so you can start receiving real-time alerts and stay on top of your monitoring data.
## List of supported integrations
| Name | Type |
| ------------------------ | ------------------------- |
| DingDing | `dingding` |
| Discord | `discord` |
| Email | `email` |
| Google Chat | `googlechat` |
| [Grafana Oncall][oncall] | `oncall` |
| Hipchat | `hipchat` |
| Kafka | `kafka` |
| Line | `line` |
| Microsoft Teams | `teams` |
| Opsgenie | `opsgenie` |
| [Pagerduty][pagerduty] | `pagerduty` |
| Prometheus Alertmanager | `prometheus-alertmanager` |
| Pushover | `pushover` |
| Sensu | `sensu` |
| Sensu Go | `sensugo` |
| [Slack][slack] | `slack` |
| Telegram | `telegram` |
| Threema | `threema` |
| VictorOps | `victorops` |
| [Webhook][webhook] | `webhook` |
{{% docs/reference %}}
[pagerduty]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/configure-notifications/manage-contact-points/integrations/pager-duty"
[pagerduty]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/configure-notifications/manage-contact-points/integrations/pager-duty"
[oncall]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/configure-notifications/manage-contact-points/integrations/configure-oncall"
[oncall]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/configure-notifications/manage-contact-points/integrations/configure-oncall"
[slack]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/configure-notifications/manage-contact-points/integrations/configure-slack"
[slack]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/configure-notifications/manage-contact-points/integrations/configure-slack"
[webhook]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier"
[webhook]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier"
{{% /docs/reference %}}

View File

@@ -1,5 +1,8 @@
---
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/manage-contact-points/integrations/configure-oncall/
aliases:
- ../../../alerting-rules/manage-contact-points/configure-oncall/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points/configure-oncall/
- ../../../alerting-rules/manage-contact-points/integrations/configure-oncall/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points/integrations/configure-oncall/
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/integrations/configure-oncall/
description: Configure the Alerting - Grafana OnCall integration to connect alerts generated by Grafana Alerting with Grafana OnCall
keywords:
- grafana
@@ -7,7 +10,7 @@ keywords:
- oncall
- integration
aliases:
- ../configure-oncall/ # /docs/grafana/latest/alerting/alerting-rules/manage-contact-points/configure-oncall/
- ../configure-oncall/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points/configure-oncall/
labels:
products:
- cloud
@@ -63,12 +66,12 @@ To set up the Grafana OnCall integration using the Grafana Alerting application,
This redirects you to the Grafana OnCall integration page in the Grafana OnCall application. From there, you can add [routes and escalation chains][escalation-chain].
{{% docs/reference %}}
[create-notification-policy]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/create-notification-policy"
[create-notification-policy]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/create-notification-policy"
[create-notification-policy]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/configure-notifications/create-notification-policy"
[create-notification-policy]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/configure-notifications/create-notification-policy"
[oncall-integration]: "/docs/grafana/ -> /docs/oncall/latest/integrations/grafana-alerting"
[oncall-integration]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/oncall/integrations/grafana-alerting"
[escalation-chain]: "/docs/grafana/ -> /docs/oncall/latest/escalation-chains-and-routes"
[escalation-chain]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/oncall/escalation-chains-and-routes"
[escalation-chain]: "/docs/grafana/ -> /docs/oncall/latest/configure/escalation-chains-and-routes"
[escalation-chain]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/oncall/configure/escalation-chains-and-routes"
{{% /docs/reference %}}

View File

@@ -0,0 +1,93 @@
---
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/integrations/configure-slack/
description: Configure the Slack integration to connect alerts generated by Grafana Alerting
keywords:
- grafana
- alerting
- slack
- integration
labels:
products:
- cloud
- enterprise
- oss
menuTitle: Slack
title: Configure Slack for Alerting
weight: 300
---
## Configure Slack for Alerting
Use the Grafana Alerting - Slack integration to send Slack notifications when your alerts are firing.
There are two ways of integrating Slack into Grafana Alerting.
1. Use a [Slack API token](https://api.slack.com/authentication/token-types)
Enable your app to access the Slack API. If, for example, you are interested in more granular control over permissions, or your project is expected to regularly scale, resulting in new channels being created, this is the best option.
1. Use a [Webhook URL](https://api.slack.com/messaging/webhooks)
Webhooks is the simpler way to post messages into Slack. Slack automatically creates a bot user with all the necessary permissions to post messages to one particular channel of your choice.
{{< admonition type="note" >}}
Grafana Alerting only allows one Slack channel per contact point.
{{< /admonition >}}
## Before you begin
### Slack API Token
If you are using a Slack API Token, complete the following steps.
1. Follow steps 1 and 2 of the [Slack API Quickstart](https://api.slack.com/start/quickstart).
1. Add the [chat:write.public](https://api.slack.com/scopes/chat:write.public) scope to give your app the ability to post in all public channels without joining.
1. In OAuth Tokens for Your Workspace, copy the Bot User OAuth Token.
1. Open your Slack workplace.
1. Right click the channel you want to receive notifications in.
1. Click View channel details.
1. Scroll down and copy the Channel ID.
{{< admonition type="note" >}}
While going through these steps, Slack may prompt you to Reinstall your app in order for the changes to take effect.
{{< /admonition >}}
### Webhook URL
If you are using a Webhook URL, follow steps 1 and 5 in the [Slack API Quickstart](https://api.slack.com/start/quickstart).
{{< admonition type="note" >}}
Make sure you copy the Slack app Webhook URL. You will need this when setting up your contact point integration in Grafana Alerting.
{{< /admonition >}}
## Procedure
To create your Slack integration in Grafana Alerting, complete the following steps.
1. Navigate to **Alerts & IRM** -> **Alerting** -> **Contact points**.
1. Click **+ Add contact point**.
1. Enter a contact point name.
1. From the Integration list, select Slack.
1. If you are using a Slack API token:
- In the **Recipient** field, copy in the channel ID.
- In the **Token** field, copy in the Bot User OAuth Token that starts with “xoxb-”.
1. If you are using a Webhook URL, in the **Webhook** field, copy in your Slack app Webhook URL.
1. Click **Test** to check that your integration works.
1. Click **Save contact point**.
## Next steps
To add the contact point and integration you created to your default notification policy, complete the following steps.
1. Navigate to **Alerts & IRM** -> **Alerting** -> **Notification policies**.
1. In the **Default policy**, click the ellipsis icon (…) and then **Edit**,
1. Change the default policy to the contact point you created.
1. Click **Update default policy**.
**Note:**
If you have more than one contact point, add a new notification policy rather than edit the default one, so you can route specific alerts to Slack. For more information, refer to [Notification policies][nested-policy].
{{% docs/reference %}}
[nested-policy]: "/docs/grafana/ -> /docs/grafana/<GRAFANA_VERSION>/alerting/configure-notifications/create-notification-policy#add-new-nested-policy"
[nested-policy]: "/docs/grafana-cloud/ -> /docs/grafana-cloud/alerting-and-irm/alerting/configure-notifications/create-notification-policy#add-new-nested-policy"
{{% /docs/reference %}}

View File

@@ -1,5 +1,7 @@
---
canonical: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/manage-contact-points/integrations/pager-duty/
aliases:
- ../../../alerting-rules/manage-contact-points/integrations/pager-duty/ # /docs/grafana/<GRAFANA_VERSION>/alerting/alerting-rules/manage-contact-points/integrations/pager-duty/
canonical: https://grafana.com/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/integrations/pager-duty/
description: Configure the PagerDuty integration for Alerting
keywords:
- grafana

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