* 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
* 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
* 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
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
* 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
* 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>
* 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
* 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>
* 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>
* 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>
* (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
* 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>
* 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
* 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
* 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>
* 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
* 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>
* getAllFields: refactor for improved performance
* LogRowMessageDisplayedFields: refactor line construction for performance
* AsyncIconButton: refactor to prevent infinite loops
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>
* 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
* 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>
* 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
* 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>
* 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
* 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
* 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
* Infinite Scroll: wait for users to reach the top before triggering new requests
* Prettier
* Infinite Scroll: control top scrolling via prop
* Prettier
* 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
* 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>
* 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>
* 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>
* PopoverMenu: change position to fixed
* PopoverMenu: close on empty selectionchange
* Popover Menu: do not let menu overflow the window dimensions
* Prettier
* 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>
* 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>
* fix mergeSettings() in case the db contains empty strings
* use correct github urls in test
* overwrite only urls
* update comment for mergeSettings()
* add strategy and tests
* use settings provider service and remove multiple providers strategy
* update codeowners file
* reload from settings provider
DashboardScene: Make sure dashboard prompt is shown when navigating away from an edited dashboard
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* 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
* 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
* 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>
* 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>
* 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
* 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
* 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
* 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
* 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
* 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>
* 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>
* 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
* Explore: Remove deprecated Form components from CorrelationTransformationAddModal.tsx
* Explore: Remove deprecated Form components from AddToDashboardForm.tsx
* 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
* 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
* 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
* 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>
* 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>
* 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
* Swagger: Re-generate the enterprise specification if enterprise is cloned successfully
* API change to trigger the swagger CI step execution
* Swagger: Silence logs
* 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
* 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>
* 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>
* 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
* 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>
* 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
* 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>
* 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>
* 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
* 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
* 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>
* 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>
* 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>
* 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>
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.
* 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>
* 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
* 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>
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.
* Introduce environment.local_filesystem_available
* Only show TLS client cert, client key, client ca when local_filesystem_available is true
* Rename LocalFSAvailable to LocalFileSystemAvailable
* 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>
* 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
* 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>
* 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>
* 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
* 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
* 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
* 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
* 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>
* 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>
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* introduce new config section [unified_alerting.state_history.annotations] and deprecate settings in [alerting]
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
* 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>
* 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>
* 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
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.
* 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
* 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
* 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
* replace react-popper with floating-ui in Popover
* update HoverCard
* fix unit tests
* mock useTransitionStyles to ensure consistent unit test results
* 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>
* 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>
* 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>
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.
* 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
* 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>
* 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
* 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>
* 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?
* Chore: Replace Form component usage in EditDefaultPolicyForm.tsx
* Chore: Replace Form component usage in EditNotificationPolicyForm.tsx
* Remove ts-ignore
* 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
* 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>
* 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
"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>
* 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>
* 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
* 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>
* 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
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.
* fix stateSlice type errors for build, do not export stateSlice in the future
* fix exports for consistency
* fix package.json for rollup, update licence, keep private
* rollup as devdependencies
* try a different version of @testing-library/dom to try to fix the aria-query issue in drone
* remove testUtils export
* change @testing-library/dom version back
* remove icon bundling, grafana-ui handles this
* remove unused dependencies
* components folder: avoid nested barrel files and use named exports
* configuration folder: avoid nested barrel files and use named exports
* querybuilder folder: avoid nested barrel files and use named exports
* general files: use named exports
* fix loader issue with promql for external ds
* default to support labels match api
* export things necessary for custom config auth
* remove changes to core datasource.test.ts
* Update packages/grafana-prometheus/package.json
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* remove icons script, not needed
* update readme, remove references to grafana/ui
* remove private property
* check tests
* remove private property in package.json
* update changelog
* update npm drone script for file checks
* debug why updating test in script broke another library that had never been tested before
* fix npm test for checking licenses
* fix npm test for checking licenses
* fix npm test for checking licenses
* fix npm test for checking licenses
* update license file for npm drone test
* fix bash script
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Adds a feature flag (alertingUpgradeDryrunOnStart) that will dry-run the legacy
alert upgrade on startup. It is enabled by default.
When on legacy alerting, this feature flag will log the results of the legacy
alerting upgrade on startup and draw attention to anything in the current legacy
alerting configuration that will cause issues when the upgrade is eventually
performed. It acts as a log warning for those where action is required before
upgrading to Grafana v11 where legacy alerting will be removed.
* initial changes for generic_oauth, okta
* updates
* add terraform examples for each provider
* add link to terraform registry for grafana_sso_settings resource
* remove auth_url, token_url and api_url from github, gitlab and google
* Add documentation for enabling email lookup
* Apply suggestions from code review
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* Address review feedback
* Update TF provider version
* Apply suggestions from code review
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* Use Azure AD for now
---------
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
If the db already has an entry in the kvstore for the silences of an
alertmanager before the migration has taken place, then it's possible that the
active alertmanager will overwrite the silence file created by the migration
before it has a chance to load it into memory.
This should not happen normally but is possible in edge-cases.
This change opts to bypass the unnecessary step of writing the silences to disk
during the migration and instead write them directly to the kvstore. This avoids
the race condition entirely and is more correct as we treat the database as the
source of truth for AM state.
* send instance ID to query inspector, ensure requestId match before updating data
* Extract logic for mixed request ID, use in Explore prefix when appropriate
* Change query inspector to get passed request ID
* Fix test
* add password service interface
* add password service implementation
* add tests for password service
* add password service wiring
* add feature toggle
* Rework from service interface to static function
* Replace previous password validations
* Add codeowners to password service
* add error logs
* update config files
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Alerting: Remove start page of upgrade preview
Alerting upgrade page will now always show the summary table even before
upgrading any alerts or notification channels. There a few reasons for this:
- The information on the start page is redundant as it's now contained in the
documentation.
- Previously, if some unexpected issue prevented performing a full upgrade, a
user would have limited to no means to using the preview tool to help fix the
problem. This is because you could not see the summary table until the full
upgrade was performed at least once. Now, you can upgrade individual alerts and
notification channels from the beginning.
* fix expanding rules with one metric wrapped in a parenthesis
* fix expanding rules with regex match operator
* fix for multiple labels
* refactor
* don't modify recording rules name in label values
* metric + metric fix
* fix last issues with label regex and spaces
* add comments
* add the same changes to the prometheus library
* Added RBAC section to library panels page
* Added some library panel basic role and fixed role information
* Added remaining basic role information
* Added library panel fixed role permissions and descriptions
* Replaced 'general folder' with 'root level'
* Added library panel action definitions
* Added scope definitions
* Fixed fixed role information
* Added library panels to list of fixed roles
* Fixed typos
* Ran prettier
* Fixed links
* Fixed links again
* Updated link syntax
* Add notification settings to storage\domain and API models. Settings are a slice to workaround XORM mapping
* Support validation of notification settings when rules are updated
* Implement route generator for Alertmanager configuration. That fetches all notification settings.
* Update multi-tenant Alertmanager to run the generator before applying the configuration.
* Add notification settings labels to state calculation
* update the Multi-tenant Alertmanager to provide validation for notification settings
* update GET API so only admins can see auto-gen
* Loki: Fix teching of values if no previoous equality operator
* Update to consider regex with match everything
* Update public/app/plugins/datasource/loki/querybuilder/components/LokiQueryBuilder.tsx
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Fix lint
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Bump scenes
* Make GroupByVariableModel a VariableWithOptions
* Serialise/deserialise group by variable
* WIP: Group by variable editor
* WIP tests
* Group by variable tests
* add feature toggle and gate variable creation behind it
* Fix types
* Do not resolve DS variable
* Do not show the message if no DS is selected
* Now groupby has options and current
* Update public/app/features/dashboard-scene/settings/variables/components/GroupByVariableForm.test.tsx
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* don't allow creating groupby if toggle is off + update tests
* add unit tests
* remove groupByKeys
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* Alerting: fix race condition in (*ngalert/sender.ExternalAlertmanager).Run
* Chore: Fix data races when accessing members of *ngalert/state.FakeInstanceStore
* Chore: Fix data races in tests in ngalert/schedule and enable some parallel tests
* Chore: fix linters
* Chore: add TODO comment to remove loopvar once we move to Go 1.22
* Select column values using comparison operators
* Select column values using expressions
* Capitalize operator labels
* Update docs/sources/panels-visualizations/visualizations/table/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Use $ instead of v to represent a variable
* Define operators as a map string of objects
* Fix typo
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update dependency marked to v12
* make sure marked return value is synchronous
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Update index.md
Added description of how to copy an existing dashboard
* Moved Copy dashboard task from Import to Create page and edited for style
---------
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* Expose betterer results as JSON
* Make prettier and add command
* Add aggregation
* Add json generation to lefthook
* Use relative path
* Add grafanabot as codeowner
* Fix parameter type
* Include changes to results
* Run betterer:json
* WIP add fuzzysearch to plugins catalog
* Add keywords to the plugins listing output
* add fuzzy search to plugin catalog, add keywords to plugins at frontend side
* refactor fuzzysearch function after review
* review changes
* change the version of uFuzzy library
* change reduce result object in getPluginDetailsForFuzzySearch
* fix yarn lock error
* fix helpers tests
* fix frontend searching test
* fix frontend linting issues
* fix tests
---------
Co-authored-by: Esteban Beltran <esteban@academo.me>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
* Initial thing working
* Update
* Progress
* Update
* Update
* Simplify a bit more
* minor refacto
* more review fixes
* Update
* review fix
* minor fix
* update
* Add config for limit of rules per rule group
* Warn when editing big groups through normal API
* Warn on prov api writes for groups
* Wire up comp root, tests
* Also add warning to state manager warm
* Drop unnecessary conversion
* Add user uid migration to run on every startup to protect against empty values in a upgrade downgrade scenario
* Add team uid migration to run on every startup to protect against empty values in a upgrade downgrade scenario
* Run team uid migration
* Fix folder and rule name in groupBy for simplified routing
* Review suggestions
* Use proper type for MultiValueRemove props
* hoist getting groupBy count
* Use watch instead of getValues
* Bring back validation for required fields
* feat: Inform users of the error details when Grafana is unable to retrieve the variable values from an SQL data source.
* format code
* use getAppEvents
* throw an error when failing to executing the sql query
* optimize code
* prettier
* Feature Toggle Management: allow editing PublicPreview toggles
* lint
* fix a bunch of tests
* tests are passing
* add permissions unit tests back
* fix display
* close dialog after submit
* use reload method after submit
* make local development easier
* always show editing alert in the UI
* fix readme
---------
Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com>
* merge JSON search logic
* document public methods
* improve test coverage
* use separate JWT setting struct
* correct use of cfg.JWTAuth
* add group tests
* fix DynMap typing
* add settings to default ini
* add groups option to devenv path
* fix test
* lint
* revert jwt-proxy change
* remove redundant check
* fix parallel test
* streamline initialization of test databases, support on-disk sqlite test db
* clean up test databases
* introduce testsuite helper
* use testsuite everywhere we use a test db
* update documentation
* improve error handling
* disable entity integration test until we can figure out locking error
* Expand route settings by default when alert rule has values in these fields
* Default to manual routing option if FF is enabled and local storage is not set to false
* Add test for getDefautManualRouting function
* Update seting local storage item to false in case of policy routing
* Only save to local storage when creating a new alert rule
* use new read only contact points list endpoint in simplified routing section
* Dont use alertmanager endpoint to get groupby defaults
* Use the new read only endpoint for mute timings in route settings
* review suggestions
* Rename hook
* Use options in params for useContactPointsWithStatus hook
* Refactor useContactPointsWithStatus
* second part of the enhanceContactPointsWithMetadata refactor
* clean up intervalv2 functions
* use roundInterval from grafana-plugin-sdk-go
* use from grafana-plugin-sdk-go
* have intervalv2 in publicdashboards and remove tsdb/intervalv2
* legacydata cleanup
* remove unused variables
* Update pkg/tsdb/legacydata/interval/interval.go
Co-authored-by: Arati R. <33031346+suntala@users.noreply.github.com>
---------
Co-authored-by: Arati R. <33031346+suntala@users.noreply.github.com>
* don't prepend app sub url to paths
* simplify logo path
* fix(plugins): dynamically prepend appSubUrl for System module resolving to work
* fix(sandbox): support dynamic appSuburl prepend when loading plugin module.js
* fix tests
* update test name
* fix tests
* update fe + add some tests
* refactor(plugins): move wrangleurl to utils, rename to resolveModulePath, update usage
* chore: fix a typo
* test(plugins): add missing name to utils test
* reset test flag
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Only show add/remove tag when necessary in span filters
* Only show add/remove tag when necessary in traceql
* Only show add/remove tag when necessary in aggregateBy
* Update styles
* Add tests
* Show remove tag for all if more than one tag
* Also check for value only in search editor and update tests
* Alerting: upgrade preview enable folder alert tab and dashboard alert panel
Enable the folder alert tab and the dashboard alert panel when the
alertingPreviewUpgrade feature flag is enabled
* Link directly to folder alerts in upgrade page
* add support for sortBy field selector
* use label selectors instead of field selectors
* set entity_labels on create & update
* make entity server integration tests work
* test fixes
* be more consistent with handling of empty body, meta or status
* workaround for database is locked errors during migration
* fix double import of sqlite3
* rename functions and tidy up
* refactor update
* disable integration tests until we can fix the database locking issue
* Revert all previous changes to the workflow
Revert "I18n: Add pr to project board (#82096)"
This reverts commit 30730ebdd8.
Revert "I18n: Fix workflow for adding PR to project board (#82078)"
This reverts commit c16cb7ed3c.
Revert "I18n: Use correct project and pull request ID (#82070)"
This reverts commit 10a130191f.
Revert "Fix incorrect quotes in crowdin-download github action (#82063)"
This reverts commit 945e26516b.
Revert "I18n: Add crowdin PRs to project board (#82059)"
This reverts commit 5b9b990220.
* Add crowdin pr to frontend platform project board
* refactor: clean up first trial
---------
Co-authored-by: Laura Benz <laura.benz@grafana.com>
* Stub group to subframe transformation
* Get proper field grouping
* Mostly working but fields not displaying 😭
* Fix display processing in nested tables
* Modularize and start merging groupBy and groupToSubrame
* Get this working
* Prettier
* Typing things
* More types
* Add option for showing subframe table headers
* Prettier
* Get tests going
* Update tests
* Fix naming and add icons
* Betterer fix
* Prettier
* Fix CSS object syntax
* Prettier
* Stub alert for calcs with grouping, start renaming
* Add logic to show warning message for calculations
* Add calc warning
* Renaming and feature flag
* Rename images
* Prettier
* Fix tests
* Update feature toggle
* Fix error showing extra blank row
* minor code cleanup
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* WIP: removing panel functionality
* wip
* Deleting works with old model and with unified alerting
* Add shortcut for removing panel
* Add duplicate panel functionality; improve remove panel logic
* Copy and new alert rule
* Hide legend
* WIP: Help wizard
* Fix PanelMenuBehavior tests
* Got help wizard to work in scenes
* Fix HelpWizard and SupportSnapshotService tests
* Use object for writing styles
* betterer
* Fix create lib panel
* PanelRepeaterItem should be duplicated
* Share randomizer from dashboard-scenes
* share randomizer
* Fix import
* Update error message
* Fix test
* When duplicating PanelRepeaterGridItem's child use PanelRepeaterGridItem.state.source
* Don't use getResultsStream
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Display alerts in scenes dashboard
* sort of working adding alerts
* move alert button to own component
* First fixes
* Generate link/url on click
* some cleanup
* making sure all links from scene go back to scene dashboard/panel; add rule button when there are rules; styling
* remove unused import
* add &scenes to url for alert instance annotations
* Add tests from old alert tab
* Revert addition of &scenes to dashboard urls
* Refactor to simplify NewAlertRuleButton interface
* update test
* Use the raw range to calculate the relative range
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* add new groupby type
* rename to groupByKeys + introduce GroupByVariableModel
* fix unit test
* update scenes package
* update interface
* update fixture
* update unit test
* bump to scenes 2.6.2
* remove baseFilters for now
* update GetUserVisibleNamespaces to use FolderSeriver
* update GetNamespaceByUID to use FolderService.GetFolders
* update GetAlertRulesForScheduling to use FolderService.GetFolders
* Update API and GetAlertRulesForScheduling to use the folder's full path
* get full path of folder in RouteTestGrafanaRuleConfig
* fix escaping of titles for MySQL
* CloudWatch: Remove core imports from CloudWatchRequest and use appEvents for notifications
* add error message to variable query editor multi filters
* fix tests
* fix lint
* fix lint
* add test for non multi-variable
* pr comments
* CloudWatch: remove core imports from CloudWatchMetricsQueryRunner
* use getAppEvents to publish error
* use default wait time
* put test back in original position
* fix throttling error message link
* initial commit for docs
* docs update for team lbac
* replace default rule doc with restrict access
* new docs refactored
* updated based on review
* renaming of the file, to include the changes
* review comments
* fix linting
* formatting
* review comments
* updated docs with better formating
* formatting
* adding a bit of context to lbac
* update based on review from srash
* added note
First pass at a backend api built on top off app platform for shared-queries in explore and a query library with templating. Highly Experimental.
Under grafanaAPIServerWithExperimentalAPIs = true
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* fix components folders for exports
* export files in the components folder
* export metrics modal and fix exports
* export promquail and fix exports
* export querybuilder/components and fix exports
* export querybuilder
* main index file exports
* run prettier
* remove toggle
* remove code not behind toggle
* remove old MegaMenu
* rename DockedMegaMenu -> MegaMenu and clean up go code
* fix backend test
* run yarn i18n:extract
* fix some unit tests
* fix remaining unit tests
* fix remaining e2e/unit tests
* Chore: synchronize writes to pkg.plugins.log.Logs to prevent data races in test code
* Chore: fix data race in tests in plugins process manager
* Chore: improve Logs method naming
* Chore: fix type change
* remove advancedDataSourcePicker feature toggle from DataSourcePickerWithPrompt
* remove advancedDataSourcePicker toggle from DataSourcePicker and adjust tests that relied on old picker
* adjust failing tests in QueryVariableEditorForm
* move DataSourceDropdown to DataSourcePicker file
* covert style declaration syntax to object style in DataSourcePicker
* remove advancedDataSourcePicker feature flag from registry
* remove .only from test
* adjust QueryVariableEditor test to avoid console.error
This pull request updates our fork of Alertmanager to commit 65bdab0, which is based on commit 5658f8c in Prometheus Alertmanager.
It applies the changes from grafana/alerting#155 which removes the overrides for validation of alerts, labels and silences that we had put in place to allow alerts and silences to work for non-Prometheus datasources. However, as this is now supported in Alertmanager with the UTF-8 work, we can use the new upstream functions and remove these overrides.
The compat package is a package in Alertmanager that takes care of backwards compatibility when parsing matchers, validating alerts, labels and silences. It has three modes: classic mode, UTF-8 strict mode, fallback mode. These modes are controlled via compat.InitFromFlags. Grafana initializes the compat package without any feature flags, which is the equivalent of fallback mode. Classic and UTF-8 strict mode are used in Mimir.
While Grafana Managed Alerts have no need for fallback mode, Grafana can still be used as an interface to manage the configurations of Mimir Alertmanagers and view configurations of Prometheus Alertmanager, and those installations might not have migrated or being running on older versions. Such installations behave as if in classic mode, and Grafana must be able to parse their configurations to interact with them for some period of time. As such, Grafana uses fallback mode until we are ready to drop support for outdated installations of Mimir and the Prometheus Alertmanager.
* Chore: Fix data race within tests of SSO Setting implementation
* Chore: fix data race within tests to allow parallel testing
* Chore: rollback changes runtime code to test a different approach
* Chore: Fix data race in SSO Setting implementation Upsert method
* Chore: fix typo in comment
* Add single receiver method
* Add receiver permissions
* Add single/multi GET endpoints for receivers
* Remove stable tag from time intervals
See end of PR description here: https://github.com/grafana/grafana/pull/81672
* Chore: webpack alias react and grafana-runtime to share singletons
* Move alias to dev webpack, add alias for grafana-data as well
* remove whitespace
* DashboardScene: Action toolbar progress
* Add discard confirmation modal
* minor fix
* Update
* tweaked
* Updating
* Progress
* Update
* Update
* Added some unit tests
* fix test
* Change name to Exit edit
* Tweaks
* fix test
* Minor margin fix
* Move share to left of edit
* fix: Cascader: allow disabled state
* fix: datatrails metrics selection scene stability
- clear panels and filter data when datasource changes
- detect metric names loading / error state and disable components accordingly
- put all scene variable dependencies together
- reset metric names without clearing panels when time range changes
* Show warning when cp does not exist and invalidate the form
* Set error in contact selectedContactPoint form field manually
* use RHF validate and trigger
* Fix defaultvalue not being set in contact point and update the error message text
* Simplify refetchReceivers prop definition in ContactPointSelectorProps
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Removed intro text and About thresholds heading
* Added Threshold options H2 with sub-headings and moved Default thresholds to H2
* Rearranged sections and added lorem ipsum placeholder text
* Updated heading to Add a threshold, moved delete content to after task, and reformatted task
* Replaced lorem ipsum text with TBA
* Fixing UI option names
* Docs: Edit configure thresholds page (#81520)
* Added contractions
* Added Threshold value heading and updated options information
* Rewrote task
* Added Supported visualizations section, updated links, and made general copy edits
* Copy edits
* Added screenshots for some examples
* Edited intro section
* Added table, removed note, and added note about options
* Updated table and removed bullet list
* Added table of threshold examples, other copy edits
* Applied suggestions from review
* Fixed deprecation note
* Updated deprecation note
* Replaced local images with uploaded images
* Fixed deprecation note
* Move to the library
* copy from library
* move them in src
* have additional files
* add unmigrated/dulicated code and files
* migrate from brendan's pr
module.ts, query_hints.ts, tracking.ts, and remove plugin.json
* migrate from brendan's pr
metric_find_query.test.ts
* migrate from brendan's pr
language_utils.test.ts
* migrate from brendan's pr
index.ts in root and in configuration
* migrate from brendan's pr
datasource.test.ts
* migrate from brendan's pr
typings folder
* migrate from brendan's pr
querycache folder
* migrate from brendan's pr
monaco-query-field folder
* migrate from brendan's pr
components folder without monaco-query-field folder
* migrate from brendan's pr
configuration/overhaul folder
* migrate from brendan's pr
AlertingSettingsOverhaul.tsx
* Remove azure related code
* migrate from brendan's pr
ConfigEditor.tsx, DataSourceHttpSettingsOverhaul.tsx, ExemplarSetting.tsx, configuration/mocks.ts, PromSettings.test.tsx, PromSettings.tsx
* migrate from brendan's pr
useFlag.ts
* migrate from brendan's pr
metrics-modal folder
* migrate from brendan's pr
files inside components folder
* migrate from brendan's pr
LabelFilters* files because they are now under components folder
* migrate from brendan's pr
files under querybuilder/shared folder
* migrate from brendan's pr
aggregations.ts, QueryPattern.tsx, QueryPatternsModal.tsx, state.ts, testUtils.ts under querybuilder folder
* Apply Ivana's PR https://github.com/grafana/grafana/pull/81656
* Apply jack's suggestions in this PR https://github.com/grafana/grafana/pull/77762
* Apply Ivana's PR https://github.com/grafana/grafana/pull/81656
* Fix type import
* add monaco-promql to transformIgnorePatterns to run prometheus frontend library tests
* remove Loki specific tests because we removed Loki code to decouple Loki
* add prometheus specific references
* We are moving these betterer issues from core Prometheus to the Library and we promise to remove all issues in the future, thank you
* include prometheus library in package.json
* add yarn lock with prometheus frontend library
* decouple final core import from metric_find_query.test.ts
* run prettier
* fix core imports in promqail
* fix lint errors
* run prettier
* add grafana-ui to devdeps to fix lint errors
* update yarn.lock
* grafana-ui fix
* trying to fix grafana-ui type errors with lerna drone check
* trying to fix grafana-ui type errors with lerna drone check
* trying to fix grafana-ui type errors with lerna drone check
* trying to fix grafana-ui type errors with lerna drone check
* try to pass typecheck
---------
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
* migrate some stuff from aria-label to data-testid
* convert styles to objects
* fix unit tests
* empty commit to kick drone now enterprise branch is there
* Infinite scroll: clean up for clarity
* Infinite scroll: clean up test
* Formatting
* Infinite scroll: disable by feature flag
* Infinite scroll: improve visibility of the lower loader
* add handling for legacy and k8s apis to frontend
* use backend srv directly not redux
* add unit test to make sure the correct apis are being called
* require api server flag
* fix feature toggle name
* ensure both pages work correctly
* make consistent with legacy api
* implement webhook update
* fix unit test
* remove old apis and update
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* declare new API and models GettableTimeIntervals, PostableTimeIntervals
* add new actions alert.notifications.time-intervals:read and alert.notifications.time-intervals:write.
* update existing alerting roles with the read action. Add to all alerting roles.
* add integration tests
* Create locking config store that mimics existing provisioning store
* Rename existing receivers(_test).go
* Introduce shared receiver group service
* Fix test
* Move query model to models package
* ReceiverGroup -> Receiver
* Remove locking config store
* Move convert methods to compat.go
* Cleanup
* Update dependency dangerously-set-html-content to v1.1.0
* allow rerender and use ' ' for empty state to prevent throwing
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* enable "add" new variables and implement logic
* Remove discard changes code as we will not follow that pattern for now
* Add unit test of the onAdd function
* add unit test for utils functions
This commit prevents saving configurations containing inhibition
rules in Grafana Alertmanager. It does not reject inhibition
rules when using external Alertmanagers, such as Mimir. This meant
the validation had to be put in the MultiOrgAlertmanager instead of
in the validation of PostableUserConfig. We can remove this when
inhibition rules are supported in Grafana Managed Alerts.
* Add secureSocksDSProxyEnabled label to grafana_datasource_request_duration_seconds
* rename label from secureSocksDSProxyEnabled to secure_socks_ds_proxy_enabled
* DataSourceMetricsMiddleware: add secure_socks_ds_proxy_enabled label to every metric
* Fixed duplicate trails entry for first time users. Show header with description for first time users
* Renamed trail to history in History component
* Use metric name in breadcrumb
* Style tweaks around search field in metric select
* Address PR comments
* prettier
* create the feature flag
* bring the concurrency in to the play
* Update feature flag
* Use concurrency number from settings
* update influxdb dependency
* use ConcurrentQueryCount from plugin-sdk-go
* use helper method for concurrent query count
* log the error
* add value guard
* add unit tests
* handle concurrency error
* Chore: Remove Form usage from AdminEditOrgPage
* Chore: Remove Form usage from UserCreatePage.tsx
* Chore: Transform LdapPage to FC
* Chore: Remove Form usage from LdapPage.tsx
* use regex as templateSrv replace format
* use regex as templateSrv replace format for raw queries
* import path fix
* don't use regex formatter
* tag value escape
* tag value escape with wrappers
* polished interpolation logic
* update unit tests
* comments and more place to update
* unit test update
* fix escaping
* handle the string and array of string type separately
* update variable type
* Update Grafana.com org sync index.md
Included additional information regarding logging in with Grafana.com credentials that it will override what is defined within the Grafana instance.
* Update docs/sources/setup-grafana/configure-security/configure-authentication/grafana-com/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
AM config applied via API would use the PostableUserConfig as the AM raw
config and also the hash used to decide when the AM config has changed.
However, when applied via the periodic sync the PostableApiAlertingConfig would
be used instead.
This leads to two issues:
- Inconsistent hash comparisons when modifying the AM causing redundant applies.
- GetStatus assumed the raw config was PostableUserConfig causing the endpoint
to return correctly after a new config is applied via API and then nothing once
the periodic sync runs.
Note: Technically, the upstream GrafanaAlertamanger GetStatus shouldn't be
returning PostableUserConfig or PostableApiAlertingConfig, but instead
GettableStatus. However, this issue required changes elsewhere and is out of
scope.
* add feature toggle
* add a middleware that appens headers for IP range AC
* sort imports
* sign IP range header and only append it if the request is going to allow listed data sources
* sign a random generated string instead of IP, also change the name of the middleware to make it more generic
* remove the DS IP range AC options from the config file; remove unwanted change
* add test
* sanitize the URLs when comparing
* cleanup and fixes
* check if X-Real-Ip is present, and set the internal request header if it is not present
* use split string function from the util package
* feat: datatrails: include metric prefix filter
* fix: remove current metric from related metrics list
* fix: Cascader issues
- handle empty items list when generating searchable options
- correct state management to ensure cascade shows cascade
path of selection from search
* fix: remove custom value creation
* fix: datatrails: limit width of metric description
* fix: datatrails: use vertical radio list for long label list
* fix: datatrails: reduce spacing between header items
* fix: datatrails: reduce gap in lower toolbar
* fix: change to use Select component for longer lists
* Panel links supplier for VizPanel
* Update panel links behavior
* Allow editing panel links
* Update so that single link is rendered without a dropdown
* Serialise links in scene -> save model transformation
* Betterer fix
* Fix inspect json tab test
* DashboardScene: Initial work to get new route to work
* Update
* remove caching of new dashboard
* remove old new dashboard func
* Update
* Update public/app/features/dashboard-scene/scene/DashboardScene.tsx
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Fixing test
* dam messy tests
---------
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* XYChart: Add data filter to manual mode
* Add onChange to data filter for manual editor
* Update placeholder for auto editor for consistency
* Filter x y fields based on frame
* Update frame calc for truthy
* Use display name instead for frame filter
* Update placeholders
* Apply frame filter to series prep
* Re run make gen cue
* Remove old TODO
* Force data filter to be selected
* minor cleanup
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Added import and troubleshoot dashboards pages
* Moved import dashboards to build dashboards folder
* Updated import dashboards content
* Updated manage dashboards page
* Updated troublshooting dashboards page
* Finalized text for Import dashboards and moved orphaned content to Sharing page
* Made general copy edits to Troubleshooting dashboards
* Moved More examples heading and content from Troubleshooting to Import
* General copy edits to Troubleshooting
* Fixed broken links and made small copy edits
* Fixed broken link
* Removed note and replaced with plain text description of Dashboards page
Added to do for clarifying display of Shared with me section
* Deleted orphaned export content; to be rolled in later
* Copy edits
* Updated Shared with me section
* Copy edits
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Add folder store method for fetching all folder descendants
* Modify GetDescendantCounts() to fetch folder descendants at once
* Reduce DB calls when counting library panels under dashboard
* Reduce DB calls when counting dashboards under folder
* Reduce DB calls during folder delete
* Modify folder registry to count/delete entities under multiple folders
* Reduce DB calls when counting
* Reduce DB calls when deleting
* Rename trails and tweak styles in homepage
* Use design system card and update layout. Add createdAt date to trail
* Small style tweaks
* Move queryDef state to metricScene
* Date format update
* More style tweaks
* betterer update
* Use smaller padding on Card and use Badge istead of Tag
* Increase badge max width
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Supplementary queries: add support for providers returning a request instance
* Formatting
* DataSourceWithSupplementaryQueriesSupport: update getDataProvider signature
* getLogLevelFromLabels: fix buggy implementation
* getLogLevelFromKey: fix key type
Why number??
* Revert "getLogLevelFromKey: fix key type"
This reverts commit 14a95298a6f803cc3270e0421b2e04dd0d65f131.
* getSupplementaryQueryProvider: remove observable support
* Datasources: remove unnecessary check
The switch is doing the same job
* Supplementary queries: update unit test
* datasource_srv: sync mock with real api
* Formatting
* Supplementary queries: pass targets from getSupplementaryQueryProvider
* LogsVolumeQueryOptions: remove range and make extract level optional
* logsModel: add missing range to test data
* query: sync tests with changes
* Formatting
* DataSourceWithSupplementaryQueriesSupport: update interface with deprecated and new methods
* DataSourceWithSupplementaryQueriesSupport: sync Loki and Elasticsearch
* queryLogsVolume: extractLevel no longer customizable
* Loki: update test
* Supplementary queries: add support for the new method
* hasSupplementaryQuerySupport: update signature
* Formatting
* Betterer
* Query: update test
* Supplementary queries: add test for the legacy API
* Update public/app/features/explore/utils/supplementaryQueries.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Data query: Allo logging panel plugin id when executing queries
* Update tracing header middleware
* Test fix
* Add panelPluginType to query analytics
* Cleanup
- Feature Toggle is `promQLScope`.
- Query property is:
"scope": {
"matchers": "{job=~\".*\"}"
}
Misc:
- Also updates drone GO version to address ARM bug https://github.com/golang/go/issues/58425
- Also updates Swagger defs that were causing builds to fail
---------
Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
* Extract logic from core IntervalEditor and create a new Form to be shared between scenes and core
* Implement IntervalVariableEditor and refactor some utils functions
* Add unit test
* Add filtering by dashboard UID annotation
* Update the inline doc for search
* Add AlertRulesDrawer to the dashboards toolbar
* Use DashboardPicker as a filter on the alert rules page
* Fix accessibility errors
* Update drawer subtitle
* Display Alerting toolbar button only if there are linked alert rules
* Change toolbar rendering method, prevent displaying when no linked rules
* Improve text
* Use React.lazy to load the Alert rule toolbar button and drawer when needed
* Chore: Use yarn node-modules linker
* fix react-router types resolution
* temp skip failing tests
* remove yarn-links for internal path aliases to fix some webpack errors
* transpile all .ts files, even those in node_modules (usually our internal workspace packages
* fix transformers mock
* import react router type directly
* remove old resolution
* more cleanup
* remove preserveSymlinks: true from tsconfig to make Go To Definition resolve grafana ui to the original location
* developer guide
* update dev guide
* remove sdks
* reenable tests
* fix tsconfig trailing commas (where did they come from)
* only use the series endpoint in the metrics browser
* Update public/app/plugins/datasource/prometheus/components/PrometheusMetricsBrowser.test.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* DashboardScene: First save works
* Updates
* version mismatch works
* Error handling
* save current time range working
* Progress on save as
* Save as works
* Progress
* First tests
* Add unit tests
* Minor tweak
* Update
* Update isDirty state when saving
* Reload after deletion of the current settings
* Add grafana_ssosettings_setting_reload_failure_total counter
* Returns successfully if data reload failed
* Plugin: handle colon character in path
url.Parse() does not handle the given input correctly when the input
contains a colon character. The user will see the following error
message when trying to use remote cluster in Elasticsearch:
```
level=warn msg="Failed for create plugin resource request" error="parse \"foo-*,*:foo-*/_mapping\": first path segment in URL cannot contain colon" traceID=
```
As far as I can tell, we only want to set the path here + rawquery so
avoid url.Parse() altogether.
* Add more tests
---------
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
* add annotation permissions to dashboard managed role and add migrations for annotation permissions
* fix a bug with conditional access level definitions
* add tests
* Update pkg/services/sqlstore/migrations/accesscontrol/dashboard_permissions.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* apply feedback
* add batching, fix tests and a typo
* add one more test
* undo unneeded change
* undo unwanted change
* only check the default basic permissions for non-OSS instances
* account for all wildcards and simplify the check a bit
* error handling and extra conditionals to avoid test failures
* fix a bug with admin permissions not appearing for folders
* fix the OSS check
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Remove folderID from service tests
* Remove folderID from ngalert migration tests
* Remove tests related to folderIDs
* Roll back change
Before removing FolderID from this test, we need to adjust the code
* Remove FolderID from publicdashboard pkg
* Add back annotations test
Fixes the group by custom labels and timings override logic in the simplified routing section of the edit rule page.
Previously:
- Custom labels would fail on first attempt at adding them to the group by.
- Timings fields required all timings to be overridden instead of any of them.
* RBAC: Search add user login filter
* Switch to a userService resolving instead
* Remove unused error
* Fallback to use the cache
* account for userID filter
* Account for the error
* snake case
* Add test cases
* Add api tests
* Fix return on error
* Re-order imports
* Share button works now. Removed add to dashboard button for now
* WIP explore link
* Remove settings dropdown for now
* Use getExploreUrl to generate explore link
* Fix conflicts
* Update betterer
* Navigate to a new trail when the recent trails list is empty
* Address PR comments
* Consolidated four add mappings tasks into one
* Moved images from tasks to types of value mappings section
* Removed edit value mappings section
* Moved sentence about reordering mappings to intro section
* Docs: Add to and update Configure value mappings page (#80104)
* Added to do notes
* Updated intro text and screenshot
* More intro edits
* Updated Types of value mappings section
Replaced bullet list items with headings
Updated text and screenshots of section
* Updated Add a value mapping task
* Recast sentence to remove passive voice
* Replaced local image files with images on admin
* Update alerting_provisioning.md
* Introduction and references
* UID variable consistency formatting
* Folder and Group variables consistency formatting
* Delete Note from Contact Point section
* api/v1/provisioning/folder/:folderUid/rule-groups/:group clarifications and extension. Request #8218
* Prettier format document
* {name} to :name and format
* Comma
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Folders: Expose function for getting all org folders with specific UIDs
* lint
* Fix test
* fixup
* Apply suggestion from code review
* Remove changes in alerting scheduler
* fixup
* fixup after merge with main
* Add batching
* Use strings.Builder
* Return all org folders if UIDs is empty
* Filter out not accessible folders by the user
* Remove comment
* Fix batching when count is zero
* Do not include dashboard permissions
* Add some tests
* fix test
* Use batch request for folders
* Use batch request to deduplicate folders
* Refactor
* Fix after merging main
* Refactor
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Extract DatasourceVariableForm logic and use it in core grafana
* Implement DataSourceVariable editor in scenes
* Refactor VariableSelect and add unit test for DataSourceVariableEditor
* Refactor old unit test to use userEvent and mock getDataSourceSrv
* Update dependency @glideapps/glide-data-grid to v6
* mark glide-data-grid as esmodule
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Check the value type before casting it to the string
* set visualization as table by default
* append all values for show diagnostics
* golangci-lint
* append metadata only to first frame
* Add API test
* Add move tests
* Fix create folder
* Fix move
* Fix test
* Drop and re-create index so that allows a folder to contain a dashboard and a subfolder with same name
* Get folder by title defaults to root folder and optionally fetches folder by provided parent folder
* Apply suggestions from code review
* Swap order between Annotations and Labels and notifications step, and update some texts
* Update routing preview label size
* Fix dashboard and panel label when are selected
* Swap order in modify export form
* Add refresh button for contact points selector in simplified routing section
* Clear timeout when unmounting component
* Fix timeout not being correclty removed when component unmounts
* Update css field name
* Kepp loading spinner if refetching receivers takes more than one second
* Fix test snapshot in useContactPointsWithStatus hook
* refactor how we wait for the request response and the timeout to finish
* Folders: Expose function for getting all org folders with specific UIDs
* Return all org folders if UIDs is empty
* Filter out not accessible folders by the user
* Modify query to optionally returning a string that contains the UIDs of all parent folders separated by slash.
* Grafana/ui: Add Space component
* Add responsive styles and prop docs
* Use the Box component
* Docs
* Replace the component from grafana/experimental
* Update story
* Tweak docs
* Adjust docs
* Embedding dashboards exploratino
* Update
* Update
* Added e2e test
* Update
* initial state, and onStateChange, only explore panel menu action and other fixes and tests
* fix e2e spec
* Fix url
* fixing test
* Fix broken link tempo data source
* Use docs/reference shortcode
* Update docs/sources/datasources/tempo/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Alerting: Add action, scope, role_id to permission table
The existing role_id, action, scope index has the wrong ordering to be most
effectively used in dashboard/folder permission requests.
On a large tests set, the slow database calls were on the order of ~30-40ms, so
when performed individually they don't have that large of a latency impact.
However, when done in bulk in the migration this adds up to some very slow
requests.
After the index is added these same database calls are reduced to ~4-5ms
* Change index to action, scope, role_id
* Make new index unique and drop [role_id, action, scope] index
* Alerting: During legacy migration reduce the number of created silences
During legacy migration every migrated rule was given a label rule_uid=<uid>.
This was used to silence DatasourceError/DatasourceNoData alerts for
migrated rules that had either ExecutionErrorState/NoDataState set to
keep_state, respectively.
This could potentially create a large amount of silences and a high cardinality
label. Both of these scenarios have poor outcomes for CPU load and latency in
unified alerting.
Instead, this change creates one label per ExecutionErrorState/NoDataState when
they are set to keep_state as well as two silence rules, if rules with said
labels were created during migration. These silence rules are:
- __legacy_silence_error_keep_state__ = true
- __legacy_silence_nodata_keep_state__ = true
This will drastically reduce the number of created silence rules in most cases
as well as not create the potentially high cardinality label `rule_uid`.
* added Descope as an OAuth2 provider
Added docs for customers of ours that have asked us how to use Descope with Grafana. We wanted to make sure they can easily find these docs on both our website and Grafana's.
* Update docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth/index.md
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth/index.md
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth/index.md
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* Changed note to use admonition
* Prettier
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Adding transformations works
* Use source data as data input for transformation settings, add search box suffix
* remove useCallback that are probably not needed, fix tests
* remove unused import
* add tests for adding and removing transformations
* use view all constant
* Add reordering functionality
* Fix removing one transformation removes all consecutive transformations
* use closeDrawer function
* Add tests for changing transformations
* Remove any
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Add warning message when scope missing in TraceQL
* Check for warnings in nodes
* Update formattiing
* Tidy up logic
* Tests
* Rename files and move tests for highlighting queries with errors
Prometheus plugin: use new labels endpoint, if supported, for LabelEditor
Before this change LabelEditor always use old '/series' endpoint to get labels.
Now new '/labels' endpoint would be used in case datasource supports it.
* Update Bearer Token serviceaccount.md
To update the Service Account API to include a note stating that a Bearer token for Grafana Cloud instances is needed.
* Update docs/sources/developers/http_api/serviceaccount.md
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* fix preview getting the correct queries from the form
* Remove setting queries in onChangeQueries handler as it only contains data queries and not expressions
* Keep setValue('queries') but also adding expressions
* initial commit for v10.3 whats new
* Added breaking changes guide and updated What's new doc
* Added 10.2.3 in frontmatter of files
* Added content from What's new in Cloud
* Added note about 10.203 and breaking changes section
* Made formatting edits
* Added 10.2.3 test note
* Replaced 10.2.3 notes with asterisks
* Added tag note
* Move reporting item out of D&V section
* Added breaking changes
* Fixed availability notes
* Moved feature from Traces to Profiles and removed Traces section
* Reordered sections
* Replaced Cloud links with OSS links and relrefs with full URLs
* Updated template
* Copy edit
* Clarified outstanding questions
* Updated data source admin permissions note
* Removed duplicate alerting items
* add InfluxDB SQL support
* Ran prettier
* Added availability, video and contributor info
* Ran prettier
* Added youtube video links
* Removed old video link
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* introduce feature toggle
* create base service structure
* fix sample metric
* register metrics
* add to codeowners
* separate api dtos from service models
* remove leading newline
* add clearer comment for function def
* update test to reflect change in range for 1w step
* clarify docs
* add more clarity
* add explanation to query options min interval and link to min step
* Update docs/sources/panels-visualizations/query-transform-data/_index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* update selectors for prom
* add selector to switch component, needs id instead of testid
* add testid and ids to Prom settings
* add e2e tests for prom config
* add config to editor test
* export select function
* start query editor spec
* clean up describe
* add selectors for general query editor
* add selectors to components in options in best locations
* wrap header switch in id because component doesn't accept testid nor id
* add id to wrap legend components in one selector
* update selector in shared folder component, note to change in shared library
* update selector in shared folder component, note to change in shared library
* add notes for selectors in shared folder
* add tests and file for query editor
* add selectors for metrics browser in code editor
* add selector to component to open metrics browser
* add selectors to components within the metrics browser
* add tests for metrics browser and stub resource calls
* add selectors to query builder components
* add e2e tests for query builder
* generic query builder test with hints
* add selectors for more code editor parts
* add test for code and update selector
* fix tests with selector
* remove shared folder changes and use data-testid where possible
* remove unused import
* share getResources
* create variable query editor selectors
* add selectors to the variable query editor
* add e2e tests for the Prometheus variable query editor
* fix test function
* refactor add data source method
* add annotation selectors
* add selectors to annotation components
* add annotation e2e tests
* commit for yarn i18n:extract error in drone
* Add AuthNSvc reload handling
* Working, need to add test
* Remove commented out code
* Add Reload implementation to connectors
* Align and add tests, refactor
* Add more tests, linting
* Add extra checks + tests to oauth client
* Clean up based on reviews
* Move config instantiation into newSocialBase
* Use specific error
* Update dependency eslint-plugin-jsx-a11y to v6.8.0
* this shouldn't be a label methinks
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Geomap: Support geojson styling properties
* Add enum for geojson styles
* Move styleStrings outside of style function
* Add styling note to geoJSON docs
* Clean up geomap docs
* Add support for points
* Add simple example
* Add support for all geojson types and update example
* Update colors
* Update docs
* Remove old TODO
* Update geojson name
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
This commit addresses the issue where the postinst script was not using
the GRAFANA_HOME variable from the /etc/default/grafana-server
configuration file on Debian systems. Instead, it was relying on a
hardcoded home directory.
Fixes#80852
* Moved content under Data links heading to intro of page and deleted heading
* Made headings for data link variable types H3s nesting under Data link variables
* Removed unecessary update and delete data links sections
* Made old intro sentence part of new intro
* Made Add a data link section an H2
* Removed unecessary typeahead suggestions section
* Moved variables into tables and capitalized first word of descriptions
* Docs: Edit Configure data links page (#80101)
* Added content update notes
* Rewrote Add a data link section per style guidelines
* Copy edits
* Copy edits
* Copy edits
* Copy edited intro text, removed instances of e.g., and replaced OSS links with Cloud links
* Standardized the format of variables in tables
* Added images (locally) and clarified context menu behaviour
* Removed working notes
* Fixed typo
* Removed images from local and updated image pathways
These don't get marshalled and unmarshalled in the same way as they are represented in Go
This PR changes the OpenAPI spec to reflect what the API accepts and sends back
* refactor: remove icons and related styling
* refactor: remove cut off on the left side
* fix: aria-labels
* feat: add tracking
* refactor: adjust button position
* refactor: move previous button back
* refactor: use emotion object syntax
* feat: add tracking
* refactor: remove console.log()
* Working copy-paste functionality with validation
* WIP; uses 't c' shortcut to copy time range
* shortcuts working for explore and dashboards
* cleanup
* Don't update url when pasting in explore
* Error handling, sync pane functionality, add to help modal
* cleanup
* add tests
* fix i18n
* Diferrentiate between explore and dashboard paste events; make on error prop generic
* Fix
* extract getting the copied time range logic into a function
* Remove comments
* Make error handling generic; markup for translations
* Additional translation markup
* markup for aria-label
* Fix test
* Replace fireEvent with userEvent
* fix translations to match the standard pattern
* Refactor keybindingSrv and TimeSrv to remove PasteTimeContext
* Fix test
* Remove unneccessary aria labels; update icons; buttons inline
* Simple, per-base-interval jitter
* Add log just for test purposes
* Add strategy approach, allow choosing between group or rule
* Add flag to jitter rules
* Add second toggle for jittering within a group
* Wire up toggles to strategy
* Slightly improve comment ordering
* Add tests for offset generation
* Rename JitterStrategyFrom
* Improve debug log message
* Use grafana SDK labels rather than prometheus labels
When using the legacy migration dry-run, if a cancel takes a long time (long
enough for the page to poll) the page will incorrectly render the previous
data.
This change stops the polling while the upgrading or cancelling.
Sets that status code on backend data responses in prometheus to match the status code returned by prometheus. If the failure is below HTTP/Application Layer, Bad Gateway is returned (502).
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* add deployment registry API cloud only
* update versions
* add feature flag endpoints
* use helpers
* merge main
* update AllowSelfServie and re-run code gen
* fix package name
* add allowselfserve flag to payload
* remove config
* update list api to return the full registry including states
* change enabled check
* fix compile error
* add feature toggle and split path in frontend
* changes
* with status
* add more status/state
* add back config thing
* add back config thing
* merge main
* merge main
* now on the /current api endpoint
* now on the /current api endpoint
* drop frontend changes
* change group name to featuretoggle (singular)
* use the same settings
* now with patch
* more common refs
* more common refs
* WIP actually do the webhook
* fix comment
* fewer imports
* registe standalone
* one less file
* fix singular name
---------
Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com>
* Infinite scroll: exclude visible range from new requests
* Infinite scroll: revert skipping 1 millisecond on new requests
* Formatting
* Logs models: filter exact duplicates in the response
* mergeDataSeries: do not mutate currentData
* runMoreLogsQueries: return queryResponse while loading
* Infinite scrolling: use special refId for infinite scrolling queries
* Remove log
* Update public/app/features/logs/logsModel.ts
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* combinePanelData: refactor and add unit test
* logsModel: export infinite scroll refid
* Formatting
* logsModel: add deduplication unit test
* Formatting
* findMatchingRow: add unit test
* Fix test title
* Fix imports order
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* ngalert openapi: Use same `basePath` as rest of Grafana
Currently, there are two issues that prevent easily merging `ngalert` and grafana openapi specs:
- The basePath is different. `grafana` has `/api` and `ngalert` has `/api/v1`. I changed `ngalert` to use `/api`
- The `ngalert` endpoints have their basePath in the each operation path. The basePath should actually be omitted
---------
Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
* first touches
* Merge missing SSO settings to support Advanced Auth pages
* fix
* Update secrets correctly
* Add test for upsert with redactedsecret
* Verify decryption in the List tests
* Wip: get rod of panel edit route
* Cleanup unused code
* Test update
* Simplify url sync for inspect and vie/edit panel
* Update navigating back to dashboard from edit panel
* DashboardScene: Panel inspect improvements (#80655)
Improve inspect, andle view pane end edit mode inspection
* Url sync fixes
* Test update
* Update dependency react-virtualized-auto-sizer to v1.0.20
* Update dependency react-virtualized-auto-sizer to v1.0.20
* update types
* mock in a few more tests
* fix InspectDataTab test
* fix test
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* AuthnSync: Rename files and structures
* AuthnSync: register rbac cloud role sync if feature toggle is enabled
* RBAC: Add new sync function to service interface
* RBAC: add common prefix and role names for cloud fixed roles
* AuthnSync+RBAC: implement rbac cloud role sync
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Change ruler API to expect the folder UID as namespace
* Update example requests
* Fix tests
* Update swagger
* Modify FIle field in /api/prometheus/grafana/api/v1/rules
* Fix ruler export
* Modify folder in responses to be formatted as <parent UID>/<title>
* Add alerting test with nested folders
* Apply suggestion from code review
* Alerting: use folder UID instead of title in rule API (#77166)
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* Drop a few more latent uses of namespace_id
* move getNamespaceKey to models package
* switch GetAlertRulesForScheduling to use folder table
* update GetAlertRulesForScheduling to return folder titles in format `parent_uid/title`.
* fi tests
* add tests for GetAlertRulesForScheduling when parent uid
* fix integration tests after merge
* fix test after merge
* change format of the namespace to JSON array
this is needed for forward compatibility, when we migrate to full paths
* update EF code to decode nested folder
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Chore: refactor some styles in explore to use the object syntax
* refactor LiveLogs styles to use object syntax
* Revert "refactor LiveLogs styles to use object syntax"
This reverts commit 293aa2589f.
* Use last used datasource or default datasource when starting a trail
* Use tabs and move actions bar to same line when possible
* Added overview tab with description, type and labels
* Clickable labels in overview tab
* Show label value counts next to the label name
* Fix action bar zIndex
* Address PR comments
* Refactor
* Refactor getLabelOptions to utils
* Reuse language provider from state
* betterer
* testing some refactors
* Remove unreachable code
* Refactor GROUP_BY var to MetricScene
* Fix url by excluding var-groupby
* Fix conflicts
* Use <Text/> instead of custom styles
* Simplify setting overview as default tab
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Make dashboard data source query actually use DashboardDataSource
* remove commented out bit
* Always wrap SceneQueryRunner with SceneDataTransformer
* Update Dashboard model compat wrapper tests
* DashboardQueryEditor test
* VizPanelManager tests update
* transform save model to scene tests update
* Betterer
* PanelMenuBehavior test update
* Few more bits
* Prettier
* Show transformations when editing scene dashboard
* remove and edit transformations works
* add add and remove buttons
* Change styles to object to fix betterer issue
* Revert "Change styles to object to fix betterer issue"
This reverts commit 8627b9162c.
* Fix the correct file...
* Some refactoring
* remove unneessary if statement
* panel data not present on first render
* move transformation tabs out of folder
* fix tests
* add lint exception
* refactor tab component
* Fix merge issue
* reorder components
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* refactor: data trails auto query for buckets
* refactor: vizBuilder function signature (#80178)
* fix: use closures for setting unit and title in vizBuilders
* Alerting: Add metric to check for default AM configurations
* Use a gauge for the config hash
* don't go out of bounds when converting uint64 to float64
* expose metric for config hash
* update metrics after applying config
grafana's metrics exporter does not provide a metric called
"http_request_total"; fix the dashboard to use the actually existing
"grafana_http_request_duration_seconds_count"
* Divider: Remove core component and replace with grafana/ui components
* Update gap
* Bump experimental in tempo
---------
Co-authored-by: Fabrizio <fabrizio.casati@grafana.com>
* remove latest.json and replace with api call to grafana.com
* remove latest.json
* Revert "remove latest.json"
This reverts commit bcff43d898.
* Revert "remove latest.json and replace with api call to grafana.com"
This reverts commit 02b867d84e.
* add deprecation message to latest.json
* Make dashboard data source query actually use DashboardDataSource
* remove commented out bit
* Always wrap SceneQueryRunner with SceneDataTransformer
* Update Dashboard model compat wrapper tests
* DashboardQueryEditor test
* VizPanelManager tests update
* transform save model to scene tests update
* Betterer
* PanelMenuBehavior test update
* Few more bits
* Prettier
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* WIP
* WIP: disable some actions when is autogenerated policy
* WIP
* Wip: add checks for group by in auto-generated policy
* Make autogenerated policy readOnly and enable Readonly modal for it
* Use real check for autogenerated root
* Fix test
* Refactor: rename consts
* Add test for policy form being read only
* Add tests
* Update some code comments
* Fix Switch component not being styled as disabled
* Rename isAutogeneratedChunkOpen property to isBranchOpen and fix test
* Revert fix for Switch as it has moved to another separate PR
* Split Policy component in smaller sub components
* use useAlertmanagerAbility form for checking autogenerated tree visibility and fix container for autogenerated policy being rendered when it's not supported
* Update useAbilities test and dont use toAbility for ViewAutogeneratedPolicyTree
* Fix Policy being unmounted every 10 secs and move the collapsed/expanded state to each Policy component
* remove permissions from createDropdownMenuActions method parameters and convert the method to a hook
* Revert using PolicyItem
* Add test for createDropdownMenuActions
* Revert having a read only view form for the policy
* Remove readonly from default policy form
* Only show collapsible when node has children
* Split DefaultPolicyIndicator
* use hidehideCurrentPolicy instead of showCurrentPolicy
* Address some review suggestions
* first commit
* add: pagination to anondevices
* fmt
* swagger and tests
* swagger
* testing out test
* fixing tests
* made it possible to query for from and to time
* refactor: change to query for ip adress instead
* fix: tests
* Jaeger: Add service dependency graph support
Add support for visualizing Jaeger's service dependency graph via the
Jaeger data source. Per the discussion[1], this is done by proxying the
internal Jaeger HTTP API endpoint used by Jaeger's own UI for fetching
graph data, and transforming it into a format suitable for the node
graph panel in Grafana.
---
[1] https://github.com/grafana/grafana/discussions/52035
* Small lint fixes
* Type fix
---------
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* separate nestedFolderPickerOverride toggle to force enable it without nestedFolders
* let's call it newFolderPicker
* update unit tests and keyboard handling
* reduce spacing when no folder open chevron
---------
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
* start shared with me frontend tweaks
* prevent linking to sharedwithme folder
* tests
* make divider take up 0 height
* Prevent sharedwithme from being selected
* test
git push
* pr feedback
* prevent setting url for sharedwithme
* split iconForItem/kind functions
* Hide sharedwithme in nested folder picker
* fix test fixture
* only set the menu docked in state if the window size is big enough
* adjust sizes
* remove top border on dockedMegaMenu
* another css tweak
* use xxl consistently
* CONSISTENTLY
* ok maybe not
* Split subquery when cleaning annotations
* update comment
* Raise batch size, now that we pay attention to it
* Iterate in batches
* Separate cancellable batch implementation to allow for multi-statement callbacks, add overload for single-statement use
* Use split-out utility in outer batching loop so it respects context cancellation
* guard against empty queries
* Use SQL parameters
* Use same approach for tags
* drop unused function
* Work around parameter limit on sqlite for large batches
* Bulk insert test data in DB
* Refactor test to customise test data creation
* Add test for catching SQLITE_MAX_VARIABLE_NUMBER limit
* Turn annotation cleanup test to integration tests
* lint
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* add get mute timing by name to MuteTimingService
* update get mute timing request handler to use the service method
* replace validation, uniqueness and used errors with errutils
* update mute timing methods return errutil responses
* use the term "time interval" in errors bevause mute timings are deprecated in Alertmanager and will be replaced by time intervals in the future.
* update create and update methods to return struct instead of pointer
* Fix firing alerts title when showing active alerts in Insights panel
* Update red to green and change the component name to Active.tsx instead of Firing.tsx
* Remove FolderID from service tests
* Add models
* Add folderID pack to publicdashboard tests
* Remove folderID from dashboard tests
* Remove folderID from folders
* Remove folderID from ngalert tests
* Remove nolint comment
* Add back some tests after rebase
* Explore: propose action, thunk, and decorators for load more
* LogsContainer: add loadMore method
* Query: remove unused var
* Loading more: use navigation to simulate scrolling
* Explore: figure out data combination
* Fix imports
* Explore: deduplicate results when using query splitting
* LogsNavigation: add scroll behavior
* Remove old code
* Scroll: adjust delta value
* Load more: remove refIds from signature
We can resolve them inside Explore state
* Load more: rename to loadMoreLogs
* Infinite scrolling: use scrollElement to listen to scrolling events
* Explore logs: add fixed height to scrollable logs container
* Logs: make logs container the scrolling element
* Logs: remove dynamic logs container size
It works very well with 1 query, but breaks with more than 1 query or when Logs is not the last rendered panel
* Logs navigation: revert changes
* Infinite scroll: create component
* Infinite scroll: refactor and clean up effect
* Infinite scroll: support oldest first scrolling direction
* Infinite scroll: support loading oldest logs in ascending and descending order
* Infinite scroll: use scroll to top from logs navigation
* Logs: make logs container smaller
* Logs: make container smaller
* State: integrate explore's loading states
* Infinite scroll: add loading to effect dependency array
* Infinite scroll: display message when scroll limit is reached
* Infinite scroll: add support to scroll in both directions
* Infinite scroll: capture wheel events for top scroll
* scrollableLogsContainer: deprecate in favor of logsInfiniteScrolling
* Infinite scroll: implement timerange limits
* Infinite scroll: pass timezone
* Fix unused variables and imports
* Infinite scroll: implement timerange limits for absolute time
* Infinite scroll: fix timerange limits for absolute and relative times
* Infinite scroll: reset out-of-bounds message
* Logs: make container taller
* Line limit: use "displayed" instead of "returned" for infinite scrolling
* Infinite scrolling: disable behavior when there is no scroll
* Remove console log
* Infinite scroll: hide limit reached message when using relative time
* Logs: migrate styles to object notation
* Prettier formatting
* LogsModel: fix import order
* Update betterer.results
* Logs: remove exploreScrollableLogsContainer test
* Infinite scroll: display loader
* Infinite scroll: improve wheel handling
* Explore: unify correlations code
* Explore: move new function to helpers
* Remove comment
* Fix imports
* Formatting
* Query: add missing awaits in unit test
* Logs model: add unit test
* Combine frames: move code to feature/logs
* Explore: move getCorrelations call back to query
It was causing a weird test failure
* Fix imports
* Infinite scroll: parametrize scrolling threshold
* Logs: fix overflow css
* Infinite scroll: add basic unit test
* Infinite scroll: add unit test for absolute time ranges
* Formatting
* Explore query: add custom interaction for scrolling
* Query: move correlations before update time
* Fix import in test
* Update comment
* Remove comment
* Remove comment
* Infinite scroll: report interactions from component
* Fix import order
* Rename action
* Infinite scroll: update limit reached message
* Explore logs: remove type assertion
* Update betterer
"Release: Updated versions in package to 10.4.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* Dashboard model compat wrapper update
* Handle changing data source type to and from Dashboard data source
* VizPanelManager tests
* Betterer
* DashboardModelCompatibilityWrapper tests
* Review: test updates
* Test updates
* Test fix
* Move the complexity of the dashboard data source edit directly to the ShareQueryDataProvider
* Make sure deactivation handler ain't called multiple times
* Make sure compat panel compat wrapper return queries for shared runner with transformations
* Betterer
* VizPanelManager: Remove data object subscription
* Remove unnecesary code
* implement Reload() func for azuread provider
* add unit test for failure
* use mutex when updating the info field
* implement the Reload() func for the other providers
* use mutex when reading info
* retrieve info using GetOAuthInfo() in common file
* move Reload() to SocialBase
* Alerting: Increase size of kvstore value type for MySQL to LONGTEXT
alertmanager uses the kvstore to persist its notification log and the current
column limit for MySQL (16.7mb) puts the maximum entries at a level that is
potentially achievable for heavy alerting users (~40-80k entries).
In comparison, the current type for PSQL (TEXT) is effectively unlimited and
I believe SQLIte defaults to 2gb which is also plenty of leeway.
* Fix group filter
* Fix Warning: Receivedfor a non-boolean attribute
* remove defaultQueryString.length > 3 from the logic to check if input is invalid
* Move scope type vars to testutil package
* Expose parts of state historian for use in annotation backend
* Implement Loki ASH Annotation store
This store will only implement the `Get` method of a RepositoryImpl since alert state history
writes to Loki elsewhere.
* Use interface for Loki HTTP Client
* Add tests for Loki ASH Annotation store
* Add missing test
* Fix lint
* Organize tests
* Add filter tests
* Improve tests
* Move filter logic into outer function
* Fix lint
* Add comment
* Fix tests
* Fix lint
* Rename historian store + refactor
* Cleanup historian store
* Fix tests
* Minor cleanup
* Use new `ShouldRecordAnnotation` filter
* Fix logic and add tests for this check
* Fix typos, remove unused variables, `< 1` -> `== 0`
* More closely mimic RBAC filter from xorm to ensure correct logic
* Move off weaveworks client
* Address PR comments
* Alerting: Create feature flag for alert query optimization
Adds a feature flag alertingQueryOptimization for an already existing
functionality: alert query optimization. This feature flag will now be disabled
by default.
* reload SSO settings for HA setups
* remove check for grafana HA
* add unit tests
* fetch all sso settings with one sql query
* register background service
* Add enablePluginsTracingByDefault feature flag
* Enable tracing for all plugins if enablePluginsTracingByDefault is set
* fix docstrings for IsEnabled and IsEnabledGlobally
* fix tests
* do not use separate feature manager
* add test case
* Revert "fix tests"
This reverts commit 46a2420ed1.
* cleanup
* fix plugin tracing disabled if wrong plugin setting is present
* add test case for enabled on plugin with wrong plugin setting but with enablePluginsTracingByDefault feature flag
* Add RequiresRestart = true to enablePluginsTracingByDefault
* re-generate feature flags
* pr review feedback
* Alerting: Add metrics to the remote Alertmanager struct
* rephrase http_requests_failed description
* make linter happy
* remove unnecessary metrics
* extract timed client to separate package
* use histogram collector from dskit
* remove weaveworks dependency
* capture metrics for all requests to the remote Alertmanager (both clients)
* use the timed client in the MimirAuthRoundTripper
* HTTPRequestsDuration -> HTTPRequestDuration, clean up mimir client factory function
* refactor
* less git diff
* gauge for last readiness check in seconds
* initialize LastReadinesCheck to 0, tweak metric names and descriptions
* add counters for sync attempts/errors
* last config sync and last state sync timestamps (gauges)
* change latency metric name
* metric for remote Alertmanager mode
* code review comments
* move label constants to metrics package
* Add interactive mode to the Badge component
* Add expression errors as Alert components instead of badges
* Revert "Add interactive mode to the Badge component"
This reverts commit 9558743fc7.
* Alerting: Fix NoData & Error alerts not resolving when rule is reset
On rule reset, when creating the PostableAlerts StateToPostableAlert did not
attach the correct NoData/Error alertname and rulename labels to expire/resolve
the active alerts when the previous cached state was NoData/Error.
* Update dependency @cypress/webpack-preprocessor to v6.0.1
* fix type errors
* restore old checksum for scenes
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Update alert rule model in FE following BE design doc
* Remove unnecessary conditional rendering
* Update styles for optional route settings: add indentation
* Update test
* Add validation for grouBy to include grafana_folder and alertname
* Split conversions between FEdataModel/ DTO, in separate functions
* Update texts following Brenda's suggestions
* Update text
* Return data in camelCase from the OAuth fb strategy
* changes
* wip
* Add defaults for oauth fb strategy
* revert other changes
* basic includeDefaults query param implementation
* basic secret removal and etag implementation
* correct imports
* rebase
* move default settings filter to models
* only replace ClientSecret value if set
* first GetForProvider test & use FNV for ETag to avoid Blocklisted import error
* add tests
* add annotation for the openapi spec & generate spec
* remove TODO
* use IsSecret, improve tests, remove DefaultOAuthSettings
* add comment explaining generateFNVETag
* add error handling for generateFNVETag
* run go generate
* Update pkg/services/ssosettings/api/api.go
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
* move isSecret to service, create GetForProviderWithRedactedSecrets func
* add unit test for GetForProviderWithRedactedSecrets & remove duplicated code
* regen openapi/swagger
* revert dependency bumps
---------
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
* Switching dependencie to the correct owner
* switching storrage-blog-go back to backend platform
* reverting some of the mod assignements
* reverting some of the changes
* not sure how it got changed, but switching this one back
- 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
@@ -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.).
@@ -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.
@@ -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)
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.
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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)
- **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 > 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)
- **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)
- **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)
- **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)
- **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)
- **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)
### Bug fixes
- **Elasticsearch:** Fix creating of legend so it is backward compatible with frontend produced frames. [#81786](https://github.com/grafana/grafana/issues/81786), [@ivanahuckova](https://github.com/ivanahuckova)
- **ShareModal:** Fixes url sync issue that caused issue with save drawer. [#81721](https://github.com/grafana/grafana/issues/81721), [@ivanortegaalba](https://github.com/ivanortegaalba)
<!-- 10.3.3 END -->
<!-- 10.3.1 START -->
# 10.3.1 (2024-01-22)
To resolve a technical issue within the Grafana release package management process, we are releasing both Grafana 10.3.0 and Grafana 10.3.1 simultaneously. The 10.3.1 release contains no breaking or functional changes from 10.3.0. Please refer to the [What’s New](https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v10-3/) post for Grafana 10.3.0 for details on new features and changes in this release.
<!-- 10.3.1 END -->
<!-- 10.3.0 START -->
# 10.3.0 (2024-01-22)
To resolve a technical issue within the Grafana release package management process, we are releasing both Grafana 10.3.0 and Grafana 10.3.1 simultaneously. The 10.3.1 release contains no breaking or functional changes from 10.3.0. Please refer to the [What’s New](https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v10-3/) post for Grafana 10.3.0 for details on new features and changes in this release.
- **Explore:** Preserve time range when creating a dashboard panel from Explore. [#80070](https://github.com/grafana/grafana/issues/80070), [@Elfo404](https://github.com/Elfo404)
- **Explore:** Init with mixed DS if there's no root DS in the URL and queries have multiple datasources. [#80068](https://github.com/grafana/grafana/issues/80068), [@Elfo404](https://github.com/Elfo404)
- **QueryEditor:** Display error even if error field is empty. [#79943](https://github.com/grafana/grafana/issues/79943), [@idastambuk](https://github.com/idastambuk)
- **K8s:** Enable api-server by default. [#79942](https://github.com/grafana/grafana/issues/79942), [@ryantxu](https://github.com/ryantxu)
- **Parca:** Add standalone building configuration. [#79896](https://github.com/grafana/grafana/issues/79896), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Auth:** Hide forgot password if grafana auth is disabled. [#79895](https://github.com/grafana/grafana/issues/79895), [@Jguer](https://github.com/Jguer)
- **Loki:** Open log context in new tab. [#79723](https://github.com/grafana/grafana/issues/79723), [@svennergr](https://github.com/svennergr)
- **Alerting:** Allow linking to library panels. [#79693](https://github.com/grafana/grafana/issues/79693), [@gillesdemey](https://github.com/gillesdemey)
- **Loki:** Drop all errors in volume requests. [#79686](https://github.com/grafana/grafana/issues/79686), [@svennergr](https://github.com/svennergr)
- **Loki Logs volume:** Added a query splitting loading indicator to the Logs Volume graph. [#79681](https://github.com/grafana/grafana/issues/79681), [@matyax](https://github.com/matyax)
- **Plugins:** Disable add new data source for incomplete install. [#79658](https://github.com/grafana/grafana/issues/79658), [@oshirohugo](https://github.com/oshirohugo)
- **RBAC:** Render team, service account and user list when a user can see entities but not roles attached to them. [#79642](https://github.com/grafana/grafana/issues/79642), [@kalleep](https://github.com/kalleep)
- **InfluxDB:** Use database input for SQL configuration instead of metadata. [#79579](https://github.com/grafana/grafana/issues/79579), [@itsmylife](https://github.com/itsmylife)
- **Tempo:** Support special characters in identifiers. [#79565](https://github.com/grafana/grafana/issues/79565), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **React Hook Form:** Update to v 7.49.2. [#79493](https://github.com/grafana/grafana/issues/79493), [@Clarity-89](https://github.com/Clarity-89)
- **Loki:** Add timeRange to labels requests in LogContext to reduce loading times. [#79478](https://github.com/grafana/grafana/issues/79478), [@svennergr](https://github.com/svennergr)
- **InfluxDB:** Enable SQL support by default. [#79474](https://github.com/grafana/grafana/issues/79474), [@itsmylife](https://github.com/itsmylife)
- **Units:** Add scalable unit option. [#79411](https://github.com/grafana/grafana/issues/79411), [@Develer](https://github.com/Develer)
- **Alerting:** Add export mute timings feature to the UI. [#79395](https://github.com/grafana/grafana/issues/79395), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Config:** Can add static headers to email messages. [#79365](https://github.com/grafana/grafana/issues/79365), [@owensmallwood](https://github.com/owensmallwood)
- **Alerting:** Drop NamespaceID from responses on unstable ngalert API endpoints in favor of NamespaceUID. [#79359](https://github.com/grafana/grafana/issues/79359), [@alexweav](https://github.com/alexweav)
- **Cloudwatch:** Update cloudwatchNewRegionsHandler to General Availability. [#79348](https://github.com/grafana/grafana/issues/79348), [@sarahzinger](https://github.com/sarahzinger)
- **Plugins:** Include Azure settings as a part of Grafana config sent in plugin requests. [#79342](https://github.com/grafana/grafana/issues/79342), [@aangelisc](https://github.com/aangelisc)
- **Plugins:** Add option to disable TLS in the socks proxy. [#79246](https://github.com/grafana/grafana/issues/79246), [@PoorlyDefinedBehaviour](https://github.com/PoorlyDefinedBehaviour)
- **Frontend:** Reload the browser when backend configuration/assets change. [#79057](https://github.com/grafana/grafana/issues/79057), [@torkelo](https://github.com/torkelo)
- **PublicDashboards:** Add setting to disable the feature. [#78894](https://github.com/grafana/grafana/issues/78894), [@AgnesToulet](https://github.com/AgnesToulet)
- **Variables:** Interpolate variables used in custom variable definition. [#78800](https://github.com/grafana/grafana/issues/78800), [@torkelo](https://github.com/torkelo)
- **Table:** Highlight row on shared crosshair. [#78392](https://github.com/grafana/grafana/issues/78392), [@mdvictor](https://github.com/mdvictor)
- **Pyroscope:** Send start/end with profile types query. [#77523](https://github.com/grafana/grafana/issues/77523), [@bryanhuhta](https://github.com/bryanhuhta)
- **Explore:** Create menu for short link button. [#77336](https://github.com/grafana/grafana/issues/77336), [@gelicia](https://github.com/gelicia)
- **Alerting:** Don't record annotations for mapped NoData transitions, when NoData is mapped to OK. [#77164](https://github.com/grafana/grafana/issues/77164), [@alexweav](https://github.com/alexweav)
- **Canvas:** Add Pan and Zoom. [#76705](https://github.com/grafana/grafana/issues/76705), [@drew08t](https://github.com/drew08t)
- **Alerting:** In migration, create one label per channel. [#76527](https://github.com/grafana/grafana/issues/76527), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Separate overlapping legacy and UA alerting routes. [#76517](https://github.com/grafana/grafana/issues/76517), [@JacobsonMT](https://github.com/JacobsonMT)
- **Tooltip:** Improved Timeseries and Candlestick tooltips. [#75841](https://github.com/grafana/grafana/issues/75841), [@adela-almasan](https://github.com/adela-almasan)
- **Alerting:** Support hysteresis command expression. [#75189](https://github.com/grafana/grafana/issues/75189), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Plugins:** Add update for instance plugins. (Enterprise)
- **React Hook Form:** Update to v 7.49.2. (Enterprise)
- **Transformations:** Fix bug where having NaN in the input to regression analysis transformation causes all predictions to be NaN. [#80079](https://github.com/grafana/grafana/issues/80079), [@oscarkilhed](https://github.com/oscarkilhed)
- **Alerting:** Fix URL timestamp conversion in historian API in annotation mode. [#80026](https://github.com/grafana/grafana/issues/80026), [@alexweav](https://github.com/alexweav)
- **Fix:** Switch component not being styled as disabled when is checked. [#80012](https://github.com/grafana/grafana/issues/80012), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix reusing last url in tab when reopening a new tab in rule detail a…. [#79801](https://github.com/grafana/grafana/issues/79801), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Elasticsearch:** Fix modify query with backslashes. [#79430](https://github.com/grafana/grafana/issues/79430), [@svennergr](https://github.com/svennergr)
- **Cloudwatch:** Fix errors while loading queries/datasource on Safari. [#79417](https://github.com/grafana/grafana/issues/79417), [@kevinwcyu](https://github.com/kevinwcyu)
- **Stat:** Fix inconsistent center padding. [#79389](https://github.com/grafana/grafana/issues/79389), [@torkelo](https://github.com/torkelo)
- **Tempo:** Fix autocompletion with strings. [#79370](https://github.com/grafana/grafana/issues/79370), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Alerting:** Fix for data source filter on cloud rules. [#79327](https://github.com/grafana/grafana/issues/79327), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix UI inheriting mute timings from parent when calculating the polic…. [#79295](https://github.com/grafana/grafana/issues/79295), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Auth:** Fix a panic during logout when OAuth provider is not set. [#79271](https://github.com/grafana/grafana/issues/79271), [@dmihai](https://github.com/dmihai)
- **Templating:** Json interpolation of single-value default selection does not create valid json. [#79137](https://github.com/grafana/grafana/issues/79137), [@kaydelaney](https://github.com/kaydelaney)
- **Dashboards:** Run shared queries even when source panel is in collapsed row. [#77792](https://github.com/grafana/grafana/issues/77792), [@kaydelaney](https://github.com/kaydelaney)
- **PDF:** Fix support for large panels. (Enterprise)
- **Reporting:** Fix daylight saving time support for custom schedules. (Enterprise)
- **RBAC:** Fix role assignment removal . (Enterprise)
### Breaking changes
Users who have InfluxDB datasource configured with SQL querying language must update their database information. They have to enter their `bucket name` into the database field. Issue [#79579](https://github.com/grafana/grafana/issues/79579)
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)
### Features and enhancements
- **Chore:** Upgrade Go to 1.21.5. [#79560](https://github.com/grafana/grafana/issues/79560), [@tolzhabayev](https://github.com/tolzhabayev)
### Bug fixes
- **Field:** Fix perf regression in getUniqueFieldName(). [#81417](https://github.com/grafana/grafana/issues/81417), [@leeoniya](https://github.com/leeoniya)
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80485](https://github.com/grafana/grafana/issues/80485), [@alexweav](https://github.com/alexweav)
- **Alerting:** Fix NoData & Error alerts not resolving when rule is reset. [#80241](https://github.com/grafana/grafana/issues/80241), [@JacobsonMT](https://github.com/JacobsonMT)
- **Auth:** Fix a panic during logout when OAuth provider is not set. [#80221](https://github.com/grafana/grafana/issues/80221), [@dmihai](https://github.com/dmihai)
- **Gauges:** Fixing broken auto sizing. [#79940](https://github.com/grafana/grafana/issues/79940), [@torkelo](https://github.com/torkelo)
- **Templating:** Json interpolation of single-value default selection does not create valid json. [#79503](https://github.com/grafana/grafana/issues/79503), [@kaydelaney](https://github.com/kaydelaney)
- **Tempo:** Fix cache in TraceQL editor. [#79471](https://github.com/grafana/grafana/issues/79471), [@adrapereira](https://github.com/adrapereira)
- **Alerting:** Fix for data source filter on cloud rules. (#79327). [#79350](https://github.com/grafana/grafana/issues/79350), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
<!-- 10.2.4 END -->
<!-- 10.2.3 START -->
# 10.2.3 (2023-12-18)
@@ -100,7 +500,7 @@
- **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)
@@ -208,7 +608,7 @@
- **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)
- **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)
@@ -581,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)
- **Snapshots:** Use appUrl on snapshot list page. [#74944](https://github.com/grafana/grafana/issues/74944), [@evictorero](https://github.com/evictorero)
@@ -651,6 +1051,24 @@ 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)
### Bug fixes
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80678](https://github.com/grafana/grafana/issues/80678), [@alexweav](https://github.com/alexweav)
<!-- 10.1.7 END -->
<!-- 10.1.6 START -->
# 10.1.6 (2023-12-18)
@@ -669,7 +1087,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **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)
- **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)
@@ -777,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)
- **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)
@@ -870,7 +1288,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **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)
@@ -1152,6 +1570,24 @@ 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)
### Bug fixes
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80681](https://github.com/grafana/grafana/issues/80681), [@alexweav](https://github.com/alexweav)
<!-- 10.0.11 END -->
<!-- 10.0.10 START -->
# 10.0.10 (2023-12-18)
@@ -1684,6 +2120,29 @@ 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)
### Bug fixes
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80682](https://github.com/grafana/grafana/issues/80682), [@alexweav](https://github.com/alexweav)
<!-- 9.5.16 END -->
<!-- 9.5.15 START -->
# 9.5.15 (2023-12-18)
@@ -1706,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)
@@ -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.
@@ -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.
# Upper limit of data sources that Grafana will return. This limit is a temporary configuration and it will be deprecated when pagination will be introduced on the list data sources API.
datasource_limit=5000
# Number of queries to be executed concurrently. Only for the datasource supports concurrency.
# For now only Loki and InfluxDB (with influxql) are supporting concurrency behind the feature flags.
# Check datasource documentations for enabling concurrency.
concurrent_query_count=10
################################### SQL Data Sources #####################
[sql_datasources]
@@ -464,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
@@ -491,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.
# 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.
# 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
@@ -1169,6 +1228,14 @@ min_interval = 10s
# (concurrent queries per rule disabled).
max_state_save_concurrency=1
# If the feature flag 'alertingSaveStatePeriodic' is enabled, this is the interval that is used to persist the alerting instances to the database.
# 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.
state_periodic_save_interval=5m
# Disables the smoothing of alert evaluations across their evaluation window.
# Rules will evaluate in sync.
disable_jitter=false
[unified_alerting.screenshots]
# Enable screenshots in notifications. You must have either installed the Grafana image rendering
# plugin, or set up Grafana to use a remote rendering service.
@@ -1242,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.
# 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.
# 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.
@@ -253,7 +252,7 @@
# for new versions of grafana. The check is used
# in some UI views to notify that a grafana update exists.
# This option does not cause any auto updates, nor send any information
# only a GET request to https://raw.githubusercontent.com/grafana/grafana/main/latest.json to get the latest version.
# only a GET request to https://grafana.com/api/grafana/versions/stable to get the latest version.
;check_for_updates = true
# Set to false to disable all checks to https://grafana.com
@@ -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.
#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.```
@@ -1096,20 +1125,33 @@
# 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
# This is an experimental option to add parallelization to saving alert states in the database.
# It configures the maximum number of concurrent queries per rule evaluated. The default value is 1
# (concurrent queries per rule disabled).
;max_state_save_concurrency = 1
# If the feature flag 'alertingSaveStatePeriodic' is enabled, this is the interval that is used to persist the alerting instances to the database.
# 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.
;state_periodic_save_interval = 5m
# Disables the smoothing of alert evaluations across their evaluation window.
# Rules will evaluate in sync.
;disable_jitter = false
[unified_alerting.reserved_labels]
# Comma-separated list of reserved labels added by the Grafana Alerting engine that should be disabled.
# For example: `disabled_labels=grafana_folder`
@@ -1160,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.
@@ -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.
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.
@@ -29,13 +29,40 @@ We value clean and readable code, that is loosely coupled and covered by unit te
Tests must use the standard library, `testing`. For assertions, prefer using [testify](https://github.com/stretchr/testify).
### Test Suite and Database Tests
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.
Each package SHOULD include a [TestMain](https://pkg.go.dev/testing#hdr-Main) function that calls `testsuite.Run(m)`:
```go
packagemypkg
import(
"testing"
"github.com/grafana/grafana/pkg/tests/testsuite"
)
funcTestMain(m*testing.M){
testsuite.Run(m)
}
```
You only need to define `TestMain` in one `_test.go` file within each package.
> Warning
> For tests that use the database, you MUST define `TestMain` so that the test databases can be cleaned up properly.
### Integration Tests
We run unit and integration tests separately, to help keep our CI pipeline running smoothly and provide a better developer experience.
To properly mark a test as being an integration test, you must format your test function definition as follows, with the function name starting with `TestIntegration` and the check for `testing.Short()`:
@@ -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:
| [Support for Mysql 5.7](https://github.com/grafana/grafana/issues/68446) | 2023-05-15 | October 2023 | | MySQL 5.7 is being deprecated in October 2023 and Grafana's policy is to test against the officially supported version. | Planned |
| Name | Announcement Date | Disabling date | Removal Date | Description | Status |
| [Support for Mysql 5.7](https://github.com/grafana/grafana/issues/68446) | 2023-05-15 | October 2023 | | MySQL 5.7 is being deprecated in October 2023 and Grafana's policy is to test against the officially supported version. | Planned |
@@ -8,8 +8,8 @@ Make sure you have the following dependencies installed before setting up your d
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org)
-[Yarn](https://yarnpkg.com)
- [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
@@ -19,7 +19,7 @@ We recommend using [Homebrew](https://brew.sh/) for installing any missing depen
brew install git
brew install go
brew install node@20
npm install -g yarn
corepack enable
```
### Windows
@@ -37,14 +37,6 @@ For alternative ways of cloning the Grafana repository, please refer to [GitHub'
**Warning:** Do not use `go get` to download Grafana. Recent versions of Go have added behavior which isn't compatible with the way the Grafana repository is structured.
### Configure Editors
For some IDEs, additional configuration may be needed for Typescript to work with [Yarn plug'n'play](https://yarnpkg.com/features/pnp).
For [VSCode](https://yarnpkg.com/getting-started/editor-sdks#vscode) and [Vim](https://yarnpkg.com/getting-started/editor-sdks#vim),
it's as easy as running `yarn dlx @yarnpkg/sdks vscode` or `yarn dlx @yarnpkg/sdks vim`, respectively.
More information can be found [here](https://yarnpkg.com/getting-started/editor-sdks).
### Configure precommit hooks
We use pre-commit hooks (via [lefthook](https://github.com/evilmartians/lefthook)) to lint, fix, and format code as you commit your changes. Previously the Grafana repository automatically installed these hook when you did `yarn install`, but they are now opt in for all contributors
@@ -84,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.
@@ -159,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/...
@@ -179,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
@@ -205,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.
@@ -259,6 +282,12 @@ The resulting image will be tagged as grafana/grafana:dev.
Are you having issues with setting up your environment? Here are some tips that might help.
### IDE configuration
Configure your IDE to use the Typescript version from the Grafana repository. The version should match the Typescript version in the package.json file, and is typically at the path `node_modules/.bin/tsc`.
Previously Grafana used Yarn PnP to install frontend dependencies, which required additional special IDE configuration. This is no longer the case. If you have custom paths in your IDE for ESLint, Prettier, or Typescript, you can now remove them and use the defaults from node_modules.
### Too many open files when running `make run`
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a Unix like OS (e.g. Linux/macOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
@@ -302,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.
@@ -14,4 +14,4 @@ The Drone pipelines are built with [Starlark](https://github.com/bazelbuild/star
- Open a PR where you can do test runs for your changes. If you need to experiment with secrets, create a PR in the [grafana-ci-sandbox repo](https://github.com/grafana/grafana-ci-sandbox), before opening a PR in the main repo.
- Run `make drone` after making changes to the Starlark files. This builds the `.drone.yml` file.
For further questions, reach out to the grafana-delivery squad.
For further questions, reach out to the grafana-release-guild squad.
@@ -9,7 +9,8 @@ Grafana uses the [i18next](https://www.i18next.com/) framework for managing tran
- Use `<Trans i18nKey="search-results.panel-link">Go to {{ pageTitle }}</Trans>` in code to add a translatable phrase
- Translations are stored in JSON files in `public/locales/{locale}/grafana.json`
- If a particular phrase is not available in the a language then it will fall back to English
- To update phrases in English, edit the default phrase in both the component's source and the [English grafana.json message catalogue](../public/locales/en-US/grafana.json), then run `yarn i18n:extract`.
- To update phrases in English, edit the default phrase in the component's source and then run `yarn i18n:extract`.
- The single source of truth for en-US (fallback language) is in grafana/grafana, the single source of truth for any translated language is Crowdin
- To update phrases in any translated language, edit the phrase in Crowdin. Do not edit the `{locale}/grafana.json`
2. Upon reload, the default English phrase will appear on the page.
3. Before submitting your PR, run the `yarn i18n:extract` command to extract the messages you added into the `grafana.json` file and make them available for translation.
3. Before submitting your PR, run the `yarn i18n:extract` command to extract the messages you added into the `public/locales/en-US/grafana.json` file and make them available for translation.
**Note:** All other languages will receive their translations when they are ready to be downloaded from Crowdin.
### Plain JS usage
@@ -64,20 +66,20 @@ While the `t` function can technically be used outside of React functions (e.g,
## How to add a new language
1. Add new locale in Crowdin and sync files to repo
1. Add new locale in Crowdin and download files to repo
1. Grafana OSS Crowdin project -> "dot dot dot" menu in top right -> Target languages
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.
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.