* Elasticsearch: Fix legend for alerting, expressions and previously frontend queries (#84485)
* Elasticsearch: Fix legend for alerting, expressions and previously frontend queries
* Add comment
* Update comment
(cherry picked from commit 494d169980)
* Pass correct param to NewClient (this is not needed on main)
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
Visualizations-TablePanel: added YouTube link to Table Panel (#84533)
* Update index.md added YouTube link to Table Panel
* Moved video and added placement note
* Update index.md adding video description
Added a description to the video. Feel free to edit if my syntax or writing needs improvement.
* Wording and style edits
* Wording fix
---------
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit e011c60a75)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
docs: initial updates to state timeline documentation (#84224)
* docs: initial updates to state timeline documentation
* docs: apply linting
* Apply suggestions from code review
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* docs: add feedback from PR review
* docs: apply linting
* Wording and formatting edits
* Fixed grammar
* Update docs/sources/panels-visualizations/visualizations/state-timeline/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* docs: add two examples for state timeline to show null values and two timestamps
* docs: add steps to configuring a state timeline
* docs: add state timeline video
* docs: add link to creating dashboards
* Changed link text and added version interpolation syntax
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 2f539060f8)
Co-authored-by: Marie Cruz <mdcruz@users.noreply.github.com>
Alerting/Annotations: Prevent panics from composite store jobs from crashing Grafana (#83459)
* Don't directly use pointer to json
* Don't crash entire process if a store job panics
* Add debug logs when failing to parse/handle Loki entries
(cherry picked from commit af528d2f66)
Co-authored-by: William Wernert <william.wernert@grafana.com>
Service accounts: Same Org fix migration to account for duplicate entries (#84349)
* bug: fix migration to account for duplicate entries
* refactoring to create test folder for user migrations
* fix migration log
* added the migration
* additional tests
* added extSrv tests
(cherry picked from commit 6c8895e349)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
InfluxDB: Fix interpolation of multi value template variables by adding parenthesis around them (#83577)
Put parenthesis around multi value template variable
(cherry picked from commit 757fa06b85)
* ExtSvcAccounts: FIX prevent service account deletion (#84502)
* ExtSvcAccounts: Fix External Service Accounts Login check
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Remove service accounts assignments and permissions on delete
* Fix first set of tests
* Fix second batch of tests
* Fix third batch of tests
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
(cherry picked from commit 2795f9827a)
* ExtSvcAccounts: FIX tests that accidently depended on enterprise (#84535)
* ExtSvcAccounts: FIX tests that accidently depended on enterprise
* fix
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Charandas <charandas@users.noreply.github.com>
InfluxDB: Fix escaping template variable when it was used in parentheses (#83400)
escape properly regardless of the parentheses
(cherry picked from commit 6fab62739d)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
InfluxDB: Fix sql query generation by adding quotes around the identifiers (#83765)
* Quote the identifiers
* wrap where filter with quotes
* fix query generation
(cherry picked from commit dc4c539d46)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Chore: Adding log also for cases where datasource UID length is invalid (#84443)
* Adding log also for datasource length
(cherry picked from commit 8e90e02db2)
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Chore: Bump update checker interval to 1 day (#84404)
* Bump interval to 1hr
* 2 hours is better than 1
* Bump further to 1 day
(cherry picked from commit 391d14d091)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Alerting: Add "Keep Last State" backend functionality (#83940)
* Implement keep last state for state transitions
* Respect For duration when keeping state
* Only keep transition from recording an annotation
* Add keep last state option for nodata/error in UI
(cherry picked from commit 10dc6c6d75)
Co-authored-by: William Wernert <william.wernert@grafana.com>
Loki: Fix null pointer exception in case request returned an error (#84398)
Loki: Fix nullpointer in case query returned an error
(cherry picked from commit 34f9bff9e0)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Auth: Only call rotate token if we have a session expiry cookie (#84169)
Only call rotate token if we have a session expiry cookie
(cherry picked from commit 4272483c54)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
SSO: fix mergeSettings() in case the DB contains empty URLs (#84290)
* fix mergeSettings() in case the db contains empty strings
* use correct github urls in test
* overwrite only urls
* update comment for mergeSettings()
(cherry picked from commit 2acd48d1c2)
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
Users: Add back check for undefined / null for value for `lastSeenAtAge` in table view (#84265)
bug: add check for undefined / null for value
(cherry picked from commit 0cb9f2bb8d)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
OrgUsers: Refactor change `LastSeenAtAge` from '10 years' to 'Never' (#84247)
* refactor: change lastseenatage to Never
* removed unncessecary fragments
(cherry picked from commit fbfaf8e003)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Embed two visualization videos from the Grafana for Beginners series (#83928)
* Embed two visualization videos from Grafana for Beginners series
* Implementing Isabel's recommendation on second video placement.
* edited introductory sentence to the second video.
* Added line between text and video
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit a15e48052f)
Co-authored-by: Lisa <60980933+LisaHJung@users.noreply.github.com>
disable_sanitize_html update (#83643)
* disable_sanitize_html update
Added a note that states this configuration is not available for Grafana Cloud instances.
* Update docs/sources/setup-grafana/configure-grafana/_index.md
* Update docs/sources/setup-grafana/configure-grafana/_index.md
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 2142efc1a5)
Co-authored-by: Dai Nguyen <88277570+ej25a@users.noreply.github.com>
"Release: Updated versions in package to 10.4.1"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Docs/datasources usman (#83712)
* changed tags from oss to enterprise and cloud
* added Dashboard Panel example
* swapped the all-grafana-umbrella information to the correct page
* added minor visibility improvements in steps
* made some minor adjustments
* added minor improvements
* fixed a link
* updates links
* Apply suggestions from code review
thanks for the improved suggestions. looks more better
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* fixed links
* fixed Grafana Enterprise link
* run prettier
* fixed add a data source links
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 544bff2539)
Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
Serviceaccounts: Add ability to add samename SA for different orgs (#83893)
* add ability to add samename SA for different orgs
* Update pkg/services/user/userimpl/user.go
* fix tests
* refactor name
* removed tests
* add migration
* fix linting
(cherry picked from commit e611a736ed)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Docs: What’s new & Upgrade guide 10.4 (#83133)
* Updated index pages and added v10.4 breaking changes, upgrade guide, and what's new pages
* Added what's new entries
* Removed empty headings
* Fixed link
* Removed duplicate entry and fixed styling
* Removed breaking changes page and references to it
* Added intro text
* Docs: 10.4 technical note for alertingUpgradeDryrunOnStart (#83262)
* Docs: 10.4 technical note for alertingUpgradeDryrunOnStart
* Apply suggestions from code review
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Address PR comments
* restarts -> starts
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Fixed spelling
* Added new entries to What's new
* reorder and add intro
* Added PagerDuty data source entry
* Added entries
* Added new entries
* Fixed formatting
* Fixed page weight and links
* Apply suggestion from review
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
* remove team lbac, move return to previous (#83921)
- Remove Team LBAC for Loki (it is Cloud only)
- Move Return to Previous into the Alerting section, since it only works for Alerting now
- Add a note that data sources are separate from Grafana but included for visibility
* Replaced manual note with admonition shortcode
* move Return to Previous out of Alerting section
* Added youtube links
* Commented out youtube videos and removed duplicate video embed
---------
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
(cherry picked from commit db13c0839f)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* [DOC] Add profile-traces intro material; update Pyroscope data source info (#83739)
* Add profile-traces intro material; update Pyroscope data source info
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Updates and file rename from review
* Add PYROSCOPE_VERSION
* Apply suggestions from code review
* Format tables
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Apply suggestions from code review
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
(cherry picked from commit 57935250fd)
* Chagnes from prettier
Dashboards: Auto-generate get stuck and quick feedback actions doesn't respond (#83879)
* Update the component only when the response is fully generated
* Fix quick feedback action doesn't respond
* Fix history not displaying after the second click
* Fix the history that moves when regenerating
---------
Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
(cherry picked from commit 112c0e7a79)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Chore: Query oauth info from a new instance (#83229)
* query OAuth info from a new instance
* add `hd` validation flag
* add `disable_hd_validation` to settings map
* update documentation
---------
Co-authored-by: Jo <joao.guerreiro@grafana.com>
(cherry picked from commit b02ae375ba)
Fix: Cache busting of plugins module.js file (#83763)
fix(plugins): make sure extractPath regex matches with and without leading slash
(cherry picked from commit c59ebfc60f)
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
LDAP: Fix LDAP users authenticated via auth proxy not being able to use LDAP active sync (#83715)
* fix LDAP users authenticated via auth proxy not being able to use ldap sync
* simplify id resolution at the cost of no fallthrough
* remove unused services
* remove unused cache key
(cherry picked from commit 2182cc47ac)
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Docs: restructure Configure panel options (#83438)
* Moved view json panel content from configure panel options to panel inspect view
* Converted add title and description task to reference section
* Removed edit panel section
* Updated bullet list to match content
* Removed view json content to be integrated later
* Ran prettier
* Docs: Edit Configure panel options (#83439)
* Updated intro
* Updated intro, descriptions, and repeating panels task
* Reformatted sections of task and updated wording of LLM info
* Copy edits
* Added Cloud links and updated version syntax
* Fixed link
* Fixed formatting and removed vestigial sentence
(cherry picked from commit 2c95782b10)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Tempo: Better fallbacks for metrics query (#83619)
* Use query as fallback when there's one series and no labels. Use "" as the fallback for empty label values. Stop using the `promLabels` value from the Tempo response
* Set refId to remove mentions of promLabels
* Add quotes around the string value, add space after comma separator
* Use name as refId when possible
(cherry picked from commit 036e19037e)
Co-authored-by: Andre Pereira <adrapereira@gmail.com>
Elasticsearch: Fix adhoc filters not applied in frontend mode (#83592)
(cherry picked from commit 411c89012f)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Annotations: Improve query performance when using dashboard filter (#83112)
* Annotations: Improve query performance when using dashboard filter
* Add dashboard id filter
(cherry picked from commit e7a1ecca28)
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Plugins: Angular deprecation: Fix AngularDeprecationNotice not being rendered on first page load (#83221)
* Plugins: Angular deprecation: Wait for plugins to be inizialized before rendering AngularDeprecationNotice
* use then
* fix tests
* mockCleanUpDashboardAndVariables.mockReset();
* Handle plugin not found
* PR review feedback
* Add comment
* removed unnecessary return
* PR review feedback
* Use grafanaBootData
* Removed comments
* fix tests
* Use config for hideDeprecation as well
(cherry picked from commit e068804a9e)
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
Docs: restructure Configure field overrides (#81833)
* Removed view and delete overrides sections
* Added examples heading and moved examples down one heading level
* Added override rules section and removed rule definitions from task
* Added supported visualizations section and table and docs ref links
* Docs: edit Configure field overrides (#81834)
* Formatted note
* Added missing content and general edits
* Updated screenshots and examples and general edits
* Fix small formatting issues
* Fixed links
* Uploaded images to admin, updated image links, and removed local images
* Swapped figure shortcode for simple Markdown
(cherry picked from commit dfeb33fe55)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
AuthProxy: Invalidate previous cached item for user when changes are made to any header (#81445)
* fix: sign in using auth_proxy with role a -> b -> a would end up with role b
* Update pkg/services/authn/clients/proxy.go
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
* Update pkg/services/authn/clients/proxy.go
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
(cherry picked from commit 9282c7a7a4)
Co-authored-by: Klesh Wong <klesh@qq.com>
QueryVariableEditor: Select a variable ds does not work (#83144)
(cherry picked from commit 5460d75e74)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Docs: add information about filtering for annotations (#82957)
* Added information about filtering for annotations
* Update generate-transformations.ts
(cherry picked from commit f18b9ddac6)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Logs Panel: Add option extra UI functionality for log context (#83123)
* use ref rather than state
* add `getLogRowContextUi` to panel
(cherry picked from commit f2c0309d71)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* 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
This PR has two steps that together create a functional dry-run capability for the migration.
By enabling the feature flag alertingPreviewUpgrade when on legacy alerting it will:
a. Allow all Grafana Alerting background services except for the scheduler to start (multiorg alertmanager, state manager, routes, …).
b. Allow the UI to show Grafana Alerting pages alongside legacy ones (with appropriate in-app warnings that UA is not actually running).
c. Show a new “Alerting Upgrade” page and register associated /api/v1/upgrade endpoints that will allow the user to upgrade their organization live without restart and present a summary of the upgrade in a table.
* extract get and save operations to a alertmanagerConfigStore. this removes duplicated code in service (currently only mute timings) and improves testing
* replace generic errors with errutils one with better messages.
* update provisioning services to use new store
---------
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
There were a few errors that prevented these endpoints (which are the most up-to-date ones) from being present in the openapi spec:
- The `enterprise` tag excluded the endpoints from being generated
- `okRespoonse` typo
- Invalid templating on the parameters
- Missing parameter structs
Some refactoring that will simplify next changes for dry-run PRs. This should be no-op as far as the created ngalert resources and database state, though it does change some logs.
The key change here is to modify migrateOrg to return pairs of legacy struct + ngalert struct instead of actually persisting the alerts and alertmanager config. This will allow us to capture error information during dry-run migration.
It also moves most persistence-related operations such as title deduplication and folder creation to the right before we persist. This will simplify eventual partial migrations (individual alerts, dashboards, channels, ...).
Additionally it changes channel code to deal with PostableGrafanaReceiver instead of PostableApiReceiver (integration instead of contact point).
* Separate overlapping legacy and UA alerting routes
api/alert-notifiers, alerting/list, and alerting/notifications existed in both
legacy and UA.
Rename legacy route paths and nav ids to be independent of UA ones.
* Test using an app instead of token for this workflow
* Rename workflow for testing
* Add a test workflow
* Test 1
* Integrate report
* Checkout repository
* Try with github token instad of the app
* Use short slog instead of adding org
* Add failure to pipeline when breakikng
* Change exit code to report
* Improve message
* Restore files
* Temporarily lift restriction
* Put pack path restriction
* remove comment
Backend:
* Update the Grafana Alerting engine to provide feedback to HysteresisCommand. The feedback information is stored in state.Manager as a fingerprint of each state. The fingerprint is persisted to the database. Only fingerprints that belong to Pending and Alerting states are considered as "loaded" and provided back to the command.
- add ResultFingerprint to state.State. It's different from other fingerprints we store in the state because it is calculated from the result labels.
- add rule_fingerprint column to alert_instance
- update alerting evaluator to accept AlertingResultsReader via context, and update scheduler to provide it.
- add AlertingResultsFromRuleState that implements the new interface in eval package
- update getExprRequest to patch the hysteresis command.
* Only one "Recovery Threshold" query is allowed to be used in the alert rule and it must be the Condition.
Frontend:
* Add hysteresis option to Threshold in UI. It's called "Recovery Threshold"
* Add test for getUnloadEvaluatorTypeFromCondition
* Hide hysteresis in panel expressions
* Refactor isInvalid and add test for it
* Remove unnecesary React.memo
* Add tests for updateEvaluatorConditions
---------
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* use floating-ui instead of react-popper-tooltip in Tooltip
* remove useTheme2 usage
* remove escape handling logic in favour of useDismiss
* don't need this useEffect anymore
* convert Toggletip to use floating-ui
* use explicit version
* convert OperationInfoButton to use Toggletip
* convert nestedFolderPicker to use floating-ui
* convert Dropdown to use floating-ui and remove react-popper-tooltip
* fix Modal/Tooltip tests
* revert to old toggletip behaviour
* revert OperationInfoButton to not use Toggletip
* add mock for requestAnimationFrame
* remove requestAnimationFrame mock
* remove fakeTimers where they're not used
* use floating-ui in ButtonSelect
* Fix filters unit tests
* only attach description if label is different
* use 'fixed' strategy for Toggletip
* use stroke and strokeWidth
* set move: false to only show the tooltip if a hover event occurs
* update type for onClose
* chore: Bump google.golang.org/grpc from 1.59.0 to 1.60.1
* Bump google.golang.org/protobuf to v1.32.0
* Fix make protobuf failing with latest protoc and protoc-gen-go
* Re-generate protobuf files
* Re-generate protobuf files
* Bump grafana-plugin-sdk-go
* go mod tidy
* merge with system settings before storing them in the db
* add base for validating sso settings
* add unit tests for sso settings validation
* call Reload() from sso service upsert()
* remove actual validation because it was moved in a separate pr
* use constant to fix lint error
* check if provider is configurable in service Upsert() method
* add unit tests for update provider settings api method
* fix lint error
* Canvas: Add Zoom
* Scale selecto components based on zoom state
* Fix pan by reverting to 3.1.0 for zoom-pan
* Update to latest library that fixes pan regression
* Add mini map to canvas pan zoom
* Fix selecto and anchors on hover
* Update naming to be more clear
* Switch back to contentComponent
* Apply transformScale to drag and resize
* Update connection source and target scaling
* Add option to display mini map
* Update yarn lock
* Revert "Update yarn lock"
This reverts commit 3d1dd65d57.
* Set yarn lock to main
* Revert "Set yarn lock to main"
This reverts commit 64bc50557e.
* Update to Yarn 4
* Add react-zoom-pan-pinch
* Update react-zoom-pan checksum
* Revert changes to json files
* Remove last line of api merged
* Remove last lines of all impacted jsons
* Update home json
* Update coordinate calc function to include scale
* Fix types in coordinate calc function
* Fix util calculation for transform
* Fix arrow anchor shift behavior
* Fix scale offset when adding elements during zoom
* Fix drag of selected group during zoom
* Add feature flag for canvas pan zoom
* Revert "Add feature flag for canvas pan zoom"
This reverts commit b026e31d8d.
* Regenerate feature flag after merge
* Apply feature flag to enable pan zoom wrappers
* Add mini map toggle behind feature flag
* Simplify minimap behavior
* Update feature flag registry
* Set minimap to false by default
* fix gen-cue
* Set toggles gen to main
Add blank line to toggle gen csv
* Add canvas pan zoom to csv
* Remove old comment
* Change ref parameter to be more descriptive
* Rename visibleFun to be more descriptive
* Consolidate transformScale transformRef in util
* Remove non-null assertion on connection parentRect
* Consolidate parentRect null coalescing into object
* Remove minimap and change toggle
* Add controls inline help for pan and zoom
* Clean up mouse events
* Pull scale out of ref and isolate transform
* Remove transform ref from scene div
* Fix context menu visible behavior
* Fix connections and update util functions
* Move transform component instance to util
* fix backend test
* minor updates
* Clean up connections / fix minor bug where offset of arrow wasn't being calculated correctly
* missed connection code cleanup
* cleanup scene code a bit more
* actually fix backend test
* move eslint disable line closer to actual issue
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* playing around with csv parsing action
* switch to workflow dispatch
* working script
* add a check to not run on forks
* adding check comment
* no idea who should own, adding myself for now
* adding the cleanup script too
* wip
* WIP: Added some actions, timings and grouping
* WIP: remove reducer and use form fields instead
* Show defaults when using override in route settings
* Update alert rule model for simplified routing
* Use defaults in placeholders when overriding timings
* Add validation for contact point
* Add selected contact point details
* Refactor: extract components to separate files and reorg in subfolders
* Fix test
* Update revalidate mode in form
* Extract RuleEditorSectionBody outside NotificationStep component to avoid unmounting any time this one renders
* Remove reValidateMode option in form
* Fix after merging
* Address PR review comments part1
* Address PR review comments part2
* Create routeTimingsFields constant to reuse labels, descriptions and arial labels for the mute timing fields
* Move conditional rendering to the parent in AutomaticRooting and ManualAndAutomaticRouting
* Simplify AlertManagerManualRouting properties
* add alert with link to docs
* remove historical secondary text
* add tooltip to opening button to suggest selecting a metric
* fix merge conflict issue
* add llm check for tooltip with docs
* update starting message copy and alert copy
* Update public/app/plugins/datasource/prometheus/querybuilder/components/promQail/PromQail.tsx
Co-authored-by: Rob Whelan <github@jtheory.com>
* Update public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilder.tsx
Co-authored-by: Rob Whelan <github@jtheory.com>
* add check for vector for button, remove check in helpers
* clean a little, fix tests
* refactor out query assistant button
* fix styles
---------
Co-authored-by: Rob Whelan <github@jtheory.com>
* migrate from aria-label to data-testid for selectors
* fix e2e tests with shared components
* fix e2e tests with more shared components
* pass data-testid to SelectBase component
* pass data-testid to value container and traverse the dom to access the input in e2e
* Unified Storage: Add resource from/to entity tests
* fixup
* Remove GRN
* Update tests
* truncate timestamps to account for RFC3339, set Group and GroupVersion in k8s object
* Update tests
---------
Co-authored-by: Dan Cech <dcech@grafana.com>
* (WIP) Alerting: Use the forked Alertmanager for remote secondary mode
* fall back to using internal AM in case of error
* remove TODOs, clean up .ini file, add orgId as part of remote AM config struct
* log warnings and errors, fall back to remoteSecondary, fall back to internal AM only
* extract logic to decide remote Alertmanager mode to a separate function, switch on mode
* tests
* make linter happy
* remove func to decide remote Alertmanager mode
* refactor factory function and options
* add default case to switch statement
* remove ineffectual assignment
* pass `getLogRowContextQuery` to component
* reset `appliedContextFilters` in `getLogRowContextQuery`
* open show context in new tab
* open window before crafting url
* only open in new tab if getRowContextQuery is set
* only open `about:blank`
* change conditional
* Add definition of external service registration
* Add style and tables for permissions needed
* Add external service registration to local without counterpart
* Add feature toggle check
* Add feature flag check in the backend as well
* Add the disclaimer for permissions
---------
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
* Added all UI options
* Added intro text under legend options
* Restructured page
Added supported visualizations section
Added links to docs reference shortcode and updated cloud links
* Removed internal note and added missing image
* Updated images and alte text
* Added second version of an image and added note to self
* Copy edits
* Added to do notes
* Fixed spelling
* Changed bullet list to be capitalized and updated links references
* Removed reference to measurement type
* Uploaded images to media folder, updated image links, and removed local images
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Use levenshtein method to sort metric names
* Optionally hide empty panels in MetricSelectScene
* Transform ignore leven
* Refactor code to use $behaviours. Move preview cache to class variable instead of state
* Use lazy loading for metric scene
* Update scenes lib
* simplify behavior
* Remove hide empty toggle
* Bump scenes
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* In migration, create one label per channel
This PR changes how routing is done by the legacy alerting migration.
Previously, we created a single label on each alert rule that contained an array of contact point names. Ex: __contact__="slack legacy testing","slack legacy testing2"
This label was then routed against a series of regex-matching policies with continue=true. Ex: __contacts__ =~ .*"slack legacy testing".*
In the case of many contact points, this array could quickly become difficult to manage and difficult to grok at-a-glance.
This PR replaces the single __contact__ label with multiple __legacy_c_{contactname}__ labels and simple equality-matching policies. These channel-specific policies are nested in a single route under the top-level route which matches against __legacy_use_channels__ = true for ease of organization.
This should improve the experience for users wanting to keep the default migrated routing strategy but who also want to modify which contact points an alert sends to.
* Scenes bump
* Refactor query group components so that they are reusable
* Basic queries rendering and datasource change
* Store last used ds in local storage
* maxDataPoints and minInterval queries options
* Progress on query options
* Query options tests
* Allow panel inspection / queries inspection from panel edit
* Add counters to data pane tabs
* Betterer update
* Handle data source changes
* Minor fixes
* Data source change tests
* Handle scenario of data source change when transformations are in place
* Review comment
* Fix test
* Exclude mapped nodata transitions when nodata mapped to OK
* Fix processEvalResults test
* Don't check NoDataState when filtering transition
* Add comment to explain purpose of separate function
---------
Co-authored-by: William Wernert <william.wernert@grafana.com>
* Stat: Add Percent Change Option
* Ensure div style only applied for percent change
* Add metrics section to gdev
* Apply new style and fix nan truthy
* Handle no text case properly
* Only display percent change with value
* Improve styling
* Remove VizOrientation dep and improve styling
* Display percent change for text mode name
* Add check for undefined percentChange
* Don't show percent change option for all values
* Make metric alignment more robust
* Make percent change column case tighter
Check undefined directly to avoid truthy issues
* Simplify percentChange calculation
* Add documentation for show percent change
* Add tests for percent change
* Refactor big value and pull out percent change
* minor changes
* initial approach at addressing setting % change colors to be conventional (not super happy with handling of contrast)
* Clean up initial color change approach (no need to handle 0 case as is handled as NaN currently
* Update shadow styling and include icon
* Update docs/sources/panels-visualizations/visualizations/stat/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Stat: Add Percent Change Option (refactor and color exploration) (#79504)
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* some missed cleanup :D
* update percent change to show to not be tied to text value; update docs accordingly
* initial start for fixing scaling of % change for no text mode
* Fix styling for case where textmode is none
* Tweak styling a bit for icon and minimum padding
* Apply flex wrap to container styles
* Update gdev for stat panel tests
* attempt at fixing horizontal percent change styling / placement
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Nested Folders: Fix /api/folders pagination
We used to check access to the root folders after fetching them from the DB with pagination.
This fix splits logic for fetching folders in:
- fetching subfolders
- fetching root folders
and refactors the query for the latter so that is filters by folders with permissions
* Add tests
* Update benchmarks
* Drop from API response
* Drop from swagger docs
* Drop from integration tests
* regenerate public swagger docs
* Drop from frontend
* Drop asserts for namespaceID field
* replace SSOSettings with SSOSettingsDTO
* fix database tests
* fix oauth strategy
* fix sso settings service tests
* add secrets encryption on update
* rename SSOSettingsDTO to SSOSettings
* remove extraKeys from strategy
* change back settings type from createOAuthConnector to OAuthInfo
* do not parse multi-value fields in oauth strategy
* Move moving average and cumulative sum to private preview
* update docs
* move formatString to private preview
* rebuild docs
* undo changes that don't belong to this commit
* undo cumulative/window featureflag
* fix case
* Configure SkipOrgRoleSync from OAuthInfo
* Remove skipOrgRoleSync from socialbase and connectors
* Add test to socialimpl.ProvideService
* Deprecate AuthSettings' fields
* clean up misleading init of frontendsettings.Auth
* bumping grafanas go version to 1.21.5
* adding how to upgrade go doc
* removing the whole ci-build and corresponding pipelines
* clarifying that we have to run make drone
* fixing starlark linter and removing unused code
* Adding note about enterprise
* trying to change the underyling image to avoid musl issues
* only need to golang one
* Can add allowed custom headers to an email Message. WIP.
* adds slug as a custom email header to all outgoing emails
* Headers are static - declared as key/value pairs in config. All static headers get added to emails.
* updates comment
* adds tests for parsing smtp static headers
* updates test to assert static headers are included when building email
* updates test to use multiple static headers
* updates test names
* fixes linting issue with error
* ignore gocyclo for loading config
* updates email headers in tests to be formatted properly
* add static headers first
* updates tests to assert that regular headers like From cant be overwritten
* ensures only the header is in a valid format for smtp and not the value
* updates comment and error message wording
* adds to docs and ini sample files
* updates smtp.static_headers docs examples formatting
* removes lines commented with semi colons
* prettier:write
* renames var
* Plugins: add option to disable TLS in the socks proxy
* fix allow_insecure docs
* upgrade github.com/grafana/grafana-plugin-sdk-go from v0.196.0 to v0.197.0
* fix conflicts
* Chore: Bump k8s dependencies to v0.29.0
* update the openapi fork
* use post process spec
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Add Azure settings and update tests
* Filter by plugin ID
* Add forward settings config variable
* Update line
* Add tests
* Update so that data sources are fully defined in config
* Update SDK and test
* Fix lint
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
* Remove unnecessary if
---------
Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
* Alerting: Send configuration and state to the remote Alertmanager on shutdown
* Alerting: Add a sync interval for ApplyConfig in remote secondary mode
* add routine to sync states and configs
* pass a cancellable context to syncRoutine(), remove tests for ApplyConfig, cache last config in memory
* extract logic to update config and state in the remote Alertmanager
* get latest config from the database
* avoid using separate goroutine for updating state and config
* clean up PR
* refactor, comments, tests
* update tests
* remove canceled context from calls to StopAndWait()
* create context with timeout and send config and state to remote Alertmanager
* update tests
* address code review comments
Swagger(ngalert): Add `X-Disable-Provenance` to missing operations
I added all functions that call the `determineProvenance` function
Schema changes are from:
`make` in `pkg/services/ngalert/api/tooling`
`make swagger-clean && make openapi3-gen` in root
* Docs: Update list of open source projects
Update to change Phlare to Pyroscope, add Faro, Beyla, Agent, k6, OnCall
* Ran prettier
---------
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* Alerting: Add a sync interval for ApplyConfig in remote secondary mode
* add routine to sync states and configs
* pass a cancellable context to syncRoutine(), remove tests for ApplyConfig, cache last config in memory
* extract logic to update config and state in the remote Alertmanager
* get latest config from the database
* avoid using separate goroutine for updating state and config
* clean up PR
* refactor, comments, tests
* update tests
* add config struct for remote secondary forked Alertmanager
* use errgroups for sync operations
* use waitgroup instead of errgroup
* remove helper method to sync AMs
* check for errors instead of bool syncErr
* Chore: Remove FolderID from Dashboard Import
* chore: regen specs
* Remove OrgID from DashboardImportRequest and DashboardImportResponse
* Remove OrdIDs from swagger and tests
---------
Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
* refactor out DataSourcesListCard
* add skeleton
* increase gap between buttons on skeleton to match real component
* lineHeight: 1 instead of 0
* refactor out ternary
* bidirectional shared crosshair table WIP
* add shared crosshair to table panel
* lower around point threshold
* add feature toggle
* add index based verification
* add adaptive threshold
* switch to debounceTime
* lower debounce to 100
* raise debounce back to 200
* revert azure dashboard
* re-render only rows list on data hover event
* further break down table component
* refactor
* raise debounce time
* fix build
* Add export for all muteTimings and a single muteTiming
* Add test
* Fix snapshot
* Fix test
* Add mute timing name in file name when exporting single mute timing
* Add Loki historian store stub
* Add composite store
* Use composite store if Loki historian enabled
* Split store interface into read/write
* Make composite + historian stores read only
* Use variadic constructor for composite
* Modify Loki store enable logic
* Use dskit.concurrency.ForEachJob for parallelism
* Added missing alt text
* Rebuilt markdown file
q
wq
* baldm0mma/081223-missing-alt-text-2/ add alt image content to images and build markdown
* baldmomma/081223-missing-alt-text-2/update alt text and build
* baldm0mma/081223-missing-alt-text-2/ make altText required
---------
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
* WIP first pass
* Change to toolbarbutton/buttonselect pattern
* Move to two toolbarbuttons with dropdown
* Justify text to the right of icons
* Fix betterer
* Fix styling and tests
* Add to docs
* Perist last clicked, add translations
* move styling to core component
* use label for tooltip, let parser combine panes in multiple params
* Explore: Panes encoding suggestions (#78210)
panes encoding suggestions
* WIP-add menu groups
* Get group actions working
* add icons and non-local last selected state
* Fix translations after merge
* Add categories to translation, tweak the verbiage
* Fix translation extraction
* Fix tests
* fix translation conflict
* Log if time is absolute
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Alerting: Refactor readiness check
Moves the readiness check to the mimir client and removes the need to assert that we have senders - it already has a queue and can hold notifications until we're ready to send them.
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* Special alerts for NoData and Error
To avoid confusion why there is no additional label added when setting `Alerting` or `OK` in the No Data and Error handling
* ran prettier
---------
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
* `accesscontrol` swagger: Add `global` field to `RoleDTO` type
The field is currently added in the MarshalJSON function so it isn't reflected in the spec
This PR sets the "static" version of the RoleDTO, that has the global field, as the swagger model
* Revert the marshalling logic
* apply styles globally to skeleton
* use abstraction everywhere
* just use withSkeleton
* add comment
* update docs
* use it in News as well
* rename withSkeleton to attachSkeleton
* move to @grafana/ui/src/unstable
* rename skeletonProps to rootProps
* Anonymous: Add device limiter
* break auth if limit reached
* fix typo
* refactored const to make it clearer with expiration
* anon device limit for config
---------
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
* Fix heatmap null options migration
Some dashboard generation libraries, such as grafanalib, may produce
heatmaps with a null 'options' attribute. This condition triggers a
panic during migration, resulting in a blank heatmap panel.
This commit addresses the issue by returning default options if a panel has
a null 'options'.
Signed-off-by: Neil Shen <overvenus@gmail.com>
* Nullish coalescing panel.options
Signed-off-by: Neil Shen <overvenus@gmail.com>
---------
Signed-off-by: Neil Shen <overvenus@gmail.com>
* add GetCommandsFromPipeline
* refactor method GetCommandType to func GetExpressionCommandType
* add function to create fingerprint frames
* add function to determine whether raw query represents a hysteresis command and a function to patch it with loaded metrics
* remove GRN and switch tenant to namespace
* clean up remaining references
* simplify and remove inconsistency in With* parameters
* parse listing keys so we can use db index
* bump the schema version
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Update basicsettings for datasource
* Change aria-label for data-testid
* Update more tests
* Update betterer
* Remove unnecessary data-testid
* Put back aria label for some datasource selectors
* Try to use data-testid with alerts
* Update betterer
* initial start
* more progress
* behaviour working?
* only use media query when docked local storage state is true
* close menu when undocking
* remove unneeded animation code and fix focus when toggling between docked/undocked
* better feature toggle handling (can go back and forth)
* remove restoreFocus (for now)
* PromQail: update prompt and model
- Split up system and user prompt
- Use latest gpt-3.5-turbo-1106 model
- Add metric type to user prompt
- Simpler formatting for templates
* PromQail: fix fetching all available labels
Previously we were rendering the user selected templates. The prompt is expecting all available label keys for a given metric.
* use fetchSeriesLabels instead
* user prompt: fix trailing newline
* Refactor to prevent cyclic dependencies
* Move list authorization to the API layer
* Init connectors using the SSO settings service in case the ssoSettingsApi feature toggle is enabled
* wip, need to handle the cyclic dep
* Remove cyclic dependency
* Align tests + refactor
* Move back OAuthInfo to social
* Delete pkg/login/social/constants
* Move reloadable registration to the social providers
* Rename connectors.Error to connectors.SocialError
* Send sanitized selectors to the Pyroscope backend for LabelNames and LabelValues
* Clean LabelNames response to remove already used labels
* Improve performance after major changes
* Fix import order
* Further improve rendering performance
* Fix frontend tests
* Fix fake pyroscope client signature
* Bump pyroscope/api dependency to include start/end in LabelNames/LabelValues
* Fix issue with old queries running when using the run button
* Add generated file
* Make code more readable, add a few comments
* Format with prettier
* Fix error when assigning data
* Revert "Add generated file"
This reverts commit c4f33727b8.
* Remove leftover code
* Simplify query editor internal state objects
* Move label selector validation up, improve label filtering
* Simplify query editor state, switch to debounce to reduce rerenders
* Revert cosmetic change
* Improve groups claim setup docs
* Improve the GroupMember.Read.All perm docs
* Apply suggestions from code review
* Update docs/sources/setup-grafana/configure-security/configure-authentication/azuread/index.md
* Update docs/sources/setup-grafana/configure-security/configure-authentication/azuread/index.md
* Update the groups and app roles documentation
* Update
* Split long list to separate sections
* fix anchor
* Apply suggestions from code review
* Address other comments, fix anchors
* Address other comments, lint
* Apply suggestions from code review
* Changes
* final adjustments
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* Chore: Remove FolderID from DTO Folder
* chore: add OrgID field to an instance of SaveDashboardCommand
* chore: add another OrgID to pair with the FolderUID:
* chore: add OrgId to Folder struct and expectedParentOrgIDs to testCase struct, unsure if last part is necessary
* Fix folder test, add expected orgID
* chore: regen specs
---------
Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
* fix: stop displaying error alerts when plugins cannot be loaded
* fix: only hide the error if it is a 403 error
* fix: revert unnecessary object spreading
* Alerting: Attempt to retry retryable errors
Retrying has been broken for a good while now (at least since version 9.4) - this change attempts to re-introduce them in their simplest and safest form possible.
I first introduced #79095 to make sure we don't disrupt or put additional load on our customer's data sources with this change in a patch release. Paired with this change, retries can now work as expected.
There's two small differences between how retries work now and how they used to work in legacy alerting.
Retries only occur for valid alert definitions - if we suspect that that error comes from a malformed alert definition we skip retrying.
We have added a constant backoff of 1s in between retries.
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* first round of entityapi updates
- quote column names and clean up insert/update queries
- replace grn with guid
- streamline table structure
fixes
streamline entity history
move EntitySummary into proto
remove EntitySummary
add guid to json
fix tests
change DB_Uuid to DB_NVarchar
fix folder test
convert interface to any
more cleanup
start entity store under grafana-apiserver dskit target
CRUD working, kind of
rough cut of wiring entity api to kube-apiserver
fake grafana user in context
add key to entity
list working
revert unnecessary changes
move entity storage files to their own package, clean up
use accessor to read/write grafana annotations
implement separate Create and Update functions
* go mod tidy
* switch from Kind to resource
* basic grpc storage server
* basic support for grpc entity store
* don't connect to database unless it's needed, pass user identity over grpc
* support getting user from k8s context, fix some mysql issues
* assign owner to snowflake dependency
* switch from ulid to uuid for guids
* cleanup, rename Search to List
* remove entityListResult
* EntityAPI: remove extra user abstraction (#79033)
* remove extra user abstraction
* add test stub (but
* move grpc context setup into client wrapper, fix lint issue
* remove unused constants
* remove custom json stuff
* basic list filtering, add todo
* change target to storage-server, allow entityStore flag in prod mode
* fix issue with Update
* EntityAPI: make test work, need to resolve expected differences (#79123)
* make test work, need to resolve expected differences
* remove the fields not supported by legacy
* sanitize out the bits legacy does not support
* sanitize out the bits legacy does not support
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* update feature toggle generated files
* remove unused http headers
* update feature flag strategy
* devmode
* update readme
* spelling
* readme
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Alerting: Attempt to retry retryable errors
Currently in a draft state, but this was the minimal diff I could put together to exemplify how could achieve this.
Signed-off-by: gotjosh <josue.abreu@gmail.com>
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* Have the first iteration
* Prepare bench testing
* rename the test files
* Remove unnecessary test file
* Introduce influxqlStreamingParser feature flag
* Apply streaming parser feature flag
* Add new tests
* More tests
* return executedQueryString only in first frame
* add frame meta and config
* Update golden json files
* Support tags/labels
* more tests
* more tests
* Don't change original response_parser.go
* provide context
* create util package
* don't pass the row
* update converter with formatted frameName
* add executedQueryString info only to first frame
* update golden files
* rename
* update test file
* use pointer values
* update testdata
* update parsing
* update converter for null values
* prepare converter for table response
* clean up
* return timeField in fields
* handle no time column responses
* better nil field handling
* refactor the code
* add table tests
* fix config for table
* table response format
* fix value
* if there is no time column set name
* linting
* refactoring
* handle the status code
* add tracing
* Update pkg/tsdb/influxdb/influxql/converter/converter_test.go
Co-authored-by: İnanç Gümüş <m@inanc.io>
* fix import
* update test data
* sanity
* sanity
* linting
* simplicity
* return empty rsp
* rename to prevent confusion
* nullableJson field type for null values
* better handling null values
* remove duplicate test file
* fix healthcheck
* use util for pointer
* move bench test to root
* provide fake feature manager
* add more tests
* partial fix for null values in table response format
* handle partial null fields
* comments for easy testing
* move frameName allocation in readSeries
* one less append operation
* performance improvement by making string conversion once
pkg: github.com/grafana/grafana/pkg/tsdb/influxdb/influxql
│ stream2.txt │ stream3.txt │
│ sec/op │ sec/op vs base │
ParseJson-10 314.4m ± 1% 303.9m ± 1% -3.34% (p=0.000 n=10)
│ stream2.txt │ stream3.txt │
│ B/op │ B/op vs base │
ParseJson-10 425.2Mi ± 0% 382.7Mi ± 0% -10.00% (p=0.000 n=10)
│ stream2.txt │ stream3.txt │
│ allocs/op │ allocs/op vs base │
ParseJson-10 7.224M ± 0% 6.689M ± 0% -7.41% (p=0.000 n=10)
* add comment lines
---------
Co-authored-by: İnanç Gümüş <m@inanc.io>
* Unified Alerting: Set `max_attempts` to 1 by default
The retry logic for unified alerting has been broken as far as v9.4.x, rather than fixing it in one go and causing a headache to our users with rules putting extra load on their datasources - I think a better approach is to simply set 1 as a default and then let our users change it.
I see two cons with this approach:
- Configuration for legacy to unified alerting cannot be ported over automatically, users will have to manually set `max_attempts` to 3 when migrating.
- Users expecting to get any sort of retrying (as with legacy alerting) will not have it out of the box and will have to manually edit the configuration.
Signed-off-by: gotjosh <josue.abreu@gmail.com>
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* Folders: Show folders user has access to at the root level
* Refactor
* Refactor
* Hide parent folders user has no access to
* Skip expensive computation if possible
* Fix tests
* Fix potential nil access
* Fix duplicated folders
* Fix linter error
* Fix querying folders if no managed permissions set
* Update benchmark
* Add special shared with me folder and fetch available non-root folders on demand
* Fix parents query
* Improve db query for folders
* Reset benchmark changes
* Fix permissions for shared with me folder
* Simplify dedup
* Add option to include shared folder permission to user's permissions
* Fix nil UID
* Remove duplicated folders from shared list
* Folders: Fix fetching empty folder
* Nested folders: Show dashboards with directly assigned permissions
* Fix slow dashboards fetch
* Refactor
* Fix cycle dependencies
* Move shared folder to models
* Fix shared folder links
* Refactor
* Use feature flag for permissions
* Use feature flag
* Review comments
* Expose shared folder UID through frontend settings
* Add frontend type for sharedWithMeFolderUID option
* Refactor: apply review suggestions
* Fix parent uid for shared folder
* Fix listing shared dashboards for users with access to all folders
* Prevent creating folder with "shared" UID
* Add tests for shared folders
* Add test for shared dashboards
* Fix linter
* Add metrics for shared with me folder
* Add metrics for shared with me dashboards
* Fix tests
* Tests: add metrics as a dependency
* Fix access control metadata for shared with me folder
* Use constant for shared with me
* Optimize parent folders access check, fetch all folders in one query.
* Use labels for metrics
* Export Notification Policy correctly (#78020)
The JSON version of an exported Notification Policy now
inline correctly the policy in the same way the Yaml version
does.
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* ngalert `make`: Support GNU install on Darwin
Currently, the Makefile assumes that Darwin is using the Mac version of `sed`
I have the GNU version, so it failed. With this PR, it checks which version is installed
I also called `make` and there are some changes that came out of it
* swagger-gen
fix: ability to (de)serialize parents and current index
- refactored so only history stores parent relations and current index
- rounded indirect parent links
The definition for preferences is globally named `Spec` because that's the type that cue outputs
This adds a swagger annotation to rename the definition in the swagger schema to `Preferences`
This will be easier to use in generated clients
* Start splitting out code
* Use flag
* A bit of rocket surgery
* Prettify
* Cleanup behavior
* Work through behaviors
* Move empty message from other PR
* Import fixes and prettier
* Clean things up
* Add selector for tests
* Cleanups
* Working with transformation redesign
* Some more tweaks to make sure of correct behavior
* Update betterer/eslint exceptions
* Localization
* Remove unecessary fragments
* Spacing and prettier
* Update tests for new UI
* Update e2e tests
* One more e2e test fix
* Update selectors
* Fix one test and break another
* fill array with `undefined` to prevent matching length
* update unit test to include sortBy transformation
---------
Co-authored-by: Galen <galen.kistler@grafana.com>
* Prepare the test files
* use json files everywhere
* update golden json files
* disable update
* update test file
* fix naming
* lint
* InfluxDB: Add metadata information to first frame only (#78664)
* executedString in first frame only
* lint
* fix tests
* update tests
* don't update
* linting
* update
* update again
* handle nil values
* append in the right array
* add comments
* remove redundant if condition
* add grafana/user/profile/settings
plugin extension point
* changes to support plugins having their
own settings tabs
* WIP
* add comment
* add unit tests
* allow setting open tab based on tab query param
* update name of extension point
* add some more unit tests
* address PR comments
* PR comments
* update fixed annotation roles if FlagAnnotationPermissionUpdate is enabled
* add dashboard type scope back in the fixed roles to make the migration easier
* Return data in camelCase from the OAuth fb strategy
* changes
* wip
* Add defaults for oauth fb strategy
* revert other changes
* Add tests
* Add Defaults to cfg and use it in OAuthStrategy
* Return *OAuthInfo from OAuthStrategy
* lint
* Remove unnecessary Defaults
* Introduce const for fields, fix import order
* Align failing tests
* clean up
* Changes requested by @gamab
* Update pkg/services/ssosettings/strategies/oauth_strategy_test.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Load data on startup
* Rename + simplify
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Alerting: Only warm alert state cache if execute_alerts=true.
If the Grafana instance is not executing alerts, then Warm()-ing the state
manager is wasteful and could lead to misleading rule status queries, as the
status returned will be always based on the state loaded from the database at
startup, and not the most recent evaluation state.
* Move Warm() down to shared conditional.
* Alerting: Add clean_upgrade config and deprecate force_migration
Upgrading to UA and rolling back will no longer delete any data by default.
Instead, each set of tables will remain unchanged when switching between
legacy and UA. As such, the force_migration config has been deprecated
and no extra configuration is required to roll back to legacy anymore.
If clean_upgrade is 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.
Similar to force_migration, it should be kept false when not needed as it may
cause unintended data-loss if left enabled.
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Alerting: Keep track of individual org migration status
Save migration status per migrated org.
Change the meaning (and key/value) of the org_id=0 entry
to store the current (previous) config value used by alerting.
This is so we can know when to upgrade/downgrade by
comparing with the new config value in
UnifiedAlerting.IsEnabled.
* Chore: use errutil for pluginRepo errors
* Update pkg/util/errutil/status.go
* Use errutil helper functions
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Forgot the log level
* Use entity
---------
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Alerting: Add a sync interval for ApplyConfig in remote secondary mode
* remove out of scope code
* remove parentheses after CleanUp for consistency in test comments
* Add comment to ApplyConfig
* Add error to surface for groups groups not valid
* Update pkg/login/social/azuread_oauth.go
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Filter grafana-managed panels by instance_id
* Filter grafana alertmanager panels by instance_id
* Filter mimir managed panels by instance_id
* Filter mimir managed per group by instance id
* Filter mimir alertmanager panels by instance id
* Fix typos in queries
* fix timeout issues when gathering prometheus flavor stats
* workaround data race in sdk tracing middleware
* cap concurrency at 10
---------
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Add anonymous stats and user table
- anonymous users users page
- add feature toggle `anonymousAccess`
- remove check for enterprise for `Device-Id` header in request
- add anonusers/device count to stats
* promise all, review comments
* make use of promise all settled
* refactoring: devices instead of users
* review comments, moved countdevices to httpserver
* fakeAnonService for tests and generate openapi spec
* do not commit openapi3 and api-merged
* add openapi
* Apply suggestions from code review
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* formatin
* precise anon devices to avoid confusion
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: jguer <me@jguer.space>
* refactor SSOSettings to use types
* test struct
* refactor SSOSettings struct to use types
* fix database tests
* fix populateSSOSettings() to accept an SSOSettings param
* fix all tests from the database layer
* handle errors for converting to/from SSOSettings
* add json tag on OAuthInfo fields
* use continue instead of if/else
* add the source field to SSOSettingsDTO conversion
* remove omitempty from json tags in OAuthInfo struct
All links to Tempo should go to the latest version of Tempo documentation.
Older versions might want to set that to different values and this single variable can be changed to set that.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Prepare the test files
* use json files everywhere
* update golden json files
* disable update
* update test file
* fix naming
* lint
* InfluxDB: Add metadata information to first frame only (#78664)
* executedString in first frame only
* lint
* fix tests
* update tests
* don't update
* linting
* update
* update again
* Alerting: In migration improve deduplication of title and group
This change improves alert titles generated in the legacy migration
that occur when we need to deduplicate titles. Now when duplicate
titles are detected we will first attempt to append a sequential index,
falling back to a random uid if none are unique within 10 attempts.
This should cause shorter and more easily readable deduplicated
titles in most cases.
In addition, groups are no longer deduplicated. Instead we set them
to a combination of truncated dashboard name and humanized alert
frequency. This way, alerts from the same dashboard share a group
if they have the same evaluation interval. In the event that truncation
causes overlap, it won't be a big issue as all alerts will still be in a
group with the correct evaluation interval.
* Lezer: upgrade to 0.2.2
* Operations: update definitions
* Operations: update renderer
* Parsing: parse line filters with or operations
* Parsing: add unit test
* Formatting
* getHighlighterExpressionsFromQuery: add support for or statements
* Operation editor: trim button title if param name is empty
* getHighlighterExpressionsFromQuery: properly handle ip filters
* DashboardSettings: Provide basics for list editing
* Update public/app/features/dashboard-scene/scene/DashboardSceneUrlSync.ts
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Lint
* Review
* Fix page nav for items
* Move links to dashbaord scene state
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Split signout_redirect_url into per provider settings
* Split signout_redirect_url into per provider settings
* Update docs/sources/setup-grafana/configure-security/configure-authentication/grafana/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Split signout_redirect_url into per provider settings
* Split signout_redirect_url into per provider settings
* Split signout_redirect_url into per provider settings
* Split signout_redirect_url into per provider settings
* Split signout_redirect_url into per provider settings
* Split signout_redirect_url into per provider settings
* update docs
* update devenvs
* add missing struct tag
---------
Co-authored-by: Rao, B V Chalapathi <b_v_chalapathi.rao@nokia.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: jguer <me@jguer.space>
* Alerting: Introduce a Mimir client as part of the Remote Alertmanager
Mimir client that understands the new APIs developed for mimir. Very much a WIP still.
* more wip
* appease the linter
* more linting
* add more code
* get state from kvstore, encode, send
* send state to the remote Alertmanager, extract fullstate logic into its own function
* pass kvstore to remote.NewAlertmanager()
* refactor
* add fake kvstore to tests
* tests
* use FileStore to get state
* always log 'completed state upload'
* refactor compareRemoteConfig
* base64-encode the state in the file store
* export silences and nflog filenames, refactor
* log 'completed state/config upload...' regardless of outcome
* add values to the state store in tests
* address code review comments
* log error from filestore
---------
Co-authored-by: gotjosh <josue.abreu@gmail.com>
* ExtSvcAuth: Assign roles locally
* Fix test
* HandlePluginStateChanged in the OrgID
* Remove Global from command
* Use AssignmentOrgID instead of OrgID
* Remove unecessary test case
* AuthN: Check API Key is not trying to access another organization
* Revert local change
* Add test
* Discussed with Kalle we should set r.OrgID
* Syntax sugar
* Suggestion org-mismatch
* Alerting: Apply query optimization to eval endpoints
Previously, query optimization was applied to alert queries when scheduled but
not when ran through `api/v1/eval` or `/api/v1/rule/test/grafana`. This could
lead to discrepancies between preview and scheduled alert results.
* WIP
* Restore trail using history and updateFromUrl()
* Limit stored recent trails to 20
* Rename and refactor
* Bookmark and store trails
* No export
* Remove unused event
* Organise
* Address feedback
* Added button to remove bookmark. Added trail to home card
* Added tests for trail store
* Update
* remove import
* Fix home not updating after removing bookmark. Remove trail for home card
* Remove button no longer absolute
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Alerting: Add GetFullState method to FileStore
* make tests compile, create stateStore in NewAlertmanager
* return errors instead of logging, accept an arbitrary number of strings
* make NewAlertmanager() accept a stateStore
* Changed weights of pages under panels and visualizations
* Fixed weights
* Moved calculation types under Query and transform data
* Changed weight of Troubleshoot queries
* Updated Grafana (not Cloud) links
* commit changes
* Revert change made directly to transform-data.md
* Updated Cloud links
* Added alias for calculation-types.md
* Updated calculation types links
* Rebuilt markdown file
* Reverted weight setting for troubleshoot-queries.md and updated cloud link
* Updated cloud links to point to cloud docs
* Update existing aliases
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Added docs reference shortcode to legend-mode.md
* Reverted addition of docs reference shortcode
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Fixed broken url link
Fixed the incorrect link for applying annotation to the correct documentation page
* fixed the links using Shortcodes
fixed the [annotate visualizations] links using Shortcodes
* Prettier
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>
* Docs: adds info on location for mute timings
* ran prettier
* Update docs/sources/alerting/manage-notifications/mute-timings.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/alerting/manage-notifications/mute-timings.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Adds note on not being able to retrieve alerting resources once deleted
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* grafana/data: Add time range zoom out util
* Add keybindings for time range zoom out
* TimeRangePicker: change the way absolute time range is detected
* Depend on dashboard scene tructure rather
* Revert "grafana/data: Add time range zoom out util"
This reverts commit bc1602db57.
* Lint
* Lint
* dashboardSceneGraph tests
* Alerting: In migration, fallback to '1s' for malformed min interval
During legacy migration, when we encounter an alert datasource query
with a min interval (interval field in the query model) that is not
parseable, instead of failing the migration we fallback to a min interval
of 1s and continue.
The reason for this is a bug in legacy alerting (existing for a few major
versions) which allows arbitrary dashboard variables to be used as the
min interval, even though those variables do not work and will cause
the legacy alert to fail with `interval calculation failed: time: invalid
duration`.
* Check installer perm
* Failed eval better output
* Switch fetching json data in the repo
* Comment
* Account for feedback
* Mv single_organization config option
* Inline error check
* Starting to replace errors not to have to do the management in two places
* Continue error translation
* Cover ErrChecksumMismatch
* Refactor a bit
* Lint. Tab
* log instead of erroring out
* Nit.
* Revert change on kinds
* revert file again
* Fix tests
* Match core plugin error status code
* Skip permission check for Grafana Admin
* Use errutil templates
* Use errutil templating
* Inline
* Test templating
* revert error changes
* Remove isGrafanaAdmin skip
* Feature toggle check
* Small refactor on hasPluginRequestedPermissions
* Add test
* Imports
* Post install check
* change log messages so that they make sense
* Cover no scope case
* Inline
* Nit.
* Fix test
* regression analysis first dragt
* Swap to better regression libraries
* fix name
* Interpolate x points instead of using source x points
* clean up ui and add feature toggle
* fix merge error
* change to loop for finding min max, rename resolution
* Add docs
* add docs and tests
* change name to regression analysis
* update docs
* Fix editor labels
* add regression images
* fix docs
* Remote Alertmanager(refactor): Only parse the URL once
Exactly what it says in the tin.
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* use the existing tests
Signed-off-by: gotjosh <josue.abreu@gmail.com>
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* Alerting: Introduce a Mimir client as part of the Remote Alertmanager
This is our first attempt at making Grafana communicate use Mimir as a backend - it uses a new set of APIs that we've developed on the Mimir side to upload the grafana configuration and alertmanager state so that it can then be ported over.
Codewise, we've introduced a couple of things:
A client to isolate in its own package all the communication that happens with Mimir
A few changes to the remote/alertmanager to include uploading the configuration and state when it starts
A few refactors that align a bit better with the design approach that we're thinking
An integration tests again these newly developed APIs using a custom image
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
* Embed flame graph
* Update test
* Update test
* Use toggle
* Update test
* Add tests
* Use const
* Cleanup
* Update profile tag
* Move flame graph out of tags, remove request and other cleanup + tests
* Update test
* Set flame graph by profile id and simplify logic
* Cleanup and redrawListView
* Create/use feature toggle
* initial work
* only make the tab an anchor if it has a href
* move things around for smaller diff
* use content()
* eslint-disable the type assertions
* extract props into common object and add missing return statement
* Use TimeSeriesWide format for table response
* fix group by query result parsing
* handle labels
* provide a test where result has no tags
* parsing results without time column
* clean the code
* remove the comment line
* more cleaning
* lint
* FlameGraph: reduce max height of table
* prettier fix
* use maxHeight
* makes it actually work
* makes things actually work
---------
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* dock undock smoothly
* handle keyboard focus
* use ref instead of state
* run i18n:extract
* undo this change
* make dock/undock first button to focus
* only focus when going to docked, add comment
* minor tweaks
* remove all the things
* fix OldFolderPicker tests
* i18n
* remove more unused code
* remove mutation of error object since it's now frozen in the redux state
* fix error handling
* Loki: Allow setting of timeRange when using languageProvider functions
* Loki: Use timerange where available for start
* Loki: Use timerange where available for fetchLabels
* Loki: Use timerange where available for fetchSeriesLabels
* Loki: Use timerange where available for fetchLabelValues
* Loki: Use timerange where available for getParserAndLabelKeys
* Loki: Update and add tests for fetchLabels
* Loki: Update and add tests for fetchSeriesLabels
* Loki: Update and add tests for fetchSeries
* Loki: Update and add tests for fetchLabelValues
* Loki: Update and add tests for fetchLabelValues
* Loki: Update and add tests for getParserAndLabelKeys
* Update public/app/plugins/datasource/loki/LanguageProvider.test.ts
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update public/app/plugins/datasource/loki/LanguageProvider.test.ts
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Not needing to use languageProvider.getDefaultTime in Monaco
* Update comment
* Update getDefaultTimeRange to be ptivate
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* remove use of SignedInUserCopies
* add extra safety to not cross assign permissions
unwind circular dependency
dashboardacl->dashboardaccess
fix missing import
* correctly set teams for permissions
* fix missing inits
* nit: check err
* exit early for api keys
* Move serializeParams to @grafana/data
* Update comment
* Update solution in Tempo
* Fix type assertions
* Use toUrlParams in serializeParams
* Update data sources
* Update
* Update packages/grafana-data/src/utils/url.ts
* move the name finding logic for new data sources from frontend to backend
* cleanup and fix test
* linting
* change the way the number after the ds type is incremented - keep incrementing it without adding more hyphens
* enterprise spec updates (unrelated to the PR)
* Add routing option tabs
* Use alertingSimplifiedRouting feature toggle
* Move simplified routing tab to a separate component:SimplifiedRouting
* Populate contact point selector with the right values
* Show alert manager icons
* Fix descriptions
* Remove clear button on ContactPointSelector and save updated reducer state in the form
* Load contact points and manual option from rule data in RuleFormValues
* make contact point selector not clearable
* Refactor
* Add link to contact points view
* Move ContactPointSelector to a separate file
* Refactor: move hoook useReceiversMetadataMapByName to a separate file
* Update Need more info texts
* Address some PR review comments
* Use useContactPointsWithStatus hook and wrap each ContacPointSelector with AlertmanagerProvider
* use getAlertManagerDataSourcesByPermission instead of useGetAlertManagersMetadata in NotificationPreview
* Update enum
* Remove css style
* remove console
* update contact point selector
* file cleanup
* adds summary as description
* Update text in manual tab
* Fix preview routing not checking if alert manager can handle grafana alerts
* Fix typo
* remove unused location form field
* fix prettier
* fix test
* Remove unused location form field from AlertRuleNameInput
* Only use internal AlertManager for now
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Lock when creating external service
* Add local lock back
* Improve function signature
* Define lockName separately to make it more explicit
* Update pkg/infra/serverlock/serverlock.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update pkg/infra/serverlock/serverlock.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Default synced to true, only show synced status if panes are split
* Don’t default sync to true until split happens, handle syncing when init or history change sync happens
* Sync times if origin pane and new pane have the same range
* Move test to the db so we test the queries and not just testing the mock
* Remove unused function and dependencies
* Remove unused functions from the database
* Add some integration tests
* CloudWatch: call query method from DataSourceWithBackend to support public dashboards
* add test
* remove unneeded properties from test case
* update betterer
* add parens to group related logic
* remove unnecessary aliasing of variable
* use t.Cleanup
* remove redundant check
* add comment
* preserve label with empty string
* fix side effect of having undefined show up in the editor select for value
* re render label item when label filters change
This PR adds a new [extension point][] to each row of the
alert instances table. This allows plugins to add actions
to a dropdown menu in the rightmost column of the table.
Those actions are passed the alert instance so can use it
for contextual handling.
See https://github.com/grafana/machine-learning/pull/3461
for an example of how this can be used (e.g. by Grafana Sift
here).
* Move explore content to explore, build out transformations content in explore area
* First round of small feedback changes
* More feedback
* More feedback tweaks
* eve edits
* Edits for the linter and a couple code clarifications
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Improve time series detection
* Prettier
* Add test
* Update packages/grafana-data/src/dataframe/utils.ts
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
* Ensure correct time field support and set maximum size
* Look at each field to see if they are time series
* Add further tests
* Prettier
---------
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
* prepare backend for structured metadata
* add `lokiStructuredMetadata` feature toggle
* use `lokiStructuredMetadata` feature flag
* add field type check to `labelTypesField`
* remove fixme
* fix feature toggle
* add field in dataplane mode
* use `data.Labels` where possible
* adjust framing tests
* improve verbiage
* improve naming
* update tests to "attributes"
* Loki: Use TemplateSrv from grafana/runtime
* Loki: Fix import for intervalToMs
* Revert "Loki: Use TemplateSrv from grafana/runtime"
This reverts commit d573925e37.
* fix some types
* more type updates
* some more fixes
* more changes
* string instead of unknown
* more like original logic
* remove outdated comment
* update betterer
* change where folder checks are done for dash creation/updates
* add test for folder not being found
* test fixes
* more test fixes
* add nlint directive to where folder IDs are used
* fix bad merge
* fix test
* Plugin: Remove external service on plugin removal
* Early exit no service account
* Add log
* WIP
* Cable OAuth2Server client removal
* Move function lower
* Add function to test removal
* Add test to RemoveExternalService
* Test RemoveExtSvcAccount
* remove apostrophy in comment
* Add cfg to plugin installer to check features
* Add feature flag check in the service registration service
* Comments
* Move metrics Inc
* Initialize map
* Reorder
* Initialize mutex as well
* Add HasExternalService as suggested
* WIP: CleanUpOrphanedExternalServices
* Commit suggestion
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
* Nit on test.
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
* oauthserver return names
* Name is not Slug
* Use plugin ID not slug
* Add background job
* remove negation on feature check
* Add test to the CleanUp function
* Test GetExternalServiceNames
* rename test
* Add test for ExtSvcAccountsService_GetExternalServiceNames
* Add a todo
* Add todo
* Option based on mix
* Rewrite a bit the comment
* Opinionated choice use slugs instead of names everywhere
* Nit.
* Comments and re-ordering
* Comment
* Add log
* Add context
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
* LogRow: detect text selection
* LogRow: refactor menu as component
* LogRow: add actions to menu
* LogRow: hack menu position
* Remove unsused imports
* LogRowMessage: remove popover code
* PopoverMenu: refactor
* LogRows: implement PopoverMenu at log rows level
* PopoverMenu: implement copy
* PopoverMenu: receive row model
* PopoverMenu: fix onClick capture issue
* Explore: add new filter methods and props for line filters
* PopoverMenu: use new filter props
* Explore: separate toggleable and non toggleable filters
* PopoverMenu: improve copy
* ModifyQuery: extend line filter with value argument
* PopoverMenu: close with escape
* Remove unused import
* Prettier
* PopoverMenu: remove label filter options
* LogRow: rename text selection handling prop
* Update test
* Remove unused import
* Popover menu: add unit test
* LogRows: update unit test
* Log row: hide the log row menu if the user is selecting text
* Log row: dont hide row menu if popover is not in scope
* Log rows: rename state variable
* Popover menu: allow menu to scroll
* Log rows: fix classname prop
* Log rows: close popover if mouse event comes from outside the log rows
* Declare new class using object style
* Fix style declaration
* Logs Popover Menu: add string filtering functions (#76757)
* Loki modifyQuery: add line does not contain query modification
* Elastic modifyQuery: implement line filters
* Modify query: change action name to not be loki specific
* Prettier
* Prettier
* Elastic: escape filter values
* Popover menu: create feature flag
* Log Rows: integrate logsRowsPopoverMenu flag
* Rename feature flag
* Popover menu: track interactions
* Prettier
* logRowsPopoverMenu: update stage
* Popover menu: add ds type to tracking data
* Log rows: move feature flag check
* Improve handle deselection
* InfluxDB: Add new truthiness operators (`Is` and `Is Not`) to InfluxQL Editor for use with boolean fields
* InfluxDB: Make the front-end aware of the new operators so that translation between raw and builder works
* Chore: Add tests
* feat: identify type of field value to allow other types to work with Is/Is Not
Tags: always quote
Integer: Don't quote
Float: Don't quote
Boolean: Don't quote
String: Quote
* Chore: Add test-cases for type inference
* Update front-end to infer type for operators Is and Is Not
* chore: Add front-end tests
* chore: add additional front-end tests
* chore: fix failing lint test
* chore: fix tests (run prettier)
This reverts commit 046791e2be.
Is causing malformed frames, and resulting in errors about mismatched field lengths in the logs, No data in the UI, and will cause SSE to panic.
I think this is because of the global slice vars since it seems to take concurrency to replicate it.
* MenuItem: Allow react node as label
* LinkButton: Expose ButtonLinkProps
* Typecheck fix
* DashboardLinks: Refactor and use LinkButton and menu
* DashbaordLinks scene object
* Use flex layout for dashboard controls
* Update public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* fix keepTime and includeVars
* Add ellipsis to menu item label and description
* Use DashboardLink type from grafana/schema
* Update dashboard scene controls layout
* Fix e2e
* Test fix
* Bring back keyboard navigation
* Remove unused code
* One more fix
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Use GetDefaultCloud from SDK
* Use GetAzureCloud from SDK
* Credentials parser moved to azmoncredentials
* Refactor legacy credentials
* Tests
* Fix test description
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Swagger: Fix listTokensResponse
It should return a list of Tokens, not a single one
Also regenerated the API spec from the latest changes + this branch
* Remove pointer
* Allow to clear datasource selection
Also improve texts for linked alerts switch
* Remove onClear prop as it does not work
* Change text on datasource selection filter
* Change datasource filter description
* InfluxDB: Add support for `>=` and `<=` comparison operators to InfluxQL Query Builder
* Add front-end support for the new operators
This ensures that the query translates correctly between raw and builder mode
* Chore: add test for new operators
* chore: add front-end tests
* fix: don't skip quoting on `<>`
This preserves the pre-existing behaviour, fixing a failing test
* chore: fix tests
* Transformations: Fix Timeseries to table transformation trend reduction when result is 0
When reduceField function returns 0, the reduced value is set to null. I
think we can remove this "|| null" statement, as:
- There is a check a few lines above to make sure the field type is a number. This might be a reasonable guarantee that the calculation we are doing will make sense and there will be no need to set to null.
- Sparkline cell type already has an option to hide value if we believe the calculation
does not make sense.
Fixes#78025
* make sure we check for undefined
---------
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* [WIP] Lift RBAC from xorm store
* Cleanup RBAC, fix tests
* Use the scope type map as a map
* Remove dependency on dashboard service
* Make dashboards a map for constant time lookups (useful later)
---
* Lift RBAC tests into a new file to test at service level
* Add necessary access resource structs to xorm store tests
* Move authorization into separate service
* Pass features to searchstore.Builder
* Sort imports
* Code cleanup
* Remove useless scope type check
* Lift permission check into `Authorize()`
* Use clearer language when checking scope types
* Include dashboard permissions in test to ensure they're ignored
* Switch to errutil
* Cleanup sql.Cfg refs
* Add `isManaged` property to frontend model
* Remove enabled and token buttons for managed SA
* Replace trash icon for lock icon for managed SA
* Block the role picker for managed SA
* Filter SA list usiong the managed filter
* Rename external for managed
* Add only managed filter
* Toggle the enable buttons for managed sa
* Disable add token and delete token buttons
* Remove the edit name button
* Disable the Role picker for managed sa
* Hide the permissions section
* Add managed by row
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Plugin: Deriving fields by name from parsed logs
Loki only derives fields by a regex matcher, this limits its usage when functions such as `line_formatter` is used on
top of the logs.
Some users already have logs parsed in json or logfmt structure which are detected as fields in loki.
This pull request allows the mapping between detected fields values and derived values by matching the fields' names.
Currently the feature is behind `lokiEnableNameMatcherOption` feature toggle.
* improve settings page to have a `fieldType`
* improve derived fields getter to use `matcherRegex`
* fix failing test
* rename feature toggle to `lokiDerivedFieldsFromLabels`
* added suggestions from review
* add empty config object
* remove feature flag
* fix width of select
* default to `regex` derived field
* fix failing test
---------
Co-authored-by: Sven Grossmann <svennergr@gmail.com>
* Alerting: Add an empty Forked Alertmanager
* Alerting: Add methods for silences to the forked Alertmanager
* check for errors in tests
* make linter happy
* Alerting: Add methods for alerts to the forked Alertmanager
* Alerting: Add methods for receivers to the forked Alertmanager
* Alerting: Add TestTemplate method to the forked Alertmanager
* make linter happy
* separate into both forked AMs
* fix tests
* Alerting: Add lifecycle methods to the forked Alertmanager
* Add AlertStates data topic
* DashboardScene: Alert states data layer
* TMP package json
* Remove duplicated function
* Use latest scenes canry
* Use latest scenes and add transformation test
* feat: share the plugin context with app plugins
* feat: share the plugin context ui-extension modals
* feat: pre-fetch the app plugin settings
* feat: expose more utility hooks for plugins
* fix: use `location.pathname` directly
Previously it was referenced by `pluginRoot.props.path`, which stops
working in case the `pluginRoot` element is wrapped with anything.
* playlist skeleton poc
* refactor into PlaylistCard
* make card actions more responsive, update skeleton color to work on secondary background
* don't loop over array
* fix unit tests
Check embedded errors in query data response for plugin metrics/logs status label.
Plugin Request Completed log messages are now logged with info level if status=ok,
otherwise error level.
Fixes#76769
* break out subcomponents
* prettify
* break out editors into separate files
* update betterer since this is only moving around lint issues
* Fix import
* Pass OTEL sampling config to plugins
* fix capital letters
* Do not pass sampler env vars if sampling is not configured
* Add tests
* PR review feedback
* Simplify tracing env vars logic
* Update test to reflect pkg/infra/tracing behaviour
* Plugins:Allow disabling angular deprecation UI for specific plugins
* add backend test
* changed test names
* lint
* Removed angular properties from DataSourceDTO
* Update tests
* Move angularDetected and hideAngularDeprecation in angularMeta property
* Fix angular property name in AppPluginConfig
* Fix reference to angularMeta.detected
* Fix hide_angular_deprecation not working for core plugins
* lint
* Add `isExternal` property to frontend model
* Remove enabled and token buttons for external SA
* Replace trash icon for lock icon for external SA
* Block the role picker for external SA
* Filter SA list using the external filter
* Add only external filter at backend
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Dashboards: Prevent shared queries from being unnecessarily re-run
* Minor change
* Set solo panel as being viewed
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Alerting: Add an empty Forked Alertmanager
* Alerting: Add methods for silences to the forked Alertmanager
* check for errors in tests
* make linter happy
* Alerting: Add methods for alerts to the forked Alertmanager
* Alerting: Add methods for receivers to the forked Alertmanager
* Alerting: Add TestTemplate method to the forked Alertmanager
* make linter happy
* separate into both forked AMs
* fix tests
* Alerting: Add an empty Forked Alertmanager
* Alerting: Add methods for silences to the forked Alertmanager
* check for errors in tests
* make linter happy
* Alerting: Add methods for alerts to the forked Alertmanager
* Alerting: Add methods for receivers to the forked Alertmanager
* make linter happy
* separate into both forked AMs
* fix tests
* rename testErr -> expErr
* Add timeFilter macro to query builder
* Only render SQLWhereRow when fields are there
* Change the default query to timeseries and remove 50 limit
* Add timeFilter macro for the first time when timeSeries
* Add test for timeFilter macro
* Lint fix
* Annotation query format should be table
* Set order by as default
* Revert changes that made time series default
* Fix e2e test
* Fix e2e test
* Make sure to reset the date value when operator is changed
* Add docs
* add permission check for updating the LBAC Rules
* permission scoped for id in the updating datasource
* fixed test to cover for permissions
* fix proper check for permissions and empty teamHTTPHeader requests
* check for jsondata
* check nil for jsondata inside the getEncodedString
* Folders: Show folders user has access to at the root level
* Refactor
* Refactor
* Hide parent folders user has no access to
* Skip expensive computation if possible
* Fix tests
* Fix potential nil access
* Fix duplicated folders
* Fix linter error
* Fix querying folders if no managed permissions set
* Update benchmark
* Add special shared with me folder and fetch available non-root folders on demand
* Fix parents query
* Improve db query for folders
* Reset benchmark changes
* Fix permissions for shared with me folder
* Simplify dedup
* Add option to include shared folder permission to user's permissions
* Fix nil UID
* Remove duplicated folders from shared list
* Only left the base part
* Apply suggestions from code review
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Add tests
* Fix linter errors
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Only run through with classicQuery if the language is influxql and backend migration is disabled
* Add variable editor
* Simple template variable support
* Show template variables in the drowdowns
* better imports
* unit tests
* it is now 11 just because we add rawSql interpolation in datasource.ts applyVariables method
* fix
* user essentials mob! 🔱
lastFile:public/app/plugins/panel/dashlist/DashList.tsx
* DashList: Update variables in URL when they change
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* add e2e test to check dashlist variables are always correctly passed
* add comment with link to issue
* Alternative solution
* Minor tweaks
* revert accidental change
* fix
* New solution
* Fix test
* refinement
* Added unit test
* Update devenv/dev-dashboards/panel-dashlist/dashlist.json
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
---------
Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Alerting: Add an empty Forked Alertmanager
* Alerting: Add methods for silences to the forked Alertmanager
* check for errors in tests
* make linter happy
* Alerting: Add methods for alerts to the forked Alertmanager
* make linter happy
* separate into both forked AMs
* rename testErr -> expErr
* Alerting docs: adds and reworks contact points content
* gh cli to get build to work
* contact point docs rework
* fixes canonicals with new folder name
* adds integrations to index md
* deletes pagerduty anchor
* ran prettier
* updates mute timing section with redesign
* Updates alert rules with menu paths and export features
* updates menu paths on notification templates tab
* updates notification policy with new redesign menu paths
* updates time interval tag
* ran prettier
* corrects typo
* Alerting: Add an empty Forked Alertmanager
* Alerting: Add methods for silences to the forked Alertmanager
* check for errors in tests
* make linter happy
* make linter happy
* Alerting: Add methods for silences to the forked Alertmanager
* inital changes, db migration
* changes
* Implement basic GetAll, Delete
* Add first batch of tests
* Add more tests
* Add service tests for GetForProvider, List
* Update http_server.go + wire.go
* Lint + update fixed role
* Update CODEOWNERS
* Change API init
* Change roles, rename
* Review with @kalleep
* Revert a mistakenly changed part
* Updates based on @dmihai 's feedback
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* PromQail: query suggester uses metric type if available
* If metadata missing, use heuristic to guess metric type
* Fix linter, fix histogram,summary case
* Fix bug confusing metric with metric family name
* Better method to fetch just metadata from datasource provider
* Extract transformations editor row to a seprate component
* Use css object instead of string literals
* Update .betterer.results
* Post merge fixes
* Bring back validation rules
* Switch to css/object
* Post-merge fixes
Ensuring Stack from grafana-ui is used after conflicts with 25779bb6e5
* Remove unused code
* More cleaning
* Delete more
* betterer
* Small import fixes
* Fix unit test
* Fix unit test
* uncomment
* Remove PromLink component since it was removed from Prometheus data source
* Clean the direct/browser access code
* Remove directUrl
* Big cleaning
* unit test fixing
* cleaning
* fix metric_find_query tests
* clean result_transformer tests
* betterer
* Remove unused type
* betterer
* Fix streaming query restart after Grafana server reboot
* TraceQL Search filter name improvements
* Add flag to enable streaming in tempo docker block
---------
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* grafana/ui: Move Stack out of unstable
* grafana/ui: Replace imports
* Replace the import from experimental
* Cleanup
* Remove invalid prop
* Add flexGrow
* Remove Stack used in Field
* Remove import
* WIP
* Refactor, plus update source of error in response_parser
* Adjust test
* Use methods and httpclient from errorsource
* Update pkg/tsdb/elasticsearch/data_query.go
Co-authored-by: Scott Lepper <scott.lepper@gmail.com>
* Return nil error
* Fix test
* Fix integration test
---------
Co-authored-by: Scott Lepper <scott.lepper@gmail.com>
* Avoid view component being unmounted any time we fetch new data
* Render loading indicator only when loading data for the first time
* Remove unnecessary useRef
Currently, in the schema, it's a global definition called `ItemDTO`. It's hard to figure out what that is
Renaming it to `Annotation` should be more helpful
* cumulative sum
* refactor and create new mode
* refactor - use reduceOptions for new mode also
* revert naming
* Add window function, rename statistical to cumulative (#77066)
* Add window function, rename statistical to cumulative
* Fix merge errors
* fix more merge errors
* refactor + add window funcs
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* add ff + tests + centered moving avg
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* make sum and mean cumulative more efficient (#77173)
* make sum and mean cumulative more efficient
* remove cumulative variance, add window stddev
* refactor window to not use reducer for mean. wip variance stdDev
* fix tests after optimization
---------
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* optimize window func (#77266)
* make sum and mean cumulative more efficient
* remove cumulative variance, add window stddev
* refactor window to not use reducer for mean. wip variance stdDev
* fix tests after optimization
* fix test lint
* optimize window
* tests are passing
* fix nulls
* fix all nulls
---------
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* change window size to be percentage
* fix tests to use percentage
* fixed/percentage window size (#77369)
* Add docs for cumulative and window functions of the add field from calculation transform. (#77352)
add docs
* splling
* change WindowType -> WindowAlignment
* update betterer
* refactor getWindowCreator
* add docs to content.ts
* add feature toggle message
---------
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* add/update sqlstore-related helper functions
* add documentation & tests for InsertQuery and UpdateQuery, make generated SQL deterministic by sorting columns
* remove old log line
* Chore: Replace grafana-authnz-team with identity-access-team as code owner
* Chore: Replace grafana-authnz-team with identity-access-team as code owner
* Fix the failing test
* Add interface verification compliance
* rework service account api to a provider
* wire the service accounts api
* rewire the implementation of sa srv for the proxy
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* RolePicker: Use portal for menu
* Remove logging
* Fix submenu styles
* Fix ROLE_PICKER_MAX_MENU_WIDTH calculation
* Fix first menu open glitch
* Fix menu closing on ckick
* Fix menu position
* Add transformation add modal and use it
* Hook up saving
* Add transformation vars to var list, show added transformations
* Form validation
* Remove type assertion, start building out transformation data in helper (WIP)
* Style expression better, add delete logic
* Add ability to edit, additional styling on transformation card in helper
* simplify styling, conditionally run edit set up logic
* Keep more field information in function, integrate it with new editor
* Show default label on collapsed section, use deleteButton for confirmation of deleting transformations
* Change transformation add calculations from function to hook, add label to collapsed header, add transformation tooltip
* Make correlation and editor dirty state distinctive and integrate, WIP
* Track action pane for more detailed messaging/actions
* Better cancel modal logic
* Remove changes to adminsitration transformation editor
* Remove debugging line
* Remove unneeded comment
* Add in logic for closing editor mode
* Add tests for modal logic
* Use state to build vars list for helper
* WIP
* Fix labels and dirty state
* Fix bad message and stop exiting mode if discard action is performed
* Fix tests
* Update to not use unstable component and tweak default label
* add Syslog dashboard
* Revert "add Syslog dashboard"
This reverts commit b30160afe5.
* add Syslog Dashboard
* make wording more general to grafana users
* remove azure welcome panel
* run prettier on dashboard
* Break out labels into separate fields
* More Updates
* Minor test changes
* Use 'A' for transformed refId
* Make sure tests pass
* Add additional test
* Prettier
* Remove dead comment
* Update time field selection options
* remove console.log
---------
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* Update Hubot Integration documentation
The script package has improved over the years to allow for direct uploading to Slack, etc. This updates the documentation to reflect that.
* Apply suggestions from code review
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
---------
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* Storage: Add maxFiles to list functions
* Add maxDataPoints argument to listFiles function
* Add maxFiles to ResourceDimensionEditor
* Update pkg/services/store/http.go
* rename First to Limit
---------
Co-authored-by: jennyfana <110450222+jennyfana@users.noreply.github.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* build docker after packages are updated
* use my branch for main pipelines for testing
* use my branch for main pipelines for testing
* use main instead now
* formatting
* Dashboards: Add integration tests for creating a dashboard
* Fix creating dashboard under folder using deprecated API
* Update swagger response
* Fix comments
* Update workflow that synchronizes the `make docs` procedure
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update .github/workflows/update-make-docs.yml
* Only try and commit, push, and open a PR if there are changes
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Dashboard: Use plural values for time units
* Cleaned up code a bit and added support for negative values.
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Role picker: Load users roles in batch
* Use orgId in request
* Add roles to OrgUser type
* Improve loading logic
* Improve loading indicator
* Fix org page
* Update service accounts page
* Use bulk roles query for teams
* Use POST requests for search
* Use post request for teams
* Update betterer results
* Review suggestions
* AdminEditOrgPage: move API calls to separate file
* Update Tempo devenv to include profiles
* Update devenv to scrape profiles from local services
* Cleanup devenv
* Fix issue with flame graph
* Add width prop to ProfileTypeCascader
* Add trace to profiles settings
* Add new spanSelector API
* Add spanSelector to query editor
* Update span link query
* Conditionally show span link
* Combine profile and spanProfile query types and run specific query type in backend based on spanSelector presence
* Update placeholder
* Create feature toggle
* Remove spanProfile query type
* Cleanup
* Use feeature toggle
* Update feature toggle
* Update devenv
* Update devenv
* Tests
* Tests
* Profiles for this span
* Styling
* Types
* Update type check
* Tidier funcs
* Add config links from dataframe
* Remove time shift
* Update tests
* Update range in test
* Simplify span link logic
* Update default keys
* Update pyro link
* Use const
* attempt to fix levitate workflow
* add comment to force levitate to run
* update node version in levitate workflow
* change to test levitate
* remove dummy comment
* try upgrading react-redux
* memoize getNavModel selector, don't return a new object in command palette selector
* use createSelector to memoize some alert manager selectors correctly
* memoize selectors correctly in appNotifications
* memoize some datasource selectors
* use fake timers to avoid the debounce causing flakiness
* remove duplicate import
* just use memoize-one
* update to yarn 4
* update project to yarn 4
* update tetherdrop archive
* update sdks
* change puppeteer image to official node 20 one
* revert previous, use grafana/docker-puppeteer:pre-node-20 instead
* okay, try original docker image, but use npx instead of yarn for wait-on
* remove wait-on from deps as we use it via npx now
* yarn dedupe
* remove logs from drone
* empty commit testing yarn cache :)
* comment explaining why no -y
* DashboardScene: PanelLinks support
* Update public/app/features/dashboard-scene/scene/PanelMenuBehavior.tsx
* Remove code
* Use updated API
* Bump scenes version
When running in dev mode, error messages would contain an additional "error" property alongside "message". Since this causes confusion, that has been removed and now error messages are the same both modes (using "message").
* Remove unused code
* More cleaning
* Delete more
* betterer
* Small import fixes
* Fix unit test
* Fix unit test
* uncomment
* Have template_srv from @grafana/runtime
* LogsContainer: implement data source feature check
* LogsContainer: improve check for normal data source mode
* LogsContainer: use updated reference to data source instance
* Formatting
* LogsContainer: compare uid to constant
* LogsContainer: rename variable
* Added critical path computation code. Refactor some trace view code
* Refactor js to ts
* First implementation of critical path working
* Simplified code
* Added filter to show only critical path spans
* Lint and stuff
* Fixes and moving styling to object
* Betterer
* Added notes about AI features
* Added link to LLM content, copy edited, and fixed linting errors
* Fixed references to dashgpt setup in create dashboards, added links and fixed linting issues
* Added links to panel option config docs and fixed linting issues
* Fixed link label
* Added dashgpt info to build first dashboard
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Fixed links and heading level of new section
* Updated feature name
* Recast sentence
* Fixed formatting
* Added code formatting to feature flag
* Fixed link
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Use latest grafana/docs-base image
The pinned tag does not support recent shortcodes like `docs/public-preview`.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Always pull the image
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Initial fix up of getLabelFields
* Update time series to table code
* Cleanup and allow merging
* Support merge and non-merge scenarios
* Update editor
* Fix case with merge true for multiple queries
* Update time series detection, fix tests
* Remove spurious console.log
* Prettier plus remove test console.log
* Remove type assertion
* Add options migration
* Add type export
* Sentence casing
* Make sure current options are preserved when making changes
* Add disabled image
* DashboardMigrator prettier
* Add type assertion explanation and exception
* Fix schema version test
* Prettier
* Fix genAI tests and make them more robust so they dont break on every new schema version
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Added panel actions menu content
* Formatted text as heading
* Added links, formatted bullet list items, and general copy edits
* Fixed Vale and Prettier warnings
* Remove the word "actions"
* Fixed explanation
* Updated description of Extensions
* Apply suggestion from review
Co-authored-by: David Harris <david.harris@grafana.com>
* Updated intro text for panel menu
* Apply suggestions from code review
* Fixed linting issues
---------
Co-authored-by: David Harris <david.harris@grafana.com>
* update some comments, remove some things from the ignore list
* remove @mdx-js/react since storybook now directly depends on it
* add issue link to comment
* exclude @locker from grouped patch updates
* ignore grafana-e2e from renovate
* Disable plugin service account
* Revert extsvc injection
* handle plugin state changes
* Use isProxyEnabled
* Remove plugininteg changes
* Change update function to also work for mysql 😩
* Plugin: enable service account based on plugin settings on
initialization
* Remove misleading comment
* Fix tests
* test message
* Clean up tests
* Simplify tests
* Re-order imports
* Remove unecessary comment
* Enable datasource plugins by default
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
---------
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Disable plugin service account
* Revert extsvc injection
* handle plugin state changes
* Use isProxyEnabled
* Remove plugininteg changes
* Change update function to also work for mysql 😩
* Change test to also check no collateral update
* Update pkg/services/serviceaccounts/database/store_test.go
* Update pkg/services/serviceaccounts/database/store_test.go
* add validation of team header values w. regex
* apply valid headers
* refactor testcases to account for badly formatted json
* refactoring to move validation code close to the validation itself
* removed tes
* Update pkg/api/datasources_test.go
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* Update pkg/api/datasources.go
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* review comments
* review during pairing
---------
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* chore(lerna): update to latest version 7.4.1 and run lerna repair to update configs
* Wip
* chore(lerna): remove lerna specific packages field which prevents versioning packages
* chore: remove nx from dependencies
* chore(yarn): refresh lock file
* Use context in aws ListSinks and ListAttachedLinks
In the current way, ListSinks and ListAttachedLinks is used which doesn't
allow cancelling the request if the context changes.
Using ListSinksWithContext and ListAttachedLinksWithContext is the
preferred way. Adding context for GetAccountsForCurrentUserOrRole
is required to pass it to ListSinks method.
* New experimental table customization for logs in explore
* Logs Panel: Explore url sync for table visualization (#76980)
* Sync explore URL state with logs panel state in explore
* set default basic role permissions for dashboards even if dash creator permissions can't be set
* temporarily increase the test threshold until we can tweak the page
* Fix broken interpolation for mixed datasources in explore
* Add interpolation tests
* Use Promise.all and be better about dealing with invalid empty ds in query scenario
* condense logic
* Remove type declarations
* Fix tests
* chore(node): update node version to 20
* chore(node): bump to 20.8.0, update drone variables
* chore(drone): update yaml config
* chore(yarn): bump yarn to latest to fix building binaries ERR_IMPORT_ASSERTION_TYPE_MISSING errors
* test(grafana-data): update whitespace in time formats for node 20 (18.13+)
* chore(node): move to LTS 20.8.1
* chore(node): bump to LTS 20.9.0
* Remove docs/reference shortcode for moved content
* Updated transformers content file
* Updated README.md to make Transformations section more prominent
* Updated index file to make super clear where you must update this content
* Added doc/ref back in with new format
* Removed bracket
* Added missing quotation marks
* Added reference style link and removed link from docs/ref shortcode
* Updated link
* Add warning to only use reference style links in content.ts
* ihm/251023-link-fix/ update scripts/docs/generate-transformations.ts with proposed changes, and build markdown
* ihm/251023-link-fix/ build docs
* Fix extraneous whitespace
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add precheck for ONESHELL support
Otherwise the recipe doesn't work.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Use singleflight to prevent logging error if the token has already been refreshed
* Change order of error checks
* align tests, change error name
* Change sf key
* Update based on the review
* refactor
The 'llms' module of @grafana/experimental was vendored into the
GenAI components at some point in the past to speed up iteration, so
that dashboard feature development didn't have to wait for a new
release of the experimental package for every change. Now that we
think this has stabilized, we can remove the vendored module from
the Grafana codebase and use the version from @grafana/experimental
instead.
This requires a couple of minor changes, mostly around health check
results which are slightly different in @grafana/experimental now,
but otherwise the changes are mechanical.
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* add FlagExternalServiceAccounts to proxy service
* add FlagExternalServiceAccounts value to tests
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Added Alerting features
* Apply suggestions from code review
* Moved feature into order by date
* Added updated Terraform description and removed provisioned resources feature
* expand serviceaccount service interface
* implemet FakeServiceAccountService
* Replace SA service interface from api
* merge sa proxy tests with new fake service
* implement DeleteServiceAccountToken
* add test for DeleteServiceAccountToken
* Alerting: Rename remote.ExternalAlertmanager to remote.Alertmanager
* Alerting: Send alerts to the remote Alertmanager
* add ticker to readiness check, add tests
* use options when creating a new sender.ExternaAlertmanager
* unexport defaultMaxQueueCapacity
* delete unused defaultConfig field
* add debug log line when sending alerts to the remote alertmanager
* move and refactor readiness check
* update tests to not include defaultConfig
* Fix NoRulesSplash being rendered for some seconds, fater creating a rule
* Add ruler response/loading,dispatched,error to the logic in hasNoAlertRulesCreatedYet expression
* chore: move over initial changes from sofia's pr #58029
* chore: remove go_image
* chore: begin removing edition, remove unused imports
* chore: remove edition from swagger_gen.star and generate .drone.yml
* chore: regen drone.yml
* fix: fix order of load statements
* fix: try #2 fix order of load statements
* linter fixes
* chore: add doc comment explaining purpose of new clone_pr_branch step
* fix: add placeholder documentation for ver_mode arg
* attempt #1 to import and use clone_enterprise_step_pr
* Update scripts/drone/pipelines/swagger_gen.star
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* attempt #2 to import and use clone_enterprise_step_pr
* fix: fix drone lint err invalid or unknown step dependency
* fix: regen hmac to make drone run
* fix: fix drone lint err
* fix: update swagger-clean cmd in step
* attempt to return non zero exit code
* test to see if pipeline fails
* fix: add git to clone pr branch step
* fix: add git and make to swagger-gen step
* try to rerun drone
* debug: figure out why cannot find make swagger-clean
* debug: see if cd grafana/grafana fixes things
* debug: undo cd grafana/grafana
* debug: add more logging statements
* debug: try and remove cd grafana in swagger-gen
* debug: removed grafana after clone statement; add debug before cloning
* fix: remove disable clone
* regen specs to see if swagger-gen step passes now
* add descriptive error message to swagger-gen step
* remove api-spec.json from .gitignore
* revert backend change, regen spec
* add back backend change, regen specs
* Update scripts/drone/pipelines/swagger_gen.star
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Update scripts/drone/pipelines/swagger_gen.star
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* revert gitignore change, set enterprise source to drone source branch
* chore: remove unused variable, change committish var name to source
* testing functionality: make a new BE change without gen spec, pipeline should fail
* test functionality: does removing err msg cause step to fail properly
* test functionality: add back err msg and && after
* chore: remove debug statements from swagger gen step
* chore: remove debug lines from clone_pr_branch step
* test functionality: regen specs, swagger_gen step should pass
* test funcionality: regen specs again ????
* chore: update swagger-gen step err msg
* test functionality: make BE change dont regen spec, swagger gen should fail
* test functionality: regen the specs, swagger-gen should pass
* chore: revert test BE change, regen spec
* chore: remove unused clone step
* chore: regen drone.yml
---------
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Navigation: Basic e2e tests for docked mega menu
* give mega menu an e2e selector
* make existing tests narrower so menu doesn't default to docked. add test for auto docking at large viewport
* use new selector in nondocked menu
* Clarify content
Users coming to this page need to understand that they have landed on the OSS page, and be provided direction to the Cloud getting started if they have landed here by mistake.
* Update link
update link
* Remove duplicate content
* Add link to cloud docs
* Update docs/sources/getting-started/_index.md
try this
* Update docs/sources/getting-started/_index.md
* Update docs/sources/getting-started/_index.md
* Update _index.md
* Fixed linting issues
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* AuthN: Add metrics to external service accounts management
* Add a new metric to count stored external service accounts
* Update variable names
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
* Add test to SearchOrgServiceAccounts
* Add feature flags checks before registering and using the metrics
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Update doc-validator
No longer produce errors for the use of https://grafana.com/ links. This is the first step towards just using fully qualified URLs everywhere. The website link render-hook will internally transform these URLs into the partial URL that works across all hostnames.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Dont show 1 firing series when no data in Expressions PreviewSummary
* Add comment to make clear we need to filter out undefineds for firing count
* Move logic to a new getGroupedByStateAndSeriesCount method and added test to it
* remove wrapping div
* update tests, just gotta figure out how to handle fontawesome :(
* add spinner.svg which matches the font-awesome spinner
* add mock for react-inlinesvg
* update mock and fix some tests
* fix FormField test
* fix CorrelationsPage tests
* increase timeout
* clean up some e2e/runtime types
* fix some stories
* some more fixes
* fix route props
* update unit tests
* update more unit tests
* don't throw here
* correctly check permissions to list dashboards on the root
* correctly display the access inherited from general folder for dashboards
* Update pkg/services/sqlstore/permissions/dashboard.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update dashboard_filter_no_subquery.go
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* build(plugin-configs): move swc-loader to configs and use require.resolve for less duplicate deps
* build(plugins): move cacheLocation to ESLintPlugin, run lint and tscheck plugins in dev
* revert(plugins): remove obsolete stats setting
* Added Dataviz features
* Removed enum data entry
* Updated datafiz features based on 10.2 what's new
* Fixed headings
* Fixed heading
* Added clarifying language
* Added release dates
* Moved dataviz features so they're ordered by date
* Update docs/sources/whatsnew/whats-new-next/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Nathan Marrs <nathanielmarrs@gmail.com>
* Added unusable transformations content
* Make note clearer
* Add release date and remove on-prem instructions
* Moved item to be in order by date and fixed heading level
---------
Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com>
* Add resultFormat to query model
* don't add row name if the result format is table
* No need special formatting since we use unified dataframes
* betterer
* specify visualization type in response
* Unit tests
* fix unit tests
* Add PUT to canvas button
* Update cue file to include PUT
* Re run make gen cue
* fix gen-cue
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* only render icons on hover
* Table: Optimization - remove plaintext cell wrapper (#76916)
* remove inner wrapper div from plain text cells
* reuse result of typeof value === 'string'
---------
Co-authored-by: Galen <galen.kistler@grafana.com>
---------
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Use context in aws DescribeRegionsWithContext
In the current way, DescribeRegions is used which doesn't allow
cancelling the request if the context changes. Using
DescribeRegionsWithContext is the preferred way.
* Fix context variable
* Revert GetRegionsWithContext to GetRegions
GetRegions is not an AWS SDK method. Hence, GetRegions should be enough
as the name change is not needed for context implementation.
expose apiserver metrics
Add a route to the apiserver metrics on a new endpoint, `/apiserver-metrics`. This requires a signed-in user but otherwise ignores the MetricsEndpoind-relating configuration. that will come in a following PR
* chore(lerna): update to latest version 7.4.1 and run lerna repair to update configs
* Wip
* chore(lerna): remove lerna specific packages field which prevents versioning packages
* chore: remove nx from dependencies
* Add proxy service template
* Replace SA srv with proxy for external SA srv
* Move service account prefix to a constant
* Prevent deletion from external service account
* Make SA validation a resusable function
* Add protection for creating service accounts
* Add protection when updating service accounts
* Add IsExternal field for service account
* Protect ext service account token generation
* Add verbose errors for form name or sa name
* add tests
* Add logs
* Adjusts tests
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* update psql config page to follow guidelines
* make small changes to mysql config page
* update shared tls config to match guidelines
* revert back to text area
* remove type assertion
* prettier
* remove unused imports
* update required fields
* add secure sox proxy to additional settings
* make additional settings collapsible
* make user permissions collapsable
* make db name and password optional
* mysql: move from alert to collapse
* WIP : Transform scene panel repeats to snapshot
* Set scoped vars correctly on repeated panel snapshot
* Row repeats snapshots
* Fix scoped vars for repeated rows
* Tests
* Fix merge
* build(npm): remove ts-loader from core and input-datasource
* build(input-datasource): update webpack config to use swc-loader
* chore(e2e): replace ts-loader with esbuild-loader
The previous version of this page I wrote with the expectation that
readers would first learn the templating language and then write
their templates. This doesn't seem to have worked out as well as I
had expected, and so I've rewritten the documentation to explain
the language using relevant and useful examples instead.
* in node graph, fix edges dataframe miscategorization
A dataframe named "edges" could end up getting categorized as a nodes dataframe if it was missing a "source" field, resulting in a very confusing error message "id field is required for nodes dataframe" instead of a more sensible error message about the missing source field.
* Fix lint
---------
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Alerting: Move `ExternalAlertmanager` to its own package
We'll avoid import cycles when using components from other packages. In addition to that, I've created an `Options` approach for the multiorg alertmanger to allow us to override how per tenant alertmanagers are created.
* switch things around
* address review comments
* fix references and warnings
* Cancel streaming queries before running new queries
* Cancel previous queries when a new query is run
* Remove redundant dependency
---------
Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
* initial commit for PromQAIL
* add feature toggle and start button
* add drawer
* set up drawer and state
* fix styles and start the conditional text display
* add data info list going to ai
* add logos and style
* metric display table style, neeed to make responsive
* make feature toggle frontend only
* add logic for want prompt for list or not, add helpers, addquerysuggestion type
* make query suggestion component
* add buttons to add or refine prompt
* refactor logic to add interactions to have multiple AI or historical interactions
* refactor and enable multiple questions, all flow
* add colorful AI icon to drawer open button
* fix linting
* refactor for hooking up promQail app and only giving one suggestion
* design fixes
* fix next prompt button styling
* historical suggestions give us 5, fixed that and some design things
* hook up the api, provide defense filler if it's down, refactor lots
* use query, fix linting
* add metadata to explain for ai suggestions
* styling fixes
* give metadata for historical suggestions by parsing query on the fly
* no prompt field to query-suggestion endpoint if prompt is empty
* fix linting
* use suggest rte for historical list, fix long code style
* use suggest rte for historical list, fix long code style
* fix historical bug
* added prompt file
* updated llm logic in explainer helper
* bump @grafana/experimental from 1.7.0 to 1.7.2
* use llmservice and vectorservice
* cleanup prompts + streaming explainer
* promqail feature toggle: fix re-order
* PromQL non-llm failback recommendation logic (#75469)
* added template recommendation logic directly in helpers
* also added selected labels to recommendation
* PromQail: query gen: fix prompt formatting and fetch metric labels to be used (#75450)
* PromQail: query gen: fix prompt formatting and fetch metric labels to be used
* Code fixes as suggested
* Use newly decided collection name for promql templates
* Prometheus: Promqail tests and bug fixes (#75852)
* add tests for drawer
* refine one prompt at a time, fix css
* scroll into view on interaction change
* fix styles for light
* disable prompt input after getting sugestions for that interaction
* make buttons disappear after selecting refine prompt or show historical queries to prevent user from clicking many times
* fix border radius
* fix new eslint rule about css requiring objects and not template literals
* add scrollIntoView for test
* grafana_prometheus_promqail_explanation_feedback - add feedback rudderstack interaction for explanation
* add form link to feedback for query suggestions
* fix bugs
* for prettier
* PromQL Builder Explainer: Added promql documentation and updated prompt (#75593)
* added promql documentation and updated prompt
* refactor prompt generation into isolated function
* updated prompt to answer with a question
* removed commented code
* updated metadata logic
* updated documentation body logic
* Prometheus: PromQAIL UI fixes (#76654)
* align buttons at 16px
* only autoscroll when an interaction has been added or the suggestions have been updated
* add 12px below explain for suggested queries
* add . after suggestion number
* fix linting error
* Prometheus: PromQAIL feedback improvements (#76711)
* align buttons at 16px
* only autoscroll when an interaction has been added or the suggestions have been updated
* add 12px below explain for suggested queries
* add . after suggestion number
* add text indication for explanation feedback
* add form for suggestion feedback, add form for not helpful explanation feedback
* fix linting error
* make radio button feedback required
* required text, padding additions, thank you for your feedback
* PromQL Builder Suggestion: Added type level templates and removed explainer steps for fallback suggestion logic (#75764)
* adding more detailed templates to promql fallback suggest
* remove debug logs
* added missing explain logic
* Fix brendan's type issue
---------
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
* make yarn.lock equal to current in main
* fix feature toggles
* fix prettier issues
---------
Co-authored-by: Edward Qian <edward.qian@grafana.com>
Co-authored-by: Yasir Ekinci <yas.ekinci@grafana.com>
Co-authored-by: Edward Qian <edward.c.qian@gmail.com>
Co-authored-by: Gerry Boland <gerboland@users.noreply.github.com>
* refactor: move expand button to front
* refactor: add grid + adjust level 2
* refactor: remove grid + fix alignment for all three levels
* refactor: first iteration alignment
* refactor: styling of MegaMenuItemIcon
* refactor: remove styling of div in MegaMenuItemIcon
* refactor: styling object
* refactor: alignment of first level
* refactor: alignment of second level
* refactor: alignment of third level and active state
* feat: add connecting line for level 3
* feat: add comment
* refactor: remove unused code
* refactor: clean up styling
* refactor: clean up styling
* refactor: clean up styling
* some small tweaks
* remove unused props from getStyles
* fix dock button position and text ellipsing
* add padding to container to prevent icon button overlapping on left side
* add active overlay
* adjust font-weight, add padding to RHS
* add border-box for overlay
* adjust menu width to 300, don't use non-integer levels
* use height: 100%
* don't think we need minWidth
* make chevrons right/down
* make url required, cut down css
* move active state to container
* remove unused class
* add padding at top and bottom of menu as well
* adjust chevron size
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Alerting: Move migration from background service run to ngalert init
sqlite database write contention between the migration's single transaction and
dashboard provisioning's frequent commits was causing the migration to
fail with SQLITE_BUSY/SQLITE_BUSY_SNAPSHOT on all retries.
This is not a new issue for sqlite+grafana, but the discrepancy between the
length of the transactions was causing it to be very consistent. In addition,
since a failed migration has implications on the assumed correctness of the
alertmanager and alert rule definition state, we cause a server shutdown on
error. This can make e2e tests as well as some high-load provisioned
sqlite installations flaky on startup.
The correct fix for this is better transaction management across various
services and is out of scope for this change as we're primarily interested in
mitigating the current bout of server failures in e2e tests when using sqlite.
* introduce data source admin role and fix frontend check
* introduce fixed roles for data source creator and team reader
* add documentation
* undo an unintended change
* Alerting: post alerts to the remote Alertmanager and fetch them
* fix broken tests
* Alerting: Add Mimir Backend image to devenv (blocks)
* add alerting as code owner for mimir_backend block
* Alerting: Use Mimir image to run integration tests for the remote Alertmanager
* skip integration test when running all tests
* skipping integration test when no Alertmanager URL is provided
* fix bad host for mimir_backend
* remove basic auth testing until we have an nginx image in our CI
* add integration tests for alerts
* fix tests
* change SendCtx -> Send, add context.Context to Send, fix CI
* add reover() for functions from the Prometheus Alertmanager HTTP client that could panic
* add TODO to implement PutAlerts in a way that mimicks what Prometheus does
* fix log format
* Change link arguments to ensure that they resolve correctly regardless of version
Presently, the links take users to "latest" even if they are in other versions of documentation.
Sometimes, the destination doesn't even exist in "latest".
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Make myself CODEOWNER so I can ensure correct linking in the future
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Apply suggestions from code review
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* add aria-describedby, tooltip role and unit tests
Co-authored-by: L-M-K-B <48948963+L-M-K-B@users.noreply.github.com>
Co-authored-by: joshhunt <josh@trtr.co>
* remove `delayShow` so tooltip text is announced correctly
* adjust IconButton, fix unit tests
* undo tooltip aria-label change
* only set aria-describedby if there's no aria-label
---------
Co-authored-by: L-M-K-B <48948963+L-M-K-B@users.noreply.github.com>
Co-authored-by: joshhunt <josh@trtr.co>
* Add undev command to the ./setup scrip of devenv
* Update devenv/setup.sh
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* include undev as usage
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Add Alerting menu in getPanelMenu
* Add translations
* Allow alert tab, heart icon in all panel types, and not show warning in DashobardPicker panels
* Fix tests
* Move alerting submenu under 'More...' item
* Move create alert menu item to More... without submenu
* Update translations
* Revert "Allow alert tab, heart icon in all panel types, and not show warning in DashobardPicker panels"
This reverts commit 225da3f60e.
* Revert allowing alert tab and health icon for all panel types
* use onCreateAlert method name in onClick instead of new function
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Move getAlertingMenuAvailability method to a /features/alerting folder and rename it to getCreateAlertInMenuAvailability
* Use onCreate direclty instead of a new method
* Make getCreateAlertInMenuAvailability to return a boolean
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Move rotate logic into its own function
* Move oauth token sync to session client
* Add user to the local cache if refresh tokens are not enabled for the provider so we can skip the check in other
requests
"Release: Updated versions in package to 10.3.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
"Release: Updated versions in package to 10.3.0"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* initial changes
* fix indent
* fix some bugs, and update fit and finish
* remove inputs
* change ms.portal to portal
* add new dashboards, fix some links and queries
* fix more links
* update the default time ranges
* prettier fix dashboards
* update log query variables with search '*'
* default the variable value to All
* missed a few spots to assume that the values of the variable are in an array
* fix queries for min and max duraation as well
* keep variables naming consistent
* fix missing parenthesis in dependencies operation query
* fix some links, change todouble instead of tollong
* feat: add cost management to admin and put adaptive metrics and log volume under it
* test: fix applinks test
* chore: fix lint error
* remove "new" from feature toggle description
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Update cue to have an AuthProvider entry
* Cable the new auth provider
* Add feature flag check to the accesscontrol service
* Fix test
* Change the structure of externalServiceRegistration (#76673)
* Implement RGM pipeline parity between editions
* Use grafana/grafana-build:dev-11c8a20
* Use grafana/grafana-build:dev-261c863
* Use grafana/grafana-build:dev-2db3b18
* Switch nightly trigger for testing purposes
* Use grafana-dev api key for testing
* Use grafana/grafana-build:dev-d4d2e26
* Use grafana-dev api key
* Use production variables
* Revert nightly trigger to cron
* Add teamHeaders for datasource proxy requests
* adds validation for the teamHeaders
* added tests for applying teamHeaders
* remove previous implementation
* validation for header values being set to authproxy
* removed unnecessary checks
* newline
* Add middleware for injecting headers on the data source backend
* renamed feature toggle
* Get user teams from context
* Fix feature toggle name
* added test for validation of the auth headers and fixed evaluation to cover headers
* renaming of teamHeaders to teamHTTPHeaders
* use of header set for non-existing header and add for existing headers
* moves types into datasources
* fixed unchecked errors
* Refactor
* Add tests for data model
* Update pkg/api/datasources.go
Co-authored-by: Victor Cinaglia <victor@grafana.com>
* Update pkg/api/datasources.go
Co-authored-by: Victor Cinaglia <victor@grafana.com>
---------
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Victor Cinaglia <victor@grafana.com>
* Alerting: Use Mimir image to run integration tests for the remote Alertmanager
* skip integration test when running all tests
* skipping integration test when no Alertmanager URL is provided
* fix bad host for mimir_backend
* remove basic auth testing until we have an nginx image in our CI
* adds information about __data.fields[0] which has replaced previously used __value.raw for getting both name and value of data
* my prettier ain't working correctly
* Update docs/sources/panels-visualizations/configure-data-links/index.md
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* lint
* Update docs/sources/panels-visualizations/configure-data-links/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/panels-visualizations/configure-data-links/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/panels-visualizations/configure-data-links/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* note: tooltip mode affects __value.raw
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Reduce flakiness of e2e tests caused by write contention in sqlite
Write contention in sqlite on startup intermittently causes failed tests because
of failed service runs. This can have various root causes, one example is
dashboard provisioning:
Dashboard provisioning's frequent commits can cause other read transaction
snapshots to invalidate and throw SQLITE_BUSY/SQLITE_BUSY_SNAPSHOT. If those
failing transactions have a long length but not long enough to ensure all of
the dashboards have finished provisioning it will run out of retries and fail
entirely.
This change helps indirectly reduce these write contentions by limiting the
connection pool for e2e tests.
As a bonus, having our e2e tests run using `max_open_conn = 2` means it acts
as a guard against regressions that would affect certain internal instances
that run with these settings.
* update with sdk
* do sql
* fix core plugins
* fix proxy settings
* bump SDK version
* tidy
* enable pdc for test
* add codeowners
* bump dep
* go mod tidy
* bump SDK
* docs: fix minor inaccuracies
- give content on the type of data that needs persistence
- Use more precise terminology
- persistent storage != Docker volumes
- filesystem changes remains in a stopped container
and only discard when container removed
- 'directory' is more accurate than 'folder'
- fix typo: `grafana_data` should be `grafana-storage`
* docs: fix grammar and use 'directory' consistently
* docs: replace 'sqlite3' with 'SQLite version 3'
* Replace FixedRoleUID function with a common function to generate these prefixes
* Use common function to generate prefixed uid for external service accounts
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
---------
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
* Remove legacy form from LokiQuerySettings
With this commit, legacy form components are remvoed from loki query
settings page. Form is now using InlineField instead.
* Fix the width of loki predefined ops input
* Fix the width of loki predefined ops input
* Fix type in loki query component input field
* Added content outline to what's new
* Fixed formatting
* add docs link
* Added version syntax
* Added page anchor and removed text reference to page section
---------
Co-authored-by: harisrozajac <haris.rozajac12@gmail.com>
fetch fresh permissions for global in AuthorizeInOrgMiddleware
Update pkg/services/accesscontrol/authorize_in_org_test.go
do not load viewer permissions in global ID
* Added public dashboards content
* Updated Loom link
* Added back old Loom embed to help troubleshoot new embed
* Add video
* Added video embed shortcode
* Fixed embed code
* update data migration to update rows that have changes
* fix migration for sqlite
* remove id; fix postgres
* Fix for MySQL
* delete old items from folder table
* change integer to boolean
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Add images
* Basic button functionality; TODO placeholders for dispatching contentOutlineToggle and rendering content outline component
* Basic content outline container
* Content outline toggles
* Remove icon files from explore
* Scroll into view v1
* outline that reflect's explore's order of vizs
* Update icon name
* Add scrollId to PanelChrome; scrolling enabled for Table
* Add queries icon
* Improve scroll behavior in split view
* Add wrapper so the sticky navigation doesn't scroll when on the bottom of the window
* Fix the issue with logs gap; center icons
* Memoize register and unregister functions; adjust content height
* Make displayOrderId optional
* Use Node API for finding position of panels in content outline; add tooltip
* Dock content outline in expanded mode; at tooltip to toggle button
* Handle content outline visibility from Explore and not redux; pass outlineItems as a prop
* Fix ContentOutline test
* Add interaction tracking
* Add padding to fix test
* Replace string literals with objects for styles
* Update event reporting payloads
* Custom content outline button; content outline container improvements
* Add aria-expanded to content outline button in ExploreToolbar
* Fix vertical and horizontal scrolling
* Add aria-controls
* Remove unneccessary css since ExploreToolbar is sticky
* Update feature toggles; Fix typos
* Make content outline button more prominent in split mode; add padding to content outline items;
* Diego's UX updates
* WIP: some scroll fixes
* Fix test and type error
* Add id to ContentOutline to differentiate in split mode
* No default exports
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Stub types
* Update applicator
* Type and functionality updates
* Format time applicator
* Group by applicator
* Groupy to matrix applicator
* Use applicability levels
* Add organize fields applicator
* Add applicator to heatmap
* Add disabled icons
* Update presentation
* Prettier
* Why run prettier once when you can do it twice?
* Update presentation
* Prettier
* Update presentation
* Prefer object syntax
* Betterer and Prettier
* Fix issue getting current labels that would only grab values to the left of the cursor
* Loki: Fix Autocomplete in stream selector overwriting existing label names, or inserting autocomplete result within label value (#76485)
* Better autocomplete functionality in loki, changing the word pattern to include label value separator (=), include valid sting chars (-), and value wrapper ("), adding some more logic in the range calculation to prevent autocomplete results from partially overwriting adjacent label names or portions of the current label value
* Use apache/arrow v13
* remove apache/thrift
* go mod tidy with go1.21.1
* add metrics team as owner
---------
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Dashboard: Fixes save changes diff after first save
* Lots of type issues
* better fix
* Update some more places to use new function
* Fix
* Update
* Update
* remove console.log
* Update
* Fixed so we will return default timeZone to extensions if empty is provided.
* Update public/app/features/dashboard/utils/getPanelMenu.test.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Added spans to trace.go
* Added spans to search_stream.go
* Added spans to parca datasource
* Added spans for pyroscope
* Fix tests
* Fix another test
* Lint
* Revert "Fix another test"
This reverts commit a1639049e3.
* Use grafana-sdk-go tracing
* moved themecontext to data
* chore(grafana-ui): re-export ThemeContext from grafana/data for backwards compatibility
* Moved icon bundling to core.
* feat(plugins): share react-inlinesvg with plugins for grafana/ui bundling
* chore(codeowners): add generate-icon-bundle.js to file
* chore(storybook): update path to iconBundle file for theme
* feat(plugins): share i18n dependency via systemjs
* Make sure that icon bundle is initialized for tests.
* Removed comment.
* added tests for icon root.
* Removing the need of having an init variable.
* feat(grafana-ui): add icon svgs to bundle for projects that don't rely on grafana
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Add role mapping support for Google OIDC
* Added note about entry already being in on-prem
* Add line
* Fixed version syntax
* Fixed typo
* Removed index.md from link
* Added release date
* Fix migration of custom dashboard permissions
Dashboard alert permissions were determined by both its dashboard and
folder scoped permissions, while UA alert rules only have folder
scoped permissions.
This means, when migrating an alert, we'll need to decide if the parent folder
is a correct location for the newly created alert rule so that users, teams,
and org roles have the same access to it as they did in legacy.
To do this, we translate both the folder and dashboard resource
permissions to two sets of SetResourcePermissionCommands. Each of these
encapsulates a mapping of all:
OrgRoles -> Viewer/Editor/Admin
Teams -> Viewer/Editor/Admin
Users -> Viewer/Editor/Admin
When the dashboard permissions (including those inherited from the parent
folder) differ from the parent folder permissions alone, we need to create a
new folder to represent the access-level of the legacy dashboard.
Compromises:
When determining the SetResourcePermissionCommands we only take into account
managed and basic roles. Fixed and custom roles introduce significant complexity
and synchronicity hurdles. Instead, we log a warning they had the potential to
override the newly created folder permissions.
Also, we don't attempt to reconcile datasource permissions that were
not necessary in legacy alerting. Users without access to the necessary
datasources to edit an alert rule will need to obtain said access separate from
the migration.
Remove legacy form from InfluxConfigEditor
With this commit, legacy form components are remvoed from influxdb
config eidtor page. Form is now using FieldSet instead.
There is a sentence in the [Built-in query](https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/#built-in-query) section of the page that could use a "the" (emphasis added by me 😄) :
> When you copy a dashboard using the Save As feature it will get a new dashboard id, **so annotations created on source dashboard** will no longer be visible on the copy. You can still show them if you add a new Annotation Query and filter by tags. However, this only works if the annotations on the source dashboard had tags to filter by.
This PR adds "the" so the phrase reads "so annotations created on the source dashboard"
* Manage service account secrets
* Wip
* WIP
* WIP
* Revert to keep a light interface
* Implement SaveExternalService
* Remove unecessary functions from the interface
* Remove unused field
* Better log
* Leave ext svc credentials out of the extsvcauth package for now
* Remove todo
* Add tests to SaveExternalService
* Test that secret has been removed from store
* Lint
* Nit.
* Rename commands and structs
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* Account for PR feedback
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Linting
* Add nosec comment G101 - this is not a hardcoded secret
* Lowercase kvStoreType
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Update @testing-library/dom to v9.3.3
* Update @testing-library/dom to v9.3.3 in packages
* Update yarn.lock
* Revert "Update yarn.lock"
This reverts commit 0cc2084273.
* point all @testing-library/dom packages to v9.3.3
* Add context to editor so field calculation does not return undefined variable and shows on next transform
* fix bug where default alias would get interpolated
* Update origin annotation names
k8s does not support annotation names with multiple slashes in them, so this PR updates the origin annotations to match the format for updated and created annotations.
* fix tests
This PR replaces the vendored models in the migration with their equivalent ngalert models. It also replaces the raw SQL selects and inserts with service calls.
It also fills in some gaps in the testing suite around:
- Migration of alert rules: verifying that the actual data model (queries, conditions) are correct 9a7cfa9
- Secure settings migration: verifying that secure fields remain encrypted for all available notifiers and certain fields migrate from plain text to encrypted secure settings correctly e7d3993
Replacing the checks for custom dashboard ACLs will be replaced in a separate targeted PR as it will be complex enough alone.
* Canvas: Button API - Block Calls to Grafana
* Move origin check inside of api logic
* Change grafana url source from href to origin
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Move errors to error file
* Move check for both empty username and email to user service
* Move check for empty email and username to user service Update
* Wrap inner error
* Set username in test
* Add option to calculate min max per field
* Fix eslint warnings
* Add back hideFromDefaults that went missing
* whitespace
* Add tests
* Refactor range calculation
* Rename localMinMax -> fieldMinMax
* Remove the lint exceptions
Removing these as to not hide these once we get around to fixing the
underlying typing issue.
* Update docs
* support google oauth allowed_groups. unify allowed groups logic
* add role mapping for google oauth
* add documentation
* add addendums
* remove extra isGroupMember
* add to sample ini
* Apply suggestions from code review
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* improved the sentence to make it clear for entering admin in both the username and password
* Update docs/sources/getting-started/build-first-dashboard.md
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* extend threshold command with second evaluator called `unloadEvaluator`
* Introduce a new expression command Hysteresis and update Threshold unmarshaller to create the HysteresisCommand if the second eval
* add feature flag `recoveryThreshold`
* update unmarshal threshold command to not re-marshall because it breaks frame definition by shuffling the schema and data fields
* Create a state for dockedMegaMenu and the function to manage it
* Add the dockedMenu icon and handle the status when clicking it
* Add Megamenu to section nav area when it is docked
* get logic working
* fix mobile
* refactor state + persist in localStorage
* adjust icon and don't use position absolute
* restore old rudderstack tracking
* use Flex instead
* adjust feature toggle to be experimental
* extract out localStorage handling into utils
* don't need separate file
* use store.set/get instead
---------
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
* Sandbox: initial dummy datasource plugin for e2e
* WIP: tests
* Add metrics to plugin.json so it shows up in explore
* Fix false positives in frontend-sandbox-datasource.spec.ts
* Change typed name to be static
* Add code to delete the datasource after tests are complete
* Add fail on status code
* Update tests for more config
* Replace visit with existing page
* Delete cleanup code
* Don't show error when editor is empty
* Added multi-line support for error markers
* Fixed bug where new lines weren't being counted as characters
* Take startLine and endLine into account in column calculations
* Fix
* IDForwarding: change audience to be prefixed by org and remove JTI
* IDForwarding: Construct new signer each time we want to sign a token.
* SigningKeys: Simplify storage layer and move logic to service
* SigningKeys: Add private key to local cache
* Extract code to manage service accounts
* Add test with client credentials grants
* Fix test with the changed interface
* Wire
* Fix HandleTokenRequest
* Add tests to extsvcaccounts
* Rename Retrieve function
* Document the interface
* Use production gcom api for nightly builds
* Use production package repositories
* Remove unused confusing env variable
* Comment out previous gcom nightly pipeline
* Remove unused grafana-com-nightly pipeline
* Remove unused import from cron.star
* Unfurl OrgRole in pkg/api to allow using identity.Requester interface
* Unfurl Email in pkg/api to allow using identity.Requester interface
* Update UserID in pkg/api to allow using identity.Requester interface
* fix authed test
* fix datasource tests
* guard login
* fix preferences anon testing
* fix anonymous index rendering
* do not error with user id 0
* Only call preventDefault if it exists
* Change "View Traces" link to use traceQLSearch instead of the deprecated nativeSearch
* Thank you again test. Update tests
* Update test
* Update betterer
* Type fix
* Small type change
* Update betterer
* Loki completion: add more context to comments
* Improve grammar of comment
* Completions: expand on parser-offering part
* Update public/app/plugins/datasource/loki/components/monaco-query-field/monaco-completion-provider/completions.ts
* Formatting
* clean up legacy access control code for teams
* remove editorsCanAdmin config from the frontend
* add editorsCanAdmin config option back for the frontend
* Update _index.md
* Update _index.md
Run through Prettier
* Update _index.md
ran Prettier again
* Prettier
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>
* update storage's method InstertRules to return ids of added rules as slice to keep the same order as rules in the argument
* schematize response of update rule group endpoint, add created, updated, deleted fields that contain UID of affected rules.
* update integration tests to use the new fields
* display datasource information under each section
* Minor - change legend to multi in some panels that were missing it
* Don't show ds info to grafana sections
* Remove unused classname
* Remove unused import
* Fix pickers styling by placing it to the right
* Logfmt autocompletion: better handling of trailing commas
* Situation: refactor getSituation and getErrorNode
Looking for simplicity, removing redundancy, and looking for a more accurate node resolution
* Autocompletion: refactor logfmt and top level
* Update tests
* Autocompletion: better handling of trailing characters
* Completions: Update data to type changes
* Update log query in test situation
* Format code
* Autocomplete: support offering partial labels
* Completion: expand test cases
* Add unary operations to add field from calc transform
* Refactor layout to use new UI components. fix 'as' type assertions
* rename exp
* more docs
* fix docs
* feat: added markup for data source picker title
* feat: added markup for builtin data source list
* feat: added markup for datasource list
* chore: generated markup files
* feat: added markup for new data source button
* chore: generated markup files
* fix: fixed prefix names
* chore: updated markup files
* fix: removed extra spaces
* test mimir image drone
* add mimir service to services.star
* change name for mimir step
* change remote alertmanager step names, add commands for integration tests
* add tag to mimir image
* OnGoing
* Continue migrating structure
* Comment
* Add intermediary service
* Remove unused error so far
* no need for fmt use errors
* use RoleNone
* Docs
* Fix test
* Accounting for review feedback
* Rename oauthserver.ExternalService to OAuthClient
* Revert as the interface looks weird
* Update pluginintegration
* Rename oauthserver.ExternalService
* closer to what it was before
* Geomap: Add Symbol Anchor Options
* Update displacement for svg case
* For square and x, account for 45 degree offset
* Simplify displacement function
* Remove unused todo
* Update test defaults to include anchor
* Add missing anchor default to tests
* Move displacement function into utils and add test
* Simplify anchor position options UX
* Change verbage to alignment and swap direction
* Include missing alignment rename
* Update tests
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* After the first auto-generate, the button changes to improve
* When clicking "improve" a toggletip appears with different ways to interact with the model to refine the result
* Analytics: Add analytics to history
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* trying to remove tracing
* trying to remove tracing
* use plugin sdk tracing
* tracing is not init
* add infra tracing back
* remove infra trace
* Update pkg/tsdb/azuremonitor/metrics/azuremonitor-datasource.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* pr feedback
* remove code from other pr
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Fix legend for grafana missed iterations panel
* Change panel titles capitalization
* Change tooltip mode to "multi" for timeseries panels
* Add panel tooltips
* Change colors of series (red for firing, blue for neutral)
* Remove unneeded import
* Change panel title and firing alert colors
* Change constant timeseries panels to stat
* Avoid showing legend in panels with just one metric
* Add eval duration / interval ratio panel
* Fix legend
* Fix lint
* Rename panel titles
* Make firing instances table entries have link styling
* Fix betterer
* Add section subheaders
* Override colors and tooltip mode
* Address latest feedback
* Rename table to reflect we're showing rules data and not instances
* Rework most fired rules panel to show numbers instead of trend
* Improve legends and colors
* Fix most fired rules panel
* Missed Iterations: Override legend to display it in a more user friendly way
* Change tab names
* Position grafana-managed scenes under collapsible row
* Show breakdown of alert instances state panels
* Addressing UX feedback
- Making stat panels display area
- Change layout for grafana-managed panels
- Refactor Duration/Interval ratio scene (make calculation directly in PromQL)
* set no value as 0 in stats panels
* Refactor color overriding to use a common function
* fix missing legend for status panels (needed to override color)
* Fix legends for Grafana alertmanager Notifications scene
* Add nightly prerelease builds
* Fix duplicated pipeline names
* Fix misnamed dependencies
* Fix misnamed dependencies
* Fix string formatting
* Add option to specify bucket to RGM pipeline
* Fix trigger?
* Comment out cron triggers
* Fix windows bucket for nightly
* Fix versioning for windows and verify pipelines
* Use grafana/grafana-build:dev-209553c
* Fix version on windows steps
* Fix version on windows steps
* Fix windows .zip path
* Fix windows .zip path
* Remove windows builds from nightly for now
* Remove verify release pipeline from nightly
* Add docstring to rgm_release
* Revert changes to get_windows_steps
* Simplify changes to rgm.star
* Use grafana/grafana-build:dev-f5a15d4
* Add rgm copy step
* Use grafana/grafana-build:dev-d88be0f
* Fix destination variable
* Escape copy destination environment variable
* Add -r flag to rgm copy command
* Add dependency to rgm-copy step
* Add dist volume
* Use absolute path for dist volume
* Move dist folder to drone workspace
* Delegate drone workspace path to grafana-build
* Use grafana/grafana-build:dev-66149b8
* Lower folder depth
* Use grafana/grafana-build:dev-7355791
* Add rgm-nightly-publish pipeline
* Merge imports on rgm.star
* Fix rgm_copy to allow copying to local destination
* Use grafana/grafana-build:dev-36ec1e2
* Use grafana/grafana-build:dev-634d8dc
* Use grafana/grafana-build:dev-7a93728
* Use grafana/grafana-build:dev-5e36725
* Use grafana/grafana-build:dev-f5ebe1f
* Fix copy source for nightly builds
* Fix drone build number on rgm-copy step
* Use grafana/grafana-build:dev-637583f
* Use grafana/grafana-build:dev-f2cc524
* Allow tag trigger on grafana/grafana for testing
* Use grafana/grafana-build:dev-c71d4b7
* Use grafana/grafana-build:dev-63beac8
* Use grafana/grafana-build:dev-224a0dd
* Add environment variables for package publishing
* Revert unintentional change to dataquery.cue
* Add package publish step to nightly pipeline
* Use GCS path for package publish
* Pre-evaluate drone workspace on packages path
* Use hardcoded drone workspace path
* Remove unused env from publish packages step
* Use grafana/grafana-build:dev-657ea6a
* Use grafana/grafana-build:dev-1a9beec
* Use grafana/grafana-build:dev-f0053c8
* Use grafana/grafana-build:main
* Use grafana/grafana-build:dev-ae5182f
* Use grafana/grafana-build:dev-ec3ec36
* Use grafana/grafana-build:dev-5e160d8
* Use grafana/grafana-build:dev-142d2dc
* Use grafana/grafana-build:dev-db6bff1
* Use grafana/grafana-build:main
* Change nightly trigger to cron
* Use double quotes instead of backticks
* render time field as datetime
* add @react-awesome-query-builder/core
* Add time range filtering
* Update test
* Update macro test
* variables for filterforvalue
* use datalinkinput for basic matcher
* fix user select issue
* heatmap transformation variable interpolation
* clean code
* interpolate sort by
* add options interpolation in histogram transformation
* interpolation for limit
* Add suggestions UI to Filter by data value Transformation
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
* add validation for number/variable fields
* Add variables to add field from calculation
* Add validator to limit transformation
* Refactor validator
* Refactor suggestionInput styles
* Add variable support in heatmap calculate options to be in sync with tranform
* Refactor SuggestionsInput
* Fix histogram, limit and filter by value matchers
* clean up weird state ref
* Only interpolate when the feature toggle is set
* Add feature toggle to ui
* Fix number of variable test
* Fix issue with characters typed after opening suggestions still remains after selecting a suggestion
* Clean up from review
* Add more tests for numberOrVariableValidator
---------
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* remove local graf templateSrv and use @grafana/runtime
* tests broken still 0.0
* wip
* moving around tests and fixing
* template var test using mocking and stuff
* AM ds tests fixed
* fix filter tests
* all tests work
* remove comment
* Update azure_log_analytics_datasource.ts
* remove deferred util - not used
* mock instead of spying
* not calling getTemplateSrv each time
* pass range down to filter instead of doing werid stuff
* use default time range if no time range
* prettierer
* remove note
* Show color of row as a border under the row. Hide service name for sequential spans
* Increase default span name column width. Smaller font for service and span names in span list
* New background color on spans. Fixed hover of indent markers
* Service name and span name style tweaks
* Collapse hidden levels
* Fixed test
* Small tweak to Buffer size to make sure tests pass
* Trigger runs
* Update betterer results
* Address comment
* Style tweaks
* Remove duplicated code
* Rollback change to join <span> since they are needed for the tests
* feat: display the deprecation context for a plugin if it is available
* Update public/app/features/plugins/admin/components/PluginDetailsDeprecatedWarning.tsx
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* feat: only extend the basic message with custom context
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* signing key wip
use db keyset storage
add signing_key table
add testing for key storage
add ES256 key tests
Remove caching and implement UpdateOrCreate
Stabilize interfaces
* Encrypt private keys
* Fixup signer
* Fixup ext_jwt
* Add GetOrCreatePrivate with automatic key rotation
* use GetOrCreate for ext_jwt
* use GetOrCreate in id
* catch invalid block type
* fix broken test
* remove key generator
* reduce public interface of signing service
* Start adding correlations editor mode
* Add selector for merge conflict resolution
* Enable saving
* Build out new corelation helper component
* flesh out save with label/description, change color
* Have breadcrumb exit correlation editor mode
* Add extension property to show/hide, use it for correlations
* Bring in feature toggle
* Remove unnecessary param
* Cleanup
* Parse logs json
* Work on correlation edit mode bar
* Tinker with a top element for the editor mode
* Handle various explore state changes with correlations editor mode
* WIP - add unsaved changes modal
* Have correlation bar always rendered, sometimes hidden
* Add various prompt modals
* Clear correlations data on mode bar unmount, only use not left pane changes to count as dirty
* Move special logic to explore
* Remove all shouldShow logic from plugin extensions
* remove grafana data changes
* WIP - clean up correlations state
* Interpolate data before sending to onclick
* Override outline button coloring to account for dark background
* More cleanup, more color tweaking
* Prettier formatting, change state to refer to editor
* Fix tests
* More state change tweaks
* ensure correlation save ability, change correlation editor state vars
* fix import
* Remove independent selector for editorMode, work close pane into editor exit flow
* Add change datasource post action
* Clean up based on PR feedback, handle closing left panel with helper better
* Remove breadcrumb additions, add section and better ID to cmd palette action
* Interpolate query results if it is ran with a helper with vars
* Pass the datasource query along with the correlate link to ensure the datasource unique ID requirement passes
* Use different onmount function to capture state of panes at time of close instead of time of mount
* Fix node graph’s datalink not working
* Actually commit the fix to saving
* Fix saving correlations with mixed datasource to use the first query correlation UID
* Add tracking
* Use query datasources in mixed scenario, move exit tracking to click handler
* Add correlations to a place where both can be used in the correlations editor
* Be more selective on when we await the datasource get
* Fix CSS to use objects
* Update betterer
* Add test around new decorator functionality
* Add tests for decorate with correlations
* Some reorganization and a few tweaks based on feedback
* Move dirty state change to state function and out of component
* Change the verbiage around a little
* Various suggestions from Gio
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* More small Gio-related tweaks
* Tie helper data to datasource - clear it out when the datasource changes
* Missed another Gio tweak
* Fix linter error
* Only clear helper data on left pane changes
* Add height offset for correlation editor bar so it doesn’t scroll off page
---------
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* feat: i18n dashboard settings
* run i18n extract
* rename titles and use vars
* json editor title
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* feat(plugins): allow filtering of plugin errors by plugin type
* refactor(plugins): migrate PluginsErrorsInfo component to use Alert component
* chore(plugins): remove redundant d3 import
* feat(datasources): filter plugin errors by plugin type
* refactor(plugins): pass plugin.type from selector rather than guess from pluginId
* refactor(plugins): move filtering to selector
* Extend support for variables in filter by name
* Simlpify help and include variable support
* Simplify regexp
* Remove id that was left from an erlier implementation attempt
* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Improve variable name and fix react warning
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* tidy up some styles
* remove NavBarMenuItemWrapper + consolidate components
* lots of renaming
* use object syntax in FeatureHighlight
* fix a couple of missing find+replace
* adjust li positioning
* fix text truncation
* bit more tidy up
* refactor indent into it's own component
* memoize styles in Indent
This is necessary to allow version inference in CI builds.
Shortcodes like `docs/reference` and `docs/shared` use version inference to avoid the writer having to hardcode specific versions or use relative paths within the documentation set.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add functions to detect build edition and env
* Prevent showing insights for OSS
* Use common functions for Declare Incident button
* Address review comments
* extend RuleStore interface to get namespace by UID
* add new export API endpoints
* implement request handlers
* update authorization and wire handlers to paths
* add folder error matchers to errorToResponse
* add tests for export methods
* Alerting: Expose metrics for Alertmanager Alerts
In Grafana, the alert evaluation and alert delivery are combined. We're always used a metric named `grafana_alerting_alerts` to get a sense of what are the alerts that are currently firing (these come from the evaluation side) and opted to not map the alertmanager alerts metric directly.
I think it's important that we make a disction between alerts that happen at evaluation vs alerts that are received for delivery by the internal Alertmanager as we have options to skip the delivery of these alerts to the internal alertmanager altogether.
* Migrate old alerting templates to use $labels
* Fix imports
* Add test coverage and separate rewriting to Go templates
* Fix lint
* Check for additional closing braces
* Add logging of invalid message templates
* Fix tests
* Small fixes
* Update comments
* Panic on empty token
* Use logtest.Fake
* Fix lint
* Allow for spaces in variable names by not tokenizing spaces
* Add template function to deduplicate Labels in a Value map
* Fix behavior of mapLookupString
* Reference deduplicated labels in migrated message template
* Fix behavior of deduplicateLabelsFunc
* Don't create variable for parent logger
* Add more tests for deduplicateLabelsFunc
* Remove unused function
* Apply suggestions from code review
Co-authored by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* Give label val merge function better name
* Extract template migration and escape literal tokens
* Consolidate + simplify template migration
---------
Co-authored-by: William Wernert <william.wernert@grafana.com>
* Error handling for the hook to expose `error` as part of the state
* Monitor errors at the hook level to catch common OpenAI issues
* Allow retry when the request fails
* Optimize onGenerate number of calls
* Re-enable component tests
* Alerting: Manage remote Alertmanager silences
* fix typo
* check errors when encoding json in fake external AM
* take path from configured URL, check for nil responses
* Replace use of `relref` shortcode with `docs/reference` so links work in Grafana Cloud
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Link to Grafana Cloud content
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Details in https://github.com/grafana/website/pull/15518.
This canonical should never be used.
This page is the only consistent page that exists in Grafana Cloud documentation but not in "latest" Grafana open source documentation.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Publish documentation from the HEAD of the matching version branch on tag events
Tags aren't necessarily made to the HEAD of the version branch.
The documentation that should be published is always on the HEAD of the version branch.
This is another mismatch between the code and documentation but is desirable as the "What's new" documentation is typically added much later than commit the tag targets.
Technically it would be more correct for the "What's new" documentation to be in place before the commit that is tagged.
However, the significant lag between the start of a release and the actual publishing of the tag would be challenging to codify in this action's logic.
It would also require a side channel for non-code related documentation updates to be made to the docs released by the tag.
This would likely require a long lived branch to be created at the tag commit and I'm not sure that the additional work is justified.
In practice, I think we can get away with publishing more recent documentation than the code given the assumption that no significant feature is going to be absent from the initial major/minor release.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Switch to detached remote branch reference
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Plugins: Add client middlware that forwards the signed grafana id token if present
* DsProxy: Set grafana id header if id token exists
* Add util function to apply id token to header
* Only add id forwarding middleware if feature toggle is enabled
* Add feature toggles to ds proxy and check if id forwarding is enabled
* Clean up test setup
* Change to use backend.ForwardHTTPHeaders interface
* PluginProxy: Forward signed identity when feature toggle is enabled
* PluginProxy: forrward signed id header
* Replaced legends shared content with text
* Copy and structuring edits
* Removed redundant link
* Prettier
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>
* added the feature parity table to our iam strategy
* wip
* updated the table with current features
* added better formatting for explanations
* change emoji to words
* sample of new table approach
* changing the name from unsupported to N/A
* add describtion of N/A and remove warning
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* throw error when converting into visual query when parser detects that an aggregation expression node contains a function that contains a binary expression to detect queries that are ambiguously parsed
* Teams: Implement backend sorting
* Add docs
* Make name ordering case insensitive
* lint
* Fix no lowercasing on memberCount
* Add test to double check the filters or correctly OrderBy
* DataSourceAPI: Add adhoc filters to DataQueryRequest and some methods to make it not depend on global templateSrv
* Minor tweaks/fixes
* Renamed to filters
* Fix test
* Log deprecation warning
* I give up
* Initial POC for modified rule expor
* Add rule and group export options to modified export
* Add feature toggle for modifier export
* Rename GrafanaRuleDesigner to ModifyExportRuleForm to identify it easily as a rule form
* Refactor naming and folder for RuleDesigner => ModifyExport
* Don't render more action drop-down button when no more actions are allowed
* Redirect cancel button to alert list view
* Fix modify export page being reloaded correctly without errors
* Fix test
* Protect modify-export route when toggle-feature is not enabled
* Fix css betterer error
* Address pr review coments
---------
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
* Remove second "Legend values" heading
I'm not honestly sure if this is the correct choice but there are two "Legend values" in the current document because the shared page "visualizations/legend-mode.md" has that heading.
I'm assuming because of the use of the shared page, that the information there is preferred.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Prefer alternative text
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* User: Add sort option to user search
* Switch to an approach that uses the dashboard search options
* Cable user sort on the org endpoint
* Alias user table with u in org store
* Add test and cover orgs/:orgID/users/search endpoint
* Add test to userimpl store
* Simplify the store_test with sortopts.ParseSortQueryParam
* Account for PR feedback
* Positive check
* Update docs
* Update docs
* Switch to ErrOrFallback
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* AuthN: Move identity struct to its own file
* IDForwarding: Add IDToken property to usr and identity structs and add GetIDToken to requester interface
* Inject IDService into background services
* IDForwarding: Register post auth hook when feature toggle is enabled
* spelling in error message
* imguploader: fix template for webdav url
Since a few years ago, when loading the config file, the template gets replaced in the expanding
env var phase (see ##25075) and introduced a bug in the webdav public_url config option. This commit
changes the template syntax to be {{file}}. This doesn't get expanded and removed when the config file
is loaded.
* devenv: add a block for a WebDAV server
* Adding alerting as codeowners for webdav
---------
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* Alerting docs: fixes next and latest link errors
* fixes bracket
* more link fixes
* fixes numbering
* prettier
* Fix build errors, a broken link, and use more appropriate destination for Grafana Cloud OnCall links
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* fixes for jacks feedback
* fixes note
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update set-up-for-high-availability.md
Added a note to Enforce the need to setup separately the Alerting HA, as some customers keep opening tickets complaining about duplicate alerts when setting up Grafana HA.
* Update set-up-for-high-availability.md
Corrected note (alerts instead of wueries)
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Add comments to indicate which page I believe each alias is intending to redirect
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove difference-old-new redirect from migrating-alerts page since an alternative page exists
The alternative page is `docs/sources/alerting/difference-old-new.md`.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add comment to show intended absolute path redirect
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove `unified-alerting/difference-old-new/` redirect because it already exists in `docs/sources/alerting/difference-old-new.md`.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove `unified-alerting/` alias since the absolute URL already redirects to `/docs/grafana/latest/alerting/`
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix `/docs/grafana/<GRAFANA VERSION>/alerting/migrating-alerts/` redirect
The following example uses `latest` as _`GRAFANA VERSION`_ for simplicity and readability.
The desire is the following redirect:
```
src: /docs/grafana/latest/alerting/migrating-alerts/
dst: /docs/grafana/latest/alerting/set-up/migrating-alerts/
```
`dst` is the Hugo pretty URL for the current page (`docs/sources/alerting/set-up/migrating-alerts/_index.md`).
When constructing Hugo aliases we are working from the page's containing directory and not the page itself.
The path element `.` represents that directory.
For example:
```
page: /docs/grafana/latest/alerting/set-up/migrating-alerts/
alias: ./
dst: /docs/grafana/latest/alerting/set-up/
```
The path element `..` represents the parent directory of the page's containing directory.
For example:
```
page: /docs/grafana/latest/alerting/set-up/migrating-alerts/
alias: ../
dst: /docs/grafana/latest/alerting/
```
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add initial e2e tests for sandboxing
* Add tests for sandbox on
* Add additional sandbox tests
* Move sandbox into various suite
* Test drone setup
* Move variable
* Update drone
* Update plugins path for e2e
* Revert drone changes
* use drone from main
* Use lib.star from main
* Move sandbox test to its own suite
* Expand methods to inject iframes
* Restore e2e script
* Add back change to script
* Update tests for trusted types
* Integrate custom plugins into grafana-server
* Echo for deubging
* add debugging message
* Expand message
* Add extra for ci
* fix path
* Improve start-server logic
* Remove duplicated logic
* Restore file deleted by mistake
* Restore file to main
p
* restore file
* Restore start script
* Update e2e/panels-suite/frontend-sandbox-panel.spec.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* flag vector aggregations containing metric expressions (i.e.`(...)`) containing binary operation expressions with ambiguous error in the UI when switching between code and visual query builders.
Fix unexpected error when creating a new cloudwatch datasource.
Involves a fair amount of refactoring, so if this causes unexpected issues related to region fetching we can turn this off with the cloudwatchNewRegionsHandler feature toggle, although we do not predict it will so we are enabling it to default to true and hope to remove it shortly.
* show row index as percentage in add field from calc transform
* prettier
* add test + modify docs
* show quantile and add percentage unit default. add explanatory tooltip and docs
* fix test
* set unit percent only on quantile mode
* Change naming to percentile
* Rename to As Percentile
* docs mods
* remove API tagging method and authed tagging
* add anonstore
move debug to after cache
change test order
fix issue where mysql trims to second
* add old device cleanup
lint
utc-ize everything
trim whitespace
* remove dangling setting
* Add delete devices
* Move anonymous authnclient to anonimpl
* Add simple post login hook
* move registration of Background Service
cleanup
* add updated_at index
* do not untag device if login err
* add delete device integration test
* Alerting: Don't use a separate collection system for metrics
The state package had a metric collection system that ran every 15s updating the values of the metrics - there is a common pattern for this in the Prometheus ecosystem called "collectors".
I have removed the behaviour of using a time-based interval to "set" the metrics in favour of a set of functions as the "value" that get called at scrape time.
* Following similar changes made to prometheus in #47198, reverse the order of binary operator parameter array, and fix bugs introduced by importing prometheus lezer constants into loki parser
* add unit test asserting buildVisualQueryFromString does not properly parse queries with nested binary operations
* fix onOrIgnoring parsing logic which was always stripping out the value of the matcher when a boolean was found
* style(betterer): add emotion/syntax-preference to betterer rules
* chore(betterer): refresh betterer.results for addition of emotion/syntax-preference
* WIP Dashboard to Scenes: Annotations
* Bump scenes
* Enable annotations and controls
* Betterer
* Update snapshots
* Test fix
* DashboardScene: Prepare annotations support for public dashboards
* Use latest scenes
* issue loki queries in parallel so total query time is only the slowest query rather than the sum of all query times.
* Fix lint
* Add running of queries in parallel behind feature toggle to test the functonality before release
* Add span end
* Move shared logic to separate function
* Add logging and tracing around running of all queries
---------
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
* Elasticsearch: Add tracing do data source
* Fix tests
* Address feedback
* Update pkg/tsdb/elasticsearch/response_parser.go
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Update pkg/tsdb/elasticsearch/response_parser.go
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Track error across both spans
* Add span for decoding of response
* Fix test
* Update setting of errors + fix test
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Add export formats drawer when exporting contact points
* Add 'export by format' drawer in policies (root policy)
* Add test for showing export policies button
* Add tests for Policy.tsx
* Add tests for export functionality in receivers
* Add exporter drawer for receivers
* Fix prettier warnings
* Allow HCL only for alert rules exports
* Add tests for Policies
* Fix tests
* Refactor: Update ExportProviders types for limiting the avaliable export formats when using GrafanaExportDrawer
* Delete unused shouldShowExportOption method and tests
* Use useAlertmanagerAbility hook to check if canReadSecrets
* Update snapshot for useAbilities test
* Fix prettier
* Convert decrypt to boolean
* Fix prettier
* Rename CanReadSecrets action to DecryptSecrets
* Update the string value for DecryptSecrets
* Fix snapshor for useAbilities after renaming the can-read-secrets
* Change way of obtaining external datasources info
* Remove unneeded import
* Create function to getExternalDsAlertManagers in datasource srv
* Remove unused import
* Check if the user has permissions to access the plugin custom page
* If plugin does not have includes we should show the plugin
* chngaes after review, added the test for AppRootPage
* fix the type error
* add more test cases
* test: wrap location pushes to act() calls
* Add no existing role to test
* fix name of the test
* fix not existing role test
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* use grafana/public instead
* parameterise script (still need to fix + run drone locally)
* make drone
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Changes SSE to not always fail all queries when one fails. Now only the query itself, and nodes that depend on it will error.
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Allow creating correlations for provisioned data sources
* Update docs
* Fix linting
* Add missing props
* Add missing props
* Fix linting
* Fix linting
* Clarify error name
* Removed error handling for a non-existing use case
* Create a list of deleted data datasources based on all configs
* Add org_id to correlations
* Add tests
* Allow org_id to be null in case org_id=0 is used
* Create organization to ensure stable id is generated
* Fix linting
* Ensure backwards compatibility
* Add deprecation information
* Update comments
* Override existing datasSource variable so the UID is retrieved correctly
* Migrate correlations indices
* Default org_id when migrating
* Remove redundant default
* Make PK non-nullable
* Post merge fixes
* Separate data sources / correlations provisioning
* Adjust comments
* Store new data sources in spy store so it can be used to test correlations as well
* Fix linting
* Update tests
* Ensure response is closed
* Avoid creating duplicates during provisioning
* Fix updating provisioned column and update tests
* Rename error message
* Fix linting errors
* Fix linting errors and rename variable
* Update test
* Update pkg/services/sqlstore/migrations/correlations_mig.go
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Remove unused error
* Fix lining
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* remove scenario wrapping in cypress tests
* remove more hardcoded logins
* don't forget the various suite!
* make sure we log in for every test
* fix afterAll revert
* stability
* BrowseDashboards: Only remember the most recent expanded folder
* set to null
* cleanup
* only clear removed folder if it was the most recently opened
* comments + variable
* fix: revoked tokens within last hours
adds check for unlimited sessions out of index
adds a function for specifing the hours to look back when revoking users tokens, otherwise we "assume" the clean up takes care of them adds a index for the `user_auth_token` - `revoked_at` for faster queries when using `revoked_at`
* fix: sqllite datetime conversion with unixtimestamps
* fix: postgres dialect
* fix: mysql dialect
* fix: mysql dialect missing closing )
* refactor: delete revoked tokens directly
* fix: tests for sqlite
* AuthToken: Simplify DeleteUserRevokedTokens and add test
* fix: linting newline
* Reset get time after test
* fix: test order by revoked
* fix: order by different db
* ascending
* test with seen at
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Add necessary fields to edges
* Add information about name and namespace to edge when available
* Use new fields to build search taking into account namespace
* Remove new fields from NodeGraphDataFrameFieldNames, define them locally
* various type fixes
* candlestick panel type fixes
* few more fixes
* some fixes
* more :)
* moar!
* undo change to SilencesFilter
* undo change to configureStore
* Page has been moved to the website repository
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update .codespellignore to ignore 'Operator Windrose' and fix typo
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Plugins: Dynamic angular patterns: Send If-None-Match to GCOM, store ETag
* Fix SetETag settings the wrong key in underlying kvstore
* Fix wrong type in GCOMResponse.Patterns and wrong content being saved
* Fix ctx passing to GetETag in background job
* Added more ETag tests
* More ETag tests
* Set last updated and log when not modified is returned
* Fix missing in-memory detectors update when etag matches, add comments
* Fix mutex usage
* adding contain:strict to let browsers know the layout of logs panel can be rendered independently
* add new prop to allow LogRow component to contain content
* Alerting docs: adds oncall integration docs and release note
* adds oncall integ to structure
* corrects link
* updates links
* Update docs/sources/alerting/monitor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* updates metamonitoring link
* update to product name
* Update docs/sources/alerting/alerting-rules/manage-contact-points/configure-oncall.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/alerting/alerting-rules/manage-contact-points/configure-oncall.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Modify reference links to ensure that `doc-validator` ignores them
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* breaks up sentence
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* feat: add a `isDeprecated` field to `CatalogPlugin`
* tests: update the tests for merging local & remote
* feat: display a deprecated badge in the plugins list
* feat: show a deprecated warning if the plugin is deprecated
* Fix linting issues
* Review notes
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* refactor: remove `isDeprecated` from the details (it's already in the main CatalogPlugin object)
* refactor: use an enum for remote statuses
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* delete PanelHeader
* PanelHeaderMenuItem is only used in PageHeader
* PanelHeaderCorner only used by PanelEditorTableView
* PanelHeaderMenuTrigger not used anywhere
* PanelHeaderMenuWrapperNew is PanelHeaderMenuWrapper, old one is deleted
* remove newPanelChromeUI from test
* delete feature flag newPanelChromeUI
* PanelHeaderMenuWrapperNew is PanelHeaderMenuWrapper, old one is deleted
* Add new tutorial for alerting with Logs
* Begin formatting the tutorial
* Formatted the tutorial with markdown
* Small edits
* Updating for version 10
* Edits for Grafana 10 & formatting
* Deleted rough draft that I accidentally added.
* Update docs/sources/tutorials/create-alerts-with-logs/index.md
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Update docs/sources/tutorials/create-alerts-with-logs/index.md
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Apply suggestions from code review
Commit suggestions from reviewer
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Updated to use instant query
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Refactor data tab to be usable from scenes
* DashboardScene: Inspect data tab
* Everything seem to work now
* don't change drawer size in this PR
* Remove uncommented code
* Fix layout issues for data actions
* Added comment explaining retry
* add token count
* wip
* user count method for tag reporting
* remove non functioning mysql clientFoundRows check
* Update pkg/services/auth/authtest/testing.go
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* add user ID guard
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Handle the response with different field key order
* More unit tests to cover edge cases
* Cover more edge cases
* make it simpler
* Better test inputs
* Update filter tag doc
* Update docs/sources/shared/datasources/tempo-search-traceql.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
---------
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Elasticsearch: Adjust naming in logging according to convention
* Log response parsing per response
* Update
* Fix logging of errors when no response
* Add path to error loggigng
* Update pkg/tsdb/elasticsearch/response_parser.go
* adjust Loki to logging convention
* Fix call resource logging
* Update dataquery
* Update
* Remove redundant logging
* Fix TODO
* Rename action to stage and use variables
* `resp` might be `nil`
* `resp` might be `nil` here as well
* change to `statusCode`
* use correct logger
* also here
* add query information to logging
---------
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
Adapt document language
HTML "lang" attribute should reflect the actual language used in texts. Important for accessibility functions (screen readers), but also usable in CSS.
* Docs alerting: adds insights logs and updates metamonitoring topic
* updates meta monitoring
* Update docs/sources/alerting/monitor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* removes alias
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* updates numbering
* adds codeblock
* updates
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: George Robinson <george.robinson@grafana.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: George Robinson <george.robinson@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
Co-authored-by: George Robinson <george.robinson@grafana.com>
* fix(plugins): support edge cases where default extension was not added
* fix(plugins): only apply AMD wrapper to AMD format plugins
* refactor(plugins): update regex for codeql warnings
* refactor(plugins): remove check for commented out dependency strings in AMD regex
* test(plugins): add tests for systemjs hook amd detection
* create new feature toggle + start to put stuff behind it
* block move, tidy up interfaces
* fix new/folder actions buttons
* show warning when deleting library panels/alert rules + run i18n:extract
* pseudo
* update unit tests
* pass alert in description
* Add support for MI authentication to MSSQL
This adds support for managed identity authentication for MSSQL managed
instances running in Azure.
Co-authored-by: baldm0mma <jev.forsberg@grafana.com>
* adjustments based on user feedback
* makes prettier
* Apply suggestions from code review
* Update docs/sources/setup-grafana/installation/debian/index.md
* Update docs/sources/setup-grafana/installation/debian/index.md
* don't use legacy AC fallback for frontend access control checks
* extend tests
* more test fixes
* more test fixes
* more test fixes
* final test fix
* team test fix
* finally fix tests
* GA toggleable labels
* Logs integration: update readme with new features
* Build a logs data source: update docs with the new interface
* Plugin docs: update example function signatures and arguments
* Plugin docs: update modifyQuery function names
* Formatting
* Remove character
* Remove `expr` from docs
* Plugin docs: improve code
* Plugin docs: further code improvements
* Reduce restrictions with non-user accounts
* Revert restrictions on anonymous accounts
* Change log level from warning to debug
* Change log messages to upper case
* add configuration options to .ini file and parse them
* updates on config options, add external AM config to the main config struct
* separate external AM configs from general alerting configs, naming
* comments about usage of tenantID in basic auth & not using config options yet
* Adds levitate levignore configuration file to prevent breaking change notifications from expected typescript symbols
* Add root file to codeowners
* Remove unnecessary word boundary
* Exand it to changes and a\dditions too
* Progress
* think this a bad approach
* Scene panel repeats looking good
* Update
* update
* Update
* Use key instead for inspect/view
* refactorings to improve tests
* Update
* More tests
* Update
* added support for key / value variables
* Update
* Fixes
* remove log
* Update
* Removed old gdev templating dashboard and added new and improved one
* Update
* Added repeating panels coded demo
* Update to latest scenes lib
* review feedback fixes
* update
* Sync schema
* Alerting docs: link fixes and a note for expressions
* changes format of note
* fixes extra space
* Update docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* update prometheus link
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* added new config doc
* edits to config doc
* updates to config and index docs
* minor edits to config page
* updates to query editor
* query editor update, added data source keyword
* index file updates
* updates to quey editor, index
* edits to index, configure and query editor docs
* final updates to config and index docs
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* added date histogram options
* suggestions from Chris
* added bucket aggregations options
* bucket aggregation
* updates based on feedback
* removed panels info under logs query
* inspector now query inspector
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* feat: add ability to launch targeted dskit modules in the grafana server CLI command
This commit adds a ModuleServer and ModuleRunner suitable for launching dskit services and updates the server cli command to use this instead of the full Server. The default behavior is unchanged and will launch the full Grafana server. Individual services are targeted by setting target=comma,seperated,list in the config file.
* require dev mode to target dskit modules
* remove unused type
* replace setting.CommandLineArgs w/setting.Cfg; the caller can deal with calling setting.NewCfg
* Update pkg/server/module_server.go
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
---------
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
* Add tabs for Insights/Getting Started in home page
* Display panels using the scenes framework
* Hide Insights page under a feature flag
* Add a new panel and improve ASH queries
* Improve panels layout
* Add more panels
* Change datasource UID
* Rename most fired alerts table title
* Show navigation cards on top
* Improve panels
* Add transformation to display link to view alert rule
* Restructure panels
* Fix panels layout
* Fix grid layout in landing tab
* Add transformation to most fired rules table
* Move grafana-specific scenes under dedicated folder
* Add scene with custom datasource that queries an API
* Add scenes panels for more datasources
Not just ASH but including grafanacloud-usage and grafanacloud-prom metrics
* Changes to grafana panels
* Add per rule group scenes with query variables
Also improve existing panels legends/formatting
* Fix lint
* Fix legends for some panels
* Fix lint
* Move files under new alerting home directory
* Refactor transformation in MostFiredInstancesTable scene
* fix lint
* Display panels in collapsable sections
* Improvements to data displayed in several panels
* chore(plugins): bump systemjs to latest version
* refactor(plugins): switch runtime over to use latest systemjs, add typings
* refactor(plugins): use latest systemjs APIs for runtime dependency resolution
* refactor(plugins): return valid urls from backend for latest systemjs import to work
* revert(plugins): remove cfg from assetpath in favour of relative paths
* fix(plugins): useDefault for systemjs deps to solve undefined errors
* feat(plugins): add basic support for loading plugins via CDN
* fix(plugins): load nested plugins with latest systemjs
* feat(plugins): add back ability to transform plugin src for cdns
* feat(plugins): get caching for module.js working, clean up
* refactor(plugin_loader): create buildImportMap fn and more clean up
* refactor(angularapp): use buildImportMap for dependencies and clean up
* test(plugin_loader): fix failing test due to systemjs update
* test(jest): mock systemjs amd extra in tests to prevent it breaking tests
* chore(plugins): remove systemjs module-types extra, already included with system
* fix(plugins): update key for invalidating cached plugins
* fix: move systemjs amd define to another global so monaco can load
* refactor(plugins): clean up cache buster and tests
* chore(plugins): remove debug
* refactor(plugins): move systemjs define to keep global cleaner
* fix(plugins): set useDefault so system modules lodash references dont fail
* feat(plugins): hook systemjs onload so stylesheets are applied to the dom
* refactor(plugins): wrap amd formatted plugins in iife to prevent define collision
* feat(plugins): support system module format for legacy plugins
* test(plugincachebuster): update tests to match latest implementation
* test(plugins-loader): fix up tests post module property change
* fix test
* Update pkg/plugins/manager/loader/assetpath/assetpath.go
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* chore(plugin_loader): remove stray import from merge conflict
* Revert "Update pkg/plugins/manager/loader/assetpath/assetpath.go"
This reverts commit 0df57d1cf20f49c22c93369001c70aae46a97c42.
* fix(plugin_loader): set use default for shared plugin dependencies
* refactor(plugins): use leading slash for Module and BaseUrl
* fix(plugins): fix resolve appending extension to cache query param
* refactor(plugins): align baseurl and module paths
* refactor(plugins): update builtInPlugins keys to match naming convention
* refactor(plugins): minor loader clean up, fix up types
* test(plugins): fix failing tests
* refactor(plugins): rename cache buster systemjs plugin to cache
* refactor(plugins): separate plugin_loader into smaller files
* chore(plugins): clean up plugin_loader types
* chore(plugin_sandbox): fix typescript error
* chore(npm): remove unplug debug and pin systemjs to 6.14.1
* refactor(plugins-cdn): update loaders to use absolute module url from backend
* fix(plugins): escape period in systemjs module regex
* chore(plugins): delete redundant systemjs plugins
* refactor(plugin_loader): move hooks into own file, add types
* test(plugins): add tests for systemjs loader hooks
* chore(plugins): rename systemjshooks file
* chore(plugins): remove redundant systemjs cdn backend code
* fix(plugins): handle loading with config.appSubUrl
* chore(plugins): delete redundant plugin-cdn angular code
* test(plugins): fix failing systemjs test missing pluginsCDNBaseUrl
* refactor(plugins): backend provides base and module properties with AppSubUrl
* fix(plugins): consider AppSubUrl for plugin logos
* fix(plugins): use isHostedOnCDN util when checking for cdn hosted plugins
* add new appSubURL field to config
* refactor relative URL func
* fix path for core app
* refactor asset path input
* fix(plugins): catch errors in loadPluginCss
* feat(plugins-cdn): selectively transform sourceMapURL
* re-add deleted test case
* chore(plugins): bump to latest systemjs@6.14.2
* feat(plugins): add systemjs-cjs-extra for loading commonjs plugins
---------
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Changed docs version in link
* Removed reference to dashboard previews docs
* Added back reference and replaced partial URL with relref
* Remove reference to removed docs
* check languageProvider to work with non-indexed metadata
* change loki devenv to work with non-indexed metadata
* trigger ci
* add forced labels after parsers
* add comment
* Update public/app/plugins/datasource/loki/modifyQuery.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update all use of docs/shared in Grafana to use keyword arguments
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add version inference to remaining Grafana docs/shared usage
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* updates
* make save button always visible but disabled
* only reset toggles if there isn't an error response
* make linters happy
* update post body to match backend
* fix linter again
* be smarter about sorting of empty descriptions
* run prettier
* fix payload
* Re-add disabled to switch
---------
Co-authored-by: Joao Calisto <joao.santana.calisto@gmail.com>
Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com>
* SQLStore: fix issue where postgres would not find the existing org
Grafana using a postgres databases would fail to find the created org when the CreatedAt and UpdatedAt times are (inaccurately) populated. This issue only occurs in postgres, and only shows up when getOrCreateOrg run to create the admin user AND the organization already exists. See https://github.com/grafana/grafana/issues/71781 for more information and a reproduction.
* add an integration test
* Make identity.Requester available at Context
* Clean pkg/services/guardian/guardian.go
* Clean guardian provider and guardian AC
* Clean pkg/api/team.go
* Clean ctxhandler, datasources, plugin and live
* Clean dashboards and guardian
* Implement NewUserDisplayDTOFromRequester
* Change status code numbers for http constants
* Upgrade signature of ngalert services
* log parsing errors instead of throwing error
* removed infra logs
* improve health check
* remove debug and error logs
* feedback
* Update pkg/tsdb/azuremonitor/azuremonitor-resource-handler.go
* Update pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource.go
* fix close body error
* update test
* resource request should return errors
* go linter
* go linter
* [LDAP] Disable removed users on login
* Fix tests
* Add test for user disabling
* Add tests for disabling user behind auth proxy
* Linting.
* Rename setup func
* Account for reviews comments
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* accept uid to pubdash creation
* add accesstoken back
* add uid validation unit tests
* unit test for create pubdash with uid
* update err declaration
* remove white space
* add comment
* remove trailing spaces
* remove space
* suggested changes
* baldm0mma/help_button/ force QueryOperationRow to expand on showHelp click
* baldm0mma/help_button/ remove comment
* baldm0mma/help_button/ add comment to onClose()
* baldm0mma/help_button/ remove useToggle for showing help
* baldm0mma/help_button/ remove comment
* baldm0mma/help_button/ update comment
* baldm0mma/help_button/ add full toggle control for parent of QueryOperationRow
* baldm0mma/help_button/ update inline comments
* baldm0mma/help_button/ update annos
* Add angularDeprecationUI feature toggle
* Add angular notice in angular panel header
* Show angular notice for angular datasources
* Show angular notice at the top of the dashboard
* Changed Angular deprecation messages
* Fix angular deprecation alert displayed for new dashboards
* re-generate feature flags
* Removed unnecessary changes
* Add angular deprecation dashboard notice tests
* Add test for angular deprecation panel icon
* Update test suite name
* Moved isAngularDatasourcePlugin to app/features/plugins/angularDeprecation
* Add hasAngularPlugins to DashboardModel
* re-generate feature toggles
* Fix tests
* Fix data source spelling
* Fix typing issues
* Extract plugin type into a separate function
* re-generate feature flags
* reportInteraction on angular dashboard notice dismiss
* re-generate feature flags
* Re-generate feature flags
* lint
* Refactor: move ldap auth registration to OSS
* Update public/app/features/auth-config/types.ts
* fix: permission settingswrite
* fix: types for typescript find()
* fix: linting
* fix: removed types that are implicit
* added text for no available authentication providers
* refactor: make use of ldapenabled instead for minimal changes
* SceneDashboard: Discard changes now works
* To save model works and start at save drawer
* Update
* Added missing file
* Refactorings to keep responsibility more logical
* Refactorings
* Removed file
* Fixed state issue
* Update
* Update
* Dashboard: Save original JSON to state
* Dashboards: Update tests
* Dashboards: Fix original json access
* Dashboard: Save original to the DashboardModel
* Dashboard: Cleanup tests
* Remove original db setter
* fix some event.target as stuff
* segment async story
* segmentinput story
* SegmentSelect
* fixing some tests
* more test fixes
* undo change to SilencesFilter
* Add Dashboard data source guidance
Add guidance about how the special Dashboard data source affects repeating rows
* Update link to repeating rows content
* Fixed broken relrefs and updated wording
* Updated wording for clarity
* Fixed typo
* Make identity.Requester available at Context
* Clean pkg/services/guardian/guardian.go
* Clean guardian provider and guardian AC
* Clean pkg/api/team.go
* Clean ctxhandler, datasources, plugin and live
* Question: what to do with the UserDisplayDTO?
* Clean dashboards and guardian
* Remove identity.Requester from ReqContext
* Implement NewUserDisplayDTOFromRequester
* Fix tests
* Change status code numbers for http constants
* Upgrade signature of ngalert services
* log parsing errors instead of throwing error
* Fix tests and add logs
* linting
* Unify default value
* Use variable to keep default precisions in sync
* Use default precision variable
* Update precision description
* Update defaultPrecisionString and move
* Be more specific in naming of variabkle
* Revert "Merge remote-tracking branch 'origin' into ivana/es-precision-default-value"
This reverts commit 599f236a77, reversing
changes made to 6742be0c6d.
* Revert wrong merge
* Revert wrong merge with turned off lefthook
* Metrics summary
* Update query
* Remove colors
* Update states
* Add group by into its own component
* Add group by to search and traceql tabs
* Add spacing for group by
* Update span kind values
* Update span status code values
* Update query based on target + group by
* Cleanup
* Only add targetQuery if not empty
* Add kind=server to table
* Update groupBy query logic
* Add feature toggle
* Use feature toggle
* Self review
* Update target query
* Make gen-cue
* Tweak query
* Update states
* useRef for onChange
* Fix for steaming in search tab
* Add loading state tests
* metricsSummary tests
* Datasource tests
* Review updates
* Update aria-label
* Update test
* Simplify response state
* More manual testing and feedback from sync call
* Prettier and fix test
* Remove group by component from traceql tab
* Cleanup, tests, error messages
* Add feature tracking
- The util/converter Prometheus response json parse was not checking for errors while parsing. It now does. In particular, if `[dataproxy]/response_limit` is set in Grafana's config, it will now recognize the limit error.
- Fixes#73747
- Adds `jsonitere` package, which wraps json-iterator/go's Iterator's Methods with methods that return errors, so errcheck linting can be relied upon
- Impact:
- If something was sending malformed JSON to the prometheus or loki datasources, the previous code might have accepted that and partially processed the data
- Before there may have been partial data with no error, where as no there may be errors but they will have no partial results, just the error.
* Plugins: Dynamic angular patterns: Return error for != 2xx status code
* Add test for status code check
* Plugins: Dynamic angular patterns: Add random skew to periocic GCOM api calls
* Add test for random skew
* Changed randomSkew signature, ensure it is always positive
* experiment: attempt to tag only UI devices
* lint frontend
* use await
* use shorthand check
* do not assume build info exists
* do not assume build info exists
* Apply suggestions from code review
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
---------
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* move truncating to helper function, to start of array
* Prometheus: Add 1000 result warning as sticky footer in metric select (#73649)
add 1000 result warning as sticky footer in metric select
* Prometheus: Only show truncated results warning if results have been truncated (#73650)
only show truncated warning if results have been truncated
* add test to metric select
---------
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
* Updated toggletip to use strategy fixed, added tests and temporary story so it can easily be checked
* Added FocusScope restoreFocus and appropriate tests to toggletip
* Open toggletip in test for making sure focus remains when using escape
* Add aria-expanded to toggletip toggle child
* Added to temp story for Toggletip
* Remove focusScope for toggletip and handle focus restoration manually
* Remove toggletip temp story and add toggletip long content story
---------
Co-authored-by: joshhunt <josh@trtr.co>
`grafana-ml` was added to the `availableIconsIndex` object in
<commit> but no corresponding SVG was added, nor was the Icon
bundle updated.
This commit adds the real Grafana ML icon as gf-ml.svg, renames
the key in the availableIconsIndex accordingly, and updates the
Icon bundle using the documented script. Note that the name
was changed to `gf-ml` rather than `grafana-ml` because otherwise
the wrong directory is used (unicons rather than custom).
The main motivation for adding this is because plugin extensions
need to specify a valid icon name, and we want to use the Grafana ML
icon for our extensions, which requires the icon to be part of
core Grafana.
* InfluxDB/QueryEditor: Add delete buttons to measurement, part and tag sections
The diff provides an additional "delete" button to measurement section, part list section and tags section in the influxdb datasource editor. This improves user experience by allowing users to delete measurements, parts and tags directly from the user interface. The commit also slightly refactors the options generation for these sections, removing the "-- remove filter --" option as it becomes redundant with the new delete button.
* InfluxDB/QueryEditor: Replace Button with AccessoryButton
Changed the Button components to AccessoryButton from the '@grafana/experimental' package, used for the delete functionality in data source components for influxdb query editor. The AccessoryButton is more visually consistent with our current Grafana UI aesthetic and provides better user experience. The change was implemented in FromSection.tsx, PartListSection.tsx, and TagsSection.tsx files.
* Update public/app/plugins/datasource/influxdb/components/editor/query/influxql/visual/FromSection.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* Update public/app/plugins/datasource/influxdb/components/editor/query/influxql/visual/PartListSection.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* RBAC: remove unnessisary guardian construction and update tests
* RBAC: remove usage of guardian in UpdateFolderPermissions and refactor test
* RBAC: remove usage of guardian in update and get permissions for dashboards
* Improve naming; fix tests
* Pass countWarning to titleItems
* Center warning text
* Revert variable name
* Switch from arrow function to direct assignment
* Add ability to make component controlled
* Replace remaining isOpen with collapsed
* Fix test; update story and docs
* Add test; add uncontrolled functionality
* Add org_id to correlations
* Add tests
* Allow org_id to be null in case org_id=0 is used
* Create organization to ensure stable id is generated
* Fix linting
* Ensure backwards compatibility
* Add deprecation information
* Migrate correlations indices
* Default org_id when migrating
* Remove redundant default
* Make PK non-nullable
* Kinds: Reconcile verify-kinds.go with kind-registry changes
* Remove handwritten value specific for manual test
* Update grafana/kindsys dep
* Revert "Update grafana/kindsys dep"
This reverts commit e437e1879e.
* Fix generated code
* disable a feature toggle that is on by default
We document how to enable a feature toggle, but not how to disable one. This adds the config setting to disable a toggle that is on by default.
* remove "alpha"
Alpha features are not the only ones that can be enabled, and we don't use the term "alpha" anymore.
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* makes prettier
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Update config editor
- Use Field instead of InlineField
- Make use of new ConfigSection structural components
- Add DataSourceDescription component
- Add secureSocksProxy to types
* set panel z-index to a descending number once they are ordered before they are rendered
* set styling inside grid item
* fix unresponsive RGL when style is overwritten entirely
Execute all queries to the same datasource in a single request.
Uses the query index and the graph node ID index, and then a stable dependency graph sort based on node input index number in attempt to keep the original query order intact.
* move access control api to SignedInUser interface
* remove unused code
* add logic for reading perms from a specific org
* move the specific org logic to org_user.go
* add a comment
---------
Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
* add `id` field to elasticsearch
* add comment
* slightly better perf
* only add `id` to logs frames
* only add `id` for logs responses
* concat `index` and `id`
* change snapshot generation to false
* use better loop
* fix tests
* moved up
* Authn: Add interface for external identity sync
This interface is implemented by authnimpl.Service and just triggers PostAuthHooks and skipping last seen update by default
* Authn: Add SyncIdentity to fake and add a new mock
This commit updates the screenshot package to make From and To
optional. It also updates the docs for ScreenshotOptions so
this behavior is well documented.
* Logs: Hide filters in log details if the data source doesn't support them
* Logs Container: use logsQueries prop
* Log details: add filters visibility test
* remove unused datasource pages
* move useDataSourceSettingsNav from datasources to connections
without any modification in the code yet
The reason for this is that its only usage is in this file, so we are
going to merge it with the other useDataSourceSettingsNav hook in the
next commit.
* merge two useDataSourceSettingsNav's
and rename consts and remove duplicated calls
* simplify useDataSourceSettingsNav
* Fix parsing absolute range
* Silence warning issued by moment js
* Introduce URLRangeValue to enforce better type-checking
* Fix unit tests
* Allow not passing range to generate ExploreUrl
* Use updated time range format in a test
* Allow empty object to be passed as a data link for backward compatibility
* Update mocks
* Post-merge fixes
* Simplify checking if range is passed as an empty object
* Update docs
* Switch from husky+precommit to lefthook
Migrate from husky/precommit to lefthook
h
old husky precommit
lefthook so far
remove husky folder
switch to new lefthook package
Add postinstall script to clean up after husky
preinstall to remove husky config
package.json
package.json
package.json
script
v
Reduce lefthook output
Cleanup
testing
reduce output
testing betterer
testing betterer
testing betterer
testing betterer
testing betterer
testing betterer
testing betterer
skip skipping execution info
small cleanup
remove comment from testing
clean up old husky hooks in .git/hooks path
run scripts in parallel
update codeowners
don't auto-install lefthook
install lefthook with make command
fix yarn checksum
* update codeowners
* don't use source because it isn't available in ubuntu/debian's /bin/sh
* Ensure lefthook commits files fixed by precommit hooks
* add comment to lefthook.rc explaining what it does
* add i18n:pseudo precommit
* Don't create .husky/safe-to-delete file anymore
* cleanup old lint-staged config
* contribute docs
* update lefthook to 1.4.8
* Move frontend encouragement docs
* rewrite husky cleanup script in bash so we can run it with make
* Make old husky precommit script reject commits until husky is removed
* log precommit warning for everyone
* fix package.json
* run lefthook hooks from old husky hook
* run lefthook hooks from old husky hook
* comments
* codeowners
* codeowners
* Update index.md
The word `Configuration` was used to describe an action for getting started, when the actual UI has the word `Administration` and not Configuration. Updated the docs to reflect the actual environment created.
* Update index.md
Updated the tutorial to match the current UI options
* Made copy edits for styling and consistency with Cloud fundamentals tutorial
Made some copy edits to match our style guide and to make this tutorial a bit more consistent with the Cloud version. Also added the step for updating the legend back to the build dashboards section.
* Ran linter
* Edited text to match updated UI
Made edits to match UI behaviour as well as some further style edits.
* Made final copy edits
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* Add tests for service accounts metrics usage
* Add service account store implementation
* Add service account service implementation
* Add tests for org metrics usage
* Add org implementation
* Add service implementation
* add metrics and tracing to state manager
* propagate tracer to state manager
* add scheduler metrics
* fix backtesting
* add test for state metrics
* remove StateUpdateCount
* update docs
* metrics can be null
* add tracer to new tests
* make discord url secure
* support migrating unsecure settings to secure settings
* Update public/app/features/alerting/unified/utils/receiver-form.ts
Co-authored-by: William Wernert <william.wernert@grafana.com>
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: William Wernert <william.wernert@grafana.com>
* added what's new 10.1
* created new upgrade guide
* updated index file to 10.1
* updated whats new index file
* Dataviz: add disconnect values whats new content
* Docs: Add Configure refresh token handling separately for OAuth providers to what's new 10.1 (#71648)
* Add what s new section for configuring refresh token handling
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Whats new: Add step editor and copy link (#71964)
* Add step editor and copu link to the whats new
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Add flamegraph section
* Added TraceQL response streaming section
* Updated tempo-streaming video link
* What's new: Add Loki, Elasticsearch, and Log changes (#72101)
* What's new: Add Loki, Elasticsearch, and Log changes
* Remove Lucene parser mention
* added contributor name to each entry
* Alerting: adds whats new entries and structure
* Elasticsearch: logs sample in explore
* Add span filtering is GA to whats new doc
* Transformations redesign and metrics explorer
* ran prettier
* What's new 10.1: Recategorize contents and add missing data (#72199)
What's new: recategorize content and add missing data
* Revert whats new refresh token handling (#72191)
Revert refresh token handling
* docs: What’s New & Upgrade Guide 10.1 AuthNZ (#72000)
* add what's new authnz
* Update docs/sources/upgrade-guide/upgrade-v10.1/index.md
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: screenshots and updates
* Alerting: delete couple of entries
* Docs: Add Visualizations and Widgets Split to what's new 10.1 (#72009)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1 (#72221)
* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1
* Add guidance for Cloud users to enable the feature
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: adds notification policy entry
* Add Plugins/Angular deprecation sections to What's new 10.1
* Add Plugins/ds uid deprecation section to What's new 10.1
* Alerting: adds label color entry
* Adds whats new features for AWS Datasources
* Update what's new 10.1 angular deprecation section
* Docs: what's new for preventing manual role updates (#72279)
* what's new for disabling manual role updates
* add a reference to the feature toggle
* fix spelling
* Apply suggestions from code review
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* PR feedback
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* wording fixes
* whatsnew-10.1.0: add logs-context info (#72240)
* whatsnew-10.1.0: add logs-context info
* explain what log context is
* improved description
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* better phrasing
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Subfolders: folder picker
* Influxdb backend mode
* Dataviz: heatmap datalink support
* DataViz: geomap new beta network layer
* Dataviz: update geomap network layer image
* Dataviz: update availability wording to public preview from experimental for geomap network layer
* Docs: Add Activate draft reports section to what's new in 10.1
* Docs: Add format time transformation to what's new
* Docs: Adjust format time transformation language
* Explore: Add what's new about panel plugins (#72338)
* Add what's new about panel plugins
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* add tabular outer join to whats new
* Update traceql streaming section
* Added new tempo search section
* Update traceql streaming video name
* docs: what's new 10.1.0, easier to use elastic query editor (#72513)
* docs: elasticsearch: new mode selector
* improved text
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* mitch edits
* Added product labels
* Made general copy edits
* Removed editing notes
* Fixed broken relref
* Fixed typo and added contributor name
* Added contributor name
* Made minor copy edits
* Update format time transformation docs
* A small edit to the role list
* Added missing information and committed copy edits
* Move Reports item to under Dashboards & visualizations
* Changed heading level of Activate draft reports
* Fixed wording of Choose which fields to display in log line entry
* Made edits to Logs improved performance entry
* Added availability for Transformations redesign
* Added availability for Join by fields
* Made final copy edits
* Removed Loki query splitting
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: André Pereira <adrapereira@gmail.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Gareth Dawson <gwdawson.work@gmail.com>
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
Co-authored-by: catherineymgui <catherine.gui@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Zsofia <zsofia.komaromi@gmail.com>
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Robert Horvath <robert.horvath@grafana.com>
Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Add nested option to DataFrame. Refactor Table to use nested dataframes for sub-tables
* Use nested frames for TraceQL response
* debugging
* Fix cell text and table position
* Update getItemSize
* noHeader size
* Update sub table renderer
* Update table container height
* Cleanup and fix RawPrometheusContainer height
* Update resultTransformer and docker script
* Updates to TableContainer, resultTransformer after merge
* Fixes for table pagination in dashboards
* Cell height and show footer enhancement/fix
* Sub table links
* Update RawPrometheusContainer
* Remove console log
* Update tests
* Update storybook
* Remove Tempo demo
* Store nested data in single field via its values
* Move nested prop into custom
* Tempo demo
* Add field type & update incorrect logic
* Update docker compose image for Tempo
* Update packages/grafana-data/src/field/fieldOverrides.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Simplify logic for getting nestedFrames and rendering sub tables
* Update docs for table
* Update nested table bg color
* Lighten nested table bg color
* Renames
* Migrate frames using parentRowIndex and add deprecation notice
* Update title
* Align expander icon size between Table and interactive table
* Table: Refactor out the expanded rows bits
* fix spacing
* Add line along left side for expanded rows
* Disable hover row background when expanded
---------
Co-authored-by: André Pereira <adrapereira@gmail.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* wip
* scope active user to 1 org
* remove TODOs
* add render auth namespace
* import cycle fix
* make condition more readable
* convert Evaluate to user Requester
* only use active OrgID for SearchUserPermissions
* add cache key to interface definition
* change final SignedInUsers to interface
* fix api key managed roles fetch
* fix anon auth id parsing
* Update pkg/services/accesscontrol/acimpl/accesscontrol.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Dashboards: Fix tests when authn broker is enabled.
StarService was not configured for tests, the call was guarded by !c.IsSignedIn
* Change default to be anon user to match expectations from tests
* OAuth: rewrite tests to work with authn.Service
* Setup template renderer by default
* Extract cookie options from cfg instead of relying on global variables
* Fix test to work with authn service
* Middleware: rewrite auth tests
* Remvoe session cookie if we cannot refresh access token
A partner complained in the name of a customer. They have 6k datasources and it took them some time to figure out why they only had 5k coming back.
This commit add a warning for this edge case, content is pretty clear.
* introduce a new action "alert.provisioning.secrets:read" and role "fixed:alerting.provisioning.secrets:reader"
* update alerting API authorization layer to let the user read provisioning with the new action
* let new action use decrypt flag
* add action and role to docs
* Make it clear that MariaDB is also supported as datasource
MariaDB is now the default relational DB on lots of Linux distribution,
it's important to make it clear that it is perfectly supported.
* Fix 404 and make MySQL docs URL more robust
And lint with prettier.
* Review from lwandz13
Use the same code path to interpolate both metric variables and
filter/tag variables when the data source is accessed either directly or
via the expressions datasource.
partial fix for #48141 (opentsdb datasource only)
Signed-off-by: Uri Okrent <uokrent@gmail.com>
* Auth: prevent auto_login redirect if user is already authenticated
Before attempting an auto-login for OAuth, verifies if current context has already been
authenticated.
Fixes: #72476
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
* calculate cacheID instead of literals
* use mocked clocks
* advance clocks with the eval results
* use clearer timestamp aliases
* make expected state labels be more clear to read
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
* sets skip_org_role_sync to true for google
* add google skiporgrolesync and sets to true always
* add field
* Update docs/sources/setup-grafana/configure-security/configure-authentication/google/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add AKS to words
* script back to mina
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
This doc fragment is included on multiple pages including this one: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
the only flaw is it's missing "sudo". Modern linux practice suggests using sudo for all administrative edits like this, and this change reinforces parallel structure in the target docs page. There may potentially be some other context this fragment is used in where sudo isn't appropriate, but this makes it easier to copy/paste the command and have it work on modern linuxes.
This is preparative work for extending the grafana server cli command to target individual dskit modules that seemed worth breaking into this smaller PR. This moves the CLI flags and various reusable chunks of code into variables and methods.
* add termination stage
* uid -> pluginID (for now)
* also fix fakes
* add simple test
* Fix logger name
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* inline stop func call
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* Search: Attempt to support folderUID filter
* Search: Use folder UID instead of ID for searching folders
* Update swagger
* Fix JSON property casing
* Add integration test
* Remove redundant query condition
* Fix frontend test
* Fix listing dashboards in General/root
* Add support for fetching top level folders
using `folderUIDs=` (empty string) query parameter
* Add deprecation notice
* Send uid of general in sql.ts
* Use 'general' for query folderUIDs query param for fetching folder
* Add tests
* Fix FolderUIDFilter
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* update copy of ConnectionsRedirectNotice
The Connections page is not that new anymore
* extend NavLandingPage with optional header
* show ConnectionsRedirectNotice on Admin landing page
* make ConnectionsRedirectNotice dismissable
* make ConnectionsRedirectNotice informational
* activeTab for public dashboard matches others
* add analytics action for going through categories of sharing modal
* add analytics for going through actions of any cateogry in sharing modal
* change 'tab' to 'category'; add key 'sharing_category' to actions for easier distinction
* sharedCategory sounds like a category is shared; changed naming to shareDashboardType
* remove hard-coded analytic event name
* wrap the reportInteraction call for all actions when sharing dashboard
---------
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
* add missing cfg for skiporgrolesync
* add google skiporgrolesync
* removed google skip
* update docs to reflect google
* remove docs update for google
* Update _index.md
Adding popular open-source proxy options so users don't have to do further research if they don't want to
* ran Prettier
* Update docs/sources/setup-grafana/configure-security/_index.md
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
* Do not update statistics at service collector startup
* Configurable collector interval
* Introduce initial random delay
* Prevent reporting metrics until the stats have been collected
* Apply suggestion from code review
* Add influxdbSqlSupport feature toggle
* Add SQL option to the config page
* Add SQL backend
* Add metadata support in config page
* Implement unified querying
* Fix healthcheck query
* fsql tests
* secure grpc by default
* code cleanup
* Query handing for sql mode
* Implement a placeholder sql editor
* Fix query language dropdown
* drop in SQL editor
* switch to use rawSql, get sql editor working
* fix healthcheck
* WIP
* memoize component to stop unwanted rerender onQuery
* dont reinit datasource on each render of the editor
* remove useless memo
* clean up
* Fix the link
* Alpha state warning
* Remove console.logs
* update model for fsql
* remove unused
---------
Co-authored-by: Galen <galen.kistler@grafana.com>
* Add tests
* Fix query for nested folders with zero self-contained permissions
* Fix query behind permissionsFilterRemoveSubquery flag
* Apply suggestion from code review
* clear selection state when indeterminate
* ensure search state is properly cleared when toggling the indeterminate checkbox
* select everything in view
* Add feature flag
* Introduce interface and dummy implementation
* Add tests for the new filter
* accessControlDashboardPermissionFilterNoFolderSubquery implementation
* join only if it's necessary
* force ordering for tests
* Temporarily enable new query for benchmarks
The existing link will take new users to the Data Source Management page which falls under that administration section and is perhaps more advanced that we want for a new user. The updated link takes new users to what I think was the intended "Data Sources" page.
* lock down server admin role updates on the frontend if the user is externally synced
* add tests
* lock Grafana Server admin role updates from the backend
* rename variables
* check that the user has auth info
* add LDAP to providers for which Grafana Server admin role can be synced
* linting
* UI update of providercards
* fixed the naming of the providercard and margin to top
* fix: add settings to the AuthConfigPage for the provider card to get the displayname
* removes the ldap name check
* refactor to account for the configured/enabled sitation and removed the LDAP name check
* added type to authstatus instead
* remove the settings from initiation of the component
* added name to the type
* removed the configAuth
* do not export all types
* add back types
* Replacing the regex based approach and integrating the lezer-traceql grammar in the editor
* Added some tests
* Added path to capture error in filter root
* Tests are great and help fix issues 👍
* Fix autocomplete tests
* WIP: Show annotations markers in TimeSeries panel when using Loki as alert state history
* WIP changes
* Fix converting log records to data frame for panel
* Move fetching alert state history with Loki to the PannelQueryRunner to keep the panel flow
* use dasboardUID and panelUID for requesting Loki ash
* fix wrong prettier change
* Only request loki ash when having alertstate
* Use panelID as param in history query
* Refactor: move getRuleHistoryRecordsForPanel and remove filtering code as is not used
* Adress PR review comments
* Add try catch for ash request
* Add tests for updatePanelDataWithASHFromLoki method
* Address PR review suggestions
* review suggestion
* Add test for logRecordsToDataFrameForPanel method
* pr Review nit suggestion
* Dont show toast messages from Loki request
* add folder data migration, fix unique index
* fix unique index
* pass a fake store in tests
* pass store into other providers in tests
* and now with alerting!
* fixed: added id token expiry check to oauth token sync
* use go-jose and id token in cache
* Update pkg/services/authn/authnimpl/sync/oauth_token_sync.go
* refactored getOAuthTokenCacheTTL and added unit tests
* Small changes to oauth_token_sync
* Remove unnecessary contexthandler changes
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
* Allow overriding internal data link supplier
* Remove SplitOpen and getFieldLinksForExplore dependencies
* Fix checking if row index is provided
* Fix unit test
* Add a comment
* Mark SplitOpen as deprecated
* Use Panel Context to provide internal data link supplier
* Update packages/grafana-ui/src/components/PanelChrome/PanelContext.ts
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* Update packages/grafana-data/src/utils/dataLinks.ts
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* Add missing eventsScope
* Fix infinite render loops
* Rename internal data link supplier to data link post processor
* Update packages/grafana-data/src/field/fieldOverrides.ts
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
---------
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* updated screenshots in explore index page
* add advanced data picker option to jaeger, tempo, and zipkin data source docs
* Revert changes to data source files
Reverting changes to data source files to maintain scope of this PR as just updating Explore. Changes to other areas where DS picker has been updated will be addressed on another PR when that scope has been decided.
* Fixed indentation and made advanced ds picker language more robust
* Chore: Turn validate-modfile failure into blocking drone step
* test to see if removal of dependency owner causes validate-modfile to fail and block pipeline
* revert change
* Make RGM the main pipeline for prerelease
* Use grafana/grafana-build:dev-bd41660
* Use grafana/grafana-build:dev-fda506a
* Fix destination url
* Update vault secrets
* Move bucket path to environment
* Use grafana/grafana-build:dev-2f36afa
* Revert to grafana/grafana-build:main
* Add repo to rgm_main trigger
* API: fix docs of users API (#62365)
Behaviour described in the issue is correct.
So with this we add comment explaining this behaviour.
Resolves: #62365
* fixing formating
* Update docs/sources/developers/http_api/user.md
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Lucene: add dependency
* ModifyQuery: use Lucene parser to detect key:values in queries
* ModifyQuery: use Lucene parser to remove filters
* Remove test code
* Modify query: switch to recursive implementation
* Modify query: implement remove filter
* Update query normalizing function
* FlagElasticToggleableFilters: remove feature flag
* Remove unused feature flag from test
* Elasticsearch: escape quotes in filter values
* RBAC: Make the SplitScope migration concurrent
* Benchmark multiple alternatives: (updates in a loop, batch update, concurrent batch update)
* Only keep batching since mysql 5.7 does not seem to support concurrent batching
* Update pkg/services/accesscontrol/migrator/migrator.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Collapsible PanelChrome v1
* Enable either Collapsible or HoverHeader modes
* Clean up
* Update story
* Add test
* Revert to 'strict'
* Use useToggle
* Allow collapsibility when title is not passed
* Fix semantics and ellipsis wrapping
* Improve accessibility
* Add documentation
"Release: Updated versions in package to 10.2.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* Geomap: Add network layer
* Support text labels for nodes
* Add solid styling for edges
* Remove symbol option for edge style menu
* Add support for edge text labels
* Fix linter issues
* Simplify multiple data frame handling
* Add TODO notes
* Add node and edge style categories for options
* Remove data frame hardcoding
* Hide legend, attempt to hide tooltip by default
* Mark network layer as beta
* refactor updateEdge
* Fix some linter issues
* Remove attempt at disabling tooltip for network layer
* For edge text add a stroke and increase z index
* Restrict field selection based on frame type
* refactor
* add basic bad data handling (prevent entire panel from breaking)
* generate non hard coded graph frames for style editor filtering
* code cleanup; remove hardcoded reference to "edges" frame
* fix select clearing for Data option
* fix styling
* fix lookup
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
* Extract logic from ExplorePage to a hook, add a test for the hook; remove ExplorePage test
* Remove extracted stuff from ExplorePage
* Clean up
* Fix minWidth logic
* build httpsettings overhaul with new auth component
* remove test code
* add connection and advanced http settings components
* use tooltip with link
* add correct styling and spacing
* save option select for sigV4
* fix styles in Azure auth to fit new auth component
* add types in overhaul folder that are not available yet in grafana
* update e2e tests for new connection component
* update e2e tests for new connection component
* update width of azure inputs
* fix non custom auth selects
* add feature toggle
* wrap azure style changes behind the feature flag
* fix feature toggle rebase fix error
* move advanced http setting and wrap everything in the config subsection component to fix font
* fix input width
* use cx for conditional classes
* use cx for conditional class
* Revert "remove regions/locations from variable editor"
This reverts commit 41dc6a8bfb.
* Revert "remove region pieces from e2e"
This reverts commit 6b1f82f14a.
* e2e: open resource picker correctly
* WIP
* fixes for readability
* fix
* WIP
* Keep tab index working with portal
* Use callback and clean up
* Fix linting errors
* Ignore clickable element
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* don't show Admin/Data sources page in navtree
* redirect from admin/datasources to connections/datasources
* update link of DS plugins to connections/datasources
* redirect edit page from datasources to connections
* redirect to new datasource page under connections
* redirect to datasouce dashboard page under connections
* fix navId on datasource dashboards page
* fix datasource dashboard page's nav
* Revert "update link of DS plugins to connections/datasources"
This reverts commit 0ebcb09b03.
* Fix inconsistencies in alert rule form depending on alert type
* Fix default annotations when comming from dashboard panel
* Update texts following pr review comments
* Fix texts
---------
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* added new configure loki doc
* finished first draft of config doc
* changed file name
* started updates to query editor
* updated config and qury editor
* updated index doc config doc and query editor
* updated query editor
* updates to query editor doc
* more updates to query editor and index doc
* one small update
* updates to query editor doc and index
* Update docs/sources/datasources/loki/_index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/loki/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* made changes suggested in PR
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* AzureMonitor: Fix ResourcePicker hanging
Removed location fetching for every subscription.
Fixes#70523
* fix region for multi metricnames
* fix tests
* fix e2e
* remove regions/locations from variable editor
* remove region pieces from e2e
* Alerting: Fix contact point testing with secure settings
Fixes double encryption of secure settings during contact point testing and removes code duplication
that helped cause the drift between alertmanager and test endpoint. Also adds integration tests to cover
the regression.
Note: provisioningStore is created to remove cycle and the unnecessary dependency.
* Add a keyboard shortcut to toggle all exemplars
Sometimes it's hard to see the quantile line behind all the exemplars.
This commit adds a `d x` keyboard shortcut to toggle exemplar visibility
on all prometheus queries. Unlike with legends, the logic is simpler
and it does a pure toggle as opposed to "majority toggle" as with legends.
Since exemplars might not be loaded, this also requires refreshing the data.
For the same reason, toggling a single panel is not supported, as it will
make the panel data out of sync with the rest of the dashboard.
* Use "p x" to navigate to panel explore rather than just "x"
It's more consistent with other panel level shortcuts.
It also doesn't conflict with the global "x" to toggle exemplars that way.
* logs: context: correctly append to the above&below arrays
* logs: context: on initial load always scroll to center
* logs: context: reset counts when context-query-ui changes
* add a new feature toggle for locking down role sync for users managed by GCom
* protect the frontend and the backend using the new feature toggle
* fix merge
* Expose library element service's folder service
* Register library panels, add count implementation
* Expand folder counts test
* Update registry deletion method interface
* Allow getting library elements from any folder
* Add test for library panel deletion
* Add test for library panel counting
* Update public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/SettingsBar.tsx
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
* revert modal styling and add specific styling to Sharing
* Update public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/SettingsBar.tsx
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
* functions > const
* put a gat between all items in email config, instead of margins for each item
* fix html semantic elements
* ad theme to class component ShareModal
* add labels
* fix failing tests; now Settings has a summary and has to be opened to be able to see the On/Off toggles
* fix dashboard-public-create test with settings dropdown
* Remove feature flag from registry.go
* Remove usages of toggle
* Refactor and cleanup Tempo's query field components
* Added deprecation alert
* Mark nativeSearch fields as deprecated
* Also show deprecated search tab if queryType is nativeSearch
* Update deprecation message to list grafana version
* Fix merge conflict
* Remove mention of toggle from docs
* reportInteraction when clicking on angular deprecation docs link
* Made messages consistent, removed duplicate component
* Revert unnecessary changes in PluginDetailsPage.test.tsx
* Moved angular deprecation notice to different folder
* Fix component names
* Dismissable alert
This features adds a configuration option when creating an alert rule query. This option already exists as part of the alert query model but is not currently configurable through the UI.
* make sure LastSeen hook has information to decide if update is necessary
* make user service check if it should update the user's last seen
* do not run last seen hook if is a login request
* make service return error when last seen is up to date
* fix err
* Update pkg/services/contexthandler/contexthandler.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* fix golint
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Azure: AzureMonitorMetrics - change response to be dataplane compliant
can be disabled via toggle azureMonitorDataplane
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update dependency @grafana/experimental to v1.6.1
* chore(mssql-datasource): update completion provider to work with experimental type changes
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Use new NestedFolderPicker in SaveDashboardAsForm
* use FolderPicker wrapper in dashboard settings
* fix e2e test
* actually pass the deprecated props to the component
* just pass value
---------
Co-authored-by: joshhunt <josh@trtr.co>
* adding a panel menu group item to UI extensions.
* draft
* Fixed so we support groups in the old panel menu.
* added proper styling.
* Made tests green and small refactor.
* Added tests for panel menu category.
* Will truncate the extensions category to 25 chars.
* added test for truncating category.
* Datasource test: fix describe nesting
* Parsing: export handleQuotes function
* Modify query: add functions to detect the presence of a label and remove it
* Loki: add support to toggle filters if already present
* Datasource test: fix describe nesting
* Loki: add support to toggle filter out if present
* Remove label: handle escaped values
* Datasource: add test case for escaped label values
* Loki: remove = filter when applying !=
* Remove selector: add support for Selector node being far from Matcher
* Modify query: add unit tests
* Elasticsearch: create modifyQuery for elastic
* Elastic modify query: implement functions
* Elasticsearch: implement modifyQuery functions in datasource
* Elasticsearch: update datasource test
* Loki modify query: check for streamSelectorPositions length
* Elasticsearch query has filter: escape filter value in regex
* Remove unused type
* Modify query: add functions to detect the presence of a label and remove it
* Remove label: handle escaped values
* Logs: create props to check for label filters in the query
* Log Details Row: use label state props to show visual feedback
* Make isCallbacks async
* Explore: add placeholder for checking for filter in query
* Datasource: define new API method
* Inspect query: add base implementation
* Remove isFilterOutLabelActive as it will not be needed
* Check for "isActive" on every render
Otherwise the active state will be out of sync
* Elasticsearch: implement inspectQuery in the datasource
* Logs: update test
* Log details: update test
* Datasources: update tests
* Inspect query: rename to analize query to prevent confusion
* Datasource types: mark method as alpha
* Explore: add comment to log-specific functions
* Remove duplicated code from bad rebase
* Remove label filter: check node type
* getMatchersWithFilter: rename argument
* Fix bad rebase
* Create DataSourceWithQueryManipulationSupport interface
* Implement type guard for DataSourceWithQueryManipulationSupport
* DataSourceWithQueryManipulationSupport: move to logs module
* hasQueryManipulationSupport: change implementation
`modifyQuery` comes from the prototype.
* DataSourceWithQueryManipulationSupport: expand code comments
* AnalyzeQueryOptions: move to logs module
* DataSourceWithQueryManipulationSupport: add support for more return types
* Fix merge error
* Update packages/grafana-data/src/types/logs.ts
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* DatasourceAPI: deprecate modifyQuery
* Explore: refactor isFilterLabelActive
* DataSourceWithQueryModificationSupport: rename interface
* Split interfaces into Analyze and Modify
* Query analysis: better name for interface
* Fix guard
* Create feature flag for active state
* Use new feature flag in Explore
* DataSourceToggleableQueryFiltersSupport: create a specific interface for this feature
* Rename feature flag
* De-deprecate modifyQuery
* DataSourceToggleableQueryFiltersSupport: Rethink types and methods
* Explore: adjust modifyQuery and isFilterLabelActive to new methods
* Loki: implement new interface and revert modifyQuery
* DataSourceToggleableQueryFiltersSupport: better name for arguments
* Elasticsearch: implement new interface and revert modifyQuery
* Loki: better name for arguments
* Explore: document current limitation on isFilterLabelActive
* Explore: place toggleable filters under feature flag
* Loki: add tests for the new methods
* Loki: add legacy modifyQuery tests
* Elasticsearch: add tests for the new methods
* Elasticsearch: add legacy modifyQuery tests
* Toggle filter action: improve type values
* Logs types: update interface description
* DataSourceWithToggleableQueryFiltersSupport: update interface name
* Update feature flag description
* Explore: add todo comment for isFilterLabelActive
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Update _index.md
Edits to the "Set up image rendering" doc.
1. First section, "Set up Image Rendering," last paragraph:
"You can also render a PNG by clicking hovering..." -- I removed "clicking" from that sentence.
2. "Alerting and Render Limits" section, link for "concurrent_render_limit" takes you to the page but not the section. This seems to be the case for all section links on this "Configure Grafana" page. I'm not sure how to fix it but switched from a relative link to a full path to see if that would help.
3. "Install Grafana Image Renderer Plugin," the link goes to the plugin overview page instead of the installation page. I tried adding the full path to see if that would go to the installation tab.
4. "Configuration" section, the same as the second edit I made, the first link, "Grafana configuration file," goes to the page but not the section link. I switched the relative path to a full path to see if it would work.
5. "Security" section, the very last sentence has the same Grafana configuration page link that goes to the correct page but not the correct section, "Grafana configuration" for the renderer token section. Same as previous ones, I switched out the relative path for the full path.
6. "Start browser with additional arguments," the second link in the first paragraph that goes to Puppeteer list of Chromium flags went to a 404 page. I couldn't figure out where they had moved it so I found a different site with a list of default flags and used that link instead.
* corrects links
* updates links
* fixes anchor link
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
@@ -1294,7 +1294,7 @@ This option to group query variable values into groups by tags has been an exper
**Deprecation warnings**
- Scripted dashboards is now deprecated. The feature is not removed but will be in a future release. We hope to address the underlying requirement of dynamic dashboards in a different way. [#24059](https://github.com/grafana/grafana/issues/24059)
- The unofficial first version of backend plugins together with usage of [grafana/grafana-plugin-model](https://github.com/grafana/grafana-plugin-model) is now deprecated and support for that will be removed in a future release. Please refer to [backend plugins documentation](https://grafana.com/docs/grafana/latest/developers/plugins/backend/) for information about the new officially supported backend plugins.
- The unofficial first version of backend plugins together with usage of [grafana/grafana-plugin-model](https://github.com/grafana/grafana-plugin-model) is now deprecated and support for that will be removed in a future release. Please refer to [backend plugins documentation](/developers/plugin-tools) for information about the new officially supported backend plugins.
@@ -2204,7 +2204,7 @@ In the Loki data source, the dataframe format used to represent Loki logs-data h
### Deprecations
`setExploreQueryField`, `setExploreMetricsQueryField` and `setExploreLogsQueryField` are now deprecated and will be removed in a future release. If you need to set a different query editor for Explore, conditionally render based on `props.app` in your regular query editor. Please refer to https://grafana.com/docs/grafana/latest/developers/plugins/add-support-for-explore-queries/ for more information.
`setExploreQueryField`, `setExploreMetricsQueryField` and `setExploreLogsQueryField` are now deprecated and will be removed in a future release. If you need to set a different query editor for Explore, conditionally render based on `props.app` in your regular query editor. Please refer to https://grafana.com/developers/plugin-tools/create-a-plugin/extend-a-plugin/add-support-for-explore-queries for more information.
// need to ignore emotion's `css` prop, see https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md#rule-options
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
{pkg="io/ioutil",desc="Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details."},
{pkg="gopkg.in/yaml.v2",desc="Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available"},
{pkg="github.com/pkg/errors",desc="Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library."},
{pkg="github.com/xorcare/pointer",desc="Use pkg/util.Pointer instead, which is a generic one-liner alternative"},
{pkg="github.com/gofrs/uuid",desc="Use github.com/google/uuid instead, which we already depend on."},
{pkg="io/ioutil",desc="Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details."},
{pkg="gopkg.in/yaml.v2",desc="Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available"},
{pkg="github.com/pkg/errors",desc="Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library."},
{pkg="github.com/xorcare/pointer",desc="Use pkg/util.Pointer instead, which is a generic one-liner alternative"},
{pkg="github.com/gofrs/uuid",desc="Use github.com/google/uuid instead, which we already depend on."},
]
[linters-settings.depguard.rules.coreplugins]
deny=[
{pkg="github.com/grafana/grafana/pkg/",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/api",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/cmd",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/cuectx",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/extensions",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/kinds",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/middleware",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/modules",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/registry",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/services",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/build",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/codegen",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/events",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/ifaces",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/kindsysreport",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/mocks",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/plugins",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/setting",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/util",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/bus",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/components",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/expr",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/infra",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/login",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/models",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/server",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/tests",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/web",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/tsdb/intervalv2",desc="Core plugins are not allowed to depend on Grafana core packages"},
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.