Commit Graph
74 Commits
Author SHA1 Message Date
David Kaltschmidt d5196ab322 remove internal influx ifql datasource 2018-06-14 20:42:33 +01:00
David Kaltschmidt 5ec7d60e5f Removed papaparse from external plugin exports 2018-06-14 13:22:16 +01:00
David Kaltschmidt eb686c06f2 Expose react and slate to external plugins
Experimental support for react in external plugins

- react
- slate (editor)
- papaparse (csv parsing)
- prismjs (syntax highlighting)

This is needed for new external datasource plugins like Flux
2018-06-14 12:32:57 +01:00
David Kaltschmidt ab76864e61 hot-fix ifql testdatasource() 2018-06-08 14:56:48 +02:00
David 82ae7c6eee Merge pull request #12167 from grafana/davkal/ifql-helpers
Query helpers, Annotations, and Template Variables for IFQL datasource
2018-06-07 10:24:21 +02:00
David Kaltschmidt cdba2bd184 Annotations support for ifql datasource 2018-06-06 16:11:40 +02:00
David Kaltschmidt 2c86484e54 Template variable support for ifql datasource
* Implements findMetricQuery()
* Macros for template queries: measurements(), tags(), tag_values(),
 field_keys()
* Tests for macro expansion
2018-06-06 14:11:48 +02:00
David Kaltschmidt 3bd58446d6 Fix metrics panel test by adding config mock 2018-06-06 11:15:24 +02:00
David Kaltschmidt 661503f828 Respect explore settings in config ini
Previous explore restrictions only took permissions into consideration.

* add `exploreEnabled` to global settings
* only bind `x` if enabled
* only show explore in panel menu if enabled
2018-06-06 10:50:47 +02:00
David Kaltschmidt 56fc82151b Add .html to webpack.hot resolve extensions 2018-06-06 09:12:06 +02:00
David Kaltschmidt d7379912c1 Query helpers for IFQL datasource
* raw CSV preview next to query field (query inspector is not that
 useful here)
* added result table and record counts
2018-06-05 17:15:35 +02:00
David 45a156577c Merge pull request #12143 from grafana/davkal/ifql-datasource
InfluxDB IFQL datasource (beta)
2018-06-05 14:23:21 +02:00
David Kaltschmidt 64f5874778 Remove round-robin urls in ifql DS 2018-06-05 13:49:35 +02:00
David Kaltschmidt 1d587450b3 IFQL range variable expansion 2018-06-05 13:42:32 +02:00
David 95aef8241c Merge pull request #12146 from grafana/12144-new-variable-save
added if to check if new variable has been added
2018-06-04 17:26:48 +02:00
David b5c53aae97 Merge pull request #12108 from grafana/davkal/12001-explore-permissions
Restrict Explore UI to Editor and Admin roles
2018-06-04 16:01:39 +02:00
David Kaltschmidt 08ee1da6b1 InfluxDB IFQL datasource 2018-06-04 12:24:47 +02:00
David 13a9701581 Update CHANGELOG.md
- added Prometheus query date alignment
2018-06-01 10:13:48 +02:00
David Kaltschmidt 0c45ee63a9 Guard /explore by editor role on the backend 2018-05-31 11:26:24 +02:00
David Kaltschmidt 827fb7e8de Fix karma tests that rely on MetricsPanelCtrl 2018-05-30 15:24:47 +02:00
David Kaltschmidt 7224ca6c62 Fix panel menu test 2018-05-30 13:24:09 +02:00
David Kaltschmidt f69654fcd5 Restrict Explore UI to Editor and Admin roles
Access is restricted via not showing in the following places:

* hide from sidemenu
* hide from panel header menu
* disable keybinding `x`

Also adds a `roles` property to reactContainer routes that will be
checked if `roles` is set, and on failure redirects to `/`.
2018-05-30 13:13:29 +02:00
David 7a3c1e162c Merge pull request #11942 from grafana/davkal/design-integration
Explore: Time selector, split view, design integration
2018-05-30 12:27:24 +02:00
David Kaltschmidt ac1dda3b3a Fix CSS to hide grid controls in fullscreen/low-activity views
* there was a comma missing to hide the handles, fixed now
* added new styles to hide header interaction in full screen panels
2018-05-30 12:07:51 +02:00
David 40844614bf Merge pull request #12096 from grafana/davkal/11446-fix-systemjs-cachebust
Fix cache busting for systemjs imports for plugins
2018-05-30 10:05:46 +02:00
David 9b9e3962c5 Merge pull request #12072 from grafana/davkal/12024-fix-alignment
Changed Prometheus interval-alignment to cover whole panel range
2018-05-29 15:03:06 +02:00
David c67d72db63 Merge pull request #12041 from grafana/davkal/11931-table-docs
Document table row merge for multiple queries
2018-05-29 12:08:55 +02:00
David Kaltschmidt 8bcd55d221 Fix cache busting for systemjs imports for plugins
* everything imported via systemjs in the path `plugin/` will get a
 timestamp appended for cache busting
