Commit Graph

111 Commits

Author SHA1 Message Date
Daniel Lee
71630e4a7b
Merge pull request #12856 from grafana/12855-team-members-delete-button
Delete button for team members page
2018-08-10 13:46:13 +02:00
Patrick O'Carroll
f339b3502a replaced confirm delete modal with deleteButton component in teams members list 2018-08-09 12:56:55 +02:00
David Kaltschmidt
128a5d98e1 Explore: expand recording rules for queries
- load recording rules from prometheus
- map rule name to rule query
- query hint to detect recording rules in query
- click on hint fix expands rule name to query
2018-08-08 16:56:21 +02:00
David
c1b9bbc2cf Explore: Query hints for prometheus (#12833)
* Explore: Query hints for prometheus

- time series are analyzed on response
- hints are shown per query
- some hints have fixes
- fix rendered as link after hint
- click on fix executes the fix action

* Added tests for determineQueryHints()

* Fix index for rate hints in explore
2018-08-08 17:50:30 +03:00
David Kaltschmidt
2961c3b3b9 Review feedback
- use color variables for cascader styles
- fix Table value type
2018-08-07 17:42:00 +02:00
David Kaltschmidt
642374de25 Explore: Metrics chooser for prometheus
- load all histogrammable metrics on start, based on `{le!=''}` series
  query
- select dropdown shows all those metrics as well as histograms in a
  special group
- select a metric will write fill the metric in the query box
- if a histogram is chosen, it will write a complete
  `histogram_quantile` query
- added new dependency: rc-cascader
2018-08-07 13:43:32 +02:00
David Kaltschmidt
307248f713 Add clear row button
- clears the content of a query row
2018-08-07 13:43:32 +02:00
David Kaltschmidt
00f04f4ea0 Add clear button to Explore
- Clear All button to clear all queries and results
- moved result viewer buttons below query rows to make it more clear
  that they govern result options
2018-08-07 13:42:32 +02:00
David Kaltschmidt
f1c1633d15 Explore: show message if queries did not return data
- every result viewer displays a message that it received an empty data
  set
2018-08-07 13:03:33 +02:00
David
0f94d2f5f1 Fix closing parens completion for prometheus queries in Explore (#12810)
- position was determined by SPACE, but Prometheus selectors can
  contain spaces
- added negative lookahead to check if space is outside a selector
- moved braces plugin into PromQueryField since braces are prom specific
2018-08-07 13:34:12 +03:00
David Kaltschmidt
cda3b01781 Reversed history direction for explore
- _.reverse() was modifying state.history
2018-08-06 14:45:03 +02:00
David Kaltschmidt
eaff7b0f68 Explore: Add history to query fields
- queries are saved to localstorage history array
- one history per datasource type (plugin ID)
- 100 items kept with timestamps
- history suggestions can be pulled up with Ctrl-SPACE
2018-08-06 14:45:03 +02:00
David
5da3584dd4 Explore: facetting for label completion (#12786)
* Explore: facetting for label completion

- unified metric and non-metric label completion
- label keys and values are now fetched fresh for each valid selector
- complete selector means only values are suggested that are supported
  by the selector
- properly implemented metric lookup for selectors (until the first
  metric was used which breaks when multiple metrics are present)
- typeahead tests now need a valid selection to demark the cursor

* Fix facetting queries for empty selector
2018-08-06 15:36:02 +03:00
David Kaltschmidt
c900a30106 renamed slate unit tests to .jest.ts 2018-08-03 13:09:05 +02:00
David
bda49fcaa2 Add click on explore table cell to add filter to query (#12729)
* Add click on explore table cell to add filter to query

- move query state from query row to explore container to be able to set
  modified queries
- added TS interface for columns in table model
- plumbing from table cell click to datasource
- add modifyQuery to prometheus datasource
- implement addFilter as addLabelToQuery with tests

* Review feedback

- using airbnb style for Cell declaration
- fixed addLabelToQuery for complex label values
2018-08-03 11:20:13 +03:00
Patrick O'Carroll
971e52ecc9 removed unused class from the deletebutton pr 2018-07-27 13:48:14 +02:00
Marcus Efraimsson
0550ec6de1
Merge pull request #12665 from grafana/9863-animated-delete-button
built a component for delete button in tables
2018-07-27 12:37:53 +02:00
David
7699451d94 Refactor Explore query field (#12643)
* Refactor Explore query field

- extract typeahead field that only contains logic for the typeahead
  mechanics
- renamed QueryField to PromQueryField, a wrapper around TypeaheadField
  that deals with Prometheus-specific concepts
- PromQueryField creates a promql typeahead by providing the handlers
  for producing suggestions, and for applying suggestions
- The `refresher` promise is needed to trigger a render once an async
  action in the wrapper returns.

This is prep work for a composable query field to be used by Explore, as
well as editors in datasource plugins.

* Added typeahead handling tests

- extracted context-to-suggestion logic to make it testable
- kept DOM-dependent parts in main onTypeahead funtion

* simplified error handling in explore query field

* Refactor query suggestions

- use monaco's suggestion types (roughly), see
  https://github.com/Microsoft/monaco-editor/blob/f6fb545/monaco.d.ts#L4208
- suggest functions and metrics in empty field (ctrl+space)
- copy and expand prometheus function docs from prometheus datasource
  (will be migrated back to the datasource in the future)

* Added prop and state types, removed unused cwrp

* Split up suggestion processing for code readability
2018-07-26 15:04:12 +03:00
Patrick O'Carroll
f4ab432542 added position absolute and some flexbox so I could remov changes in display and setTimeout, added tests and types, did some renaming 2018-07-25 10:29:55 +02:00
David Kaltschmidt
3297ae462d Datasource for Grafana logging platform
- new builtin datasource plugin "Logging" (likely going to be renamed)
- plugin implements no panel ctrls yet, only ships datasource
- new models for logging data as first class citizen (aside from table
  and time_series model)
- Logs as new view for Explore
- JSON view for development

Testable only against existing logish deployment.
Then test with queries like `{job="..."} regexp`.
2018-07-20 17:07:17 +02:00
Patrick O'Carroll
b8a4b7771a removed import appEvents 2018-07-20 11:09:24 +02:00
Patrick O'Carroll
0b421004ea built a component for delete button in tables, instead of using a modal to confirm it now does it in the row of the table, created a sass file for the component, the component uses css transitions for animation 2018-07-20 09:59:04 +02:00
David Kaltschmidt
3ab5ab3674 Fix label suggestions in Explore query field
- In 0425b477 the labels suggestions were refactored and a typo broke
  the look up for available lables of a metric
2018-07-18 13:20:18 +02:00
David
21e5d61de6
Merge pull request #12631 from grafana/davkal/explore-url-encoding
Use url params for explore state
2018-07-17 16:49:13 +02:00
David
5c6adbbada
Merge pull request #12630 from grafana/davkal/explore-empty-error
Dont parse empty explore state from url
2018-07-17 16:48:23 +02:00
David Kaltschmidt
02427ef88d Explore: calculate query interval based on available width
- classic dashboard panels inject a dynamic query interval as part of
  the query options. Explore did not have that.
- this PR adds the interval calculation to Explore
- interval based on Explore container's width
- ensure min interval if set in datasource
2018-07-17 15:13:44 +02:00
David Kaltschmidt
c6e9ffb168 Use url params for explore state
- putting state in the path components led to 400 on reload
- use `/explore?state=JSON` instead
2018-07-17 12:56:05 +02:00
David Kaltschmidt
f67b27e009 Dont parse empty explore state from url
- only parse url state if there is any
- prevents parse exception in the console on empty explore state
2018-07-17 12:24:04 +02:00
David Kaltschmidt
390090da05 Set datasource in deep links to Explore 2018-07-13 09:45:56 +02:00
David Kaltschmidt
d06b26de26 Explore Datasource selector
Adds a datasource selector to the Explore UI. Only datasource plugins
that have `explore: true` in their `plugin.json` can be selected.

- adds datasource selector (based on react-select) to explore UI
- adds getExploreSources to datasource service
- new `explore` flag in datasource plugins model
- Prometheus plugin enabled explore
2018-07-13 09:09:36 +02:00
Torkel Ödegaard
c03764ff8a
Refactor team pages to react & design change (#12574)
* Rewriting team pages in react

* teams to react progress

* teams: getting team by id returns same DTO as search, needed for AvatarUrl

* teams: progress on new team pages

* fix: team test

* listing team members and removing team members now works

* teams: team member page now works

* ux: fixed adding team member issue

* refactoring TeamPicker to conform to react coding styles better

* teams: very close to being done with team page rewrite

* minor style tweak

* ux: polish to team pages

* feature: team pages in react & everything working

* fix: removed flickering when changing tabs by always rendering PageHeader
2018-07-11 11:23:07 -07:00
David Kaltschmidt
a9e1e5f346 Fix queryfield wrapper css 2018-06-14 16:20:48 +01:00
David Kaltschmidt
bbe6ab5096 Fix Queryfield metrics field missing 2018-06-14 16:20:33 +01:00
David Kaltschmidt
b2f497b100 batch DOM reads from query field typeahead 2018-06-14 16:20:21 +01:00
David Kaltschmidt
73ddf2c3ed hint support for typeahead 2018-06-14 16:20:09 +01:00
David Kaltschmidt
2ebda4bf4d Make suggestions an object 2018-06-14 16:19:55 +01:00
David Kaltschmidt
4113f7db47 Trigger typeahead on Ctrl-Space 2018-06-14 16:19:43 +01:00
David Kaltschmidt
0425b47791 refactor Explore query field 2018-06-14 16:19:29 +01:00
David Kaltschmidt
f5e351af8b Explore split view
* button to bring a up a duplicate explore area to compare
* side by side rendering of two explore components
* right component has close button
* left component has page title
2018-05-24 10:55:01 +02:00
David Kaltschmidt
23c9da6162 Fixed custom dates for react timepicker
* added jest tests for timepicker component
2018-05-24 10:55:01 +02:00
David Kaltschmidt
eadaff6191 Explore: Design integration
* style header like other grafana components
* use panel container for graph and same styles for query field
* fix typeahead CSS selector (was created outside of .explore)
* use navbar buttons for +/- of rows
* moved elapsed time under run query button
* fix JS error on multiple timeseries being returned
* fix color for graph lines
* show prometheus query errors
2018-05-24 10:55:00 +02:00
David Kaltschmidt
0d3f24ce54 Explore: time selector
* time selector for explore section
* mostly ported the angular time selector, but left out the timepicker
 (3rd-party angular component)
* can be initialised via url parameters (jump from panels to explore)
* refreshing not implemented for now
* moved the forward/backward nav buttons around the time selector
2018-05-24 10:55:00 +02:00
David Kaltschmidt
8a53ec610b Fix url encoding, expand template vars, fix TS hacks
* moved datasource related functions to panel sub-class
* expand panel template vars for url
* added keybindings for x -> Explore
* url encoding for explore state
2018-04-30 17:44:30 +02:00
David Kaltschmidt
05b0bfafe4 Explore: Add entry to panel menu to jump to Explore
* panel container menu gets new Explore entry (between Edit and Share)
* entry only shows if datasource has `supportsExplore` set to true (set
 for Prometheus only for now)
* click on Explore entry changes url to `/explore/state` via location provider
* `state` is a JSON representation of the panel queries
* datasources implement `getExploreState()` how to turn a panel config into explore initial
 state
* Explore can parse the state and initialize its query expressions
* ReactContainer now forwards route parameters as props to component
* `pluginlist` and `singlestat` panel subclasses needed to be adapted because
 `panel_ctrl` now has the location provider as a property already
2018-04-30 17:44:28 +02:00
David Kaltschmidt
949e3d29e8 Explore: add support for multiple queries
* adds +/- buttons to query rows in the Explore section
* on Run Query all query expressions are submitted
* `generateQueryKey` and `ensureQueries` are helpers to ensure each
 query field has a unique key for react.
2018-04-27 15:42:35 +02:00
David Kaltschmidt
d338b7ea7b Import and typescript fixups 2018-04-27 11:49:11 +02:00
David Kaltschmidt
f1220fd2a4 Explore WIP 2018-04-26 20:27:19 +02:00
David Kaltschmidt
0695e431ea Move function calls w/ side-effects to componentDidMount
* loadStore() modified the url which triggered a new render path, this
gets noticed by react. Moved to componentDidMount.
2018-04-24 12:07:24 +02:00
David Kaltschmidt
cc5d7002b0 Add weback-dev-server with hot/hmr support
* adds `npm start` / `yarn start` script
* starts a webpack-dev-server using the dev config, served on :3333
* hot reloading (HMR) for react/styles, not working for angular code
* new entry `dev.ts` for dynamic imports of CSS theme (ExtractText does
not work with HMR)
* TS loader pipeline moved out of common to add HMR for react
* applied `hot()` to some react containers (that's their new default
 export, named exports remains for testing)
* added sections to README
* updated yarn.lock
2018-04-19 11:42:53 +02:00
Patrick O'Carroll
99626b8e07 added save icon to save buttons 2018-03-22 17:04:00 +01:00