Commit Graph

184 Commits

Author SHA1 Message Date
Hugo Häggmark
d5a35f3631
Explore: Fixes zoom exception in Loki/Graph (#16991)
Fixes: #16986
2019-05-10 12:10:32 +02:00
Marcus Efraimsson
02cb7ff436
Explore: Support user timezone (#16469)
Explore now uses the timezone of the user to decide if local browser 
time or UTC should be used. 
- Now uses TimeRange instead of RawTimeRange in explore item
state tree and only parsing actual time in a few action
handlers.
- Time picker should now properly handle moving back/forward and
apply time range when both utc and non utc time zone.
- URL range representation is changed from YYYY-MM-DD HH:mm:ss
to epoch ms.
- Now uses AbsoluteTimeRange in graph component instead of moment.
- Makes a copy of the time range passed to timeSrv to make sure immutability
of explore time range when for example elasticsearch test datasources uses
timeSrv and sets a time range of last 1 min.
- Various refactorings and cleanup.

Closes #12812
2019-04-29 18:28:41 +02:00
Johannes Schill
406ef962fc Explore & Dashboard: New Refresh picker (#16505)
* Added RefreshButton

* Added RefreshSelect

* Added RefreshSelectButton

* Added RefreshPicker

* Removed the magic string Paused

* Minor style changes and using Off instead of Pause

* Added HeadlessSelect

* Added HeadlessSelect story

* Added SelectButton

* Removed RefreshSelectButton

* Added TimePicker and moved ClickOutsideWrapper to ui/components

* Added TimePickerPopOver

* Added react-calendar

* Missed yarn lock file

* Added inputs to popover

* Added TimePicker and RefreshPicker to DashNav

* Moved TimePicker and RefreshPicker to app/core

* Added react-calendar to app and removed from ui/components

* Fixed PopOver onClick

* Moved everything back to ui components because of typings problems

* Exporing RefreshPicker and TimePicker

* Added Apply and inputs

* Added typings

* Added TimePickerInput and logic

* Fixed parsing of string to Moments

* Fixed range string

* Styling and connecting the calendars and inputs

* Changed Calendar styling

* Added backward forward and zoom

* Fixed responsive styles

* Moved TimePicker and RefreshPicker into app core

* Renamed menuIsOpen to isOpen

* Changed from className={} to className=""

* Moved Popover to TimePickerOptionGroup

* Renamed all PopOver to Popover

* Renamed popOver to popover and some minor refactorings

* Renamed files with git mv

* Added ButtonSelect and refactored RefreshPicker

* Refactored TimePicker to use new ButtonSelect

* Removed HeadlessSelect as suggested

* fix: Fix typings and misc errors after rebase

* wip: Enable time picker on dashboard and add tooltip

* Merge branch 'master' into hugoh/new-timepicker-and-unified-component

# Conflicts:
#	packages/grafana-ui/package.json
#	packages/grafana-ui/src/components/Input/Input.test.tsx
#	packages/grafana-ui/src/components/Input/Input.tsx
#	packages/grafana-ui/src/utils/validate.ts
#	public/app/features/dashboard/panel_editor/QueryOptions.tsx
#	yarn.lock

* fix: Snapshot update

* Move TimePicker default options into the TimePicker as statics, pass the tooltipContent down the line when wanted and wrap the button in a tooltip element

* fix: Override internal state prop if we provide one in a prop

* Updated snapshots

* Let dashnav control refreshPicker state

* feat: Add a stringToMs function

* wip: RefreshPicker

* wip: Move RefreshPicker to @grafana/ui

* wip: Move TimePicker to @grafana/ui

* wip: Remove comments

* wip: Add refreshPicker to explore

* wip: Use default intervals if the prop is missing

* wip: Nicer way of setting defaults

* fix: Control the select component

* wip: Add onMoveForward/onMoveBack

* Remove code related to the new time picker and refresh picker from dashnav

* Fix: Typings after merge

* chore: Minor fix after merge

* chore: Remove _.map usage

* chore: Moved refresh-picker logic out of the refresh picker since it will work a little differently in explore and dashboards until we have replaced the TimeSrv

* feat: Add an Interval component to @grafana/ui

* chore: Remove intervalId from redux state and move setInterval logic from ExploreToolbar to its own Interval component

* feat: Add refreshInterval to Explore's URL state

* feat: Pick up refreshInterval from url on page load

* fix: Set default refreshInterval when no value can be retained from URL

* fix: Update test initial state with refreshInterval

* fix: Handle URLs before RefreshPicker

* fix: Move RefreshInterval to url position 3 since the segments can take multiple positions

* fix: A better way of detecting urls without RefreshInterval in Explore

* chore: Some Explore typings

* fix: Attach refresh picker to interval picker

* chore: Sass fix for refresh button border radius

* fix: Remove refreshInterval from URL

* fix: Intervals now start when previous interval is finished

* fix: Use clearTimeout instead of clearInterval

* fix: Make sure there's a delay set before adding a timeout when we have slow explore queries

* wip: Add refresh picker to dashboard

* feat: Add util for removing keys with empty values

* feat: RefreshPicker in dashboards and tmp rem out old RefreshPicker

* fix: Remove the jumpy:ness in the refreshpicker

* Changed placement and made it hide when your in dashboard settings

* chore: Move logic related to refresh picker out of DashNav to its own component

* feat: Add tooltip to refreshpicker

* fix: Fix bug with refreshpicker not updating when setting to 'off'

* fix: Make it possible to override refresh intervals using the dashboard intervals

* chore: Change name of Interval to SetInterval to align with ecmascripts naming since its basically the same but declarative and async

* fix: Use default intervals when auto refresh is empty in dashboard settings

* fix: Hide time/interval picker when hidden is true on the model, such as on the home dashboard

* fix: Interval picker will have to handle location changes since timeSrv wont

* RefreshPicker: Refactoring refresh picker

* RefreshPicker: minor refactoring
2019-04-16 09:15:23 +02:00
Hugo Häggmark
7eabc282e9
Chore: Adds typings to lodash (#16590) 2019-04-15 12:11:52 +02:00
Hugo Häggmark
988b7c4dc3
Feat: Adds reconnect for failing datasource in Explore (#16226)
* Style: made outlined buttons and used it in Alert component

* Refactor: clean up state on load data source failure

* Refactor: test data source thunk created

* Refactor: move logic to changeDatasource and call that from intialize

* Refactor: move load explore datasources to own thunk

* Refactor: move logic to updateDatasourceInstanceAction

* Tests: reducer tests

* Test(Explore): Added tests and made thunkTester async

* Fix(Explore): Fixed so that we do not render StartPage if there is no StartPage

* Fix(Explore): Missed type in merge

* Refactor: Thunktester did not fail tests on async failures and prevented queires from running on datasource failures

* Feat: Fadein error alert to prevent flickering

* Feat: Refresh labels after reconnect

* Refactor: Move useLokiForceLabels into useLokiLabels from PR comments

* Feat: adds refresh metrics to Prometheus languageprovider

* Style: removes padding for connected datasources

* Chore: remove implicit anys
2019-04-01 07:38:00 +02:00
Dominik Prokop
9fd824960f
Feature: added actionable message in Explore when no datasource configured (#16252) 2019-03-28 17:17:01 +01:00
Hugo Häggmark
eedbc485dd
Makes it possible to navigate back/forward with browser buttons in Explore (#16150)
Make it possible to navigate back/forward with browser buttons in Explore
2019-03-22 15:24:30 +01:00
Dominik Prokop
88a46e6dd4 Bump Prettier version (#15532)
* Fix prettier version to 1.16.4
2019-02-19 15:41:35 +01:00
Torkel Ödegaard
b780b6377a Fixed missing time axis on graph due to width not being passed 2019-02-11 11:17:23 +01:00
Torkel Ödegaard
df17f7dc45 fixed explore width-0 issue, fixes #15304 2019-02-07 18:20:16 +01:00
Johannes Schill
f5431f5210 chore: Explore: Remove inner AutoSizer, spread the size-object to width/height, change height type to number 2019-02-05 14:42:18 +01:00
Torkel Ödegaard
bfdfb215f3 added missing typing to explore props 2019-02-05 09:32:42 +01:00
Hugo Häggmark
a0c4837eb5 Merge with master 2019-02-04 15:06:01 +01:00
Torkel Ödegaard
b58a3c939c
Merge pull request #15194 from grafana/explore/url
Explore - UI panels state persistance in url
2019-02-04 14:10:50 +01:00
Hugo Häggmark
96aef3bab8 Replaced intialQueris with queryKeys 2019-02-04 13:41:29 +01:00
Hugo Häggmark
5e2b9e40a2 Added more typings 2019-02-04 11:25:07 +01:00
Hugo Häggmark
1f5bb76718 Refactor of action, actionTypes and reducer 2019-02-04 07:50:17 +01:00
Torkel Ödegaard
740e1a0540 Made really good progress on loki support in dashboards 2019-02-01 13:30:15 +01:00
Dominik Prokop
6ab9355146 Restoring explore panels state from URL 2019-02-01 12:33:15 +01:00
Torkel Ödegaard
a1a905cbb1 Removed the initial data source as I could not see it being used anywhere 2019-01-28 16:31:38 +01:00
Hugo Häggmark
1e6d50df7a Made ExplorerToolbar connected and refactored away responsabilities from Explore 2019-01-28 12:47:01 +01:00
Hugo Häggmark
d2a5477654 Fixed small issue with TimePicker dropdown position 2019-01-28 12:47:01 +01:00
Hugo Häggmark
1aefc4cc2d Refactored out ExploreToolbar from Explore 2019-01-28 12:47:01 +01:00
Hugo Häggmark
11944adc9c fix: Hack for getting the same height in splitted view, view could use refactor IMHO #14853 2019-01-18 12:03:16 +01:00
Torkel Ödegaard
ecab597e5e renaming DataSource type to DataSourceSettings and moved to grafana ui 2019-01-17 18:51:07 +01:00
Torkel Ödegaard
febb9e7168 Moved data source and data query types 2019-01-17 17:59:47 +01:00
David Kaltschmidt
6ff15039a9 File organization, action naming, comments
- moved ActionTypes to `./state/actionTypes`
- renamed click-related actions
- added comments to actions and state types
- prefixed Explore actions with `explore/`
- fixed query override issue when row was added
2019-01-15 20:04:05 +01:00
David Kaltschmidt
546a3a9d98 Connect Explore child components to store 2019-01-15 20:04:01 +01:00
David Kaltschmidt
607f7c25de Update comments 2019-01-15 20:03:59 +01:00
David Kaltschmidt
f02f41c9b0 Move types to types/explore 2019-01-15 20:03:57 +01:00
David Kaltschmidt
be172d3e4a Save state in URL and fix tests 2019-01-15 20:03:55 +01:00
David Kaltschmidt
68c039b289 Allow multiple Explore items for split 2019-01-15 20:03:53 +01:00
David Kaltschmidt
2be2deddb8 WIP Explore redux migration 2019-01-15 20:03:51 +01:00
Dominik Prokop
96be5fe8a3 Remove the jump effect on run query button
Caused by the return and loading spinner icons having different widths. Used fa-fw helper class to ensure fixed width on icons. Also, made the spacing between icon and button label slightly smaller, as the rotated level-down icon used as return icon has significantly smaller width compared to the loading spinner and it looked oddly far from the label as compared to timepicker's icon
2019-01-07 15:26:43 +01:00
David Kaltschmidt
757d6f322e s/initialDatasourceId/initialDatasource/ 2019-01-02 11:32:12 +00:00
David Kaltschmidt
67ebdcbcc3 Explore: Remember last use datasource
- use local storage to store last used database
- renamed `datasourceName` property to `initialDatasourceId` for consistency
- adapted tests
2018-12-31 18:30:32 +00:00
Torkel Ödegaard
a02b4b47b6 Moving a couple of types to @grafana/ui 2018-12-23 09:15:32 +01:00
Torkel Ödegaard
6542bfb83e Merge branch 'fix-misspell-issues' of https://github.com/mjtrangoni/grafana into mjtrangoni-fix-misspell-issues 2018-12-19 11:21:34 +01:00
Erik Sundell
ad3d36e6b7 Make sure panel id is unique since some datasources (Graphite) will cancel ongoing requests with the same panel id 2018-12-18 09:44:51 +01:00
Torkel Ödegaard
72b9cb9b9f Switched to react-select fork 2018-12-16 09:58:37 +01:00
Torkel Ödegaard
ae76ddcc3b explore using data source picker 2018-12-14 14:05:47 +01:00
Torkel Ödegaard
24825dc899 renamed folder to select 2018-12-14 12:59:45 +01:00
Torkel Ödegaard
f9110f7902 Merge branch 'master' into develop 2018-12-11 10:00:29 +01:00
Torkel Ödegaard
7e0bc8f30d fixed max height issue not being respected by react select dropdown 2018-12-10 12:02:27 +01:00
David Kaltschmidt
1bcc866341 Explore: Hide scanning again after result was found
- when query result was found, stop scanning
- this hides the scan status again
2018-12-09 11:42:35 +01:00
Torkel Ödegaard
79933299c7 Merge branch 'develop' of github.com:grafana/grafana into develop 2018-12-07 15:09:09 +01:00
Torkel Ödegaard
eb6d0e9f51 Merge branch 'master' into develop 2018-12-07 14:59:38 +01:00
Erik Sundell
569f5e8d5e remove result format. might add this later 2018-12-07 14:13:05 +01:00
Erik Sundell
68c2d2631e filter out build in datasources. add unit test 2018-12-07 14:11:40 +01:00
Daniel Lee
687cf013bd
Merge pull request #14385 from grafana/davkal/fix-explore-date-parsing
Explore: Parse initial dates
2018-12-07 14:10:36 +01:00
Torkel Ödegaard
ef08b9cd2b graphInterval needs to update after query execution, fixes #14364 2018-12-07 13:07:08 +01:00
David Kaltschmidt
a990b69baa Explore: Parse initial dates
- parse dates passed from URL
- keep everything local time for now
2018-12-07 12:41:47 +01:00
Erik Sundell
97180d5106 add scoped vars to query options 2018-12-07 10:28:51 +01:00
David Kaltschmidt
15eb3bb2f8 Explore: improve error handling 2018-12-06 16:47:36 +01:00
Mario Trangoni
ab9f65a4cf public/app/features/*: Fix some misspell issues 2018-12-05 13:08:00 +01:00
Torkel Ödegaard
5f8001689b explore data source selector fix 2018-12-05 10:22:26 +01:00
Torkel Ödegaard
180ca021b5 Merge branch 'master' into develop 2018-12-05 10:17:22 +01:00
David Kaltschmidt
6ee7459f22 Explore: Logging query live preview of matches
A logging query has a selector part and a regexp. The regexp matches are highlighted when results return.
This change adds live preview to matches when modifying the regexp in a search field.

- delegate retrieval of match query to datasource
- datasource returns search expressions to be used to highlight a live preview of matches
- logs row now takes preview highlights
- logs row renders preview highlights with dotted line to distinguish from query run matches (solid line)
- fix react-highlight-words version to ensure custom chunk matcher
- custom chunk matcher can now also take incomplete regexps, eg, `(level` without inifinte looping
- perf: debounce of live preview to 500ms
- perf: only top 100 rows get the live preview
- preview is only supported with one query row (multiple rows semantic makes this tricky: regexp for row n should only filter results for query n)
2018-12-04 15:47:51 +01:00
David
34b8c5bb61
Merge pull request #14278 from grafana/14272-scan-old-logs
only make it possible to scan for older logs if there is at least one…
2018-12-04 15:44:55 +01:00
Erik Sundell
9c8bd34787 remove all query empty related code. root cause of the problem was to fix hasNonEmptyQuery 2018-12-04 14:55:56 +01:00
Erik Sundell
4e591653bd Set query empty condition in render function. Also clear query transactions when no valid query is present 2018-12-04 13:26:26 +01:00
Erik Sundell
f8cef73b5b stop scanning when clear all button is clicked 2018-12-04 11:28:04 +01:00
Erik Sundell
2be92af456 Use origin meta 2018-12-04 11:13:16 +01:00
Erik Sundell
541a691aca only display scan button if there is at least one existing selector that returned an empty result 2018-12-04 11:00:21 +01:00
Erik Sundell
e21ca3f545 Revert commit 2018-12-03 17:17:57 +01:00
Erik Sundell
d9d84f45bc only make it possible to scan for older logs if there is at least one non failing selector 2018-12-03 16:58:46 +01:00
David
ba18b470a4
Merge pull request #14260 from grafana/davkal/fix-14258
Explore: Show logging errors from backend
2018-12-03 10:00:22 +01:00
David
fab2597650
Merge pull request #14259 from grafana/14237-prevent-table-crash
change obj order when merging so that correct format is being used
2018-11-30 16:37:50 +01:00
David Kaltschmidt
47468fca68 Explore: Show logging errors from backend
- Logging datasource sends error string directly in the message body
- allowing response body to be an error when query transaction failed
- added throw in case we ever encounter unhandled errors again (forces us to fix the issue)
2018-11-30 16:09:56 +01:00
Erik Sundell
12ba314e24 change obj order when merging so that correct format is being used 2018-11-30 15:58:01 +01:00
David Kaltschmidt
a513130493 Fixed typo in function name 2018-11-30 15:19:09 +01:00
Erik Sundell
be85944d84 add an error alert component that will be displayed when there was an error loading ds in explore 2018-11-30 13:51:49 +01:00
Erik Sundell
c40bfb8eda make sure target obj is not destructured so that angular copy of objected can be mutated 2018-11-30 12:49:05 +01:00
David Kaltschmidt
979f3f3e0c Review feedback
- fixed typo
- moved result calculation to explore utils
- use component keys instead of componentWillReceiveProps
- require logs to have and id, to as use as Logs component key
- render delay based on row count
2018-11-30 12:26:57 +01:00
Erik Sundell
3d45b5ba73 make getAll return array instead of object 2018-11-30 09:48:59 +01:00
Erik Sundell
df75fb0e6d remove obsolete test 2018-11-30 09:32:36 +01:00
David Kaltschmidt
ae26f7126f Explore: Logging render performance
- moved from grid to flexbox
- calculate Explore results only when query transactions change to prevent expensive re-renders
- split up rendering of graph and log data
- render log results in 2 stages
2018-11-29 17:30:11 +01:00
Erik Sundell
d1a2488392 pass data correctly to event handler 2018-11-29 14:20:15 +01:00
Erik Sundell
3162dda088 remove explore check - make it possible to load all datasources 2018-11-29 10:46:50 +01:00
Erik Sundell
6f85fa6b35 add new flag in order to be able to indicate whether the datasource has native support for tables 2018-11-28 15:06:22 +01:00
Erik Sundell
18abd987bb prevent explore from crashing when table is not present in response 2018-11-28 14:31:20 +01:00
David Kaltschmidt
c3b67f3a13 Explore: Logging label filtering
- adds a custom label renderer to Logs viewer in Explore
- labels are no longer treated as strings, they are passed as parsed objects to the log row
- label renderer supports onClick handler for an action
- renamed Explore's `onClickTableCell` to `onClickLabel` and wired up log label renderers
- reuse Prometheus `addLabelToSelector` to modify Logging queries via click on label
- added tests to `addLabelToSelector`, changed to include the surrounding `{}`
- use label render also for common labels in the controls panel
- logging meta data section has now a custom renderer that can render numbers, strings, and labels
- style adjustments
2018-11-28 14:20:10 +01:00
David Kaltschmidt
593cc38cfc Added stop scan button 2018-11-27 16:35:37 +01:00
David Kaltschmidt
4803b8f3c0 Explore: Scan for older logs
Sometimes log streams dont return any lines for the given range. Would be great to automate the search until some logs are found.

- Allow Explore to drive TimePicker via ref
- Show `Scan` link in Logs when there is no data
- Click on `Scan` sets Explore into scanning state
- While scanning, tell Timepicker to shift left
- TimePicker change triggers new queries with shifted time range
- Remember if query transaction was started via scan
- keep scanning until something was found
- Manual use of timepicker cancels scanning
2018-11-27 15:56:10 +01:00
Erik Sundell
626a94be46 remove time srv initialization 2018-11-27 14:51:03 +01:00
Erik Sundell
5e7d4beacf get intervals from explore function 2018-11-27 14:45:39 +01:00
Erik Sundell
b36db6ac04 unregister all query editor event listeners 2018-11-27 14:27:33 +01:00
Erik Sundell
c567d75320 temp remove until stackdriver implements explore 2018-11-27 14:22:39 +01:00
Erik Sundell
1998c08df5 use default range from time picker 2018-11-27 13:13:26 +01:00
Erik Sundell
109ff1a3e1 includes ranges correctly in the options object 2018-11-26 17:09:50 +01:00
Erik Sundell
ccddee4a4a add support for explore events 2018-11-23 15:12:20 +01:00
Erik Sundell
eaf9a0b39a initial commit 2018-11-22 18:22:15 +01:00
David Kaltschmidt
9e94d22401 Added comments 2018-11-22 12:00:41 +01:00
David Kaltschmidt
21ee85b1e2 Fix issue with deleting a query (empty string not updating) 2018-11-22 11:14:46 +01:00
David Kaltschmidt
331d419d4f Combine query functions 2018-11-21 17:21:13 +01:00
David Kaltschmidt
22987ee75f Renamed targets to queries 2018-11-21 16:28:30 +01:00
David Kaltschmidt
b3161bea5a Explore: Introduce DataQuery interface for query handling
- Queries in Explore have been string based
- This PR introduces the use of the DataQuery type to denote all queries handled in Explore
- Within Explore all handling of DataQueries is transparent
- Modifying DataQueries is left to the datasource
- Using `target` as variable names for DataQueries to be consistent with the rest of Grafana
2018-11-21 14:45:57 +01:00
David Kaltschmidt
adb2430a1b Explore: collapsible result panels
- replace the Graph/Table buttons with toggle control in a wrapper panel
- moved toggle control to left to be close to the label
- removed panel styles from Logs and Graph viewer
- moved loader animation to panel
2018-11-16 18:21:13 +00:00
David
634d71a657
Merge pull request #14052 from grafana/davkal/explore-query-importer
Explore: POC for datasource query importers
2018-11-16 14:55:19 +00:00
David Kaltschmidt
411719bc70 Explore: POC for datasource query importers
Explore is about keeping context between datasources if possible. When
changing from metrics to logging, some of the filtering can be kept to
narrow down logging streams relevant to the metrics.

- adds `importQueries` function in language providers
- query import dependent on origin datasource
- implemented  prometheus-to-logging import: keeping label selectors
  that are common to both datasources
- added types
2018-11-16 13:52:58 +00:00