* Chore: Use yarn node-modules linker
* fix react-router types resolution
* temp skip failing tests
* remove yarn-links for internal path aliases to fix some webpack errors
* transpile all .ts files, even those in node_modules (usually our internal workspace packages
* fix transformers mock
* import react router type directly
* remove old resolution
* more cleanup
* remove preserveSymlinks: true from tsconfig to make Go To Definition resolve grafana ui to the original location
* developer guide
* update dev guide
* remove sdks
* reenable tests
* fix tsconfig trailing commas (where did they come from)
* only use the series endpoint in the metrics browser
* Update public/app/plugins/datasource/prometheus/components/PrometheusMetricsBrowser.test.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* DashboardScene: First save works
* Updates
* version mismatch works
* Error handling
* save current time range working
* Progress on save as
* Save as works
* Progress
* First tests
* Add unit tests
* Minor tweak
* Update
* Update isDirty state when saving
Fixes the group by custom labels and timings override logic in the simplified routing section of the edit rule page.
Previously:
- Custom labels would fail on first attempt at adding them to the group by.
- Timings fields required all timings to be overridden instead of any of them.
* Share button works now. Removed add to dashboard button for now
* WIP explore link
* Remove settings dropdown for now
* Use getExploreUrl to generate explore link
* Fix conflicts
* Update betterer
* Navigate to a new trail when the recent trails list is empty
* Address PR comments
* Extract DatasourceVariableForm logic and use it in core grafana
* Implement DataSourceVariable editor in scenes
* Refactor VariableSelect and add unit test for DataSourceVariableEditor
* Refactor old unit test to use userEvent and mock getDataSourceSrv
* Swap order between Annotations and Labels and notifications step, and update some texts
* Update routing preview label size
* Fix dashboard and panel label when are selected
* Swap order in modify export form
* Add refresh button for contact points selector in simplified routing section
* Clear timeout when unmounting component
* Fix timeout not being correclty removed when component unmounts
* Update css field name
* Kepp loading spinner if refetching receivers takes more than one second
* Fix test snapshot in useContactPointsWithStatus hook
* refactor how we wait for the request response and the timeout to finish
* Grafana/ui: Add Space component
* Add responsive styles and prop docs
* Use the Box component
* Docs
* Replace the component from grafana/experimental
* Update story
* Tweak docs
* Adjust docs
* Embedding dashboards exploratino
* Update
* Update
* Added e2e test
* Update
* initial state, and onStateChange, only explore panel menu action and other fixes and tests
* fix e2e spec
* Fix url
* fixing test
* Adding transformations works
* Use source data as data input for transformation settings, add search box suffix
* remove useCallback that are probably not needed, fix tests
* remove unused import
* add tests for adding and removing transformations
* use view all constant
* Add reordering functionality
* Fix removing one transformation removes all consecutive transformations
* use closeDrawer function
* Add tests for changing transformations
* Remove any
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Add warning message when scope missing in TraceQL
* Check for warnings in nodes
* Update formattiing
* Tidy up logic
* Tests
* Rename files and move tests for highlighting queries with errors
Prometheus plugin: use new labels endpoint, if supported, for LabelEditor
Before this change LabelEditor always use old '/series' endpoint to get labels.
Now new '/labels' endpoint would be used in case datasource supports it.
* fix preview getting the correct queries from the form
* Remove setting queries in onChangeQueries handler as it only contains data queries and not expressions
* Keep setValue('queries') but also adding expressions
* update selectors for prom
* add selector to switch component, needs id instead of testid
* add testid and ids to Prom settings
* add e2e tests for prom config
* add config to editor test
* export select function
* start query editor spec
* clean up describe
* add selectors for general query editor
* add selectors to components in options in best locations
* wrap header switch in id because component doesn't accept testid nor id
* add id to wrap legend components in one selector
* update selector in shared folder component, note to change in shared library
* update selector in shared folder component, note to change in shared library
* add notes for selectors in shared folder
* add tests and file for query editor
* add selectors for metrics browser in code editor
* add selector to component to open metrics browser
* add selectors to components within the metrics browser
* add tests for metrics browser and stub resource calls
* add selectors to query builder components
* add e2e tests for query builder
* generic query builder test with hints
* add selectors for more code editor parts
* add test for code and update selector
* fix tests with selector
* remove shared folder changes and use data-testid where possible
* remove unused import
* share getResources
* create variable query editor selectors
* add selectors to the variable query editor
* add e2e tests for the Prometheus variable query editor
* fix test function
* refactor add data source method
* add annotation selectors
* add selectors to annotation components
* add annotation e2e tests
* commit for yarn i18n:extract error in drone
* Update dependency eslint-plugin-jsx-a11y to v6.8.0
* this shouldn't be a label methinks
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Geomap: Support geojson styling properties
* Add enum for geojson styles
* Move styleStrings outside of style function
* Add styling note to geoJSON docs
* Clean up geomap docs
* Add support for points
* Add simple example
* Add support for all geojson types and update example
* Update colors
* Update docs
* Remove old TODO
* Update geojson name
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* refactor: remove icons and related styling
* refactor: remove cut off on the left side
* fix: aria-labels
* feat: add tracking
* refactor: adjust button position
* refactor: move previous button back
* refactor: use emotion object syntax
* feat: add tracking
* refactor: remove console.log()
* Working copy-paste functionality with validation
* WIP; uses 't c' shortcut to copy time range
* shortcuts working for explore and dashboards
* cleanup
* Don't update url when pasting in explore
* Error handling, sync pane functionality, add to help modal
* cleanup
* add tests
* fix i18n
* Diferrentiate between explore and dashboard paste events; make on error prop generic
* Fix
* extract getting the copied time range logic into a function
* Remove comments
* Make error handling generic; markup for translations
* Additional translation markup
* markup for aria-label
* Fix test
* Replace fireEvent with userEvent
* fix translations to match the standard pattern
* Refactor keybindingSrv and TimeSrv to remove PasteTimeContext
* Fix test
* Remove unneccessary aria labels; update icons; buttons inline
When using the legacy migration dry-run, if a cancel takes a long time (long
enough for the page to poll) the page will incorrectly render the previous
data.
This change stops the polling while the upgrading or cancelling.
* Infinite scroll: exclude visible range from new requests
* Infinite scroll: revert skipping 1 millisecond on new requests
* Formatting
* Logs models: filter exact duplicates in the response
* mergeDataSeries: do not mutate currentData
* runMoreLogsQueries: return queryResponse while loading
* Infinite scrolling: use special refId for infinite scrolling queries
* Remove log
* Update public/app/features/logs/logsModel.ts
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* combinePanelData: refactor and add unit test
* logsModel: export infinite scroll refid
* Formatting
* logsModel: add deduplication unit test
* Formatting
* findMatchingRow: add unit test
* Fix test title
* Fix imports order
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Wip: get rod of panel edit route
* Cleanup unused code
* Test update
* Simplify url sync for inspect and vie/edit panel
* Update navigating back to dashboard from edit panel
* DashboardScene: Panel inspect improvements (#80655)
Improve inspect, andle view pane end edit mode inspection
* Url sync fixes
* Test update
* Update dependency react-virtualized-auto-sizer to v1.0.20
* Update dependency react-virtualized-auto-sizer to v1.0.20
* update types
* mock in a few more tests
* fix InspectDataTab test
* fix test
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Change ruler API to expect the folder UID as namespace
* Update example requests
* Fix tests
* Update swagger
* Modify FIle field in /api/prometheus/grafana/api/v1/rules
* Fix ruler export
* Modify folder in responses to be formatted as <parent UID>/<title>
* Add alerting test with nested folders
* Apply suggestion from code review
* Alerting: use folder UID instead of title in rule API (#77166)
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* Drop a few more latent uses of namespace_id
* move getNamespaceKey to models package
* switch GetAlertRulesForScheduling to use folder table
* update GetAlertRulesForScheduling to return folder titles in format `parent_uid/title`.
* fi tests
* add tests for GetAlertRulesForScheduling when parent uid
* fix integration tests after merge
* fix test after merge
* change format of the namespace to JSON array
this is needed for forward compatibility, when we migrate to full paths
* update EF code to decode nested folder
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Chore: refactor some styles in explore to use the object syntax
* refactor LiveLogs styles to use object syntax
* Revert "refactor LiveLogs styles to use object syntax"
This reverts commit 293aa2589f.
* Use last used datasource or default datasource when starting a trail
* Use tabs and move actions bar to same line when possible
* Added overview tab with description, type and labels
* Clickable labels in overview tab
* Show label value counts next to the label name
* Fix action bar zIndex
* Address PR comments
* Refactor
* Refactor getLabelOptions to utils
* Reuse language provider from state
* betterer
* testing some refactors
* Remove unreachable code
* Refactor GROUP_BY var to MetricScene
* Fix url by excluding var-groupby
* Fix conflicts
* Use <Text/> instead of custom styles
* Simplify setting overview as default tab
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Make dashboard data source query actually use DashboardDataSource
* remove commented out bit
* Always wrap SceneQueryRunner with SceneDataTransformer
* Update Dashboard model compat wrapper tests
* DashboardQueryEditor test
* VizPanelManager tests update
* transform save model to scene tests update
* Betterer
* PanelMenuBehavior test update
* Few more bits
* Prettier
* Show transformations when editing scene dashboard
* remove and edit transformations works
* add add and remove buttons
* Change styles to object to fix betterer issue
* Revert "Change styles to object to fix betterer issue"
This reverts commit 8627b9162c.
* Fix the correct file...
* Some refactoring
* remove unneessary if statement
* panel data not present on first render
* move transformation tabs out of folder
* fix tests
* add lint exception
* refactor tab component
* Fix merge issue
* reorder components
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* refactor: data trails auto query for buckets
* refactor: vizBuilder function signature (#80178)
* fix: use closures for setting unit and title in vizBuilders
grafana's metrics exporter does not provide a metric called
"http_request_total"; fix the dashboard to use the actually existing
"grafana_http_request_duration_seconds_count"
* Divider: Remove core component and replace with grafana/ui components
* Update gap
* Bump experimental in tempo
---------
Co-authored-by: Fabrizio <fabrizio.casati@grafana.com>
* Make dashboard data source query actually use DashboardDataSource
* remove commented out bit
* Always wrap SceneQueryRunner with SceneDataTransformer
* Update Dashboard model compat wrapper tests
* DashboardQueryEditor test
* VizPanelManager tests update
* transform save model to scene tests update
* Betterer
* PanelMenuBehavior test update
* Few more bits
* Prettier
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* WIP
* WIP: disable some actions when is autogenerated policy
* WIP
* Wip: add checks for group by in auto-generated policy
* Make autogenerated policy readOnly and enable Readonly modal for it
* Use real check for autogenerated root
* Fix test
* Refactor: rename consts
* Add test for policy form being read only
* Add tests
* Update some code comments
* Fix Switch component not being styled as disabled
* Rename isAutogeneratedChunkOpen property to isBranchOpen and fix test
* Revert fix for Switch as it has moved to another separate PR
* Split Policy component in smaller sub components
* use useAlertmanagerAbility form for checking autogenerated tree visibility and fix container for autogenerated policy being rendered when it's not supported
* Update useAbilities test and dont use toAbility for ViewAutogeneratedPolicyTree
* Fix Policy being unmounted every 10 secs and move the collapsed/expanded state to each Policy component
* remove permissions from createDropdownMenuActions method parameters and convert the method to a hook
* Revert using PolicyItem
* Add test for createDropdownMenuActions
* Revert having a read only view form for the policy
* Remove readonly from default policy form
* Only show collapsible when node has children
* Split DefaultPolicyIndicator
* use hidehideCurrentPolicy instead of showCurrentPolicy
* Address some review suggestions
* first commit
* add: pagination to anondevices
* fmt
* swagger and tests
* swagger
* testing out test
* fixing tests
* made it possible to query for from and to time
* refactor: change to query for ip adress instead
* fix: tests
* Jaeger: Add service dependency graph support
Add support for visualizing Jaeger's service dependency graph via the
Jaeger data source. Per the discussion[1], this is done by proxying the
internal Jaeger HTTP API endpoint used by Jaeger's own UI for fetching
graph data, and transforming it into a format suitable for the node
graph panel in Grafana.
---
[1] https://github.com/grafana/grafana/discussions/52035
* Small lint fixes
* Type fix
---------
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* separate nestedFolderPickerOverride toggle to force enable it without nestedFolders
* let's call it newFolderPicker
* update unit tests and keyboard handling
* reduce spacing when no folder open chevron
---------
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
* start shared with me frontend tweaks
* prevent linking to sharedwithme folder
* tests
* make divider take up 0 height
* Prevent sharedwithme from being selected
* test
git push
* pr feedback
* prevent setting url for sharedwithme
* split iconForItem/kind functions
* Hide sharedwithme in nested folder picker
* fix test fixture
* only set the menu docked in state if the window size is big enough
* adjust sizes
* remove top border on dockedMegaMenu
* another css tweak
* use xxl consistently
* CONSISTENTLY
* ok maybe not
* Fix firing alerts title when showing active alerts in Insights panel
* Update red to green and change the component name to Active.tsx instead of Firing.tsx
* Explore: propose action, thunk, and decorators for load more
* LogsContainer: add loadMore method
* Query: remove unused var
* Loading more: use navigation to simulate scrolling
* Explore: figure out data combination
* Fix imports
* Explore: deduplicate results when using query splitting
* LogsNavigation: add scroll behavior
* Remove old code
* Scroll: adjust delta value
* Load more: remove refIds from signature
We can resolve them inside Explore state
* Load more: rename to loadMoreLogs
* Infinite scrolling: use scrollElement to listen to scrolling events
* Explore logs: add fixed height to scrollable logs container
* Logs: make logs container the scrolling element
* Logs: remove dynamic logs container size
It works very well with 1 query, but breaks with more than 1 query or when Logs is not the last rendered panel
* Logs navigation: revert changes
* Infinite scroll: create component
* Infinite scroll: refactor and clean up effect
* Infinite scroll: support oldest first scrolling direction
* Infinite scroll: support loading oldest logs in ascending and descending order
* Infinite scroll: use scroll to top from logs navigation
* Logs: make logs container smaller
* Logs: make container smaller
* State: integrate explore's loading states
* Infinite scroll: add loading to effect dependency array
* Infinite scroll: display message when scroll limit is reached
* Infinite scroll: add support to scroll in both directions
* Infinite scroll: capture wheel events for top scroll
* scrollableLogsContainer: deprecate in favor of logsInfiniteScrolling
* Infinite scroll: implement timerange limits
* Infinite scroll: pass timezone
* Fix unused variables and imports
* Infinite scroll: implement timerange limits for absolute time
* Infinite scroll: fix timerange limits for absolute and relative times
* Infinite scroll: reset out-of-bounds message
* Logs: make container taller
* Line limit: use "displayed" instead of "returned" for infinite scrolling
* Infinite scrolling: disable behavior when there is no scroll
* Remove console log
* Infinite scroll: hide limit reached message when using relative time
* Logs: migrate styles to object notation
* Prettier formatting
* LogsModel: fix import order
* Update betterer.results
* Logs: remove exploreScrollableLogsContainer test
* Infinite scroll: display loader
* Infinite scroll: improve wheel handling
* Explore: unify correlations code
* Explore: move new function to helpers
* Remove comment
* Fix imports
* Formatting
* Query: add missing awaits in unit test
* Logs model: add unit test
* Combine frames: move code to feature/logs
* Explore: move getCorrelations call back to query
It was causing a weird test failure
* Fix imports
* Infinite scroll: parametrize scrolling threshold
* Logs: fix overflow css
* Infinite scroll: add basic unit test
* Infinite scroll: add unit test for absolute time ranges
* Formatting
* Explore query: add custom interaction for scrolling
* Query: move correlations before update time
* Fix import in test
* Update comment
* Remove comment
* Remove comment
* Infinite scroll: report interactions from component
* Fix import order
* Rename action
* Infinite scroll: update limit reached message
* Explore logs: remove type assertion
* Update betterer
"Release: Updated versions in package to 10.4.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* Dashboard model compat wrapper update
* Handle changing data source type to and from Dashboard data source
* VizPanelManager tests
* Betterer
* DashboardModelCompatibilityWrapper tests
* Review: test updates
* Test updates
* Test fix
* Move the complexity of the dashboard data source edit directly to the ShareQueryDataProvider
* Make sure deactivation handler ain't called multiple times
* Make sure compat panel compat wrapper return queries for shared runner with transformations
* Betterer
* VizPanelManager: Remove data object subscription
* Remove unnecesary code
* Fix group filter
* Fix Warning: Receivedfor a non-boolean attribute
* remove defaultQueryString.length > 3 from the logic to check if input is invalid
* Add interactive mode to the Badge component
* Add expression errors as Alert components instead of badges
* Revert "Add interactive mode to the Badge component"
This reverts commit 9558743fc7.
* Update dependency @cypress/webpack-preprocessor to v6.0.1
* fix type errors
* restore old checksum for scenes
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Update alert rule model in FE following BE design doc
* Remove unnecessary conditional rendering
* Update styles for optional route settings: add indentation
* Update test
* Add validation for grouBy to include grafana_folder and alertname
* Split conversions between FEdataModel/ DTO, in separate functions
* Update texts following Brenda's suggestions
* Update text
This PR has two steps that together create a functional dry-run capability for the migration.
By enabling the feature flag alertingPreviewUpgrade when on legacy alerting it will:
a. Allow all Grafana Alerting background services except for the scheduler to start (multiorg alertmanager, state manager, routes, …).
b. Allow the UI to show Grafana Alerting pages alongside legacy ones (with appropriate in-app warnings that UA is not actually running).
c. Show a new “Alerting Upgrade” page and register associated /api/v1/upgrade endpoints that will allow the user to upgrade their organization live without restart and present a summary of the upgrade in a table.