* timestamp is set once on page load
* plugin css loader gets cache buster too
2018-05-29 12:01:10 +02:00
David Kaltschmidt 6d8d6cdb57 Fix sourcemaps for webpack hot config 2018-05-28 20:32:33 +02:00
David Kaltschmidt ebe8e62bd5 Split webpack dev config into dev and hot
Motivation:

* too many conditionals for config, better to be explicit
* different priorities: faster build for hot mode
* working SCSS sources for styles in hot mode

The biggest differences:

* removed linter from TS loader in hot (should be editor or precommit
 or responsibility)
* simplified styles loading
* hot needs more extensions to resolve
* removed commons chunking for hot
* removed devServer from dev

Reduced HMR time from 8s to 4s on my machine.
2018-05-28 13:49:15 +02:00
David ced8c5f0e4 Upgrade webpack loaders (#12081)
* upgrade all webpack loaders to recent version
* keep TS loader at 4.0.0 (5.0.0 requires webpack 4)
* remove unused json-loader
2018-05-28 13:46:57 +02:00
David Kaltschmidt 750ea9bbdd Changed Prometheus interval-alignment to cover whole panel range
* the existing query date alignment shifts the range forward to match
a multiple epoch of the interval, but keeps the range length the same,
the result is that the start date is shifted forward as well, leaving a
gap in the graph (or a zero-line when null-as-zero was set, issue #12024)
* this pr extends the aligned range to cover the original start date as
well
2018-05-25 16:46:38 +02:00
David Kaltschmidt 27e7a28b37 Review feedback (heading, typos)
* iff and therefor
* mention merge in heading
* add note about checking query inspector
2018-05-25 14:47:46 +02:00
David Kaltschmidt 448b1cbc15 Integrated dark theme for explore UI 2018-05-25 12:51:27 +02: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 61b296afad Document table row merge for multiple queries
* added section to table feature docs
* marked as 5.0+ feature
* concrete examples of what works and the limits
2018-05-23 17:08:54 +02:00
David 65f9970a3e Merge pull request #10434 from craig-miskell-fluxfederation/prometheus_align_queries
Align queries to prometheus with the step
2018-05-14 12:30:55 +02:00
David Kaltschmidt a1b92369db Merge remote-tracking branch 'origin/master' into prometheus_align_queries
* origin/master: (21 commits)
  docs: removes notes about beeing introduced in 5.0
  lock caniuse-db version to resolve phantomjs rendering issue
  Update dashboard_permissions.md
  move database-specific code into dialects (#11884)
  refactor: tracing service refactoring (#11907)
  fix typo in getLdapAttrN (#11898)
  docs: update installation instructions targeting v5.1.2 stable
  changelog: add notes about closing #11862, #11656
  Fix dependencies on Node v10
  Update dashboard.md
  changelog: add notes about closing #10338
  Phantom render.js is incorrectly retrieving number of active panels (#11100)
  singlestat: render time of last point based on dashboard timezone (#11425)
  Fix for #10078: symbol "&" is not escaped (#10137)
  Add alpha color channel support for graph bars (#10956)
  interpolate 'field' again in Elasticsearch terms queries (#10026)
  Templating : return __empty__ value when all value return nothing to prevent elasticsearch syntaxe error (#9701)
  http_server: All files in public/build have now a huge max-age (#11536)
  fix: ldap unit test
  decrease length of auth_id column in user_auth table
  ...
2018-05-14 12:11:14 +02:00
David Kaltschmidt e731c248d7 Prometheus step alignment: shift interval only on jitter
* only increase interval by step if jitter happened
* shift both start and end
* simplified tests by using low epoch numbers
2018-05-14 12:08:30 +02:00
David Kaltschmidt dd66cbc847 Use babel and hot loader only in yarn start
* moved babel rules for hot reloading into TS loader
* toggling use of babel via HOT variable (true with `yarn start`)
* overriding webpack output when HOT to fix asset paths in dashboard
 urls like http://localhost:3333/d/...
2018-05-14 11:58:15 +02:00
David 06aca5e8b5 Merge branch 'master' into prometheus_align_queries 2018-05-08 12:22:55 +02:00
David ed067e8d35 Fix CSS asset loading for yarn start (HMR) (#11855)
* enable url() processing in CSS to ensure assets load in HMR mode
* only needed when running `yarn start` which needs this for the hot
reloader
2018-05-07 17:02:55 +02:00
David 1236b7b918 Merge pull request #11770 from grafana/davkal/explore-panel-link
Explore: Add entry to panel menu to jump to Explore
2018-05-07 16:31:19 +02:00
David Kaltschmidt c3cc60b080 Support for local Docker builds
* add a git-ignored `local/` folder for Makefile/Dockerfile
* import `local/Makefile` to root Makefile
* add `.dockerignore`
2018-05-07 12:32:18 +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 cc74f6c6a0 Merge pull request #11761 from grafana/davkal/explore-multi-row
Explore: add support for multiple queries
2018-04-27 17:31:25 +02:00
David d8abfe6a7d Merge pull request #11742 from grafana/davkal/explore
Explore UI skeleton
2018-04-27 15:46:40 +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 25d3ec5bbf Fixed settings default and explore path 2018-04-27 15:35:46 +02:00
David Kaltschmidt d338b7ea7b Import and typescript fixups 2018-04-27 11:49:11 +02:00
David Kaltschmidt 1e6e89121c Settings to enable Explore UI 2018-04-27 11:39:14 +02:00
David Kaltschmidt f1220fd2a4 Explore WIP 2018-04-26 20:27:19 +02:00
David c99d6bd505 Merge pull request #11678 from grafana/davkal/11673-silent-response
Add silent option to backend requests
2018-04-25 09:46:41 +02:00
David Kaltschmidt 707700ac7d force GET for metadataRequests, w/ test 2018-04-24 16:26:46 +02:00
David Kaltschmidt 006286ac05 Renamed helperRequest and removed positional args
From review feedback:

* s/helper/metadata
* combined positional args to _request into options dict
* metadataRequest reuses _request()
* moved consumption of this.httpMethod into _request, can be overwritten
 in options due to spread-after
2018-04-24 12:27:37 +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 53817b7429 Add silent option to backend requests
* When set to `true`, the `silent` option for backend_srv requests
 suppresses all event emitters that are triggered when the response is
received.
* Added `helperRequest()` to the Prometheus datasource to support
 requests that are not triggered by the user, e.g., for tab completion.
`helperRequest()` sets the `silent` option.
* Migrated all non-timeseries queries of the Prometheus datasource to
 use `helperRequest()`.

Fixes #11673
2018-04-20 15:28:04 +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
David ed44face0e Merge pull request #11605 from grafana/davkal/show-version-in-help
Show Grafana version and build in Help menu
2018-04-16 16:58:18 +02:00
David Kaltschmidt 9ca1a94580 bra should use the proper build script
* `bra run` is used during development, but it was not using build.go
which sets a couple of globals, e.g., the commit (currently set to "NA")
* This will help in reporting the commit that someone is basing their
screenshot on.
2018-04-16 16:52:44 +02:00
David Kaltschmidt 5a29c17282 moved version in help menu to top 2018-04-16 16:25:28 +02:00
David Kaltschmidt 712212d6aa Show Grafana version and build in Help menu
* establishes Help as the single place to look for the Grafana version
* version is passed as menu sub-title to side menu
* added rendering of sub-title, plus styles
* sub-title was used by profile menu (its value is the login string),
but was not shown; now showing this value on condition that login name
is different from user name
2018-04-16 13:37:05 +02:00
David Kaltschmidt edb2dcf1b0 Extracted row matching function and added comments 2017-12-12 13:18:06 +01:00
David Kaltschmidt 8d70f13393 Type-agnostic row merge in table transform for multiple queries
* moved unique value naming to datasource (credit: @bergquist)
* merge rows based on same column-values and empty values
* expanded tests
2017-12-11 12:42:53 +01:00
David Kaltschmidt 011b2cd1b2 Fix merge issue on multi-query table transforms
* after a match has been found the merger should keep looking for more
2017-12-06 13:12:16 +01:00
David Kaltschmidt eb31833d52 Backwards-compat for multi-query table transform
* treat single-query table panels like they were before
* adjusted test cases
2017-12-05 11:25:10 +01:00
David Kaltschmidt 1dd90c8105 Making the multi-query table transform the default table transform 2017-12-04 17:55:00 +01:00
David Kaltschmidt b6867891f0 Tests for multi-query table transform 2017-12-03 14:32:02 +01:00
David Kaltschmidt 85eb2aaa80 Added basic table transformer test 2017-12-01 19:03:47 +01:00
David Kaltschmidt 91e866f145 Add multiquery_table table transform
The current table transform renders only the first query.
This PR adds a new transform to render all query results in a JOIN-ish
semantic.

* new table transform: Multi-Query table
* columns is the union of all non-value fields
* one value column per query is added
* rows that share all the same label values are merged into one
2017-12-01 14:27:22 +01:00