PromLink: Fixes promlink test failing in CI and locally (#74299)
(cherry picked from commit 39b3b08926)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Docker: Add musl as a ubuntu dependency (#74127)
Add musl as a ubuntu dependency
(cherry picked from commit 364ca3daa0)
Co-authored-by: Kevin Minehart <kmineh0151@gmail.com>
* [LDAP] Disable removed users on login (#74016)
* [LDAP] Disable removed users on login
* Fix tests
* Add test for user disabling
* Add tests for disabling user behind auth proxy
* Linting.
* Rename setup func
* Account for reviews comments
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
(cherry picked from commit f900098cc9)
* manual backport of #74016
* LDAP: Fix active sync with large quantities of users (#73834)
* Fix middleware test
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
CI: Mount /root/.docker/ dir in authenticate-gcr step (#73977)
Mount /root/.docker/ dir
(cherry picked from commit eea4adea29)
# Conflicts:
# .drone.yml
Alerting: Limit redis pool size to 5 and make configurable (#74057)
* Limit redis pool size to 5 and expose it in config ini
* Coerce negative pool sizes to the default
(cherry picked from commit dfba94e052)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
Docs: Include Cloud support with RBAC API (#73522)
Update access_control.md
Update to show that RBAC HTTP API can be used with a Cloud account also.
(cherry picked from commit d8fd4c2cbe)
Co-authored-by: sarah-spang <86264026+sarah-spang@users.noreply.github.com>
docs: update app plugin guidance (#74006)
Original text focusses on creation in a management topic. This change makes it more relevant to an administrator who is installing plugins.
(cherry picked from commit 0884f40c8d)
Co-authored-by: David Harris <david.harris@grafana.com>
* Plugins: Dynamic angular patterns: Add random offset to GCOM API calls, handle HTTP errors (#73494)
* Plugins: Dynamic angular patterns: Return error for != 2xx status code
* Add test for status code check
* Plugins: Dynamic angular patterns: Add random skew to periocic GCOM api calls
* Add test for random skew
* Changed randomSkew signature, ensure it is always positive
(cherry picked from commit 4ef98449ff)
* trigger
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
access control api: Correction of typo in list your permissions endpoint (#64399)
Correction of API endpoint
Correction of an API endpoint in 'List your permissions' section. Current endpoint results in 404 page
(cherry picked from commit cb040a72bd)
Co-authored-by: bojankezele <79632099+bojankezele@users.noreply.github.com>
Docs: change headings on 2 data source pages for SEO (#73792)
* changed grafana alerting titles and headings
* changed H1 heading for SEO
(cherry picked from commit b654e5642c)
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
* "Release: Updated versions in package to 10.1.1"
* Update version to 10.1.1 in gen.ts files
---------
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Co-authored-by: Horst Gutmann <horst.gutmann@grafana.com>
Docs: Introduction topic title update (#73702)
updates introduction topic title to be consistent with Grafana Cloud and other products
(cherry picked from commit 2d388cfa55)
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Kinds: Reconcile verify-kinds.go with kind-registry changes (#73689)
* Kinds: Reconcile verify-kinds.go with kind-registry changes
* Remove handwritten value specific for manual test
* Update grafana/kindsys dep
* Revert "Update grafana/kindsys dep"
This reverts commit e437e1879e.
* Fix generated code
(cherry picked from commit fb0165ab87)
Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
Codeowners: Add myself (Miki) as codeowner of connections and datasources (#73623)
add mikkancso as connections, datasources codeowner
(cherry picked from commit cf9da12975)
Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
Alerting: Add new Recording Rule button when the list is empty (#73502)
* Add button to create RR when there are no alerts
* Remove unneeded import
* Change cards to be shown vertically
(cherry picked from commit 27fb922f9b)
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Drawer: Clicking a `Select` arrow within a `Drawer` no longer causes it to close (#73557)
ensure drawer doesn't close when clicking dropdown arrow
(cherry picked from commit 1f49d480a8)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Docs: Update OAuth entry to match What's new (#73512)
* Aligned oauth entry with What's new version
* Fixed menuTitle spelling in front matter
(cherry picked from commit f10f1874e6)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Logs: Fix log samples not present with empty first frame (#73612)
* fix log samples not present with empty first frame
* also test with empty frames
* rename test file
* remove import
(cherry picked from commit 997d21f6e5)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
disable a feature toggle that is on by default (#69438)
* disable a feature toggle that is on by default
We document how to enable a feature toggle, but not how to disable one. This adds the config setting to disable a toggle that is on by default.
* remove "alpha"
Alpha features are not the only ones that can be enabled, and we don't use the term "alpha" anymore.
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* makes prettier
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
(cherry picked from commit 4a6057db65)
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
Sync-mirror GHA updates (#73504)
fixing sync-mirror run-name and altering concurrency to use branch name
(cherry picked from commit 4047cdb213)
Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>
Docs: Data source picker everywhere updates (v10.1) (#73347)
* Added text about the updated data source picker
* Reformatted and reworded new language and removed from Correlations
(cherry picked from commit 5988da1aa8)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
SqlDataSources: Update metricFindQuery to pass on scopedVars to templateSrv (#73333)
(cherry picked from commit 3245e25273)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Grafana versioning: Remove `pre` suffix from Grafana version (#73357)
* Remove pre suffix from version
* Fix tests
(cherry picked from commit 0aba319ea0)
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
Docs: Fixed Grafana Fundamentals tutorial to match updated UI (#73168)
* Update index.md
The word `Configuration` was used to describe an action for getting started, when the actual UI has the word `Administration` and not Configuration. Updated the docs to reflect the actual environment created.
* Update index.md
Updated the tutorial to match the current UI options
* Made copy edits for styling and consistency with Cloud fundamentals tutorial
Made some copy edits to match our style guide and to make this tutorial a bit more consistent with the Cloud version. Also added the step for updating the legend back to the build dashboards section.
* Ran linter
* Edited text to match updated UI
Made edits to match UI behaviour as well as some further style edits.
* Made final copy edits
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit cc1ea31616)
Co-authored-by: C M <40527412+glitchwizard@users.noreply.github.com>
Loki: Fix validation of `step` values to also allow e.g. `ms` values (#73270)
* use go duration validation
* add `isValidGrafanaDuration`
* use `isValidGrafanaDuration`
* improve jsdoc
(cherry picked from commit c006ea18fb)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
docs: What’s New & Upgrade Guide 10.1 (#70636)
* added what's new 10.1
* created new upgrade guide
* updated index file to 10.1
* updated whats new index file
* Dataviz: add disconnect values whats new content
* Docs: Add Configure refresh token handling separately for OAuth providers to what's new 10.1 (#71648)
* Add what s new section for configuring refresh token handling
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Whats new: Add step editor and copy link (#71964)
* Add step editor and copu link to the whats new
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Add flamegraph section
* Added TraceQL response streaming section
* Updated tempo-streaming video link
* What's new: Add Loki, Elasticsearch, and Log changes (#72101)
* What's new: Add Loki, Elasticsearch, and Log changes
* Remove Lucene parser mention
* added contributor name to each entry
* Alerting: adds whats new entries and structure
* Elasticsearch: logs sample in explore
* Add span filtering is GA to whats new doc
* Transformations redesign and metrics explorer
* ran prettier
* What's new 10.1: Recategorize contents and add missing data (#72199)
What's new: recategorize content and add missing data
* Revert whats new refresh token handling (#72191)
Revert refresh token handling
* docs: What’s New & Upgrade Guide 10.1 AuthNZ (#72000)
* add what's new authnz
* Update docs/sources/upgrade-guide/upgrade-v10.1/index.md
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: screenshots and updates
* Alerting: delete couple of entries
* Docs: Add Visualizations and Widgets Split to what's new 10.1 (#72009)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1 (#72221)
* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1
* Add guidance for Cloud users to enable the feature
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: adds notification policy entry
* Add Plugins/Angular deprecation sections to What's new 10.1
* Add Plugins/ds uid deprecation section to What's new 10.1
* Alerting: adds label color entry
* Adds whats new features for AWS Datasources
* Update what's new 10.1 angular deprecation section
* Docs: what's new for preventing manual role updates (#72279)
* what's new for disabling manual role updates
* add a reference to the feature toggle
* fix spelling
* Apply suggestions from code review
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* PR feedback
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* wording fixes
* whatsnew-10.1.0: add logs-context info (#72240)
* whatsnew-10.1.0: add logs-context info
* explain what log context is
* improved description
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* better phrasing
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Subfolders: folder picker
* Influxdb backend mode
* Dataviz: heatmap datalink support
* DataViz: geomap new beta network layer
* Dataviz: update geomap network layer image
* Dataviz: update availability wording to public preview from experimental for geomap network layer
* Docs: Add Activate draft reports section to what's new in 10.1
* Docs: Add format time transformation to what's new
* Docs: Adjust format time transformation language
* Explore: Add what's new about panel plugins (#72338)
* Add what's new about panel plugins
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* add tabular outer join to whats new
* Update traceql streaming section
* Added new tempo search section
* Update traceql streaming video name
* docs: what's new 10.1.0, easier to use elastic query editor (#72513)
* docs: elasticsearch: new mode selector
* improved text
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* mitch edits
* Added product labels
* Made general copy edits
* Removed editing notes
* Fixed broken relref
* Fixed typo and added contributor name
* Added contributor name
* Made minor copy edits
* Update format time transformation docs
* A small edit to the role list
* Added missing information and committed copy edits
* Move Reports item to under Dashboards & visualizations
* Changed heading level of Activate draft reports
* Fixed wording of Choose which fields to display in log line entry
* Made edits to Logs improved performance entry
* Added availability for Transformations redesign
* Added availability for Join by fields
* Made final copy edits
* Removed Loki query splitting
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: André Pereira <adrapereira@gmail.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Gareth Dawson <gwdawson.work@gmail.com>
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
Co-authored-by: catherineymgui <catherine.gui@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Zsofia <zsofia.komaromi@gmail.com>
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Robert Horvath <robert.horvath@grafana.com>
Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 3432d3b721)
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
Logs: Fix scrolling with `exploreScrollableLogsContainer` feature (#73272)
fix scrolling with `exploreScrollableLogsContainer`
(cherry picked from commit 98b3878231)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Slug: Combine various slugify fixes for special character handling (#73164)
* combine various slugify fixes for special character handling
* a couple more test cases
* update more tests
* goimports
(cherry picked from commit dd97038b00)
Co-authored-by: Dan Cech <dcech@grafana.com>
docs: remove Moogsoft from angular list, update version for helm (#73204)
(cherry picked from commit 63ffd95110)
Co-authored-by: David Harris <david.harris@grafana.com>
AzureMonitor: Allow `serviceTags` and `tags` to be empty for trace results (#73145)
Allow serviceTags and tags to be empty
(cherry picked from commit 95546551bc)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Docs: Update to include keycloak link in oauth docs (#72698)
Update to include keycloak link in oauth docs
(cherry picked from commit 3c289d8a08)
Co-authored-by: Jess Sartin <jdoherty513@gmail.com>
Logs: Disable query splitting due to conflicts with transformations (#73086)
* disable query splitting for now
* change stage of `lokiQuerySplitting`
(cherry picked from commit 1343c74362)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Auth: prevent auto_login redirect if user is already authenticated (#72477)
* Auth: prevent auto_login redirect if user is already authenticated
Before attempting an auto-login for OAuth, verifies if current context has already been
authenticated.
Fixes: #72476
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
(cherry picked from commit d9c232b331)
Co-authored-by: Maksym Revutskyi <maksym.revutskyi@gmail.com>
EditDatasource: Fix navtree when `dataSourcePageHeader` is on (#72827)
use useDataSourceSettingsNav from connections in DataSourceTabPage
(cherry picked from commit 1646b901af)
Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
Add a warning in the documentation (#72975)
A partner complained in the name of a customer. They have 6k datasources and it took them some time to figure out why they only had 5k coming back.
This commit add a warning for this edge case, content is pretty clear.
(cherry picked from commit 5eef8291e2)
Co-authored-by: Clément Duveau <clement@duveau.eu>
InfluxDB: Fix handling flux response with no time and value column (#72833)
* Upgrade the influxdb-client-go version
* Handle flux response with no time and value column
(cherry picked from commit 1ac9e7eaab)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Logs: Fix displaying the wrong field as body (#73025)
* fix displaying the wrong field as body
* fix test
* fix `getFirstFieldOfType` with non-present type
(cherry picked from commit 533fae4c60)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Docs: Update screenshots for generating an access token for signing a plugin (#73031)
updated screenshots path and name
(cherry picked from commit 3c4d2edb61)
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
Prometheus: Fix fetching label values when datasource has no labels match api support (#72960)
* interpolate match string
* provide unit test
* add the third parameter back to fix the unit test
(cherry picked from commit 29906847e1)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
sign-plugin-docs: information of usage of a new token has been added to the docs (#72912)
* Documentation for signing a plugin has been updated
* changes after review
* small review change
(cherry picked from commit ba3cbbef7f)
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
Admin: Add redirect notice for datasources to admin landing page (#72736)
* update copy of ConnectionsRedirectNotice
The Connections page is not that new anymore
* extend NavLandingPage with optional header
* show ConnectionsRedirectNotice on Admin landing page
* make ConnectionsRedirectNotice dismissable
* make ConnectionsRedirectNotice informational
(cherry picked from commit 290fc3aadf)
Co-authored-by: mikkancso <miklos.tolnai@grafana.com>
Auth: OAuth sets `skip_org_role_sync = true` for auth.google by default (#72819)
* sets skip_org_role_sync to true for google
* add google skiporgrolesync and sets to true always
* add field
* Update docs/sources/setup-grafana/configure-security/configure-authentication/google/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add AKS to words
* script back to mina
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
(cherry picked from commit 95760cb021)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
InfluxDB: Fix retention policy handling for InfluxDB 3.0 engine by bringing back the hardcoded default (#72467)
* Revert retention policy handling
* Remove comment
* Send retention policy with request when it's possible
(cherry picked from commit 3395ad03a7)
Update bind-net-capabilities.md (#65181)
This doc fragment is included on multiple pages including this one: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
the only flaw is it's missing "sudo". Modern linux practice suggests using sudo for all administrative edits like this, and this change reinforces parallel structure in the target docs page. There may potentially be some other context this fragment is used in where sudo isn't appropriate, but this makes it easier to copy/paste the command and have it work on modern linuxes.
(cherry picked from commit 0d6e911fff)
Co-authored-by: David Allen <david.allen@grafana.com>
Auth: lock down Grafana admin sync for SAML (#72828)
lock down Grafana admin sync for SAML
(cherry picked from commit 3a2538c2ca)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
SAML: Add onclick action to providercard if the provider is configured (#72734)
* adds missign onclick for provider card
* simplified version
(cherry picked from commit 5d99fdeb46)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Auth: Add missing skipOrgRoleSync property to SocialBase for GenericOAuth (#72752)
* add missing cfg for skiporgrolesync
* add google skiporgrolesync
* removed google skip
* update docs to reflect google
* remove docs update for google
(cherry picked from commit 27f57fe112)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Fix setting oauthPassThru flag (#72472)
* Fix setting oauthPassThru flag
* Call onChange only if azure auth is enabled
* Move changes in onSettingsChange
(cherry picked from commit a44e0f2cfd)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Usage stats: Tune collector execution startup and interval (#72688)
* Do not update statistics at service collector startup
* Configurable collector interval
* Introduce initial random delay
* Prevent reporting metrics until the stats have been collected
* Apply suggestion from code review
(cherry picked from commit afb59af79b)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Search v1: Remove unnecessary subqueries (#72388)
* Add feature flag
* Introduce interface and dummy implementation
* Add tests for the new filter
* accessControlDashboardPermissionFilterNoFolderSubquery implementation
* join only if it's necessary
* force ordering for tests
* Temporarily enable new query for benchmarks
(cherry picked from commit 2c26a02b82)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Tempo: Only get span_names when they are in the response (#72663)
* Only get span names when they are in the response
* Find span_name field/labels
(cherry picked from commit b4c55765fe)
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
UserSync: Avoid UpdateLastSeenAt with invalid user ids (#72776)
* avoid user zero
* more errors
* more tests
* split
(cherry picked from commit 7431c0ddb1)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Update _index.md (#72222)
The existing link will take new users to the Data Source Management page which falls under that administration section and is perhaps more advanced that we want for a new user. The updated link takes new users to what I think was the intended "Data Sources" page.
(cherry picked from commit b8118520e4)
Co-authored-by: Iain Finlayson <ruffiain@gmail.com>
Update all links that have destinations outside of /docs/grafana/latest/datasources/ to use `docs/reference` shortcode (#72051)
* Update all links that have destinations outside of /docs/grafana/latest/datasources/ to use docs/reference shortcode
* Fix typo
* Prettier
---------
(cherry picked from commit 2b14b2d564)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Nested folders: Clear selection state in tree view when indeterminate (#72595)
* clear selection state when indeterminate
* ensure search state is properly cleared when toggling the indeterminate checkbox
* select everything in view
(cherry picked from commit dbef9899ac)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
docs: remove broken plugin from Angular guidance (#72614)
aceiot-svg-panel fails to load in G10 and is therefore (currently) an unviable alternative
(cherry picked from commit 01100f83ba)
Co-authored-by: David Harris <david.harris@grafana.com>
DS Picker: Ignore capitalization when sorting by name (#72665)
(cherry picked from commit 148b6186b7)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
InfluxDB: Fix fetching retention policies after manually entering a non-existent retention policy (#72564)
Don't fetch tag keys before fetching policies
(cherry picked from commit 31f4eddbb6)
Explore: Do not update URL when time range changes to absolute (#72436)
Allow passing updateURL flag to absolute time range event
(cherry picked from commit 89618e0c0f)
Docs: remove references to `groups_attribute_path` for Okta and GitLab docs (#72588)
remove references to groups_attribute_path for Okta and GitLab
(cherry picked from commit b96d6e2c8d)
docs: fix broken links (#72582)
* docs: fix broken link
To reflect changes on plugin-tools site
* fix more links
(cherry picked from commit d250927850)
Co-authored-by: David Harris <david.harris@grafana.com>
docs: add advanced data source picker option in Explore (#72412)
* updated screenshots in explore index page
* add advanced data picker option to jaeger, tempo, and zipkin data source docs
* Revert changes to data source files
Reverting changes to data source files to maintain scope of this PR as just updating Explore. Changes to other areas where DS picker has been updated will be addressed on another PR when that scope has been decided.
* Fixed indentation and made advanced ds picker language more robust
(cherry picked from commit 0c072770ca)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
CI: Make RGM the main pipeline for prerelease (#72295)
* Make RGM the main pipeline for prerelease
* Use grafana/grafana-build:dev-bd41660
* Use grafana/grafana-build:dev-fda506a
* Fix destination url
* Update vault secrets
* Move bucket path to environment
* Use grafana/grafana-build:dev-2f36afa
* Revert to grafana/grafana-build:main
* Add repo to rgm_main trigger
(cherry picked from commit 971f5f14be)
Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
Data sources: Dashboards page now loads correctly from direct url (#72264)
* ensure DataSourceDashboardsPage initialises data source settings
* fix unit test
* apply suggestions from review
(cherry picked from commit 7406c4ff51)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Chore: Refactor error when retrieving the plugin manifest key (#72492)
(cherry picked from commit a331c892a0)
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Geomap: Add network layer
* Support text labels for nodes
* Add solid styling for edges
* Remove symbol option for edge style menu
* Add support for edge text labels
* Fix linter issues
* Simplify multiple data frame handling
* Add TODO notes
* Add node and edge style categories for options
* Remove data frame hardcoding
* Hide legend, attempt to hide tooltip by default
* Mark network layer as beta
* refactor updateEdge
* Fix some linter issues
* Remove attempt at disabling tooltip for network layer
* For edge text add a stroke and increase z index
* Restrict field selection based on frame type
* refactor
* add basic bad data handling (prevent entire panel from breaking)
* generate non hard coded graph frames for style editor filtering
* code cleanup; remove hardcoded reference to "edges" frame
* fix select clearing for Data option
* fix styling
* fix lookup
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
* Extract logic from ExplorePage to a hook, add a test for the hook; remove ExplorePage test
* Remove extracted stuff from ExplorePage
* Clean up
* Fix minWidth logic
* build httpsettings overhaul with new auth component
* remove test code
* add connection and advanced http settings components
* use tooltip with link
* add correct styling and spacing
* save option select for sigV4
* fix styles in Azure auth to fit new auth component
* add types in overhaul folder that are not available yet in grafana
* update e2e tests for new connection component
* update e2e tests for new connection component
* update width of azure inputs
* fix non custom auth selects
* add feature toggle
* wrap azure style changes behind the feature flag
* fix feature toggle rebase fix error
* move advanced http setting and wrap everything in the config subsection component to fix font
* fix input width
* use cx for conditional classes
* use cx for conditional class
* Revert "remove regions/locations from variable editor"
This reverts commit 41dc6a8bfb.
* Revert "remove region pieces from e2e"
This reverts commit 6b1f82f14a.
* e2e: open resource picker correctly
* WIP
* fixes for readability
* fix
* WIP
* Keep tab index working with portal
* Use callback and clean up
* Fix linting errors
* Ignore clickable element
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* don't show Admin/Data sources page in navtree
* redirect from admin/datasources to connections/datasources
* update link of DS plugins to connections/datasources
* redirect edit page from datasources to connections
* redirect to new datasource page under connections
* redirect to datasouce dashboard page under connections
* fix navId on datasource dashboards page
* fix datasource dashboard page's nav
* Revert "update link of DS plugins to connections/datasources"
This reverts commit 0ebcb09b03.
* Fix inconsistencies in alert rule form depending on alert type
* Fix default annotations when comming from dashboard panel
* Update texts following pr review comments
* Fix texts
---------
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* added new configure loki doc
* finished first draft of config doc
* changed file name
* started updates to query editor
* updated config and qury editor
* updated index doc config doc and query editor
* updated query editor
* updates to query editor doc
* more updates to query editor and index doc
* one small update
* updates to query editor doc and index
* Update docs/sources/datasources/loki/_index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Update docs/sources/datasources/loki/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/loki/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* made changes suggested in PR
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* AzureMonitor: Fix ResourcePicker hanging
Removed location fetching for every subscription.
Fixes#70523
* fix region for multi metricnames
* fix tests
* fix e2e
* remove regions/locations from variable editor
* remove region pieces from e2e
* Alerting: Fix contact point testing with secure settings
Fixes double encryption of secure settings during contact point testing and removes code duplication
that helped cause the drift between alertmanager and test endpoint. Also adds integration tests to cover
the regression.
Note: provisioningStore is created to remove cycle and the unnecessary dependency.
* Add a keyboard shortcut to toggle all exemplars
Sometimes it's hard to see the quantile line behind all the exemplars.
This commit adds a `d x` keyboard shortcut to toggle exemplar visibility
on all prometheus queries. Unlike with legends, the logic is simpler
and it does a pure toggle as opposed to "majority toggle" as with legends.
Since exemplars might not be loaded, this also requires refreshing the data.
For the same reason, toggling a single panel is not supported, as it will
make the panel data out of sync with the rest of the dashboard.
* Use "p x" to navigate to panel explore rather than just "x"
It's more consistent with other panel level shortcuts.
It also doesn't conflict with the global "x" to toggle exemplars that way.
* logs: context: correctly append to the above&below arrays
* logs: context: on initial load always scroll to center
* logs: context: reset counts when context-query-ui changes
* add a new feature toggle for locking down role sync for users managed by GCom
* protect the frontend and the backend using the new feature toggle
* fix merge
* Expose library element service's folder service
* Register library panels, add count implementation
* Expand folder counts test
* Update registry deletion method interface
* Allow getting library elements from any folder
* Add test for library panel deletion
* Add test for library panel counting
* Update public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/SettingsBar.tsx
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
* revert modal styling and add specific styling to Sharing
* Update public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/SettingsBar.tsx
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
* functions > const
* put a gat between all items in email config, instead of margins for each item
* fix html semantic elements
* ad theme to class component ShareModal
* add labels
* fix failing tests; now Settings has a summary and has to be opened to be able to see the On/Off toggles
* fix dashboard-public-create test with settings dropdown
* Remove feature flag from registry.go
* Remove usages of toggle
* Refactor and cleanup Tempo's query field components
* Added deprecation alert
* Mark nativeSearch fields as deprecated
* Also show deprecated search tab if queryType is nativeSearch
* Update deprecation message to list grafana version
* Fix merge conflict
* Remove mention of toggle from docs
* reportInteraction when clicking on angular deprecation docs link
* Made messages consistent, removed duplicate component
* Revert unnecessary changes in PluginDetailsPage.test.tsx
* Moved angular deprecation notice to different folder
* Fix component names
* Dismissable alert
This features adds a configuration option when creating an alert rule query. This option already exists as part of the alert query model but is not currently configurable through the UI.
* make sure LastSeen hook has information to decide if update is necessary
* make user service check if it should update the user's last seen
* do not run last seen hook if is a login request
* make service return error when last seen is up to date
* fix err
* Update pkg/services/contexthandler/contexthandler.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* fix golint
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Azure: AzureMonitorMetrics - change response to be dataplane compliant
can be disabled via toggle azureMonitorDataplane
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update dependency @grafana/experimental to v1.6.1
* chore(mssql-datasource): update completion provider to work with experimental type changes
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Use new NestedFolderPicker in SaveDashboardAsForm
* use FolderPicker wrapper in dashboard settings
* fix e2e test
* actually pass the deprecated props to the component
* just pass value
---------
Co-authored-by: joshhunt <josh@trtr.co>
* adding a panel menu group item to UI extensions.
* draft
* Fixed so we support groups in the old panel menu.
* added proper styling.
* Made tests green and small refactor.
* Added tests for panel menu category.
* Will truncate the extensions category to 25 chars.
* added test for truncating category.
* Datasource test: fix describe nesting
* Parsing: export handleQuotes function
* Modify query: add functions to detect the presence of a label and remove it
* Loki: add support to toggle filters if already present
* Datasource test: fix describe nesting
* Loki: add support to toggle filter out if present
* Remove label: handle escaped values
* Datasource: add test case for escaped label values
* Loki: remove = filter when applying !=
* Remove selector: add support for Selector node being far from Matcher
* Modify query: add unit tests
* Elasticsearch: create modifyQuery for elastic
* Elastic modify query: implement functions
* Elasticsearch: implement modifyQuery functions in datasource
* Elasticsearch: update datasource test
* Loki modify query: check for streamSelectorPositions length
* Elasticsearch query has filter: escape filter value in regex
* Remove unused type
* Modify query: add functions to detect the presence of a label and remove it
* Remove label: handle escaped values
* Logs: create props to check for label filters in the query
* Log Details Row: use label state props to show visual feedback
* Make isCallbacks async
* Explore: add placeholder for checking for filter in query
* Datasource: define new API method
* Inspect query: add base implementation
* Remove isFilterOutLabelActive as it will not be needed
* Check for "isActive" on every render
Otherwise the active state will be out of sync
* Elasticsearch: implement inspectQuery in the datasource
* Logs: update test
* Log details: update test
* Datasources: update tests
* Inspect query: rename to analize query to prevent confusion
* Datasource types: mark method as alpha
* Explore: add comment to log-specific functions
* Remove duplicated code from bad rebase
* Remove label filter: check node type
* getMatchersWithFilter: rename argument
* Fix bad rebase
* Create DataSourceWithQueryManipulationSupport interface
* Implement type guard for DataSourceWithQueryManipulationSupport
* DataSourceWithQueryManipulationSupport: move to logs module
* hasQueryManipulationSupport: change implementation
`modifyQuery` comes from the prototype.
* DataSourceWithQueryManipulationSupport: expand code comments
* AnalyzeQueryOptions: move to logs module
* DataSourceWithQueryManipulationSupport: add support for more return types
* Fix merge error
* Update packages/grafana-data/src/types/logs.ts
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* DatasourceAPI: deprecate modifyQuery
* Explore: refactor isFilterLabelActive
* DataSourceWithQueryModificationSupport: rename interface
* Split interfaces into Analyze and Modify
* Query analysis: better name for interface
* Fix guard
* Create feature flag for active state
* Use new feature flag in Explore
* DataSourceToggleableQueryFiltersSupport: create a specific interface for this feature
* Rename feature flag
* De-deprecate modifyQuery
* DataSourceToggleableQueryFiltersSupport: Rethink types and methods
* Explore: adjust modifyQuery and isFilterLabelActive to new methods
* Loki: implement new interface and revert modifyQuery
* DataSourceToggleableQueryFiltersSupport: better name for arguments
* Elasticsearch: implement new interface and revert modifyQuery
* Loki: better name for arguments
* Explore: document current limitation on isFilterLabelActive
* Explore: place toggleable filters under feature flag
* Loki: add tests for the new methods
* Loki: add legacy modifyQuery tests
* Elasticsearch: add tests for the new methods
* Elasticsearch: add legacy modifyQuery tests
* Toggle filter action: improve type values
* Logs types: update interface description
* DataSourceWithToggleableQueryFiltersSupport: update interface name
* Update feature flag description
* Explore: add todo comment for isFilterLabelActive
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Update _index.md
Edits to the "Set up image rendering" doc.
1. First section, "Set up Image Rendering," last paragraph:
"You can also render a PNG by clicking hovering..." -- I removed "clicking" from that sentence.
2. "Alerting and Render Limits" section, link for "concurrent_render_limit" takes you to the page but not the section. This seems to be the case for all section links on this "Configure Grafana" page. I'm not sure how to fix it but switched from a relative link to a full path to see if that would help.
3. "Install Grafana Image Renderer Plugin," the link goes to the plugin overview page instead of the installation page. I tried adding the full path to see if that would go to the installation tab.
4. "Configuration" section, the same as the second edit I made, the first link, "Grafana configuration file," goes to the page but not the section link. I switched the relative path to a full path to see if it would work.
5. "Security" section, the very last sentence has the same Grafana configuration page link that goes to the correct page but not the correct section, "Grafana configuration" for the renderer token section. Same as previous ones, I switched out the relative path for the full path.
6. "Start browser with additional arguments," the second link in the first paragraph that goes to Puppeteer list of Chromium flags went to a 404 page. I couldn't figure out where they had moved it so I found a different site with a list of default flags and used that link instead.
* corrects links
* updates links
* fixes anchor link
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* Update _index.md
Added missing hyperlink for high availability and a small typo
* updates link
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* add a feature toggle
* add the fields for attribute, kind and identifier to permission
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* set the new fields when new permissions are stored
* add migrations
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* remove comments
* Update pkg/services/accesscontrol/migrator/migrator.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* feedback: put column migrations behind the feature toggle, added an index, changed how wildcard scopes are split
* PR feedback: add a comment and revert an accidentally changed file
* PR feedback: handle the case with : in resource identifier
* switch from checking feature toggle through cfg to checking it through featuremgmt
* don't put the column migrations behind a feature toggle after all - this breaks permission queries from db
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* pushed to get help of a genius
* fix: error response is not json
* feat: make request on click
* refactor: remove print statement
* refactor: remove unnecessary code
* feat: convert grafana variables to value for API request
* use the parser to interpolate and recover the original query (#64591)
* Prettify query: use the parser to interpolate and recover the original query
* Fix typo
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Fix typo
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* fix: reverse transformation not working
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Gareth Dawson <gwdawson.work@gmail.com>
* fix: bugs created from merge
* refactor: move prettify code out of monaco editor
* fix: variables with the same value get converted back to the incorect variable
* refactor
* use consistent styling with bigquery
* fix: only allow text/plain and application/json
* fix: only make the request if the query is valid
* endpoint now returns application/json
* prettify from js
* WIP: not all cases are handles, code still needs cleaning up
* WIP
* large refactor, finished support for all pipeline expressions
* add tests for all format functions
* idk why these files changed
* add support for range aggregation expr & refactor
* add support for vector aggregation expressions
* add support for bin op expression
* add support for literal and vector expressions
* add tests and fix some bugs
* add support for distinct and decolorize
* feat: update variable replace and return
* fix: lezer throws an errow when using a range variable
* remove api implementation
* remove api implementation
* remove type assertions
* add feature flag
* update naming
* fix: bug incorrectly formatting unwrap with labelfilter
* support label replace expr
* remove duplicate code (after migration)
* add more tests
* validate query before formatting
* move tests to lezer repo
* add feature tracking
* populate feature tracking with some data
* upgrade lezer version to 0.1.7
* bump lezer to 0.1.8
* add tests
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Datetime: Added more tests to the files in the datetime folder
* Updated tests suites according to feedback received
* Corrected the lint error
* Removed repetitive code
* introduce a function checkIfSeriesNeedToBeFixed to scan all value fields in the response and provide a function that updates Series so they can be uniquely identifiable. Only Graphite and TestData are checked.
* update `convertDataFramesToResults` to run this function and provide it to WideToMany
* update WideToMany to run the fix function if it is not nil
* update incorrect front matter labels
* removing unneeded labels from shared content files
* change public preview to private preview for email sharing
* add OSS back to product labels
* Fix different broken links and missing pages
* Pin version in docs link for release announcements
* fixing validator error
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* make unexpanded nested folder picker look like a select
* fix prefix icon
* placeholder style, only show input label if value selected
* aria-label
* text component
This commit updates eval.go to improve the performance of matching
captures in the general case. In some cases we have reduced the
runtime of the function from 10s of minutes to a couple 100ms.
In the case where no capture matches the exact labels, we revert to
the current subset/superset match, but with a reduced search space
due to grouping captures.
* init for base branch
* Add authnz code ownership
* Fix docs ownsership path
* docs revamp: Plan IAM strategy (#62582)
* Add planning page
* Add teams definition
* Expand on planning and benefits
* Add reasons to organize users
* Add description of User Teams
* Add Grafana organizations info
* Add a section between Teams and Orgs
* Add a section for external systems
* planning your role strategy
* Add service account documentation
* Add Auth Setup to index sidebar
* Address PR comments
* Add planning for API keys
* Add team and org sync
* Docs: role and permission section for planning docs (#64702)
* docs revamp: Service accounts (#63710)
* docs revamp: Add new documentation to sidebar index (#66104)
* docs revamp: synchronisation planning (#66409)
* Docs: api keys (#64803)
* Remove personal access tokens section
* Move auth integration planning page
* Remove auth folder
* Restore codeowners file
* reword and update info on user management and grouping
* Rename iam strategy page
* extend the section on teams and organizations
* Rename planning your IAM section
* Move to administration section
* Add definition for role sync
* Relocate planning
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* first attempt at keyboard handling
* rename some things, handle escape
* better
* almost working
* cleaner
* remove aria-label
* add some extra unit tests
* remove onMouseUp
* fix typo
* use a switch instead of if/else
* ensure lsit items are prefixed with an id unique to the picker
* extract keyboard interactions out into custom hook
* wrap handleCloseOverlay in useCallback
* use redux state instead of filtering items
* gRPC Server: Instrument requests made to the server.
Expose metrics from the gRPC server in order to monitor for failed responses
and response latency. Uses code from the already vendored weaveworks/common.
* Review comments.
This commit changes extractEvalString to sort NumberCaptureValues
in ascending order of Var before building the output string. This
means that users will see EvaluationString in a consistent order,
but also make it possible to assert its output in tests.
* Change references to plugin.go -> datasource.go
* Add section on starting Grafana in development mode
* Update docs/sources/developers/plugins/create-a-grafana-plugin/develop-a-plugin/build-a-data-source-backend-plugin.md
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* Clarify starting Grafana in dev mode
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* test: add test for getFiles
* fix: fix getFiles test to take in a module name (not modfile name)
* move functionality unrelated to getFiles into main func
* attempt to getFiles with ParseDir, empty map returned; TODO: restore modowners_generation_script_test.go
* test
* Revert "test"
This reverts commit 2b519f3725.
* Revert "attempt to getFiles with ParseDir, empty map returned; TODO: restore modowners_generation_script_test.go"
This reverts commit eb95247487.
* attempt to getFiles with ParseDir, empty map returned; TODO: restore modowners_generation_script_test.go
* post-pairing with daniel, can access imports in a file
* clean up comments for readability
* try to return map of importName: files that import the improt
* refactor: change getFiles to accept single import name and return list of files that import it
* add log to see importPath and importName
* hasImport working
* start modowners script & add comments for hasImport
* fix modules() and uncomment main
* start script to add team names to go.mod, currently can access a map of the import and name
* 💩
* calculate root directory to point to correct go.mod
* chore: delete unnecessary files
* chore: uncomment tests
* chore: remove unnecessary comments, update documentation comments with correct cli commands
* fix: revert changes in go.mod and go.sum
* where is my dependency flag value??
* fix: owners function now can list all owners (with counts) or list a specific owner for a given dependency
* fix: change fmt.Println to logger.Println for owners func
* partial fix: modules now only prints dependencies owned by given team. -i functionality still not working properly
* fix: fix TestModules, modules
* chore: update check error message to specify user needs to assign owner to new dependency
* fix: adjust punctuation in error string
* fix: clean up comments in modowners
* chore: remove note in modowners_test
* chore: wrap HTTP server in a dskit module
Much of the logic from this comes from the POC branch, so:
- credit for this work goes to everyone else
- mistakes are my own
This is needed to support microservice deployment modes.
* added an arbitrarily-chosen 30second timeout
* Update dependency marked to v5
* add marked-mangle to preserve previous behaviour
* turn off headerIds
* also need to initialise mangle here
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* When switching from mixed to another datasource preserve relevant queries
- Update query refs
- Update tests
* Ensure templateVars are handled correctly
- Add test
* Comment
* Unused var
* For ds template variable only preserve if going from&to template
- Add test
* PanelChrome scales vertically
* Trace View with old Trace View Header works with PanelChrome
* Add top margin
* Remove console.log
* Use contain: 'strict' only when height is passed
* Clean up: use title prop in PanelChrome and everything else should be put under
* Remove test as the title will be passed to PanelChrome
* Remove unused import
* Remove titleWithLinks from PanelChrome
* Make NewTracePageHeader compatible with PanelChrome
* Fix test
* Remove margin
* Remove unused css
* Revert config changes
* Clean up: remove console log and commented out css
* Clean up unused css
* Fix tests
* Revert to a brighter color
* Show links next to duration
* Cleanup
* Remove container style and use default displayMode in PanelChrome
* Clean up
* Revert 'Give feedback' styling
* PanelChrome's width auto scales
* Fix GraphContainer's props
* TraceViewContainer doesn't need a div wrapper
* Remove loading
* Fix build issue
* FIx merge conflict
* Revert old trace page header so the header items shows correctly in dashboards
* Revert to match old trace view header
* Revert NewTracePageHeader so it can show header items in dashboards
* Revert
* Revert tests
* Make 'Give feedback' link aligned vertically
* Remove unused css
* Reduce spacing between title and container in dashboards; remove top padding for NewTracePageHeader
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Initial changes to evaluation group step
* Add separate buttons for folder and eval group creation
* Implement folder creation from a modal
* Reset group upon folder creation
* Implement creation of evaluation group in modal
* Changes to evaluation group edit modal
* Fix tests
* Address review comments
* Fix tests
* Refactor to avoid passing AsyncRequestState as prop
* Refactor to avoid passing AsyncRequestState as prop
* Move handles open/close splits in UI and URL test to the spec folder
* Remove reference to explore
* Fix what was missing
* Remove afterEach
* Use standard, non-compact format
* Set every page to have defaults of 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration pages to have of 'Cloud', 'Enterprise', and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/enterprise-licensing pages to have 'Enterprise' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/organization-management pages to have 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/provisioning pages to have 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/recorded-queries pages to have labels cloud,enterprise
* Set administration/roles-and-permissions/access-control pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/stats-and-license pages to have labels cloud,enterprise
* Set alerting pages to have labels cloud,enterprise,oss
* Set breaking-changes pages to have labels cloud,enterprise,oss
* Set dashboards pages to have labels cloud,enterprise,oss
* Set datasources pages to have labels cloud,enterprise,oss
* Set explore pages to have labels cloud,enterprise,oss
* Set fundamentals pages to have labels cloud,enterprise,oss
* Set introduction/grafana-cloud pages to have labels cloud
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix introduction pages products
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set panels-visualizations pages to have labels cloud,enterprise,oss
* Set release-notes pages to have labels cloud,enterprise,oss
* Set search pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/audit-grafana pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/configure-authentication pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/configure-authentication/enhanced-ldap pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-authentication/saml pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-request-security pages to have labels cloud,enterprise,oss
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/configure-team-sync pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/export-logs pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set troubleshooting pages to have labels cloud,enterprise,oss
* Set whatsnew pages to have labels cloud,enterprise,oss
* Apply updated labels from review
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Provisioning landing page
* Move editing bit to view page
* Specify API vs File, and provide terraform example
* Improvements around notif policies
* Docs around contact points
* Use h2 instead of h1
* Address feedback
* Move text about policy granularity
* convert a bunch of grafana/ui to use emotion's object notation
* convert some more grafana-ui emotion styles
* more conversion
* more conversion
* finish conversion
* fix unit tests
* fix focus styles
* remove semicolon from infobox story
* enforce role sync except if skip org role sync is enabled
* move errors to errors file and set codes
* fix docs and defaults
* remove legacy parameter
* support fall through token-api in generic oauth
* fix error handling for generic_oauth
* Update pkg/login/social/generic_oauth.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update pkg/login/social/gitlab_oauth_test.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update pkg/login/social/gitlab_oauth_test.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Alerting: No longer silence paused alerts during legacy migration
Now that we migrate paused legacy alerts to paused UA alert rules, we no longer need to silence them.
* Fix accessibility issues
- Ensure key events exist and role is appropriately set
- Ensure that when the filter field is cleared the query is updated
* Review
* logs: restrict permalinks to datasources with id fields
* simplified code
* more tests
* more test
* removed unnecessary comment
* fixed tests
* updated tests
This adds a new auto-milestone workflow that will set the milestone for
a PR when it is closed. This way, contributors no longer have to think
about milestone at all.
* add grafana-apiserver
* remove watchset & move provisioning and http server to background
services
* remove scheme
* otel fixes (#70874)
* remove module ProvideRegistry test
* use certgenerator from apiserver package
* Control collector/pdata from going to v1.0.0-rc8 (as Tempo 1.5.1 would have it)
* Refactor Tempo datasource backend to support multiple queryData types.
Added traceId query type that is set when performing the request but doesn't map to a tab.
* WIP data is reaching the frontend
* WIP
* Use channels and goroutines
* Some fixes
* Simplify backend code.
Return traces, metrics, state and error in a dataframe.
Shared state type between FE and BE.
Use getStream() instead of getQueryData()
* Handle errors in frontend
* Update Tempo and use same URL for RPC and HTTP
* Cleanup backend code
* Merge main
* Create grpc client only with host and authenticate
* Create grpc client only with host and authenticate
* Cleanup
* Add streaming to TraceQL Search tab
* Fix merge conflicts
* Added tests for processStream
* make gen-cue
* make gen-cue
* goimports
* lint
* Cleanup go.mod
* Comments
* Addressing PR comments
* Fix streaming for tracel search tab
* Added streaming kill switch as the disableTraceQLStreaming feature toggle
* Small comment
* Fix conflicts
* Correctly capture and send all errors as a DF to client
* Fix infinite error loop
* Fix merge conflicts
* Fix test
* Update deprecated import
* Fix feature toggles gen
* Fix merge conflicts
* First changes
* WIP docs
* Align current tests
* Add test for UseRefreshToken
* Update docs
* Fix
* Remove unnecessary AuthCodeURL from generic_oauth
* Change GitHub to disable use_refresh_token by default
* Log row menu: refactor visibility
* LogRowMenuCell: display if mouse over or pinned
* LogRowMenuCell: use unique wrapper for all buttons
* Revert to using table row as position reference
* Log row message: update test
* Fix tests
* LogRow: handle mouse over behavior
* I18N: Add browser language detector
* Improve style
* No new property for type check
* Add dependency
* Suggested doc change
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Fix prettier
* 'detect' as special language, no cache and only navigator detector
As per PR suggestion comments
* Update language configuration doc
* Suggested change in doc
From @chri2547
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Fix import
* Revert public/app/types/explore.ts changes
* Prettier write
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: joshhunt <josh@trtr.co>
* Update dependency lru-cache to v10
* use named import
* remove outdated type definitions and actually use named import
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* introduce a new node-type ML and implement a command outlier that uses ML plugin as a source of data.
* add feature flag mlExpressions that guards the feature
* docs: update plugin management
2 of the 3 panels were deprecated and should no longer be referenced. Picked two recently updated panels to replace.
* docs: update create app
Remove reference to deprecated worldmap panel
* Update dependency immer to v10
* use named export now that the default has been removed
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Add smart type selection when creating a new alert rule
* Auto switch when switch button has not been clicked yet
* remove unnecessay code after the last refacgtor
* Refactor
* Remove unneeded prop
* Move SmartAlertTypeDetector to its own file
* Fix tests
* Refactor: new useSetExpressionAndDataSource hook
* Fix expressions not been propagated when switching from one type to another
* Change texts
* Update tests
* Update text in switch button
* Update texts and tests
* Refactor: move code to getCanSwitch new method
* Move smart alert after queries and remove auto-switch
* Remove expressions and restore them when switching between grafana and cloud type
* Rename previous expression state
* Fix tests
* Add data source name for data source-managed alert selection
* Update reducer when changing cloud data source
* PR review suggestions
* PR review suggestions 2nd part
* PR review suggestions 3th part
* Fix canSwitch
* Update texts on smart alert
---------
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* Update dependency glob to v10
* use named import
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Explore: Display multiple tables
* Fix tests
* Add multi table test
* Use refID and not weird custom key
* Remove tempo changes
* Consolidate/clean up some table frame logic
* clean up some code, have meta text in panel
This PR adds /api/gnet to the list of ignored paths in the gzip middleware.
Without this, when gzip is enabled (`server.enable_gzip = true`), responses
from the gnet proxy are double compressed: once by grafana.com and once by
Grafana itself. With this change we only do one round of compression for these
endpoints.
To test this out, try a request like this with `server.enable_gzip = true`
(after setting `GCOM_TOKEN` to a valid grafana.com token; you may need to
change the 'bsull' slug, too):
curl -v --user admin:admin \
-H "X-Api-Key: $GCOM_TOKEN" \
-H 'Accept-Encoding: gzip' \
localhost:3000/api/gnet/instances/bsull/provisioned-plugins/grafana-ml-app | gzip -d
Note that there are two Content-Encoding: gzip headers before this PR, and
the output is still compressed even after the `gzip -d`. After this PR things
look as expected.
* add data source uid to QueryError
* add error and datasource uid to tracing
* split queryDataResponseToResults to two functions one to extract frame from the result, and another to convert it
* propagate logger with context to convertDataFramesToResults
* restructured page, updated and removed images, replaced a paragraph with a procedure
* Clarify language
* Apply suggestions from code review
* removed native annotation language, added missing link, added text from UI
* fixed relref
* replaced relref with simple link
* updated links and link text in whats new for annotations updates
* fixed some grammar/wording and style issues
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* fix typo
Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
* make link text more clear
* fix typo
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
* add table visualisation for logs
* add `logsExploreTableVisualisation` feature flag
* add feature flag to visualisation switch
* fix english
* improve state when no data is present
* improve margin
* add missing prop to test
* add tests
* fix logs table height
* fix linting
* move visualisation toggle
* add field config overrides
* update tests
* fix explore test
* fix explore test
* add missing header and revert test changes
* use timefield from logsFrame.ts
* add TODO
* move to new file
* hide fields that should be hidden
* add test to hide fields
* remove unused lines
* github oauth doc improvements
* add skip_org_role_sync to config for github provider
* update links and section headings
* update the docs based on the first PR
* update references
* Update dependency sinon to v15.2.0
* add sinon to esmodules list
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Update info for the Support Bundle
Add in a note that access to the Support Bundle requires Grafana 9.5 and above.
* Make the user/permission restriction more visible since it gets lost a little in the code block
* Run prettier
* Move the new content to Before you begin section
This is the pattern that we're following with other doc topics as well.
* fix a typo
* linting
---------
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Search sql filter draft, unfinished
* Search works for empty roles
* Add current AuthModule to SignedInUser
* clean up, changes to the search
* Use constant prefixes
* Change AuthModule to AuthenticatedBy
* Add tests for using the permissions from the SignedInUser
* Refactor and simplify code
* Fix sql generation for pg and mysql
* Fixes, clean up
* Add test for empty permission list
* Fix
* Fix any vs all in case of edit permission
* Update pkg/services/authn/authn.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update pkg/services/sqlstore/permissions/dashboard_test.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Fixes, changes based on the review
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* move options into overlay
* add some unit tests
* Update public/app/features/browse-dashboards/components/BrowseActions/MoveModal.tsx
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* minor refactoring based on review comments
* just pass in uid
---------
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Saga: Divider component (horizontal and vertical)
* Documentation file updated
* Made changes suggested to the component, story and docs
* Updates made to the mdx documentation
* Updates on documentation for Divider component
* Made changes to the mdx documentation following suggestions received
* Angular deprecation: Add Angular badge in plugin catalog page
* Angular deprecation: Add alert in plugin details page
* Angular deprecation: Disable install button if for Angular plugins
* removed extra console.log
* Add tests for Angular badge
* Add tests for PluginDetailsAngularDeprecation
* Add tests for InstallControlsButton
* Add tests for ExternallyManagedButton
* Table tests
* Catalog: Update angular deprecation message
* PR review feedback
* Update tests
* Update copy for angular tooltip and alert
* Update tests
* Fix test warnings
* Fix angularDetected not being set for remote catalog plugins
* Dynamic alert text based on grafana config
* Connections: Add Angular badge to Angular plugins
* Add test for connections console angular badge
* Fix tests
* Fix tests
* Moved tests
* PR review: Use ternary operator instead of &&
* Fixes to how to use Card component
* comment out desc
* Do not use deprecated theme.v1 and theme.typography.size
* pr review feedback
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Alerting: Make ApplyAlertmanagerConfiguration only decrypt/encrypt new/changed secure settings
Previously, ApplyAlertmanagerConfiguration would decrypt and re-encrypt all secure settings. However, this caused re-encrypted secure settings to be included in the raw configuration when applied to the embedded alertmanager, resulting in changes to the hash. Consequently, even if no actual modifications were made, saving any alertmanager configuration triggered an apply/restart and created a new historical entry in the database.
To address the issue, this modifies ApplyAlertmanagerConfiguration, which is called by POST `api/alertmanager/grafana/config/api/v1/alerts`, to decrypt and re-encrypt only new and updated secure settings. Unchanged secure settings are loaded directly from the database without alteration.
We determine whether secure settings have changed based on the following (already in-use) assumption: Only new or updated secure settings are provided via the POST `api/alertmanager/grafana/config/api/v1/alerts` request, while existing unchanged settings are omitted.
* Ensure saving a grafana-managed contact point will only send new/changed secure settings
Previously, when saving a grafana-managed contact point, empty string values were transmitted for all unset secure settings. This led to potential backend issues, as it assumed that only newly added or updated secure settings would be provided.
To address this, we now exclude empty ('', null, undefined) secure settings, unless there was a pre-existing entry in secureFields for that specific setting. In essence, this means we only transmit an empty secure setting if a previously configured value was cleared.
* Fix linting
* refactor omitEmptyUnlessExisting
* fixup
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* update generic OAuth docs
* some more fixes and corrections
* update examples and sync sections
* fix a link
* linting
* formatting and adding more links to OAuth integrations
* add a section with config walkthrough
* fix link
* move examples to the end of the doc
* extend role mapping
* small improvements
* add a before you begin section, clean up steps, remove some text
* remove unnecessary section
* merge main 2
* OAuth -> OAuth2
* remove Centrify example because it's likely outdated
* add shared intro content
* indentation
* add refresh token to tasks, clean up more sections
* linting
* linting
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* indentation and small descriptions under headings
* add a table for config options
* clean up more sections
* rewrite email address section
* rewriting login and display name sections, plus adding line breaks
* clean up more sections
* update role mapping section
* indentation again
* update section names
* incorporates final edits
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* pr feedback
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* PR feedback: rewording
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* Baseline benchmark
* Baseline benchmark
* Re-trigger the build
* Use test id
* Re-trigger the build
* Re-trigger the build
* Use test id to speed up the test
* Split query history sync tests
* logs: scanning: add tracking
* only report start-click when it is really doing it
Co-authored-by: Matias Chomicki <matyax@gmail.com>
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* Replace all alerting links with docs/reference style links
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix broken docs/reference style link
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update all alerting links to go to Grafana Cloud resources when the page is published in Grafana Cloud
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Prettier
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Replace another link
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Use sha1 (160 bit hash)
* Update pkg/services/accesscontrol/database/externalservices.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Satisfy linter, clean up
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Add GPG keys to rgm, dont' clone RGM just use the docker image
* remove the cd command
* forgot to make drone :(
* idk
* reference script more specifically
* i guess we'll just cd /src
* Only show not found artifacts
* Explore: Allow the use of plugin panels
Allow plugins to define a visualisation to use in explore that comes from a plugin.
* Explore: Allow the use of plugin panels
Rename ExplorePanel to CustomContainer
* Explore: Allow the use of plugin panels
Changed CustomContainer to take all frames for plugin id.
Add field preferredVisualisationPluginId to frame metadata.
Updated decorators to check for plugin and fallback to preferredVisualisationType if plugin cannot be found.
* Explore: Allow the use of plugin panels
Handle case where there are no custom frames
* Explore: Allow the use of plugin panels
Add test cases
lib/pq has built-in support to use pgpass file for authentication when
no password has been provided. However this requires that the connection
does not contain the password parameter at all.
Removing password parameter when postgresql password is empty in
SQL store.
* Add legend for mixed in Loki alert history
* Highlight row in the log list while hovering in the timeline instead of srcolling into it
* update some of the styles
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* add test for the bug
* update backtesting evaluators to accept a number of evaluations instead of `to` to have control over the number evaluations in one place
* Plugins: Angular detector: Remote patterns fetching
* Renamed PatternType to GCOMPatternType
* Renamed files
* Renamed more files
* Moved files again
* Add type checks, unexport GCOM structs
* Cache failures, update log messages, fix GCOM URL
* Fail silently for unknown pattern types, update docstrings
* Fix tests
* Rename gcomPattern.Value to gcomPattern.Pattern
* Refactoring
* Add FlagPluginsRemoteAngularDetectionPatterns feature flag
* Fix tests
* Re-generate feature flags
* Add TestProvideInspector, renamed TestDefaultStaticDetectorsInspector
* Add TestProvideInspector
* Add TestContainsBytesDetector and TestRegexDetector
* Renamed getter to provider
* More tests
* TestStaticDetectorsProvider, TestSequenceDetectorsProvider
* GCOM tests
* Lint
* Made detector.detect unexported, updated docstrings
* Allow changing grafana.com URL
* Fix API path, add more logs
* Update tryUpdateRemoteDetectors docstring
* Use angulardetector http client
* Return false, nil if module.js does not exist
* Chore: Split angualrdetector into angularinspector and angulardetector packages
Moved files around, changed references and fixed tests:
- Split the old angulardetector package into angular/angulardetector and angular/angularinspector
- angulardetector provides the detection structs/interfaces (Detector, DetectorsProvider...)
- angularinspector provides the actual angular detection service used directly in pluginsintegration
- Exported most of the stuff that was private and now put into angulardetector, as it is not required by angularinspector
* Renamed detector.go -> angulardetector.go and inspector.go -> angularinspector.go
Forgot to rename those two files to match the package's names
* Renamed angularinspector.ProvideInspector to angularinspector.ProvideService
* Renamed "harcoded" to "static" and "remote" to "dynamic"
from PR review, matches the same naming schema used for signing keys fetching
* WIP: Angular: cache patterns in db, moved gcom into pluginsintegration
More similar to signing keys fetching
* Rename package, refactoring
* try to solve circular import
* Fix merge conflict on updated angular patterns
* Fix circular imports
* Fix wire gen
* Add docstrings, refactoring
* Removed angualrdetectorsprovider dependency into angularpatternsstore
* Moved GCOM test files
* Removed GCOM cache
* Renamed Detect to DetectAngular and Detector to AngularDetector
* Fix call to NewGCOMDetectorsProvider in newDynamicInspector
* Removed unused test function newError500GCOMScenario
* Added angularinspector service definition in pluginsintegration
* refactoring
* lint
* Fix angularinspector TestProvideService
* cleanup
* Await initial restore
* Register dynamicAngularDetector background service
* Removed static detectors provider from pluginsintegration
* Add tests for kvstore
* Add more tests
* order imports in dynamic_test.go
* Fix potential panic in dynamic_test
* Add "runs the job periodically" test
* lint
* add timeout to test
* refactoring
* Removed context.Context from DetectorsProvider
* Refactoring, ensure angular dynamic background service is not started if feature flag is off
* Fix deadlock on startup
* Fix angulardetectorsprovider tests
* Revert "Removed context.Context from DetectorsProvider"
This reverts commit 4e8c6dded7.
* Fix wrong argument number in dynamic_teset
* Standardize gcom http client
* Reduce context timeout for angular inspector in plugins loader
* Simplify initial restore logic
* Fix dynamic detectors provider tests
* Chore: removed angulardetector/provider.go
* Add more tests
* Removed backgroundJob interface, PR review feedback
* Update tests
* PR review feedback: remove ErrNoCachedValue from kv store Get
* Update tests
* PR review feedback: add IsDisabled and remove nop background srevice
* Update tests
* Remove initialRestore channel, use mux instead
* Removed backgroundJobInterval, use package-level variable instead
* Add TestDynamicAngularDetectorsProviderBackgroundService
* Removed timeouts
* pr review feedback: restore from store before returning the service
* Update tests
* Log duration on startup restore and cron run
* Switch cron job start log to debug level
* Do not attempt to restore if disabled
* split queries and merge responses
* increase concurrency again
* update unit test to verify the headers are merged
* fix lint issue
* fix race condition in unit test
* Fix function name and add a bit more documentation about how the func should be used
* update function call after rename
* check for duplicate header vals
* make concurrent query limit configurable
* Update conf/sample.ini
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Allow setting role as None
Co-authored-by: gamab <gabi.mabs@gmail.com>
Seeking for places where role.None would be used
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
Adding None role to the frontend
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
unify org role declaration and remove from add permission
fix backend test
fix backend lint
* remove role none from frontend
* Simplify checks
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* nits
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* Apply filters consistently to every list in the picker
* Display all built-in DS when editing a panel
* Add `uploadFile` prop to toggle the CSV file DS
* ContextSrv: No longer try to rotate token if we are using auth_token in url
Also extract the logic to check if we should schedule the job into its own function
* Add pagination params and apply to sql
* Create getCorrelationsResponse that returns metadata
* Set up pagination, change correlations fetch to only get source datasource correlations
* Move correlations from root to pane, only fetch correlations for one datasource when initialized or datasource is changed
* Fix tests
* Fix remaining tests
* Use functional component to handle state
* Remove unneeded mocks, fix tests
* Change perPage to limit
* Fix Go Tests
* Fix linter
* Remove parameter
* Account for mixed datasources
* Delete unused hook
* add source UID filter to API, start backing out front end hook changes
* add source IDs to API, use when loading or changing datasource
* Fix prettier
* Mock correlations response
* Get correlations for all datasources in mixed scenario
* Add documentation for new parameters
* Attempt to fix swagger
* Fix correlations page
* add swagger and openapi docs
* Add mocks to failing test
* Change API for consistency, remove extra hooks and unused function
* Add max to limit and re-gen api docs
* Move the page to the previous page if deleting all the rows on the page
* Only fetch if remove does not have value
* Change page to a reference hook
* Fix documentation, a test and some logic thinking page could be 0
* PanelChrome: Fixes issues with hover header and sizing panel above
* Update
* Make panel be focusable
* Fix tooltip when using keyboard nav
* Re-render grid when layout change to have dom positions match absolute css positions
* Fix clicking panel leaves hover header open
* Update derived fields provisioning example
*WHAT*
Update loki derived fields provisioning example:
- Remove `# Right now, Grafana supports only Jaeger and Zipkin data sources as link targets.` comment since it supports other trace data sources as well such as Tempo".
- Add example to include `URL Label` to provide full configuration example that reflects the options visible on the UI.
* Update _index.md
* makes prettier
---------
Co-authored-by: lwandz13 <larissa.wandzura@grafana.com>
* Elasticsearch: add additional settings section
* Remove extra lines
* Elastic config: add divider between name and http settings
* Data links: fix subsection title
* Remove unused import
* refactor: replace IconButtons
* refactor: replace tooltip text in order to make it more universal
* refactor: remove additional IconButton
* refactor: add aria-labels
* refactor: fix test
* Mark strings in folder manager nav for translation
* Mark strings in folder actions for translation
* Mark strings in new folder modal for translation
* Mark strings in delete modal for translation
* Mark strings in move modal for translation
* Fix interpunction in translations
* Run i18n:extract
* Fix Manage Permissions drawer test
* Redundnt useMemo
* Updated extracted translations after resolving conflicts
---------
Co-authored-by: Roxana Turc <anamaria-roxana.turc@grafana.com>
* Add component to display QueryOptions in editor
* Display QueryOptions in QueryWrapper
* Display real data for time range and max data points
* Improve QueryOptions styling
* Remove Portal from RelativeTimeRangePicker
* Prevent RefID from hiding on small screens
Fixes https://github.com/grafana/grafana/issues/70900
* Address review comments
* Fix lint
When building a query for multiple resources only a subset of metrics
are valid and that selection is only available via the API version `2017-12-01-preview`.
fixes#68603
The key "role" in the JSON body doesn't make sense for creating service account *tokens* (and the method will happily create one without it). It is only required for creating the service account itself.
* Reduce number of unnecessary request in the alert list panel in case we have data source filter selected
* use fetchPromAndRulerRulesAction instead of fetchAllPromAndRulerRulesAction in case of having datasource selected in options
* remove unnecessary useEffect
* Reduce number of requests in GroupBy component if data source is selected
* use redux utils for asyncmapslice
* lint
* Address review comments
* Skip fetching grafana rules if datasource is not Grafana rules source name
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Fix: Change getExistingDashboardByTitleAndFolder to get dashboard by title, not slug
* test: add tests for get dashboard with existing name, get dashboard with non existing name, get dashboard with existing name in a folder
* Update pkg/services/dashboards/database/database_test.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* require specific error for Should be able to get dashboard with existing name
* Update pkg/services/dashboards/database/database_test.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* implement sofia suggestions to check for specific err, remove logs
* give test more specific name
* implement daniel suggestion of formatting documentation comment in safe way
* fix test title to refer to root directory not specific folder
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* fix: use correct validate funtion
* rename isValidQuery to isQueryWithError
* lets pretend i didnt break things again
* Loki validation: add missing comments and refactor validation function
* isValidQuery: add unit test
* Loki datasource: add tests for getQueryStats
* Remove isValidQuery function
* UnwrapParamEditor: interpolate query before testing validity
* Stats: trim queries when evaluating change
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* remove hover style from results
* remove metric select keyboard interactions and highlighting for table results
* update naming for metrics explorer
* fix bug for match highlighting persisting when empty query
* change ConfirmButton to accept a function as a child so it can pass onClick to a custom child button
* spread button props instead
* update documentation
* remove duplicate line
* spread ref instead of className
* use cloneElement instead
* I18n:Mark up Permissions
* Mark up strings in Permissions file
* I18n:Mark up phrases for on Permissions drawer
* I18n:Mark up phrases for translation on Permissions page
* I18n:Mark up phrases for translation on Permissions page
* Made the changes based on suggestions received
* restore translations
* Run extract again
* unify search table styles with browse
* add a skeleton state when switching to search view
* show all column headers
* use isItemLoaded
* extract number of placeholder rows into variable + add comment
* fix all selection toggle behaviour
* tidy up
* fix unit test
* Add limit query parameter
* Drop copy paste comment
* Extend history query limit to 30 days and 250 entries
* Fix history log entries ordering
* Update no history message, add empty history test
---------
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
* Cleaned up solution and starting to make it work properly.
* will disable add button if no queries available.
* Changed so 'add to dashboard' is registered as an extension in explore.
* moved utility function to utils
* hides button if insufficent permissions.
* Fixed ts issue.
* cleaned up the code and change to using the 'getPluginLinkExtensions'
* Added values to explore context.
* truncating title in menu.
* added tests to verify explore extension point.
* fixed failing tests in explore.
* made excludeModal optional.
* removed temporary fix to force old button.
* reverted generated files.
* fixed according to feedback.
* Update public/app/features/explore/extensions/ToolbarExtensionPoint.test.tsx
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update public/app/features/explore/extensions/ToolbarExtensionPoint.test.tsx
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* added tests suggested in reviews.
* fixed failing tests after sync with main.
* replaced exploreId type with stirng.
* cleaned up code a bit more.
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Adds support for additional throughput units to `valueFormats`.
These new units are useful for streaming, e.g. Kafka or RedPanda, and database systems.
* Adds missing entries to the dev dashboard tests.
* Docs: adds evaluation doc
* Adds note on classic condition
* fixes link
* fixes link
* fixes link
* fixes data source
* link fix
* fixes rbac link
* adds aliases
* Angular deprecation: Add Angular badge in plugin catalog page
* Angular deprecation: Add alert in plugin details page
* Angular deprecation: Disable install button if for Angular plugins
* removed extra console.log
* Add tests for Angular badge
* Add tests for PluginDetailsAngularDeprecation
* Add tests for InstallControlsButton
* Add tests for ExternallyManagedButton
* Table tests
* Catalog: Update angular deprecation message
* PR review feedback
* Update tests
* Update copy for angular tooltip and alert
* Update tests
* Fix test warnings
* Fix angularDetected not being set for remote catalog plugins
* Dynamic alert text based on grafana config
* Moved deprecation message to a separate function
* Removed unused Props in PluginAngularBadge
* Account for restricted datasource
* Allow for fetching datasource to return undefined and beef up filtering after to remove invalid datasources
* Revert "Account for restricted datasource"
This reverts commit 1087159b93.
* Empty-Commit
* Generate plugin version and remove lineage version
* Generate version for each major
* Remove pluginVersion from core plugins
* Remove code version generation
* Generate cue files
* Move grafana version into jenny
* fix go import
* Show description for each expression type in the body and change widht depending on the type
* Move condition indicator to the header
* Make order of fields in expressions to be consistent for each expression type
* Add tooltip for expression type menu
* Update styles depending on the expression type
* Update styles and move add query button under queries
* Add NeedHelpInfo component
* Adress PR review comments
* Apply description updates from #70540
* Rename gelTypes to expressionTypes
* Update layout for expressions according to the real usecases
* Update footer to include series count in all expressions
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Prevent using original rule uid when cloning
* Use uid from url instead of a new param in the alert rule form
* Add function to clone rule and tests for it
* Fix lint & tests
---------
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* Reformatting and restructuring
* Update unit test
* Always send the default retention policy as first element
* Fix typo
* Update test
* Update test once more
* Field names start with capital letters
* Simplify the condition
* Case-insensitive checks
* Fix typo
* Update response_parser test
* Update imports
* Refactor annotation transform logic
* More types
* Moore types
* Fix table rendering issue
* Use it as raw query
* Migrate annotations
* Set default retention policy when there is no policy in the query
---------
Co-authored-by: Ludovic Viaud <ludovic.viaud@gmail.com>
* Datasource test: fix describe nesting
* Parsing: export handleQuotes function
* Modify query: add functions to detect the presence of a label and remove it
* Loki: add support to toggle filters if already present
* Datasource test: fix describe nesting
* Loki: add support to toggle filter out if present
* Remove label: handle escaped values
* Datasource: add test case for escaped label values
* Loki: remove = filter when applying !=
* Remove selector: add support for Selector node being far from Matcher
* Modify query: add unit tests
* Elasticsearch: create modifyQuery for elastic
* Elastic modify query: implement functions
* Elasticsearch: implement modifyQuery functions in datasource
* Elasticsearch: update datasource test
* Loki modify query: check for streamSelectorPositions length
* Elasticsearch query has filter: escape filter value in regex
* Remove unused type
* Modify query: use query modeller instance from module
* Plugins: Angular detector: Remote patterns fetching
* Renamed PatternType to GCOMPatternType
* Renamed files
* Renamed more files
* Moved files again
* Add type checks, unexport GCOM structs
* Cache failures, update log messages, fix GCOM URL
* Fail silently for unknown pattern types, update docstrings
* Fix tests
* Rename gcomPattern.Value to gcomPattern.Pattern
* Refactoring
* Add FlagPluginsRemoteAngularDetectionPatterns feature flag
* Fix tests
* Re-generate feature flags
* Add TestProvideInspector, renamed TestDefaultStaticDetectorsInspector
* Add TestProvideInspector
* Add TestContainsBytesDetector and TestRegexDetector
* Renamed getter to provider
* More tests
* TestStaticDetectorsProvider, TestSequenceDetectorsProvider
* GCOM tests
* Lint
* Made detector.detect unexported, updated docstrings
* Allow changing grafana.com URL
* Fix API path, add more logs
* Update tryUpdateRemoteDetectors docstring
* Use angulardetector http client
* Return false, nil if module.js does not exist
* Chore: Split angualrdetector into angularinspector and angulardetector packages
Moved files around, changed references and fixed tests:
- Split the old angulardetector package into angular/angulardetector and angular/angularinspector
- angulardetector provides the detection structs/interfaces (Detector, DetectorsProvider...)
- angularinspector provides the actual angular detection service used directly in pluginsintegration
- Exported most of the stuff that was private and now put into angulardetector, as it is not required by angularinspector
* Renamed detector.go -> angulardetector.go and inspector.go -> angularinspector.go
Forgot to rename those two files to match the package's names
* Renamed angularinspector.ProvideInspector to angularinspector.ProvideService
* Renamed "harcoded" to "static" and "remote" to "dynamic"
from PR review, matches the same naming schema used for signing keys fetching
* Fix merge conflict on updated angular patterns
* Removed GCOM cache
* Renamed Detect to DetectAngular and Detector to AngularDetector
* Fix call to NewGCOMDetectorsProvider in newDynamicInspector
* Removed unused test function newError500GCOMScenario
* Added angularinspector service definition in pluginsintegration
* Moved dynamic inspector into pluginsintegration
* Move gcom angulardetectorsprovider into pluginsintegration
* Log errUnknownPatternType at debug level
* re-generate feature flags
* fix error log
* Reformatting and restructuring
* Update unit test
* Always send the default retention policy as first element
* Fix typo
* Update test
* Update test once more
* Field names start with capital letters
* Simplify the condition
* Case-insensitive checks
* Fix typo
* Update response_parser test
* Update imports
* Trigger separate rules request for each alerting panel in a dashboard
* Add RTK method to fetch prom rules
* Use RTKQuery to get prom rules in UnifiedAlertList
* Fix lint
* Mock promRules call
* Address PR comments
* Fix tests
* update caching docs
* fix validation issue
* fix missing anchors
* fix up compatible data sources section
* Update docs/sources/administration/data-source-management/index.md
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* change one word
* change one more word
* add a little more meat to the benefits section
* remove unnecessary alias
* Update docs/sources/administration/data-source-management/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/administration/data-source-management/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/administration/data-source-management/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/administration/data-source-management/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/administration/data-source-management/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add link to section
* change word
* add note on benefits of resource caching
---------
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* refactor: modify interfaces to make tooltip or aria-label required
* refactor: change functionality around aria-label and tooltip
* refactor: change and add information in storybook documentation
* refactor: remove default from tooltip
* refactor: IconButton to make tooltip or aria-label required
* refactor: Fix tests
* refactor: Fix tests
* refactor: Fix tests
* refactor: Fix tests
* feat: add migration guide for breaking change
* feat: add latest requirements to storybook docs
* refactor: separate iconbutton story with and without tooltip
* refactor: remove exported baseArgs
* refactor: clean up and restructure original story
* refactor: adjust styling
* refactor: enable control for tooltip
* refactor: clean up
* refactor: enable control for aria-label
* refactor: fix theme getting the wrong theme
* refactor: fix tests
* refactor: adjust story
* refactor: remove confusing story
* refactor: adjust controls for stories
* Tempo: Move upload trace to its own button
* Zipkin: Move upload trace to its own button
* Jaeger: Move upload trace to its own button
* Fix test
* Remove extra upload section from editor body
---------
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
This commit adds support for concurrent queries when saving alert
instances to the database. This is an experimental feature in
response to some customers experiencing delays between rule evaluation
and sending alerts to Alertmanager, resulting in flapping. It is
disabled by default.
* DS Picker: Add `inputId` and `noDefault` options
* DS Picker: Add `disabled` state
* Add tests for `disabled`
* Select default DS if `current` is not provided
* Remove `width` from style
* Move types next to components
* Only calculate height when opening
* Adds new text input in prometheus template variable UI that allows label names function to filter values by metric.
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
* SQLStore: Fix Postgres dialect treating "false" migrator default as true
Previously, when creating a migration you could choose a default value for a new
boolean column that looked correct but would be interpreted incorrectly by the
Postgres dialect. For example, values such as "false" or "FALSE" would be treated
as true by the Postgres dialect.
This refactors how migration dialects determine the Default column value for boolean
type columns. Each dialect now uses the same base code to parse the Default literal
and panics if an unknown value is encountered.
So, now AddColumnMigration and AddTableMigration will ensure that across dialects:
- The exact same Default literals will be allowed.
- The literals are converted to equivalent defaults in their DDL.
- An error will be thrown if an invalid literal is provided.
* this is an ok intermediate point
* delete some unused actions + fix tag invalidation on folder save
* remove prefetching for now (it creates a permanent subscription?!)
* leave paginated fetch out of rtk query for now
* ensure we're invalidating the cache correctly
* fix dashboard saving
* simplify
* recursively invalidate children on rename
* tidy up
* don't need to invalidate tags on delete
* don't need to invalidate on new either
* make new refreshParents action
* pageheader spacing
* invalidate getFolder on move
* bit of rearrangement
* Change how we display annotations in the rule form
* Allow to add custom annotations using a free text input
* Get dashboard and panel titles to display in the annotations section
* Add component to display dashboard and panel annotations as links
* Add styling to help tooltip
* Fix styling on annotations controls
* Fix tests
* Fix tests
* Remove unused imports
* Add component for custom annotations
* Display default annotations even if editing and they're empty
* Adjust tests
* Make conditional rendering more clear
* Fix tests
* Move annotation header to separate component
* Fix lint
* Show annotation fields in the right order
* Prevent showing custom annotation fields by default
* Don't display links to dashboard/panel if response fails
* Rename custom annotation header component
* Fix after rebase
* Query utils: refactor isQueryPipelineErrorFiltering and getLogQueryFromMetricsQuery
* Query utils: refactor isQueryWithRangeVariable and getHighlighterExpressionsFromQuery
* Get parser: return log expression even if no pipelineExpr is present
* Update tests
* refactor file drop out of query group
* make sure we display errors when file upload fails
* refactor to make onChange take default queries
* let grafana datasource handle file -> query
* add dropdown tests
* add modal tests
* add filtering props to dropdown
---------
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Update SECURITY.md
* Shorten `SECURITY.md` to link to the bug bounty program
* Add old text back in
* make text clickable
* Add new PGP FP
* adds the new PGP fingerprint
* Update Authentik Image Version in docker-compose.yaml
Update Authentik Image Version in `docker-compose.yaml` to use the current version (as of writing) which is `2023.5.1` where this has been tested against.
* DevEnv: update SLO support for Authentik
* Remove storing derived state (loading property) and use a selector instead
* Remove redundant tests
There's no way to change the interval while live streaming
* Remove check for isLive when deriving waiting for data
It was introduced in #18804
* Remove unused props
This commit adds debug logs for previous_ends_at and next_ends_at
to state.go to help us debug issues where alerts are resolved in
Alertmanager due to expiration. This change is in response to a
support escalation where this information was needed but unavailable.
* Add notification policies preview in alert rule form
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
* Refactor using new useGetPotentialInstances hook and apply some style changes
* Add notification policy detail modal
* Use backtesting api for simulating potential alert instances
* Fix logic to travserse all the children from the root route
* Split notification preview by alert manager
* Add instance count to matching policy header and fix some styles
* Move some logic to a new hook useGetAlertManagersSourceNames to make the code more clean
* Fix some tests
* Add initial test for NotificationPreview
* Use button to preview potential instances
* Add link to contact point details
* Add route matching result details
* Show AlertManager image in the routing preview list
* Add tests setup, add single AM preview test
* Handle no matchers and no labels use case
* Update some style in collapse component and fix policy path in modal
* Update modal styles
* Update styles
* Update collapse header styling
* Normalize tree nodes should happen before findMatchingRoutes call
* Fix findMatchingRoutes and findMatchingAlertGroups methods after reabasing
* Move instances matching to the web worker code
* Fix config fetching for vanilla prometheus AMs
* Add tests
* Add tests mocks
* Fix tests after adding web worker
* Display matching labels for each matching alert instance
* Add minor css improvements
* Revert changes added in Collapse component as we don't use it anymore
* Move the route details modal to a separate file
* Move NotificationRoute and preview hook into separate files
* Fix Alertmanager preview tests
* Fix tests
* Move matcher code to a separate file, improve matcher mock
* Add permissions control for contact point edit view link
* Fix from and to for the temporal use of backtesting api
* Fix tests, add lazy loading of the preview component
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* Fix preview test
* Add onclick on the header div so it collapse and expands when clicking on it, and update styles to be consistent with the rest of tables
* Adapt the code to the new rule testing endpoint definition
* Fix tests
* small changes after reviewing the final code
* compute entire inherited tree before computing the routes map
* Throw error in case of not having receiver in routesByIdMap and add test for the use case of inheriting receiver from parent to check UI throws no errors
* Add list of labels in the policy route path that produces the policy matchers to match potential instances
* Use color determined by the key, in label tags when hovering matchers in the policy tree
* Remove labels in modal and handle empty string as receiver to inherit from parent as we do with undefined
* Revert "Add list of labels in the policy route path that produces the policy matchers to match potential instances"
This reverts commit ee73ae9cf9.
* fix inheritance for computeInheritedTree
* Fix message shown when preview has not been executed yet
* First round for adressing PR review comments
* Adress the rest of PR review commments
* Update texts and rename id prop in NotificaitonStep to alertUid
---------
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Elasticsearch: remove usages of any
* Elasticsearch: check for filter type when accessing field aggs
* Elasticsearch: use type guards instead of checking types
* Use unknown for isPrimitive function
* Add deprecation notice
* Remove unused type
* Fix bug in "isPrimitive" function
* Remove unused import
* Revert "Fix bug in "isPrimitive" function"
This reverts commit 27f9874cce.
* Reformatting and restructuring
* Update unit test
* Always send the default retention policy as first element
* Fix typo
* Update test
* Update test once more
* refactor metric select and label filters, add variables to label names dropdown
* use MetricsLabelsSection in variable editor
* use variable editor UI with MetricsLabelsSection
* filter label names by optional metric and allow metric to be cleared
* fix tests
* testing types for onChangeLabels
* testing types for onChangeLabels
* testing types for onChangeLabels
* Ismails review, remove comment and indent
* wrap label filters
* improved behavior for selects and inputs, add tests and document behavior
* Add option to make QueryEditor not collapsable
* Make QueryEditor not collapsable in Alerting
* Change query editor border to weak
The medium border is really only for inputs, everything else should use weak border
* Add tests
## 4.1.0 (2023-06-16)
### Added
- Mounts of `layouts` and `config` directories for the `website` project.
Ensures that local changes to mounts or shortcodes are reflected in the development server.
### Fixed
- Version inference for versioned docs pages.
Pages in versioned projects now have the `versioned: true` front matter set to ensure that "version" in $.Page.Scratch is set on builds.
## 4.0.0 (2023-06-06)
### Removed
- `doc-validator/%` target.
The behavior of the target was not as described.
Instead, to limit `doc-validator` to only specific files, refer to https://grafana.com/docs/writers-toolkit/writing-guide/tooling-and-workflows/validate-technical-documentation/#run-on-specific-files.
## 3.0.0 (2023-05-18)
### Fixed
- Compatibility with the updated Make targets in the `website` repository.
`docs` now runs this script itself, `server-docs` builds the site with the `docs` Hugo environment.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* add NodeTypeFromDatasourceUID and DataSourceModelFromNodeType()
* deprecate expr.DataSourceModel
* replace usages of IsDataSource to NodeTypeFromDatasourceUID
* replace usages of DataSourceModel to DataSourceModelFromNodeType()
* replace condition validation with just structural validation
* validate conditions of only new and updated rules
* add integration tests for rule update\delete API
Co-authored-by: George Robinson <george.robinson@grafana.com>
This commit fixes the email template for text/plain emails to
support custom messages. It also fixes the default template,
removing extra whitespace and showing Summary and Description
annotations separate from the other annotations.
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/CodeEditor.internal.story.tsx
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/suggestions.ts
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/CodeEditor.internal.story.tsx
* user essentials mob! 🔱
lastFile:packages/grafana-ui/src/components/Monaco/suggestions.ts
* remove duplicate editor from story
* remove suggestions from story
---------
Co-authored-by: Laura Benz <laura.benz@grafana.com>
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
Currently does not do anything as it is for use with a future enterprise PR
Eventually: "Enables writing multiple items from a single query within Recorded Queries"
* Add whatsnewchecker
* Add whatsnewchecker_test
* Small fixes
* Add step in CI
* Fix lint
* Fix starlark
* t.Cleanup instead of separate func
* Skip check for test tags
Make EchoSrvTransport batched
With the update of faro web sdk to 1.1.0, batching was introduced, in
which several telemetry signals can be grouped together in a fixed
interval or buffer length. The current setup in which the
EchoSrvTransport was proxying signals through the Echo Backend was
yielding the following issue.
The updated Fetch transport is batched but the way it was being used by
the `GrafanaJavascriptAgentBackend` was pushing single items.
* docs: update angular list
* Update docs/sources/developers/angular_deprecation/angular-plugins.md
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* Start local schema registry
* Try to use latest version
* Revert "Try to use latest version"
This reverts commit 682385c0e4.
* update schema registry jenny to validate new lineages
* save kind instead of lineage
* handle plugins
* get published schemas from GH + fix plugins
* handle kind not yet published
* Add script to use in workflow + handle maturity
* first pass on publish-kinds GH workflow
* fix script path
* remove unused script
* use make gen-cue instead of script
* trigger publish-kinds on every commit (for test)
* temporary update to use specific thema commit
* wrapping errors
* remove GH token & refactor for rate limit
* Update publish-kinds.yml
* Update publish-kinds.yml
* revert go.mod and go.sum updates
* use Thema specific commit
* Kind registry v2
* fix script path
* fix second script path
* update go.mod
* update schema registry source
* test checks
* add GITHUB_TOKEN
* revert test checks
* actually write next files when publishing
* Add kind set arg
* Add comments
* clean up workflows
* update Thema
* Update .betterer.results
* few fixes after lineage flattening
* Update publish-kinds-next.yml
* add codeowners for new files
* update thema
* apply review feedback
* update go version in workflows
* clean up workflows
* Add step to generate token and test
* Update publish-kinds-next.yml
* fix script
* try with the app name
* Update publish-kinds-next.yml
* clean up and update release workflow
* add comment
* publish kinds only on cue updates
* add analytics for folder creation
* add interaction tracking for move/delete
* add tracking for item clicked in the new browse view
* review comments
* emit counts instead
* feat: template data source option current by uid
* fix: e2e with explicit uid for "slow-prometheus"
* revert: unrelated change
* revert: unreverted the actually related change
* chore: e2e support for testing ${variable:text}
* fix: use `:raw` instead of `:value` in e2e dashboard
* Alerting: Repurpose rule testing endpoint to return potential alerts
This feature replaces the existing no-longer in-use grafana ruler testing API endpoint /api/v1/rule/test/grafana. The new endpoint returns a list of potential alerts created by the given alert rule, including built-in + interpolated labels and annotations.
The key priority of this endpoint is that it is intended to be as true as possible to what would be generated by the ruler except that the resulting alerts are not filtered to only Resolved / Firing and ready to be sent.
This means that the endpoint will, among other things:
- Attach static annotations and labels from the rule configuration to the alert instances.
- Attach dynamic annotations from the datasource to the alert instances.
- Attach built-in labels and annotations created by the Grafana Ruler (such as alertname and grafana_folder) to the alert instances.
- Interpolate templated annotations / labels and accept allowed template functions.
* Alerting: Fix unique violation when updating rule group with title chains/cycles
The uniqueness constraint for titles within an org+folder is enforced on every update within a transaction instead of on commit (deferred constraint). This means that there could be a set of updates that will throw a unique constraint violation in an intermediate step even though the final state is valid. For example, a chain of updates RuleA -> RuleB -> RuleC could fail if not executed in the correct order, or a swap of titles RuleA <-> RuleB cannot be executed in any order without violating the constraint.
The exact solution to this is complex and requires determining directed paths and cycles in the update graph, adding in temporary updates to break cycles, and then executing the updates in reverse topological order (see first commit in PR if curious).
This is not implemented here.
Instead, we choose a simpler solution that works in all cases but might perform more updates than necessary. This simpler solution makes a determination of whether an intermediate collision could occur and if so, adds a temporary title on all updated rules to break any cycles and remove the need for specific ordering.
In addition, we make sure diffs are executed in the following order: DELETES, UPDATES, INSERTS.
* remove infer type functionality because usability tests confirmed it was confusing/not helpful
* persist button option to open modal when typing in metric select
* update copy desc for setting that includes type and description in search
* when filtering by type, only return metrics with defined type
* give focused metric row more contrast, consistent with metric select focused option
* allow selection of metrics with unknown types and undefined types
* add highlighting to backend search
* augment counters created from summaries with (summary)
* remove type from search input setting and only search by name and description
* fix test to reflect that type has been removed from the metadata input search as duplicated by the filter
* add button to select metric, change wording, make table hover row consistent with grafana table
* add tooltip icon with docs link for metric types that are augmented, histogram and summary
* remove files slated for future refactoring
* style changes based on catherine's review
* remove border from settings btn, select btn increase to md, change col size in table, fix responsive inputs ui for sm screens
* use custom name from legend
* revert prometheus change
* fix issue in the transformer and not prometheus
* getFrameDisplayName falls back to getFieldDisplayName already
* run prettier
* make breaking changes note more prominent in whats new
* changed paragraph structure and added heading
* moved breaking changes section to after the template
* move deprecations to breaking changes page
* break up paragraph
* run prettier
* Update dependency @testing-library/dom to v9.3.0
* dedupe versions in the lockfile
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* add tests for empty dashboard page
* add tests for AddPanelButton
* export default components
* test +Add menu in dashboard page
* use userEvent instead of firing an event on the DOM itself
* fix test to match new analytic events
* refactor: tooltip is required
* refactor: add tooltips
* refactor: add tooltips
* refactor: add tooltips
* refactor: add tooltips
* refactor: add tooltips
* refactor: add tooltips
* refactor: adjust tests
* refactor: apply changes from code review
* refactor: adjust component for e2e test
* refactor: adjust fallback
* refactor: apply changes from code review
* refactor: apply changes from code review
* refactor: set IconButton default as type=button and remove from use cases
* refactor: remove aria-labels when duplicated and type=button from use cases
* refactor: clean up
* refactor: fix tests
* refactor: fix type errors
* refactor: remove changes in order in order to add them to a separate PR
* refactor: set IconButton default as type=button
* refactor: remove tooltip
* refactor: apply changes requested in review
* ui migration WIP
* merge
* migration tests for api
* revert chagnes to align with main
* revert chagnes to align with main
* revert chagnes to align with main
* remove unused code and comments
* revert gen files
* retry logic inplace
* fix a any
* fixed types
* migraiton results now show only result if no failures
* review comments
* wording to make it more actionable
* add migraiton summary text onyl for failed apikeys
* fixed wording and added a close button to the modal
* made the button close the modal
* moved state into component
* fix based on review, naming and removed unused code
* service account migration state optional
* making migration result undefined
* showing total and migrated numbers for a successful migration
* fix payload const to take the payload
* added CLI in heading for clearity
* added new heading
* new change
* updated final version for review
* fix small line breaks
* copy edit, restructuring
* Apply suggestions from code review
* Apply suggestions from code review
* removed internal notes
* updateding the docker configuraiton file which have advanced instructions
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* updated persistent stroage section
* updated heading typo
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* fixed code identation and minor typos
* added yaml file validation check in the troubleshooting section
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
added "also"
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add more details to apline, cloudwatch and default path sections
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* added more detailes about docker ubuntu image, fixed headings, added more clarity to the persistent vs bind stroage
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* added more improvements for the examples
* Update docs/sources/setup-grafana/installation/docker/index.md
* Update docs/sources/setup-grafana/installation/docker/index.md
* Update docs/sources/setup-grafana/installation/docker/index.md
* Update docs/sources/setup-grafana/configure-docker.md
* updates links, edits Troubleshooting section
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* fixes doc-validator issues
* adds link to plugin install instructions
* added improvement in the AWS cloudwatch example
* Update docs/sources/setup-grafana/configure-docker.md
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Apply suggestions from code review
suggestions looks good
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* added dan suggestion for the tags, but skip the longer description part as not really useful for end user
* Update docs/sources/setup-grafana/installation/docker/index.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update docs/sources/setup-grafana/configure-docker.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Apply suggestions from code review
looks good
Co-authored-by: Dan Cech <dcech@grafana.com>
* added missing version
* fixed identation and small typo
* fixed the pwd data folder instruction
* fixed persistent volume creating and identation
* fixed identation
* fixed typo to get debug logs
* fixed custom plugin installation section
* created docker secret command instructions
* fixed missing path
* fixed code in docker secret and other minor typos
* incorporates feedback, copy edits secrets section
* fixed small typo in docker secrets section
* remove the additonal info command for secrets
* combined custom docker pre-installed plugin section as one
* fixed the build link typo
* various updates/fixes
* another fix
* added more clarity to the volume creating command
* fixed command for bind mounts
* fixed missing comman in the plugin command
* fixed small typo
* improve and simplifly the steps instructions
* fixed validation command
* Apply suggestions from code review
looks good!!
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* fixed typo in docker secret command explaination
* fixed minor stuff
* makes prettier
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Dan Cech <dcech@grafana.com>
* loading states!
* fix uncontrolled checkbox
* cleaner css
* improve flickering title
* make sure @grafana/ui has the same version of react-loading-skeleton
* fix unit test + add tooltip text
* better way of restoring focus
* only restore focus when loading
* missing !
* use aria-label instead of tooltip
* Add doc for Tempo Search query
* Updates for wording and images
* Add note to Explore about query editor for tracing
* Fix prettier
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/shared/datasources/tempo-search-traceql.md
* Changes from prettier
* Update docs/sources/shared/datasources/tempo-search-traceql.md
* Update docs/sources/shared/datasources/tempo-search-traceql.md
* Updates from prettier
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Move useUniqueId to a general place
* Use new built-in useId hook
* Rename query builder and metadata query
* Move and rename the query builder tests
* Refactor query_builder and metadata_query
* Fix test
* Fix test
* Restructure folders
* update texts
* Update the mock
* Fix test
* update imports
* update imports again
Remove unused properties:
* `FieldColorModeId.PaletteSaturated`: It doesn't exist and it is not a valid palette.
* `VariableModel.rootStateKey`: It is not persisted in the DB, so it shouldn't be in the schema. It is a property only used in the frontend to store the Redux store key.
* `VariableModel.error`: It is not persisted in the DB, so it shouldn't be in the schema. It is a property only used in the frontend to store fetching errors.
* `Panel.thresholds`: old property only existing in previous versions of the dashboard schema.
* `Panel.timeRegions`: old property only existing in previous versions of the dashboard schema.
* Move useUniqueId to a general place
* Use new built-in useId hook
* Rename query builder and metadata query
* Move and rename the query builder tests
* Refactor query_builder and metadata_query
* Fix test
* Fix test
* add some information to the password change screen
* update threshold cause pa11y is stupid
* override the loginlayout title if changing password
* remove top padding from inner box
* Add i18n verification step
* Add check for extracted translations
* Run extract
* Add newline for pseudo
* Format JSON output with prettier
* Print file diff
* Actually run make drone
* Only deo git diff on locales
* Update error message
* Verify that step fails on dynamic phrases
* Verify that it passes when fixed
* Verify that dynamic phrase fails, for real this time
* Extract error messages
* Change echo
* Fix string format
* Try double escaping
* Escape for Drone substitution
* Update character escape
* Remove dynamic phrase
* Verify multiple keys
* Remove double keys
* Readd en locale because of reasons
* Undo changes
* Format lint_frontend.star
* Update error message
* Update .drone.yml
* Add quotes for echo
* Verify fail to extract
* Fix diff stat command
* Reset footer changes
- Structured output for use with [`reviewdog`](https://github.com/reviewdog/reviewdog).
You can achieve the original error output by piping the output to the following `jq` expression: `jq -r '"ERROR: \(.location.path):\(.location.range.start.line):\(.location.range.start.column): \(.message)"'`.
- Suggestions for simple link fixes.
In GitHub, [`reviewdog`](https://github.com/reviewdog/reviewdog) comments these suggestions for convenient replacement.
- Support for anchors referring to repeated headings.
In the case that a page has multiple headings that share the same text, a zero indexed, the renderer appends a numbered suffix to the identifier.
For example, when there are two headings that are both "Heading text", the first anchor identifier is `heading-text` and the second is `heading-text-1`.- Error when running `doc-validator` on no files.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Move useUniqueId to a general place
* Use new built-in useId hook
* Rename query builder and metadata query
* Move and rename the query builder tests
* updated create dashboard topic including adding screenshot of DS selector
* finished editing build dashboards - create dashboards
* finished data source selection edits'
:
* updated tutorials
* reverted tutorial to old nav to match reality and added that prom DS is preselected
* wording edits
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add that configure DS is only for admins
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Pull out datasource specific implementation into calling context to make query cache generic
---------
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* wip for pagination
* kind of doing pagination, but only for the root folder
* wip
* wip
* refactor paginated fetchChildren
* make sure dashboards are loaded if a folder contains only dashboards
* rename lastKindHasMoreItems
* load additional root pages
* undo accidental commit
* return promise from loadMoreChildren, and prevent loading additional page while a request is already in flight
* rename browseDashboards/fetchChildren action so it's more clear
* starting to revalidate children after an action
* unset general uid
* comment
* clean up
* fix tests omg
* cleanup
* fix items not loading after invalidating loaded cache
* comment
* fix lints
This commit adds heuristics back to datasource healthchecks as
it was removed in #66198. The healthcheck for Prometheus datasources
also returns the kind (Prometheus or Mimir) and a boolean if the
ruler is enabled or disabled.
This commit replaces `os.Setenv` with `t.Setenv` in tests. The
environment variable is automatically restored to its original value
when the test and all its subtests complete.
Reference: https://pkg.go.dev/testing#T.Setenv
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* Update index.md
Fixed the link for a grafana play reference
* fix link text
* fix wording for flow
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: Fix provisioned templates being ignored by alertmanager
Template provisioning sets the template in cfg.TemplateFiles while a recent change
made it so that alertmanager reads cfg.AlertmanagerConfig.Templates instead.
This change fixes the issue on both ends, by having provisioning set boths fields and
reverts the change on the alertmanager side so that it uses cfg.TemplateFiles.
* Let alert rule service implement registry service
* Add count method to RuleStore interface
* Add implementation for deletion of alert rules
* Rename uid to folderUID in registry methods
* Check forceDeleteRule value for registry deletion
* Register alerting store with folder service
* Move folder test functions to separate package
* Add testing for alert rule counting, deletion
* Remove redundant count method
* Fix deleteChildrenInFolder signature
* Update pkg/services/ngalert/store/alert_rule.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Add tests for nested folder deletion
* Refactor TestIntegrationNestedFolderService
* Add rules store as parameter for alertng provider
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Docs: Bring back the alias for external group sync HTTP API page
* Update docs/sources/developers/http_api/team_sync.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Query utils: add function to identify distinct queries
* Chore: return false when the expected node is found
* Query splitting: exclude distinct queries from splitting
* Group queries excluded from splitting
* feat(plugins): remove global limit on extensions per placement
* feat: add a way to limit extension per plugin at the getter
* test(plugins): fix failing getPluginExtensions test
* refactor(panelmenu): put back limit of 2 extensions per plugin
* tests: add a test for checking all extensions are returned by default
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* feat: add a new UI extension type: component
* fix: remove reference to not existing type
* chore: update betterer results
* review: use a single type notation in import
* review: stop exporting `PluginExtensionBase`
* refactor: make extension config types more explicit
By using some repetition now these types are much easier to oversee.
* feat: add a new extension point to the datasources config
* fix: export tcontext type from grafana-data
* chore: update betterer results
* chore: fix tests
* feat: extend the context shared with extensions
* feat: stop omitting jsonData props & update context type
* tests: update tests
* remove i18n toggle
* remove beta badge on language picker
* remove toggle from go code
* Revert "remove beta badge on language picker"
This reverts commit 3b76300aa7.
* Add tracing config sub sections
* Export common sections and update divider in additional settings section
* Max width and margin bottom
* Add feature name to config link
* Update SpanBarSettings
* remove import
* Update dependency esbuild to v0.17.18
* chore(npm): update all esbuild dependencies to use esbuild@0.17.18
* build(esbuild): update configs so esbuild-loader matches loader from file extension
* build(webpack): fix failed monaco editor loading due to require not existing
* chore(esbuild): bump to 0.17.19
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* chore: test drone step
* revert changes to lint_backend_step()
* try to add validate_modifle_step
* try to run check func
* remove CGO and wire-install
* update filepath to scripts/modowners
* make drone again
* correct the filepath
* try to ignore validate-modfile step if fail
* chore: remove log that says i am a programmer
* fix: spell modfile correctly
* chore: remove unecessary comment
* fix: check go.mod instead of go.txd
* initial attempt at inline rename
* handle version correctly
* refactor
* minor tweaks
* add unit tests
* prettier...
* add to other tabs, remove settings tab when feature toggle is enabled
* fix truncation
* allow title to span full width of page
* fix h1 styling when no renderTitle/onEditTitle is present
* better layout
* use input from grafana/ui, fix imports
* fix unit test
* better error handling
* don't use autosavefield
* undo changes to AutoSaveField
* remove timeout
* remove maxWidth now we're not using AutoSaveField
* rename isEditInProgress to isLoading
* sync localValue with value
* better responsive css
* Add component for rule creation and dropdown
* Make each route type have a different path
* Remove unneeded import
* Fix tests
* Rename CreateRuleButton to MoreActionRuleButtons
* Remove Recording Rule option from new rule form
* Use alerting and recording for path params on new rules
* Fix tests
* Only show new button if permissions are granted
* Fix tests
* feat: add a new UI extension type: component
* tests: add tests for checking if it is a react component
* fix: remove reference to not existing type
* chore: update betterer results
* review: remove unnecessary override function for components
* review: use a single type notation in import
* review: stop exporting `PluginExtensionBase`
* refactor: make extension config types more explicit
By using some repetition now these types are much easier to oversee.
* chore: start modowners
* read go.mod, parse modfile, iterate through requires; add dummy go.mod
* make BEP owners of all grafana dependencies 😱
* push attempt at logging the require comments
* shrink dummy modfile
* revert changes in go.mod
* access comments suffix
* add Module struct; attempt to separate ParseGoMod functionality into its own func; add owner (third) for loop when interating modfile
* feat: print all owners in modfile
* add additional question in comment
* feat: add subcommands: check, owners, modules; chunk out some functions
* chunk out subcommand functions
* add flags
* start tests for common element
* refactor: test for common element
* attempt #1 to refactor modules to accept multiple args
* refactor: refactor modfule func to take 1+ owner arguments (0 arguments not working atm)
* chore: remove debug logging
* refine existing comments
* comment out indirect flag stuff, add example cli command for modules
* unsuccessful attempt #2 to refactor modules to accept -o and -i flags
* refactor funcs to take filesystem and logger
* test: add test for check when all modules have owners
* fail attempt 1 to get TestModules to work
* assert expected log result in TestModules; unsure if properly reading logs
* test: add TestModules to test modules func without any flags returns direct dependencies
* test: add TestInvalidCheck for scenario when some dependencies are missing an owner
* attempt 1 at refactoring TestCheck into a table
* chore: clean TestCheck
* chore: clean up comments for func check
* move files under scripts/modowners
* revert go.mod and go.sum
* (WIP) Refactor the ImageStore interface to work with our latest alerting repository
* update alerting package
* refactor, new URLExists method in ImageProvider
* tests for the new methods
* fix linter warnings
* use alertingImages as an alias for grafana/alerting/images
* logs about image uris and not found images
* nerf image not found logs
* extract duplicated code to getImageFromURI() method
* refactor getImageFromURI()
* add index on url
* add comment about migration log
* sync generated files
* remove unused HasAdmin and HasEdit permission methods
* remove legacy AC from HasAccess method
* remove unused function
* update alerting tests to work with RBAC
* Basic implementation in web worker
* Move instances discovery to the worker
* Remove filtering from the worker
* Use normalized routes, use rtk query for alert groups fetching
* Reorganize matchers utilities to be available for web workers
* Move object matchers to the machers util file, rename worker
* Move worker code to a separate hook, add perf logging
* Add a mock for the web worker code, fix tests
* Fix tests warnings
* Remove notification policy feature flag
* Add normalizeRoute tests, change the regex match to test for label matching
* Move worker init to the file scope
* Simplify useAsyncFn hook
* Use CorsWorker as a workaround for web workers loading from CDN
* Use a feature flag to enable/disable worker-based preview, add worker error handling
* Add POC for react-enable working with grafana feature toggles
* Code cleanup
* Remove console error, add useRouteGroupsMatcher tests
* Fix tests mock
* feat: catch any events that were reported before the EchoSrv got initialised
* fix: add events to the new echo service
* chore: update comment
* refactor: use `instanceof` to check if it is a FakeEchoSrv
* fix: Chef cookbook has moved to sous-chefs
Updates the github link for the chef configuration option.
* Update docs/sources/administration/provisioning/index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* add class for full story click event on open modal
* move feedback link to modal top under header
* move results amount to bottom left
* move settings into modal, change language from exclude to include
* add metadata to backend search, use toggletip for settings, clean code
* style input row, remove labels and update settings button design
* remove alphabet search as requested by design
* display selected metric
* update style warning message for labels filtered metrics
* organize results footer
* update table design w fixed width and sticky header
* allow focus row on tab and use key Enter to select metric on keydown
* add rudderstack event for disable text wrap
* add messages for no metrics found, labels, search and none in data source.
* filter by type placeholder
* add min width to custom select option
* add text wrap for long metric names
* Have 4px margin b/w the search row and the 'currently selected' text. 16px between 'currently selected text' and the table
* Add some padding inside the first table header row (8 pixels on all sides)
* font-size of 12px for additional settings text
* 4px padding between additional settings text
* 24px margin between the last table cell and the pagination row
* # of Results per page font size 0.85rem
* 8px margin b/w the '# of results per page' and the dropdown
* fix test
* add infer type setting for testing
* use title on icon instead of wrapping in tooltip to fix test
* fix icon issue
* italicize inferred types, update setting text and add icon
* add space for label filters alert message
* make open button style consistent with advanced datasource picker
* keep copy for open modal button
* refactor rudderstack interactions and add inferType
* add event tracking for opening the modal
* galen's feedback, fix select horizontal scroll and results perpg bug
* ismail's feedback for metric types
* revert button in option for accessibility(galen) and style button with ghost mode
* change name to Metrics explorer
* fix hover/focus styles
* ismail's feedbcak, refactor hints, return empty string, remove @return
* Fix icon hovering: put tooltips back in over titles on icon
* make results not expand to fill table space and fix width for modal open option button
* Remove unused mocks
* Remove time grain converter anys
* Improve mocks
- Add context mock
- Update datasource mock
- Add util functions
* Remove anys from log_analytics_test
* Improve response typing
* Remove redundant angular code
* Remove more anys
- Add Resource type
* More type updates
* Remove unused code and update arg ds test
* Remove old annotations test
* Remove unused code and update some more types
* Fix lint
* Fix lint
* Update Yarn to v3.5.1
* Update editor sdks as well
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Add "Allow Cleartext Passwords" checkbox to MySQL connection settings
* Fix lint issues
* Add docs
* Add line break and bold text
---------
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Avoid unnecessary byte/string conversion
We can use alternative functions/methods to avoid unnecessary
byte/string conversion calls.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* feat: add default properties to the `reportInteraction()`
* chore: add more tracking events to the ds-config page
* refactor: adding the `path` to the `meta` instaed
* reword button to Create a new data source
The previous wording included the name of the data source, which made it
difficult for the doc team to refer to it.
This allows the doc team to refer to this button in an obvious way.
* "Create a"-> "Add"
* update tests
* Update index.md
Clarify that changes to dashboard time range are only reflected in the report if they are not using a custom time range.
Add information regarding saving a report as a draft.
* Update docs/sources/dashboards/create-reports/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* running prettier
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* Moving POC files from #64283 to a new branch
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* Adding missing permission definition
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* Force the service instantiation while client isn't merged
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* Merge conf with main
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* Leave go-sqlite3 version unchanged
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* tidy
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* User SearchUserPermissions instead of SearchUsersPermissions
* Replace DummyKeyService with signingkeys.Service
* Use user🆔<id> as subject
* Fix introspection endpoint issue
* Add X-Grafana-Org-Id to get_resources.bash script
* Regenerate toggles_gen.go
* Fix basic.go
* Add GetExternalService tests
* Add GetPublicKeyScopes tests
* Add GetScopesOnUser tests
* Add GetScopes tests
* Add ParsePublicKeyPem tests
* Add database test for GetByName
* re-add comments
* client tests added
* Add GetExternalServicePublicKey tests
* Add other test case to GetExternalServicePublicKey
* client_credentials grant test
* Add test to jwtbearer grant
* Test Comments
* Add handleKeyOptions tests
* Add RSA key generation test
* Add ECDSA by default to EmbeddedSigningKeysService
* Clean up org id scope and audiences
* Add audiences to the DB
* Fix check on Audience
* Fix double import
* Add AC Store mock and align oauthserver tests
* Fix test after rebase
* Adding missing store function to mock
* Fix double import
* Add CODEOWNER
* Fix some linting errors
* errors don't need type assertion
* Typo codeowners
* use mockery for oauthserver store
* Add feature toggle check
* Fix db tests to handle the feature flag
* Adding call to DeleteExternalServiceRole
* Fix flaky test
* Re-organize routes comments and plan futur work
* Add client_id check to Extended JWT client
* Clean up
* Fix
* Remove background service registry instantiation of the OAuth server
* Comment cleanup
* Remove unused client function
* Update go.mod to use the latest ory/fosite commit
* Remove oauth2_server related configs from defaults.ini
* Add audiences to DTO
* Fix flaky test
* Remove registration endpoint and demo scripts. Document code
* Rename packages
* Remove the OAuthService vs OAuthServer confusion
* fix incorrect import ext_jwt_test
* Comments and order
* Comment basic auth
* Remove unecessary todo
* Clean api
* Moving ParsePublicKeyPem to utils
* re ordering functions in service.go
* Fix comment
* comment on the redirect uri
* Add RBAC actions, not only scopes
* Fix tests
* re-import featuremgmt in migrations
* Fix wire
* Fix scopes in test
* Fix flaky test
* Remove todo, the intersection should always return the minimal set
* Remove unecessary check from intersection code
* Allow env overrides on settings
* remove the term app name
* Remove app keyword for client instead and use Name instead of ExternalServiceName
* LogID remove ExternalService ref
* Use Name instead of ExternalServiceName
* Imports order
* Inline
* Using ExternalService and ExternalServiceDTO
* Remove xorm tags
* comment
* Rename client files
* client -> external service
* comments
* Move test to correct package
* slimmer test
* cachedUser -> cachedExternalService
* Fix aggregate store test
* PluginAuthSession -> AuthSession
* Revert the nil cehcks
* Remove unecessary extra
* Removing custom session
* fix typo in test
* Use constants for tests
* Simplify HandleToken tests
* Refactor the HandleTokenRequest test
* test message
* Review test
* Prevent flacky test on client as well
* go imports
* Revert changes from 526e48ad45
* AuthN: Change the External Service registration form (#68649)
* AuthN: change the External Service registration form
* Gen default permissions
* Change demo script registration form
* Remove unecessary comment
* Nit.
* Reduce cyclomatic complexity
* Remove demo_scripts
* Handle case with no service account
* Comments
* Group key gen
* Nit.
* Check the SaveExternalService test
* Rename cachedUser to cachedClient in test
* One more test case to database test
* Comments
* Remove last org scope
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* Update pkg/services/oauthserver/utils/utils_test.go
* Update pkg/services/sqlstore/migrations/oauthserver/migrations.go
Remove comment
* Update pkg/setting/setting.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Mihály Gyöngyösi <mgyongyosi@users.noreply.github.com>
* initial updates to outdated info
* minor edits prior to draft PR
* commented out options no longer available
* additional edits
* removed tables, changed format to list
* updated code mode section
* finished edits to builder mode
* added revisions per Brendan
* removed commented out section
* added note short codes
* Update all core kinds to flattened lineages
* Regen Go types, without any
* Regen Go types, s/interface{}/any/
* Update generated core typescript
* Update generate docs
* Fix defaults gen in veneer index jenny
* Flatten plugindef lineage
* Convert all plugin kinds to flattened form
* Switch back to interface{} for now
* Switch to fs.Sub in plugin DeclParser
* Mostly undesirable codegen changes, to be fixed
* Update mod and sum
* Update pfs tests to flattened lineages
* Update thema to latest, regen docs
* Move logs-related files to its own folder; update ownership paths
* Fix failing tests
* Put Flame graph and Node graph related files into separate folders
* Put RawPrometheus related files into a separate folder
* Put Table related files into a separate folder
* Add owners to three visualization categories
* observability-logs team owns everything under logs
* Move logs utils to their separate folder under Logs
* Wip
* remove name input from page body
* render title & subTitle in datasource page in connections and remove unused prop - uid
* styling on actions button group
* remove unused props in edit datasource page
* set gap as 8px between buttons
* move editable datasourcename to the header
* add subTitle component
* remove useRef and use autoFocus prop
* pass false to isDefault when dataSource is undefined
* change button text
* remove suffix icon
* remove unused import - Icon
* consolidate duplicate useDataSourceSettingsNav into datasrouces hook
* move dataSource context to useDataSourceSettingsNav
* remove Explore button in the footer
* remove unused props
* fix failing test on button group
* fix typo on file naming
* remove disabled prop
* fix param
* add test
* add test files
* disable editing title in readOnly provision datasource
* update name should save dataSource
* prevent swith toggle change from label clicking and change margin
* update tooltip message
* use datasource update on header instead of state update
* remvoe subTitle component and move subTitle component next to page Info component
* Added title
* remove subTitle in buildNavModel
* replace Button with Badge
* make datasourceheader as a component
* horizontal gap of 24px between pageInfo and actions components
* align page Info value items
* accept react node as page info label and add tooltip to Default item
* update navId for edit datasource page in connections
* update unit testing for Title
* fix gen_que
* betterer
* prettier fix
* fix e2e test
* add data-testid to nameEditIcon selector
* fix tooltip text
* fix navId for connections datasources edit page
* fix e2e selector: change autoSizeInput to Input
* adding ellipsis to EditDataSourceTitle
* override grafana-ui titleContainer h1 styles
* UI cleanup and apply readOnly to default datasource switch
* add period
* datasource name validation
* title and page info alignment
* add feature toggle - dataSourcePageHeader
* restore basicSettings component and apply feature toggle
* go lint
* Revert "title and page info alignment"
This reverts commit 681ac51f11.
* remove editable fields from page Header - name, default datasource switch
* fix go test: toggle generator
* remove test id
* remove alerting badge in BasicSettings component
* Revert "remove alerting badge in BasicSettings component"
This reverts commit fb33ff9028.
* feature toggle on alerting badge
* rename component & filename
* move DataSourceInfo type
* change button to link in test
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Miguel Palau Zarza <mpalauzarza@gmail.com>
* Log row: use clipboard button component for copy log button
* Copy log: adjust button styles to match
* Define line height
* Slightly improve line height
* removing legacy AC checks from team API handlers
* Chore: remove `UserIDFilter` from team queries (#68820)
* remove userIDfilter from team queries in favour of RBAC SQL filtering
* fix typo
* remove redundant tests
* remove another unused function
* fix failing test
* Use mutable ref to keep queries to be previewed to prevent stale state
* Extract code related to AlertQueryRunner to a separate hook
* Use hooks form state to keep fresh queries, fix recording rules preview
* Remove unused import
* Update query update explanation
* Themes: Unify secondary button and ToolbarButton
* Update
* Update light theme
* fix test
* fix toolbar button border
* fix disabled outline button style
* Use transparent color instead of dynamic computed color for hover bg for text/outline versions. this is what figma components do
* Update migration ordering
- Update migration in applyTemplateVariables to account for interpolation from expression datasource
- Update mock to ensure overrides are passed through correctly
- Update tests
- Update migrateQuery function name for clarity
* Fix tests
* Remove comment
Update legend aliases
- Add subscription response type
- Update AzureMonitorQuery type
- Update docs
- Update tests
- Add function to retrieve subscription display name if not present
* Center align cell items
* Change empty folder message + style
* Use new Text components in TypeCell
* Use new components in Move and Delete modals
* fix test
* Change spinner in DescendantsCount to the same font size as the text to prevent layout shift
* Enable doc-validator for specific directories
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix one linting error to trigger CI
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update doc-validator to latest release
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update make-docs procedure
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Use doc-validator version from CI in local make target
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Revert to 1.11.0
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* adds missing descriptions
* Fix titles and headings
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix link formats
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix easy to resolve anchors
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove broken anchor link
This anchor appears to have been broken for a long time.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Use doc-validator image with support for numbered anchors
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update make-docs procedure to support doc-validator 2.0.x
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix a bunch of broken anchors
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Ignore old whatsnew content
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update doc-validator to v2.0.x and use reviewdog to report errors
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* removes broken links
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* move permissions to a drawer when nested folders is enabled
* only show count when resource is folder
* Extract descendant count out into its own component
* remove label
* Logs: Fix duplicate uids by appending series refIds
* Fix id generation in loki live streams to be consistent
* Update public/app/core/logsModel.ts
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Fix test
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Elasticsearch: Fix passing of limit and datalinks to logs data frame
* Update public/app/core/logsModel.ts
Co-authored-by: François Massot <francois.massot@gmail.com>
---------
Co-authored-by: François Massot <francois.massot@gmail.com>
* Support scoped tags API
* Tests
* Updates
* Updated components and language provider to certralize tag retrieval
* Update tests and add new tests for language provider
* Minor update
* Update test
* Use fully qualified resource identifiers
* Add additional data link to explore parent span
* Correctly order links to not break trace logs functionality
* Loki: Add functionality to revert to initial query
* Add tests and fix button in button
* Use usereven instead of fireEvent
* Shortern onClick
* Add feature tracking
* Use testid instead of title
* Always show revert button
* Remove unused imports
* RBAC: Add function to delete external service roles
* Adding a test to the service
* Update pkg/services/accesscontrol/acimpl/service_test.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* update FolderDTO to match backend struct
* hacky way to get folder page breadcrumbs working
* hacky way to get dashboard nested breadcrumbs working
* undo route changes, get url from folder
* fix breadcrumbs in dashboard settings
* add parent pages to navIndex
* adjust getRootSectionForNode to just return the parent of a leaf node
* undo changes to generated files
* undo changes to toggles_gen.go
* feature toggle dashboardInit code
* remove unnecessary code in home dashboard
* build navModel directly, don't use getNavModel
* don't need fallback here
* remove getLoadingNav since it's not used anymore
* don't need to hide tabs from breadcrumbs anymore
* use id to find dashboards tab
* Enable correlations links for traceView formatted fields
* Add other links to the span UI
* Show both “legacy” and dataframe links
* bandaid test
* Remove special path logic, stringify all non strings before applying regex
* Fix test
* Do not create new instance of factory for every call, change header to correlations
* Get links from more than one field
* Remove categories
* Fix google cloud link tests
* Add test for multiple internal links
* Remove changes to datasources provisioning
* Added sorting, changed log link title
* Updates for new datasource picker
* Correct typing to ensure datasource selection
* Remove unused import
* Update labels
* Update labels and fix test
* Fix another test
* update test datasource to support template $seriesIndex in label values
* prettier
---------
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Basic implementation in web worker
* Move instances discovery to the worker
* Remove filtering from the worker
* Use normalized routes, use rtk query for alert groups fetching
* Reorganize matchers utilities to be available for web workers
* Move object matchers to the machers util file, rename worker
* Move worker code to a separate hook, add perf logging
* Add a mock for the web worker code, fix tests
* Fix tests warnings
* Remove notification policy feature flag
* Add normalizeRoute tests, change the regex match to test for label matching
* Move worker init to the file scope
* Simplify useAsyncFn hook
* refactor: remove unnecessary styling and adjust to button styling
* refactor: improve story
* refactor: use new default styling for border radius
* refactor: add missing pseudo classes and clean up
* refactor: repair disabled styling and add to story
* refactor: clean up and apply styles defined in figma
* refactor: set hover background in a pseudo-element
* refactor: unify large sizes
* refactor: add information for further use
* refactor: add comment
* refactor: comments and clean up import
* refactor: add changes after code review
* refactor: replace some bad example code in documentation
* refactor: update comment
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* refactor: add changes requested in review
* refactor: move deprecation warning
* refactor: replace padding
* refactor: remove local styling
* refactor: create separate stories for different examples
* refactor: change style of story
* refactor: replace absolute value by variable
* Update toggles_gen.go
---------
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* Plugins: Pass panel data in plugin extension context
Similar to https://github.com/grafana/grafana/pull/65861, this passes
the panel's data as part of the context object used when configuring
extension links.
This is useful if the plugin wants to conditionally show the link
depending on the presence or absence of certain features in the
data. For example in the ML plugin we only want to offer Outlier
Detection links for a query if the query returned more than 3 series.
* Update getPanelMenu extension test to include data object
* Tempo: escape regex-sensitive characters in span name before building promql query
* Make gen-cue
* Add type
* Add tests
* Test
* Minor update
---------
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
* adds icon and text to the card if enabled in inifile
* make use of verbose settings
* add state to enabledInIniFile
* rename to configFound and removal of default values
* chore(grafana-ui): begin migration to storybook7
* refactor(storybook): begin cleanup of storybook and addon configs
* chore(storybook): add storybook/blocks to keep yarn berry happy
* chore(storybook): rename intro story for storybook 7
* chore(stories): rename internal stories to support SB7 story name mapper
* chore(betterer): update glob to support internal story renaming
* chore(stories): silence TS errors for subcomponents in SB7
* fix(clickoutsidewrapper): window | document can be undefined not null
* chore(storybook): remove patch for 6.5.16
* revert(storybook): put back story globs
* docs(storybook): replace removed <Props /> with <ArgsTypes /> in mdx files
* docs(storybook): use ArgTypes instead of ArgsTable
* chore(storybook): use correct ArgTypes import name in mdx files
* chore(storybook): patch blocks to expose Preview component for docs
* chore(storybook): rename deprecated ComponentStory and ComponentMeta for v7
* feat(storybook): add STORY env var to customise which stories storybook should load
* chore(storybook): bump to 7.0.4
* fix(storybook): set esbuild minify target to fix erroring docs in production builds
* fix(toolbarbuttonrow): fix import path to prevent error in storybook doc
* docs(storybook): fix up some more stories
* chore(storybook): more config updates to match storybook documentation
* chore(storybook): bump to 7.0.5
* Apply suggestions from code review
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* chore(storybook): fix broken merge causing types issues
* chore(storybook): mimic broken alphabetical storySort and docs overview ordering
* docs(storybook): fix button docs adding p tags due to mdx2
* chore(storybook): bump to 7.0.10
* chore(storybook): apply patch on yarn install
* chore(text): update stories for storybook 7
* fix(storybook): make sure globs don't include internal stories in production
---------
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* Exposes the scoped vars to UI extensions via context.
* reverted the interpolation when running a query via the query runner.
* adding scoped vars to test.#
* add bug fix for multiple nested functions as params
* add types for parser (#67067)
* add types for parser
* add comment for future work
* handle any function with 2 seriesByTags func params, add test
* Update to ensure the resources parameter is passed through for logs queries only
* Use string slices for resources to ensure order remains the same
* Fix lint
* clarify test
* adding load time metrics for app init.
* chore: add the `metrics.ts` to the CODEOWNERS
* moved file according to PR feedback.
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Reset search state when navigating to a new search item
* Reset query on search select
* Spread initialState
* Remove unused import
* Only reset query
* Add test
* Fix spelling
* Change functionality
* Only applied saved filters when searching
* Appropriately handle correlation resources
- Retrieve resources in buildQueries step
- Build updated queries based off of correlation results
- Update tests
* Fix query building and tests
* Fix lint
* Ensure multiple resource queries will work
- Correctly set resources to ensure there is no overlapping between multiple resource selection and correlated resources
- Add tests for these specific cases
- Remove unnecessary pointers
- Build queries correctly
* baldm0mma/issue5799/ add empty frame with all meta data
* baldm0mma/issue5799/ add null test
* write an integration test around query results with empty rows
* baldm0mma/issue5799/ add tests to mssql and postgres
* remove use of apparently reserved keyword in mysql8
* baldm0mma/issue5799
* baldm0mma/issue5799/ update tests
* baldm0mma/issue5799/ update test structs
* baldm0mma/issue5799/ update annotation
---------
Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com>
* user essentials mob! 🔱
lastFile:public/app/core/components/AppChrome/AppChrome.tsx
* user essentials mob! 🔱
lastFile:public/app/core/components/AppChrome/AppChrome.test.tsx
* only show skiplink when page has app chrome
---------
Co-authored-by: Joao Silva <joao.silva@grafana.com>
* AuthN: Save external services RBAC roles
* Add missing test
* Placing roles in the same group
* Split function to gen role and assignment
* add test case and comments
* Ensure we check external service roles are assigned once only
* Update pkg/services/accesscontrol/models_test.go
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* update docs to mark that api keys will be service account tokens
* Update docs/sources/administration/api-keys/index.md
* Update docs/sources/administration/api-keys/index.md
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
---------
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* CI: Add Windows backend tests in more places
* CI: Add promotion pipeline for publishing new windows-test-images
* CI: Ignore windows backend-test failures for now
* CI: Fix linting issue in ci_images.star file
* adds stale alert note
* Update docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
* alex feedback
---------
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
* Return same series for loading state
* Fix shared query issue
* include structureRev
* heatmap should depend on the series, not the wrapper
* fix more panels
* keep config for comparison
* fieldConfig.fieldConfig!
* cleanup
* cmon
---------
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Elasticsearch: Run getTerms torugh backend if toggle enabled
* Add template variables to devenv dashboard for easier testing
* Add TODO
* Run feature toggle gen to fix build
* Google Cloud Monitor: Fix mem usage for dropdown
Previously the Metric name dropdown would attempt to load _all_ the
available metric names into the Select which would eventually crash the
browser if the dataset was large enough.
We can fix this by using AsyncSelect and making another query once a
Service is selected _and_ the user types a few characters.
* fix: update tests for AsyncSelect
* fix lint
* fix: add subset of metrics on initial load
* Update TimeGrain interface methods
- Make them util functions because it's simpler
* Update logs ds to appropiately set resources and timespan
* Set timespan using RCF times
* Update tests
* Append analytics identifier upon authenticate session
* Add id and module upon syncing user to identity
* Add authModule & id to `IdentityFromSignedInUser`
* Allow req calls in test to use basic auth
* Add `intercom_secret` to grafana config in tests
* Add test for analytics render in html view
* quick poc on how we could use proxies instead of object freeze for the extension context.
* wip
* wip
* added tests for readOnlyProxy.
* Changed so we use the read only proxy for the context instead of the frozen object.
* updated names according to feedback.
* Drawer: Introduce drawer size that sets width and min-width
* media queries
* Change large drawer to 75%
* Change news drawer to medium as the news items have better layout then with images on the side
* Tweaks and fixed inline drawer issue
* review fixes
* Deprecate inline, update mdx docs
* remove inline var
* Elasticsearch: Fix parsing of invalid time
* Fix lint
* Add more test data to data.js
* Add tests
* Fix lint
* Update pkg/tsdb/elasticsearch/client/search_request.go
* Fix action buttons label and placement in several views following standard and being consistent with the rest of the ui
* Update public/app/features/alerting/unified/components/mute-timings/MuteTimingForm.tsx
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Fix secondary buttons to not have outline
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Fix expression for GrafanaRequestsFailing alert
The intent of the alert is to get the ratio of 5xx to all status codes
[^1]. With the original expression, the left hand side can have more than
one row with the same labels except for the status code. This results in
a promql error because it is doing a many-to-one matching. Doing a sum
on the left hand side first should preserve the intent of the alert and
resolve the issue.
[^1]: https://github.com/grafana/grafana/pull/43116
* BackendSrv: Restrucutre response stream to resolve a retried request
correctly
* BackendSrv: Get signed in property from user
* Fix test with correct number of calls
* To prevent retry we need to throw error
* Fix tests
* revert change
* Fixes to token rotation
* Align tests
* Remove commented out code
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
rename "Your data source" to "Data source" page
This page was meant to be named "Data source" in the previous PR [0].
I just made a mistake by naming it wrongly.
[0]: https://github.com/grafana/grafana/pull/66813/files
* hook up getAffectedItems to the backend count route
* mock out backendSrv in unit tests
* Don't delete alert rules while API doesn't return counts
* Show alert rule counts when API returns them
* use components for modal styles
* Revert "use components for modal styles"
This reverts commit 80ac1152f8.
---------
Co-authored-by: joshhunt <josh@trtr.co>
* clear selection post move/delete
* move actions out of rtk-query
* move findItems, create selectors, refetch children when moving/deleting
* cleaner syntax
* remove unnecessary function, just put logic in the selector
* handle moving/deleting from the root
* slightly cleaner
* handle when rootItems are undefined
* handle 'general' in the fetchChildren reducer
* only refresh at the end
* don't need thunk api
* move configure legend page and add alias
* updated page weight and tried fixing alias
* fixed alias
* add preemptive alias for current page location
* apply suggestion from review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* apply suggestions from review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* apply suggestions from review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Show indeterminate checkbox for folders with partially selected children
* When selecting an item, check ancestors to see if all their children are now selected
* reword comment
* fix test
* fix lint
* Check all descendants for mixed state
* Use indeterminate checkbox
* fix test description
* make header checkbox select/unselect automatically
* mixed header checkbox:
* fix tests
* add tests
title:"Product-Area-Here: short description of bug here"
title:"ProductArea: Short description of bug"
body:
- type:markdown
attributes:
value:|
Thanks for taking the time to fill out this bug report!
Please try to give your issue a good title. Try using the product-area where you are having an issue and a brief description of the problem. Like this:
- `Dashboards: Template Variables break when I do X` or
Please try to give your issue a good title. Try using the product-area where you are having an issue and a brief description of the problem. Like this:
- `Dashboards: Template Variables break when I do X` or
- `Alerting: message templating plus Slack channel breaks when I do X`
- type:markdown
attributes:
@@ -20,108 +20,61 @@ body:
attributes:
value:|
#
- type:textarea
id:bug-describe
attributes:
label:|
# What went wrong?
description:|
#
Describe your bug. What happened? What did you expect to happen?
**Hot Tip:** Record your screen and add it here as a gif.
placeholder:Tell us what you see!
value:|
**What happened**:
-
**What did you expect to happen**:
-
label:What happened?
description:"**Hot Tip:** Record your screen and attach it here."
validations:
required:true
- type:markdown
attributes:
value:|
#
- type:textarea
id:bug-repro
attributes:
label:|
# How do we reproduce it?
description:|
#
Whenever possible, please provide **detailed** steps for reproducing your bug.
**This is very helpful info**
placeholder:"Step 1:..."
value:|
**Step 1**:
- Open Grafana and do X
**Step 2**:
- Now click button Y
**Step 3**:
- Wait for the browser to crash. Error message says: "Error..."
label:What did you expect to happen?
validations:
required:true
- type:markdown
attributes:
value:|
#
- type:input
id:gf-version
attributes:
label:|
# What Grafana version are you using?
description:|
#
- [How do I find my Grafana version info?](https://community.grafana.com/t/how-to-find-your-grafana-version-info-3-different-ways/86857)
placeholder:"ex: v9.5.0, or v9.5.0-cloud.5.a016665c (b2a5d45589)"
validations:
required:true
- type:markdown
attributes:
value:|
#
#
# Optional Questions:
#
- type:textarea
id:get-help
attributes:
label:|
## Optional Questions:
### Is the bug inside a Dashboard Panel?
label:Did this work before?
description:"If this worked before, what Grafana version worked correctly?"
validations:
required:true
- type:textarea
attributes:
label:How do we reproduce it?
placeholder:"Steps to reproduce..."
value:|
1.
2.
3.
validations:
required:true
- type:textarea
attributes:
label:Is the bug inside a dashboard panel?
description:|
If the bug appears inside a [dashboard panel](https://grafana.com/docs/grafana/latest/panels-visualizations/#panels-and-visualizations), please use the ["Get-Help" feature](https://grafana.com/docs/grafana/latest/troubleshooting/send-panel-to-grafana-support/). Select **copy to clipboard** and paste the data below.
No need for backticks--this text will get formatted as a code-block.
If the bug appears inside a [dashboard panel](https://grafana.com/docs/grafana/latest/panels-visualizations/#panels-and-visualizations), please use the ["Get help" feature](https://grafana.com/docs/grafana/latest/troubleshooting/send-panel-to-grafana-support/). Select **Copy to clipboard** and paste the data below.
- type:textarea
attributes:
label:Environment (with versions)?
description:|
[How do I find my Grafana version info?](https://community.grafana.com/t/how-to-find-your-grafana-version-info-3-different-ways/86857)
placeholder:"Grafana, OS, and Browser versions..."
value:|
Grafana:
OS:
Browser:
validations:
required:false
What's a [dashboard panel](https://grafana.com/docs/grafana/latest/panels-visualizations/#panels-and-visualizations)?
placeholder:Copy "get-help" data here
value:Copy the panel's ["get-help" data](https://grafana.com/docs/grafana/latest/troubleshooting/send-panel-to-grafana-support/) here
- type:dropdown
id:gf-deployment
attributes:
label:Grafana Platform?
description:|
**How** are you running/deploying Grafana?
label:Grafana platform?
description:How are you running/deploying Grafana?
options:
- I use Grafana Cloud
- Docker
@@ -132,46 +85,9 @@ body:
- I don't know
validations:
required:false
- type:input
id:user-os
attributes:
label:User's OS?
description:What operating system are you running locally?
placeholder:"ex. MacOS Big Sur 11.7, or Ubuntu 20.04..."
- type:input
id:user-browser
attributes:
label:User's Browser?
description:Is the bug occuring in Grafana's user-interface? If so, what browsers are you seeing the problem on? You may choose more than one.
placeholder:"ex. Google Chrome Version 112.0.5615.137 (Official Build) (arm64)..."
- type:dropdown
id:regression
attributes:
label:Is this a Regression?
description:|
A regression means that the feature was working, then you upgraded, and now it's broken.
options:
- 'No'
- 'Yes'
validations:
required:false
- type:input
id:gf-datasource
attributes:
label:Are Datasources involved?
description:|
Is this issue specific to a datasource plugin / plugins? Please list all that apply:
label:Datasource(s)?
description:"Is this issue specific to a datasource plugin? (Please list all that apply)"
placeholder:"ex. Elasticsearch 5.0.0 or Infinity 1.4.1 ..."
By using this template, you help expand our component and pattern solutions within the design system and let others reuse your work! You can contribute bug or design defect fixes, component, and pattern enhancements, or even net-new components! This template brings visibility to the great work everyone already does and in turn helps reduce duplicate efforts.
"comment":"This feature request has been open for a long time with few received upvotes or comments, so we are closing it. We're trying to limit open GitHub issues in order to better track planned work and features. \r\n\r\nThis doesn't mean that we'll never ever implement it or that we will never accept a PR for it. A closed issue can still attract upvotes and act as a ticket to track feature demand\/interest. \r\n\r\nThank You to you for taking the time to create this issue!"
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch or major.minor.patch-beta<number> format. example:7.4.3or 7.4.3-beta1'
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
required:true
env:
YARN_ENABLE_IMMUTABLE_INSTALLS:false
YARN_ENABLE_IMMUTABLE_INSTALLS:false
jobs:
main:
runs-on:ubuntu-latest
steps:
# This is a basic workflow to help you get started with Actions
# This is a basic workflow to help you get started with Actions
description: 'The version to be released please respect: major.minor.patch or major.minor.patch-beta<number> format. example:7.4.3or 7.4.3-beta1'
description: 'The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch or major.minor.patch-beta<number> format. example:7.4.3or 7.4.3-beta1'
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
"io/ioutil"="Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details."
"gopkg.in/yaml.v2"="Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available"
"github.com/pkg/errors"="Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library."
"github.com/xorcare/pointer"="Use pkg/util.Pointer instead, which is a generic one-liner alternative"
"github.com/gofrs/uuid"="Use github.com/google/uuid instead, which we already depend on."
[linters-settings.depguard.rules.main]
allow=[]# allow all
deny=[
{pkg="io/ioutil",desc="Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details."},
{pkg="gopkg.in/yaml.v2",desc="Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available"},
{pkg="github.com/pkg/errors",desc="Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library."},
{pkg="github.com/xorcare/pointer",desc="Use pkg/util.Pointer instead, which is a generic one-liner alternative"},
{pkg="github.com/gofrs/uuid",desc="Use github.com/google/uuid instead, which we already depend on."},
]
[linters-settings.depguard.rules.coreplugins]
deny=[
{pkg="github.com/grafana/grafana/pkg/",desc="Core plugins are not allowed to depend on Grafana core packages"},
]
files=[
"**/pkg/tsdb/testdatasource/*",
"**/pkg/tsdb/testdatasource/**/*",
]
[linters-settings.gocritic]
enabled-checks=["ruleguard"]
[linters-settings.gocritic.settings.ruleguard]
rules="pkg/ruleguard.rules.go"
[linters-settings.nakedret]
max-func-lines=60
[linters]
disable-all=true
enable=[
@@ -47,7 +58,6 @@ enable = [
"ineffassign",
"misspell",
"nakedret",
"rowserrcheck",
"exportloopref",
"staticcheck",
"stylecheck",
@@ -65,6 +75,7 @@ enable = [
# Disabled linters (might want them later)
# "unparam"
# "rowserrcheck" # The linter doesn't detect that both Scan and Close also returns the error message returned by Err.
[issues]
exclude-use-default=false
@@ -82,6 +93,11 @@ linters = ["stylecheck"]
text="ST1001"
# Enable when appropriate
# http.CloseNotifier has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: We currently need it in pkg/web/response_writer.go.
[[issues.exclude-rules]]
linters=["staticcheck"]
text="SA1019: http.CloseNotifier"
# strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly.
@@ -40,7 +40,7 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4/code-of-conduct][version]
@@ -42,6 +42,8 @@ If you're interested in contributing to the Grafana project:
- If you have a specific question, check out our [discussion forums](https://community.grafana.com/).
- For general discussions, join us on the [official Slack](https://slack.grafana.com) team.
This project is tested with [BrowserStack](https://www.browserstack.com/)
## License
Grafana is distributed under [AGPL-3.0-only](LICENSE). For Apache-2.0 exceptions, see [LICENSING.md](https://github.com/grafana/grafana/blob/HEAD/LICENSING.md).
If you think you have found a security vulnerability, please send a report to [security@grafana.com](mailto:security@grafana.com). This address can be used for all of Grafana Labs's open source and commercial products (including but not limited to Grafana, Grafana Cloud, Grafana Enterprise, and grafana.com). We can accept only vulnerability reports at this address.
This product is in scope for our Bug Bounty Program. To submit a vulnerability report, please visit [Grafana Labs Bug Bounty Policy page](https://github.com/grafana/bugbounty) and follow the instructions provided. Our security team will review your submission and get back to you as soon as possible.
---
For any other security issues, please send an email to security@grafana.com
Please encrypt your message to us; please use our PGP key. The key fingerprint is:
F988 7BEA 027A 049F AE8E 5CAA D125 8932 BE24 C5CA
225E 6A9B BB15 A37E 95EB 6312 C66A 51CC B44C 27E0
The key is available from [keyserver.ubuntu.com](https://keyserver.ubuntu.com/pks/lookup?search=0xF9887BEA027A049FAE8E5CAAD1258932BE24C5CA&fingerprint=on&op=index).
The key is available from [keyserver.ubuntu.com](https://keyserver.ubuntu.com/pks/lookup?search=0x225E6A9BBB15A37E95EB6312C66A51CCB44C27E0&fingerprint=on&op=index).
Grafana Labs will send you a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
# Should be set for user-assigned identity and should be empty for system-assigned identity
managed_identity_client_id=
# Specifies whether user identity authentication (on behalf of currently signed-in user) should be enabled in datasources
# that support it (requires AAD authentication)
# Disabled by default, needs to be explicitly enabled
user_identity_enabled=false
# Override token URL for Azure Active Directory
# By default is the same as token URL configured for AAD authentication settings
user_identity_token_url=
# Override ADD application ID which would be used to exchange users token to an access token for the datasource
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
user_identity_client_id=
# Override the AAD application client secret
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
user_identity_client_secret=
#################################### Role-based Access Control ###########
[rbac]
# If enabled, cache permissions in a in memory cache
@@ -826,6 +903,9 @@ level = info
# optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug
filters=
# Set the default error message shown to users. This message is displayed instead of sensitive backend errors which should be obfuscated.
user_facing_default_error="please inspect Grafana server log for details"
# For "console" mode only
[log.console]
level=
@@ -872,21 +952,12 @@ facility =
tag=
[log.frontend]
# Should Sentry javascript agent be initialized
# Should Faro javascript agent be initialized
enabled=false
# Defines which provider to use sentry or grafana
provider=sentry
# Sentry DSN if you want to send events to Sentry.
sentry_dsn=
# Custom HTTP endpoint to send events to. Default will log the events to stdout.
custom_endpoint=
# Rate of events to be reported to Sentry between 0 (none) and 1 (all), float
sample_rate=1.0
# Requests per second limit enforced per an extended period, for Grafana backend log ingestion endpoint (/log).
log_endpoint_requests_per_second_limit=3
@@ -988,6 +1059,9 @@ ha_redis_prefix =
# provided, a random one will be generated.
ha_redis_peer_name=
# The maximum number of simultaneous redis connections.
ha_redis_max_conns=5
# Listen address/hostname and port to receive unified alerting messages for other Grafana instances. The port is used for both TCP and UDP. It is assumed other Grafana instances are also running on the same port.
ha_listen_address="0.0.0.0:9094"
@@ -1003,6 +1077,11 @@ ha_peers = ""
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
ha_peer_timeout=15s
# The label is an optional string to include on each packet and stream.
# It uniquely identifies the cluster and prevents cross-communication
# issues when sending gossip messages in an enviromenet with multiple clusters.
ha_label=
# The interval between sending gossip messages. By lowering this value (more frequent) gossip messages are propagated
# across cluster more quickly at the expense of increased bandwidth usage.
# 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.
@@ -1027,6 +1106,11 @@ max_attempts = 3
# 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
[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.
# This is the minimum TLS version allowed. By default, this value is empty. Accepted values are: TLS1.2, TLS1.3. If nothing is set TLS1.2 would be taken
;min_tls_version = ""
# The ip address to bind to, empty will bind to all interfaces
;http_addr =
@@ -161,7 +164,7 @@
# For "sqlite" only. How many times to retry transaction in case of database is locked failures. Default is 5.
;transaction_retries = 5
# Set to true to add metrics and tracing for database queries.
# Set to true to add metrics and tracing for database queries.
;instrument_queries = false
################################### Data sources #########################
@@ -381,6 +384,9 @@
# The CSRF check will be executed even if the request has no login cookie.
;csrf_always_check = false
# Comma-separated list of plugins ids that won't be loaded inside the frontend sandbox
;disable_frontend_sandbox_for_plugins =
[security.encryption]
# Defines the time-to-live (TTL) for decrypted data encryption keys stored in memory (cache).
# Please note that small values may cause performance issues due to a high frequency decryption operations.
@@ -433,7 +439,7 @@
# Set this value to automatically add new users to the provided organization (if auto_assign_org above is set to true)
;auto_assign_org_id = 1
# Default role new users will be automatically assigned (if auto_assign_org above is set to true)
# Default role new users will be automatically assigned
;auto_assign_org_role = Viewer
# Require email validation before sign up completes
@@ -469,6 +475,22 @@
# Enter a comma-separated list of users login to hide them in the Grafana UI. These users are shown to Grafana admins and themselves.
; hidden_users =
[secretscan]
# Enable secretscan feature
;enabled = false
# Interval to check for token leaks
;interval = 5m
# base URL of the grafana token leak check service
;base_url = https://secret-scanning.grafana.net
# URL to send outgoing webhooks to in case of detection
;oncall_url =
# Whether to revoke the token if a leak is detected or just send a notification
;revoke = true
[service_accounts]
# Service account maximum expiration date in days.
# When set, Grafana will not allow the creation of tokens with expiry greater than this setting.
@@ -526,6 +548,9 @@
# Set to skip the organization role from JWT login and use system's role assignment instead.
; skip_org_role_sync = false
# Use email lookup in addition to the unique ID provided by the IdP
# Should be set for user-assigned identity and should be empty for system-assigned identity
;managed_identity_client_id =
# Specifies whether user identity authentication (on behalf of currently signed-in user) should be enabled in datasources
# that support it (requires AAD authentication)
# Disabled by default, needs to be explicitly enabled
;user_identity_enabled = false
# Override token URL for Azure Active Directory
# By default is the same as token URL configured for AAD authentication settings
;user_identity_token_url =
# Override ADD application ID which would be used to exchange users token to an access token for the datasource
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
;user_identity_client_id =
# Override the AAD application client secret
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
;user_identity_client_secret =
#################################### Role-based Access Control ###########
[rbac]
;permission_cache = true
@@ -798,6 +856,9 @@
# optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug
;filters =
# Set the default error message shown to users. This message is displayed instead of sensitive backend errors which should be obfuscated. Default is the same as the sample value.
;user_facing_default_error = "please inspect Grafana server log for details"
# For "console" mode only
[log.console]
;level =
@@ -844,20 +905,11 @@
;tag =
[log.frontend]
# Should Sentry javascript agent be initialized
# Should Faro javascript agent be initialized
;enabled = false
# Defines which provider to use, default is Sentry
;provider = sentry
# Sentry DSN if you want to send events to Sentry.
;sentry_dsn =
# Custom HTTP endpoint to send events captured by the Sentry agent to. Default will log the events to stdout.
;custom_endpoint = /log
# Rate of events to be reported between 0 (none) and 1 (all), float
;sample_rate = 1.0
# Custom HTTP endpoint to send events to. Default will log the events to stdout.
;custom_endpoint = /log-grafana-javascript-agent
# Requests per second limit enforced an extended period, for Grafana backend log ingestion endpoint (/log).
;log_endpoint_requests_per_second_limit = 3
@@ -972,6 +1024,11 @@
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;ha_peer_timeout = "15s"
# The label is an optional string to include on each packet and stream.
# It uniquely identifies the cluster and prevents cross-communication
# issues when sending gossip messages in an enviromenet with multiple clusters.
;ha_label =
# The interval between sending gossip messages. By lowering this value (more frequent) gossip messages are propagated
# across cluster more quickly at the expense of increased bandwidth usage.
# 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.
Are you looking to take on contributions with bigger impact? These guides help you get a better understanding of the structure and design of the Grafana codebase.
Learn more about the backend architecture:
- Part 1: [Services](../backend/services.md)
- Part 2: [Communication](../backend/communication.md)
- Part 3: [Database](../backend/database.md)
Learn more about the backend architecture in [contribute/backend](/contribute/backend/README.md).
_Only people in the Grafana organization can make changes to the Drone pipeline_
The Drone pipelines are built with [Starlark](https://github.com/bazelbuild/starlark), a language which is similar to Python. The Starlark files are located in [`scripts/drone`](https://github.com/grafana/grafana/tree/main/scripts/drone).
## Setup
- Set environment variables `DRONE_SERVER` and `DRONE_TOKEN`, which can be found on your [Drone account](https://drone.grafana.net/account). These are used to verify that only Grafana employees can make changes to the pipelines.
- Install [buildifier](https://github.com/bazelbuild/buildtools/blob/master/buildifier/README.md), and use it to format the Starlark files you edit.
## Develop
- 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.
@@ -9,7 +9,7 @@ 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 the component's source, then run `yarn i18n:extract`. Do not edit the `en-ES/grafana.json` or update the english phrase in Crowdin
- 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 any translated language, edit the phrase in Crowdin. Do not edit the `{locale}/grafana.json`
## How to add a new translation phrase
@@ -80,7 +80,7 @@ Grafana uses the [i18next](https://www.i18next.com/) framework for managing tran
- Extracts phrases into messages catalogues for translating in external systems
- Manages the user's locale and putting the translated phrases in the UI
English phrases remain in our Javascript bundle in the source components (as the `<Trans />` or `t()` default phrase). At runtime, we don't need to load any messages for en-US. If the user's language preference is set to another language, Grafana will load that translations's messages JSON before the initial render.
Grafana will load the message catalogue JSON before the initial render.
### Phrase ID naming convention
@@ -162,17 +162,32 @@ import { Trans } from "app/core/internationalization"
### Plurals
Plurals require special handling to make sure they can be translating according to the rules of each locale (which may be more complex that you think!). Use the `<Trans />` component, with the `count` prop.
Plurals require special handling to make sure they can be translating according to the rules of each locale (which may be more complex that you think!). Use either the `<Trans />` component or the `t` function, with the `count` prop to provide a singular form.
Once extracted with `yarn i18n:extract` you will need to manually fill in the grafana.json message catalogues with the additional plural forms. See the [react-i18next docs](https://react.i18next.com/latest/trans-component#plural) for more details.
Once extracted with `yarn i18n:extract` you will need to manually edit the [English grafana.json message catalogue](../public/locales/en-US/grafana.json) to correct the plural forms. See the [react-i18next docs](https://react.i18next.com/latest/trans-component#plural) for more details.
@@ -13,7 +13,6 @@ The following checklist/summary should give you a quick overview of what to ask/
- Reviewed and approved?
- All checks passed?
- Proper pull request title?
- Milestone assigned?
- Add to changelog/release notes?
- Needs backporting?
@@ -40,11 +39,17 @@ See [formatting guidelines](create-pull-request.md#formatting-guidelines) for mo
### Assign a milestone
A milestone **should** be added to every pull request. Several things in the Grafana release process requires at least pull requests to be in a milestone, for example [generating changelog/release notes](#include-in-changelog-and-release-notes).
Several things in the Grafana release process requires at least pull requests to be in a milestone, for example [generating changelog/release notes](#include-in-changelog-and-release-notes).
This makes it easier to track what changes go into a certain release. Without this information, release managers have to go through git commits which is not an efficient process.
Always assign the milestone for the version that a PR is merged into. PRs targetting `main` should use the next minor (or major) version and backport PRs should use the same value than the target branch.
That being said, _you don't have to assign a milestone manually_ to a pull request.
Instead, when it is merged & closed then a bot will look for the most appropriate miletone and assign it to the pull request.
That milestone should always reflect the branch that the pull request is merged into.
For every major and minor release there is a milestone ending with `.x` (e.g. `10.0.x` for the 10.0.x releases).
Pull requests targetting `main` should use the `.x` milestone of the next minor (or major) version (you can find that version number inside the `package.json` file).
Backport pull requestss should use the version of the target branch (e.g. `9.4.x` for the `v9.4.x` branch).
### Include in changelog and release notes?
@@ -80,15 +85,15 @@ The changelog/release notes are divided into sections and here's a description o
**Features and enhancements:**
Milestone assigned and labeled with `add to changelog` and any of the other section rules don't apply.
Labeled with `add to changelog` and any of the other section rules don't apply.
**Bug fixes:**
Milestone assigned and labeled with `add to changelog` and either labeled with `type/bug` or the pull request title contains `fix` or `fixes`.
Labeled with `add to changelog` and either labeled with `type/bug` or the pull request title contains `fix` or `fixes`.
**Plugin development fixes & changes:**
Milestone assigned and labeled with `area/grafana/toolkit`, `area/grafana/ui` or `area/grafana/runtime`.
Labeled with `area/grafana/toolkit`, `area/grafana/ui` or `area/grafana/runtime`.
The goal of this document is to address the most frequently asked "How to" questions related to unit testing.
## Best practices
- Default to the `*ByRole` queries when testing components as it encourages testing with accessibility concerns in mind. It's also possible to use `*ByLabelText` queries. However, the `*ByRole` queries are [more robust](https://testing-library.com/docs/queries/bylabeltext/#name) and are generally recommended over the former.
## Testing User Interactions
We use the [user-event](https://testing-library.com/docs/user-event/intro) library for simulating user interactions during testing. This library is preferred over the built-in `fireEvent` method, as it more accurately mirrors real user interactions with elements.
There are two important considerations when working with `userEvent`:
1. All methods in `userEvent` are asynchronous, and thus require the use of `await` when called.
2. Directly calling methods from `userEvent` may not be supported in future versions. As such, it's necessary to first call `userEvent.setup()` prior to the tests. This method returns a `userEvent` instance, complete with all its methods. This setup process can be simplified using a utility function:
There are a few utilities that can be useful for debugging tests:
- [screen.debug()](https://testing-library.com/docs/queries/about/#screendebug) - This function prints a human-readable representation of the document's DOM tree when called without arguments, or the DOM tree of specific node(s) when provided with arguments. It is internally using `console.log` to log the output to terminal.
- [Testing Playground](https://testing-playground.com/) - An interactive sandbox that allows testing which queries work with specific HTML elements.
- [logRoles](https://testing-library.com/docs/dom-testing-library/api-debugging/#prettydom) - A utility function that prints out all the implicit ARIA roles for a given DOM tree.
## Testing Select Components
Here, the [OrgRolePicker](https://github.com/grafana/grafana/blob/38863844e7ac72c7756038a1097f89632f9985ff/public/app/features/admin/OrgRolePicker.tsx) component is used as an example. This component essentially serves as a wrapper for the `Select` component, complete with its own set of options.
The recommended way to query `Select` components is by using a label. Add a `label` element and provide the `htmlFor` prop with a matching `inputId`. Alternatively, `aria-label` can be specified on the `Select`.
At times, it might be necessary to verify that the `Select` component is displaying the correct options. In such instances, the best solution is to click the `Select` component and match the desired option using the `*ByText` query.
To simplify the process of selecting an option from a `Select` component, there is a `selectOptionInTest` utility function. This function is a wrapper over the [react-select-event](https://testing-library.com/docs/ecosystem-react-select-event/) package.
The recommended approach for mocking the `window` object is to use Jest spies. Jest's spy functions provide a built-in mechanism for restoring mocks. This feature eliminates the need to manually save a reference to the `window` object.
The `getBackendSrv()` function is used to make HTTP requests to the Grafana backend. It is possible to mock this function using the `jest.mock` method.
```tsx
jest.mock('@grafana/runtime',()=>({
...jest.requireActual('@grafana/runtime'),
getBackendSrv:()=>({
post: postMock,
}),
}));
```
#### Mocking getBackendSrv for AsyncSelect
The `AsyncSelect` component is used to asynchronously load options. As such, it often relies on the `getBackendSrv` for loading the options.
Here's how the test would look like for this [OrgPicker](https://github.com/grafana/grafana/blob/38863844e7ac72c7756038a1097f89632f9985ff/public/app/core/components/Select/OrgPicker.tsx) component, which uses `AsyncSelect` under the hood.
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.