Alerting: Fix rule storage to filter by group names using case-sensitive comparison (#88992)
* add test for the bug
* remove unused struct
* update db store to post process filters by group using go-lang's case-sensitive string comparison
--------
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
# Conflicts:
# pkg/services/ngalert/store/alert_rule.go
# pkg/services/ngalert/store/alert_rule_test.go
Added Grafana Play Links to Panel visualization docs (#88995)
* Update index.md on Node panels to Grafana Play link
* Update index.md add Traces docs link to Grafana Play
* Update index.md News documentation link to Grafana Play
* Update index.md Alert list documentation link to Grafana Play
* Update index.md Alert list fixed missing link
* Update index.md Fixed title
* Update index.md Trying code fix
* Ran prettier command
* Matched link text to dashboard titles
* Replaced URL with ref URI key
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 404617b33d)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
Chore: Fix test to retry fetching provisioned dashboard until is in place (#85408)
Retry fetching provisioned dashboard until is in place
(cherry picked from commit 88be09420c)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
InfluxDB: Use json-iterator package for json operations (#88562)
* return error early
* enable gzip between grafana and influxdb
* use json-iterator package for json operations
* revert gzip changes
* update test
* go mod tidy
go work sync
(cherry picked from commit 808cf75ff8)
* AuthN: Fix signout redirect url (#87631)
* Add missing return
* Use sign out redirect url from auth config if configured
* remove option from auth.jwt that is not used
(cherry picked from commit 0f3080ecb8)
* Fix types
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Update proxy/index.md (#88261)
* Update index.md
Specify proxy support is for SOCKS5 in Title. So it is clear this is not for TCP or HTTP proxy
* update title to match header
(cherry picked from commit 36c66e3e94)
Co-authored-by: Kyle Hounslow <7102778+kylehounslow@users.noreply.github.com>
* Docs: public dashboards fixes (#87870)
* Made minor style fixes
* Converted docs ref links to ref URIs and updated note style to admonitions
* Fixed link text and version syntax
(cherry picked from commit 80e2af5d25)
* Removed leftover merge conflict copy
* Removed second set of ref URIs
* Fixed ref text
* Docs: Rename variables pages (#87844)
* Renamed Manage variables page to Add variables
* Renamed Inspect variables page to Manage and inspect variables
* Updated H1 on Add variables
* Moved Manage variables content to from Add varibles page to Manage and inspect variables page and updated text to fit
* Updated link style to ref URIs in Manage and inspect variables
(cherry picked from commit 197ce3042d)
* Fixed bullet list
* trigger CI
* Ran prettier
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* Docs: add legends shared content (#86814)
* Updated shared file name and added missing options
* Added legend options 1 shared file to relevant visualizations
* Updated shared file name and corrected options
* Added legend options 2 shared file to relevant visualizations
* Updated legend content for heatmap and pie chart
* Added where shared legend files are used in each file
* Moved intro text out of viz pages into legend options shared files
* Added reasoning to front matter of shared files
* Added reasoning to front matter of shared files
* Fixed version interpolation and added cloud links
* Updated links in shared files
(cherry picked from commit dad3069594)
* Ran prettier
Docs: Add value mappings shared content (#86996)
* Added value mappings shared file
* Fixed name of file
* Fixed list of visualizations using shared file
* Added shared file to visualizations
* Updated shared file and added to canvas
* Updated shared file intro text
* Removed future tense
(cherry picked from commit d5fde99c6d)
* Docs: add tooltips shared content (#86553)
* Replaced shared tooltips file with text in xy chart
* Added tooltip info for heatmap
* Updated tooltip shared files, renamed one file, updated configure tooltips
* updated tooltip shared file paths
* Added tooltips shared files in relevant visualizations
* Added where shared file is used in tooltip-options-1
* Added where shared file is used in tooltip-options-2
* Added intro text and justifications to shared files
* Removed tooltips intro text from visualizations with shared files
* Added names of files to comments in shared files
(cherry picked from commit 0e81fdffbe)
* Removed xy chart
* Removed docs reference shortcode
Alerting/Annotations: Return nothing from historian store if filtering by tags and matchAny is false (#85488)
* Return nothing from historian store if filtering by tag
(cherry picked from commit cad8190a91)
Co-authored-by: William Wernert <william.wernert@grafana.com>
Alerting: Clamp Loki ASH range query to configured max_query_length (#83986)
* Clamp range in loki http client to configured max_query_length
Defaults to 721h to match Loki default
(cherry picked from commit 97f37b2e6f)
Co-authored-by: William Wernert <william.wernert@grafana.com>
CloudMonitoring: Fix query type selection issue (#87990)
* Use deepEqual to ensure migratedQuery is only returned when query is unchanged
* Add selectors for query editors
* Add more tests for query editor component
* Clarifying comments
* Fix how state is set
* Simplify query editor loading and migration
(cherry picked from commit 58d382e5dd)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Docs: Adds video embed for the Understanding Dashboards youtube video (#87449)
* Adds video embed for the Understanding Dashboards youtube video
* Moved video to Use dashboards page
---------
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 1e2c58fc80)
Co-authored-by: Tom Glenn <289945+tomglenn@users.noreply.github.com>
"Release: Updated versions in package to 10.4.4"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
CloudMonitoring: Improve legacy query migrations (#86069)
* Match backend and correctly migrate metricType
Update tests
* Ensure project is migrated or set if not defined
* Improve migrations logic
(cherry picked from commit 95667f6a53)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Azure data sources: Set selected config type before save (#87481)
* set selected config type before save
* use effect once and move in mssql
* add to prom
* Update ConfigurationEditor.tsx
* Update ConfigurationEditor.tsx
* Delete public/app/plugins/datasource/mssql/configuration/ConfigurationEditor.tsx
* omadsfdsa
* remove unneeded assign
(cherry picked from commit 5e19aa7bd1)
Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
Chore: Implement GetOAuthProviders in FakeSocialService (#87590)
Implement GetOAuthProviders in FakeSocialService
(cherry picked from commit 896882b004)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Provisioning: Look up provisioned folders by UID when possible (#87465)
look up provisioned folders by uid when possible
(cherry picked from commit 1884b03511)
Co-authored-by: Dan Cech <dcech@grafana.com>
Increase alerting upgrade message urgency and expand details
Specifically:
- Adds details on what to expect to happen when installing G11 before upgrading
to Grafana Alerting.
- Link the final legacy alerting removal blog post.
- Mention that newly generated folds will have differing UIDs.
Docs: Fix link to values.yaml file (#87014)
Fix link to values.yaml file
Linking to the "edit" URL fails if the reader doesn't have write access
to the repo: they'll be prompted to fork the repo or to sign in to
GitHub. Instead link to the "blob" URL which is accessible to all
readers.
(cherry picked from commit 64d5440c5a)
Co-authored-by: Nicholas P. Cole <nicholas@nicholaspcole.com>
Docs: Update Explore Metrics doc based on feedback (#87062)
* changed from private preview to public preview
* commented out pivot to logs and traces
(cherry picked from commit 3845033308)
Add FolderUID for library elements (#83819)
* Revert "Revert "Add FolderUID for library elements" (#83776)"
This reverts commit 0dfdb2ae47.
* Fix bug, dashboard id and library element fodler_id are the corresponding values
Dashboard table hold both dahboards and tables
(cherry picked from commit 5c4a2de59b)
Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
Alerting: Fix instances link when served from subpath (#86432)
Fix instances link when served from subpath
(cherry picked from commit 9614126cb7)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
SQLStore: Disable redundant create and drop unique index migrations on dashboard table (#86857)
SQLStore: Disable create and drop unique index migrations
(cherry picked from commit a5a3ee9fa3)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Docs: Update example docs for `rename by regex` (#86627)
* baldm0mma/update_regex/ update example docs
* baldm0mma/ push ts
* baldm0mma/update_regex with new exmaples
* baldm0mma/update_regex/ update images
* baldm0mma/regex_update/ update text
(cherry picked from commit ad679c62c6)
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
Alerting: Take receivers into account when custom grouping Alertmanager groups (#86127)
* Take receiver into account when custom grouping Alertmanager alert groups
* Fix and add tests
(cherry picked from commit acd3e83c1c)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
LDAP: Fix listing all non-matching groups (#86682)
Fix getRowId in LdapUserGroups to list all non-matching groups
(cherry picked from commit 6ab9dcde8d)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Alerting: Fix max_alerts field handling (#86651)
Fix max_alerts field parsing
(cherry picked from commit 1b930c341d)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Update the docs for state_periodic_save_interval (#86611)
This commit updates the docs for state_periodic_save_interval following
a question in the forums about what the consequences of this change could
be.
(cherry picked from commit 30d38c1775)
Co-authored-by: George Robinson <george.robinson@grafana.com>
[DOC] Update the traces to profile content based upon SDK updates (#86628)
Update the traces to profile content based upon SDK updates
(cherry picked from commit d6e84dbf0a)
Alerting: Fix simplified routing group by override (#86552)
* Alerting: Fix simplified routing custom group by override
Custom group by overrides for simplified routing were missing required fields
GroupBy and GroupByAll normally set during upstream Route validation.
This fix ensures those missing fields are applied to the generated routes.
* Inline GroupBy and GroupByAll initialization instead of normalize after
(cherry picked from commit 71445002b7)
Docs: Add GeoMaps YouTube Video (#86472)
* Update index.md on GeoMaps adding YouTube Video
Added the GeoMap YouTube video to the documentation
* Update docs/sources/panels-visualizations/visualizations/geomap/index.md
Totally agree, I tend to use those words and not realize :P
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 0d11f9b2f4)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
docs: add annotations play link (#86206)
* docs: add annotations play link
* PR feedback
(cherry picked from commit c9350a25c4)
Co-authored-by: David Allen <david.allen@grafana.com>
docs: add thresholds play link (#86212)
* docs: add thresholds play link
* PR review
(cherry picked from commit f50e29e004)
Co-authored-by: David Allen <david.allen@grafana.com>
docs: query data/relative time range override play link (#86213)
(cherry picked from commit c450d61d32)
Co-authored-by: David Allen <david.allen@grafana.com>
Alerting: Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy (#85481)
Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy
(cherry picked from commit 5b1498f98f)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
"Release: Updated versions in package to 10.4.3"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Docs: add Table visualization Play link (#85896)
Docs: add stat visualization Play link
(cherry picked from commit 83438bd231)
Co-authored-by: David Allen <david.allen@grafana.com>
Google Cloud Monitor: Fix `res` being accessed after it becomes `nil` in `promql_query.go` (#84223)
Fix res being accessed after it becomes nil in promql_query.go
(cherry picked from commit c2b94429e4)
Co-authored-by: Adam Yeats <16296989+adamyeats@users.noreply.github.com>
Docs: Fix wrong word for tempo example config (#85046)
Update configure-tempo-data-source.md
Replace traceToProfiles with tracesToProfiles
(cherry picked from commit 4205491788)
Co-authored-by: wissy <10373091+wissyhost@users.noreply.github.com>
Docs: g11 preview whats new fixes (#85759)
* Made style fixes to intro
* Updated upgrade guide menu title
* Commented Explore metrics docs link back in
(cherry picked from commit 8014665ab5)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
PR to document Explore Metrics (previously datatrails) (#85212)
* text dump
* initial edits
* more edits
* added more info, made edits
* first draft
* removed some commented out content
* final edits
* made requested changes
* feature name change
* missed a metrics explore - fixed
* ran prettier
---------
Co-authored-by: lwandz13 <larissa.wandzura@grafana.com>
(cherry picked from commit 3721682a02)
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Docs: Re-order features and update intro in Grafana 11.0-preview What's new (#85702)
* Re-order features and update intro in Grafana 11.0-preview What's new
* Removed title casing
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 3865b8c980)
* Removed old content kept in error
---------
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
Angular deprecation: Prefer local "angularDetected" value to the remote one (#85571)
* Angular deprecation: Prefer local value to remote
* Update tests
(cherry picked from commit c033a15aaa)
Docs: add YouTube video link and description (#85484)
* Update index.md Adding YouTube video link and description
Added a short description about the video and added the video to the page.
* Update docs/sources/panels-visualizations/visualizations/logs/index.md
Some edits went in. All nice :)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Removed repetition
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit f6a94837c5)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
OptionsPicker: Allow storing raw input even when matches exist (#84790)
(cherry picked from commit db6b51cb88)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Added YouTube video to index.md on Time Series (#85188)
* Added YouTube video to index.md on Time Series
Added a brief description and the YouTube link for the Time Series video.
* Update index.md
Did quick fix
* Update index.md
Found double space, removed, hope PR goes through
* Update docs/sources/panels-visualizations/visualizations/time-series/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit d4953f4a1f)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
Alerting: Fix receiver inheritance when provisioning a notification policy (#82007)
Terraform Issue: grafana/terraform-provider-grafana#1007
Nested routes should be allowed to inherit the contact point from the root (or direct parent) route but this fails in the provisioning API (it works in the UI)
(cherry picked from commit 2188516a21)
Co-authored-by: Julien Duchesne <julien.duchesne@grafana.com>
SQLEngine: Use `debug` method instead of custom implementation (#85118)
Use debug method instead of custom implementation
(cherry picked from commit 19159a89a2)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
CloudMonitoring: Only run query if filters are complete (#85004)
* Only run query if filters are complete
- Update tests
* Fix tests
(cherry picked from commit 4855751d0d)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Alerting: Add docs for "Keep Last State" feature (#84676)
Add initial docs for "Keep Last State" feature
(cherry picked from commit c5b04b5674)
Co-authored-by: William Wernert <william.wernert@grafana.com>
"Release: Updated versions in package to 10.4.2"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Alerting: Marshal incoming json.RawMessage in diff (#84692)
This will ensure the encoding is correct when comparing
to the existing rule.
(cherry picked from commit 6d16cf2699)
Co-authored-by: William Wernert <william.wernert@grafana.com>
* 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)
# Upper limit of data sources that Grafana will return. This limit is a temporary configuration and it will be deprecated when pagination will be introduced on the list data sources API.
datasource_limit=5000
# Number of queries to be executed concurrently. Only for the datasource supports concurrency.
# For now only Loki and InfluxDB (with influxql) are supporting concurrency behind the feature flags.
# Check datasource documentations for enabling concurrency.
concurrent_query_count=10
################################### SQL Data Sources #####################
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
user_identity_client_secret=
# Set the plugins that will receive Azure settings for each request (via plugin context)
# By default this will include all Grafana Labs owned Azure plugins, or those that make use of Azure settings (Azure Monitor, Azure Data Explorer, Prometheus, MSSQL).
# Enable the Unified Alerting sub-system and interface. When enabled we'll migrate all of your alert rules and notification channels to the new system. New alert rules will be created and your notification channels will be converted into an Alertmanager configuration. Previous data is preserved to enable backwards compatibility but new data is removed when switching. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
@@ -1159,6 +1214,14 @@ min_interval = 10s
# (concurrent queries per rule disabled).
max_state_save_concurrency=1
# If the feature flag 'alertingSaveStatePeriodic' is enabled, this is the interval that is used to persist the alerting instances to the database.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
state_periodic_save_interval=5m
# Disables the smoothing of alert evaluations across their evaluation window.
# Rules will evaluate in sync.
disable_jitter=false
[unified_alerting.screenshots]
# Enable screenshots in notifications. You must have either installed the Grafana image rendering
# plugin, or set up Grafana to use a remote rendering service.
@@ -1232,6 +1295,10 @@ loki_basic_auth_username =
# Optional password for basic authentication on requests sent to Loki. Can be left blank.
loki_basic_auth_password=
# For "loki" only.
# Optional max query length for queries sent to Loki. Default is 721h which matches the default Loki value.
loki_max_query_length=721h
[unified_alerting.state_history.external_labels]
# Optional extra labels to attach to outbound state history records or log streams.
# Any number of label key-value-pairs can be provided.
@@ -1254,17 +1321,20 @@ clean_upgrade = false
enabled=false
# URL of the remote Alertmanager that will replace the internal one.
# This URL should be the root path, Grafana will automatically append an "/alertmanager" suffix for certain HTTP calls.
# Required if `enabled` is set to `true`.
url=
# Tenant ID to use in requests to the Alertmanager.
# It will also be used for the basic auth username.
# It will also be used for the basic auth username if a password is configured.
tenant=
# Optional password for basic authentication.
# If not present, the tenant ID will be set in the X-Scope-OrgID header.
# Enable the legacy alerting sub-system and interface. If Unified Alerting is already enabled and you try to go back to legacy alerting, all data that is part of Unified Alerting will be deleted. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
# Auth token for plugin installations and removal in managed instances
install_token=
# Comma separated list of plugin ids for which angular deprecation UI should be disabled
hide_angular_deprecation=
# Comma separated list of plugin ids for which environment variables should be forwarded. Used only when feature flag pluginsSkipHostEnvVars is enabled.
forward_host_env_vars=
#################################### Grafana Live ##########################################
[live]
@@ -1728,6 +1802,8 @@ server_name =
proxy_address=
# Determines if the secure socks proxy should be shown on the datasources page, defaults to true if the feature is enabled
# Options to configure the experimental Feature Toggle Admin Page feature, which is behind the `featureToggleAdminPage` feature toggle. Use at your own risk.
@@ -1746,3 +1822,8 @@ hidden_toggles =
# Disables updating specific feature toggles in the feature management page
read_only_toggles=
#################################### Public Dashboards #####################################
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
;user_identity_client_secret =
# Set the plugins that will receive Azure settings for each request (via plugin context)
# By default this will include all Grafana Labs owned Azure plugins, or those that make use of Azure settings (Azure Monitor, Azure Data Explorer, Prometheus, MSSQL).
#Enable the Unified Alerting sub-system and interface. When enabled we'll migrate all of your alert rules and notification channels to the new system. New alert rules will be created and your notification channels will be converted into an Alertmanager configuration. Previous data is preserved to enable backwards compatibility but new data is removed.```
@@ -1101,6 +1130,19 @@
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;min_interval = 10s
# This is an experimental option to add parallelization to saving alert states in the database.
# It configures the maximum number of concurrent queries per rule evaluated. The default value is 1
# (concurrent queries per rule disabled).
;max_state_save_concurrency = 1
# If the feature flag 'alertingSaveStatePeriodic' is enabled, this is the interval that is used to persist the alerting instances to the database.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;state_periodic_save_interval = 5m
# Disables the smoothing of alert evaluations across their evaluation window.
# Rules will evaluate in sync.
;disable_jitter = false
[unified_alerting.reserved_labels]
# Comma-separated list of reserved labels added by the Grafana Alerting engine that should be disabled.
# For example: `disabled_labels=grafana_folder`
@@ -1151,6 +1193,10 @@
# Optional password for basic authentication on requests sent to Loki. Can be left blank.
; loki_basic_auth_password = "mypass"
# For "loki" only.
# Optional max query length for queries sent to Loki. Default is 721h which matches the default Loki value.
; loki_max_query_length = 360h
[unified_alerting.state_history.external_labels]
# Optional extra labels to attach to outbound state history records or log streams.
# Any number of label key-value-pairs can be provided.
@@ -1591,6 +1637,7 @@
# The address of the socks5 proxy datasources should connect to
@@ -29,13 +29,40 @@ We value clean and readable code, that is loosely coupled and covered by unit te
Tests must use the standard library, `testing`. For assertions, prefer using [testify](https://github.com/stretchr/testify).
### Test Suite and Database Tests
We have a [testsuite](https://github.com/grafana/grafana/tree/main/pkg/tests/testsuite) package which provides utilities for package-level setup and teardown.
Currently this is just used to ensure that test databases are correctly set up and torn down, but it also provides a place we can attach future tasks.
Each package SHOULD include a [TestMain](https://pkg.go.dev/testing#hdr-Main) function that calls `testsuite.Run(m)`:
```go
packagemypkg
import(
"testing"
"github.com/grafana/grafana/pkg/tests/testsuite"
)
funcTestMain(m*testing.M){
testsuite.Run(m)
}
```
You only need to define `TestMain` in one `_test.go` file within each package.
> Warning
> For tests that use the database, you MUST define `TestMain` so that the test databases can be cleaned up properly.
### Integration Tests
We run unit and integration tests separately, to help keep our CI pipeline running smoothly and provide a better developer experience.
To properly mark a test as being an integration test, you must format your test function definition as follows, with the function name starting with `TestIntegration` and the check for `testing.Short()`:
```
```go
funcTestIntegrationFoo(t*testing.T){
iftesting.Short(){
t.Skip("skipping integration test")
@@ -66,8 +93,8 @@ Use [`t.Cleanup`](https://golang.org/pkg/testing/#T.Cleanup) to clean up resourc
### Mock
Optionally, we use [`mock.Mock`](https://github.com/stretchr/testify#mock-package) package to write mocks. This is
useful when you expect different behaviours of the same function.
Optionally, we use [`mock.Mock`](https://github.com/stretchr/testify#mock-package) package to write mocks.
This is useful when you expect different behaviors of the same function.
Make sure to run `make drone` so that changes to `.star` files are reflected and `drone.yml` is generated.
### Additional files to change
- Take a look in `.github/workflows` folder for what `go` version is being used there in various workflows.
- Make sure to create a PR with the corresponding changes in `grafana/grafana-enterprise` repository.
## Updating the go.mod file
Please avoid updating the `go.mod` to the newest version unless really necessary. This ensures backwards compatibility and introduces less breaking changes. Always upgrade Go version in the runtime files above first, let them run for a couple of weeks and only then consider updating the `go.mod` file if necessary.
| [Support for Mysql 5.7](https://github.com/grafana/grafana/issues/68446) | 2023-05-15 | October 2023 | | MySQL 5.7 is being deprecated in October 2023 and Grafana's policy is to test against the officially supported version. | Planned |
| Name | Announcement Date | Disabling date | Removal Date | Description | Status |
| [Support for Mysql 5.7](https://github.com/grafana/grafana/issues/68446) | 2023-05-15 | October 2023 | | MySQL 5.7 is being deprecated in October 2023 and Grafana's policy is to test against the officially supported version. | Planned |
@@ -8,8 +8,8 @@ Make sure you have the following dependencies installed before setting up your d
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org)
-[Yarn](https://yarnpkg.com)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature)
-GCC (required for Cgo dependencies)
### macOS
@@ -19,7 +19,7 @@ We recommend using [Homebrew](https://brew.sh/) for installing any missing depen
brew install git
brew install go
brew install node@20
npm install -g yarn
corepack enable
```
### Windows
@@ -37,14 +37,6 @@ For alternative ways of cloning the Grafana repository, please refer to [GitHub'
**Warning:** Do not use `go get` to download Grafana. Recent versions of Go have added behavior which isn't compatible with the way the Grafana repository is structured.
### Configure Editors
For some IDEs, additional configuration may be needed for Typescript to work with [Yarn plug'n'play](https://yarnpkg.com/features/pnp).
For [VSCode](https://yarnpkg.com/getting-started/editor-sdks#vscode) and [Vim](https://yarnpkg.com/getting-started/editor-sdks#vim),
it's as easy as running `yarn dlx @yarnpkg/sdks vscode` or `yarn dlx @yarnpkg/sdks vim`, respectively.
More information can be found [here](https://yarnpkg.com/getting-started/editor-sdks).
### Configure precommit hooks
We use pre-commit hooks (via [lefthook](https://github.com/evilmartians/lefthook)) to lint, fix, and format code as you commit your changes. Previously the Grafana repository automatically installed these hook when you did `yarn install`, but they are now opt in for all contributors
@@ -259,6 +251,12 @@ The resulting image will be tagged as grafana/grafana:dev.
Are you having issues with setting up your environment? Here are some tips that might help.
### IDE configuration
Configure your IDE to use the Typescript version from the Grafana repository. The version should match the Typescript version in the package.json file, and is typically at the path `node_modules/.bin/tsc`.
Previously Grafana used Yarn PnP to install frontend dependencies, which required additional special IDE configuration. This is no longer the case. If you have custom paths in your IDE for ESLint, Prettier, or Typescript, you can now remove them and use the defaults from node_modules.
### Too many open files when running `make run`
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a Unix like OS (e.g. Linux/macOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
@@ -14,4 +14,4 @@ The Drone pipelines are built with [Starlark](https://github.com/bazelbuild/star
- Open a PR where you can do test runs for your changes. If you need to experiment with secrets, create a PR in the [grafana-ci-sandbox repo](https://github.com/grafana/grafana-ci-sandbox), before opening a PR in the main repo.
- Run `make drone` after making changes to the Starlark files. This builds the `.drone.yml` file.
For further questions, reach out to the grafana-delivery squad.
For further questions, reach out to the grafana-release-guild squad.
@@ -9,7 +9,8 @@ Grafana uses the [i18next](https://www.i18next.com/) framework for managing tran
- Use `<Trans i18nKey="search-results.panel-link">Go to {{ pageTitle }}</Trans>` in code to add a translatable phrase
- Translations are stored in JSON files in `public/locales/{locale}/grafana.json`
- If a particular phrase is not available in the a language then it will fall back to English
- To update phrases in English, edit the default phrase in both the component's source and the [English grafana.json message catalogue](../public/locales/en-US/grafana.json), then run `yarn i18n:extract`.
- To update phrases in English, edit the default phrase in the component's source and then run `yarn i18n:extract`.
- The single source of truth for en-US (fallback language) is in grafana/grafana, the single source of truth for any translated language is Crowdin
- To update phrases in any translated language, edit the phrase in Crowdin. Do not edit the `{locale}/grafana.json`
2. Upon reload, the default English phrase will appear on the page.
3. Before submitting your PR, run the `yarn i18n:extract` command to extract the messages you added into the `grafana.json` file and make them available for translation.
3. Before submitting your PR, run the `yarn i18n:extract` command to extract the messages you added into the `public/locales/en-US/grafana.json` file and make them available for translation.
**Note:** All other languages will receive their translations when they are ready to be downloaded from Crowdin.
### Plain JS usage
@@ -64,20 +66,20 @@ While the `t` function can technically be used outside of React functions (e.g,
## How to add a new language
1. Add new locale in Crowdin and sync files to repo
1. Add new locale in Crowdin and download files to repo
1. Grafana OSS Crowdin project -> "dot dot dot" menu in top right -> Target languages
Use hook useStyles2(getStyles) to memoize the styles generation and try to avoid passing props to the the getStyles function and instead compose classes using emotion cx function.
Use hook useStyles2(getStyles) to memoize the styles generation and try to avoid passing props to the getStyles function and instead compose classes using emotion cx function.
"description":"This visualizes a time series of enumerated values, displaying minimum, maximum, and average values over time to track fluctuations and trends",
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.