* 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
* 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
* 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
* 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
* 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
* 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>
* 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>
* 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
* 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
* 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>
* 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>
* 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>
* 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
* 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>
* 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