Commit Graph
100 Commits
Author SHA1 Message Date
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
David 66c2854b11 Merge pull request #14275 from grafana/davkal/explore-logging-label-stats
Explore: Logging label stats
2018-12-04 13:02:29 +01:00
David Kaltschmidt ffa584baec Use popover styles for stats popover 2018-12-04 12:50:29 +01:00
David Kaltschmidt a08042ea18 Fine tune stats styles 2018-12-04 12:41:32 +01:00
David Kaltschmidt 9f0b1e533f Tests for label stats calculation 2018-12-04 12:41:32 +01:00
David Kaltschmidt 5916cb3e7c Explore: Logging label stats
- added filter and stats icons to log stream labels
- removed click handler from label itself
- click on stats icon calculates label value distribution across loaded logs lines
- show stats in hover
- stats have indicator which value is the current one
- showing top 5 values for the given label
- if selected value is not among top 5, it is added
- summing up remaining label value distribution as Other
2018-12-04 12:41:32 +01:00
David a69ab2fb3a Merge pull request #14299 from grafana/14273-clear-scanning
Explore: Stop scanning when clear all button is clicked
2018-12-04 12:37:04 +01:00
David f73a479838 Merge pull request #14296 from grafana/davkal/explore-grid
Explore: return to grid layout for logs table
2018-12-04 12:34:58 +01:00
David Kaltschmidt 4ce79349a3 Explore: return to grid layout for logs table
- better column control than flexbox
- increased gutter and row spacing
2018-12-04 10:48:28 +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 c441b9eec3 Merge pull request #14256 from grafana/davkal/fix-14245
Explore: Fix label and history suggestions
2018-11-30 16:16:16 +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
David Kaltschmidt 11a53763e2 Explore: Fix logging query parser for regex with quantifiers
- ensure that selectors have to be preceded by whitespace or line beginning
- glacing over the fact that ` {0,1}` could be a valid regexp, but we're using space as query/regexp separators anyway, so I think it's fine for now
2018-11-30 15:49:54 +01:00
David 088c2e70d8 Merge pull request #14236 from grafana/davkal/explore-logging-rendeer
Explore: Logging render performance
2018-11-30 15:37:24 +01:00
David Kaltschmidt a513130493 Fixed typo in function name 2018-11-30 15:19:09 +01:00
David Kaltschmidt a61c8d23d4 Explore: Fix label and history suggestions
- fork promql's tokenizer (need to specify that labels context can only follow beginning of line or whitespace)
- remove unneeded syntax features
- only present history items when field is empty
2018-11-30 15:13:53 +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
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
David 8024a6aa9f Merge pull request #14214 from grafana/davkal/explore-logging-label-filter
Explore: Logging label filtering
2018-11-29 13:19:35 +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 8830c133d1 Merge pull request #14215 from grafana/davkal/fix-logging-selector-parsing
Logging: fix query parsing for selectors with multiple labels
2018-11-28 14:17:32 +01:00
David Kaltschmidt 9c316b55e9 Logging: fix query parsing for selectors with multiple labels
- simplify selector parsing
- added tests
2018-11-28 14:03:47 +01:00
David 32511533c3 Merge pull request #14178 from grafana/davkal/explore-scan-log-range
Explore: Scan for older logs
2018-11-28 11:00:51 +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
David 9afb8b64ed Merge pull request #14176 from grafana/davkal/explore-logging-level-filter
Explore: Filter logs by log level
2018-11-27 12:23:45 +01:00
David 2257f63543 Merge pull request #14192 from grafana/davkal/fix-14190
Explore: Fix JS error when switching between 2 prometheus datasources
2018-11-26 14:20:16 +01:00
David Kaltschmidt 91ea8dccf5 Explore: Fix JS error when switching between 2 prometheus datasources
- since the DataQuery rewrite, Explore starts by submitting its queries (Explore cant know if the queries are emtpty)
- The datasource intercepts an empty query and returns an empty list of time series, and also no table for the table query.
- The query hinter then received no series to analyse and was not guarding against this.
- This PR adds this guard.
2018-11-26 13:43:22 +01:00
David Kaltschmidt 575d888472 Fix tests to account for sortText 2018-11-23 16:53:46 +01:00
David Kaltschmidt ae5ec44171 Fix tests to account for loglevel long names 2018-11-23 16:49:23 +01:00
David Kaltschmidt 4f55a238ed Explore: Filter logs by log level
- add `onToggleSeries` to Explore Graph props
- toggling a Logging Graph series from the legend propagates its hidden series to Logs
- Logs translates hidden series alias to LogLevels
- Logs filters out hidden log levels
2018-11-23 16:29:55 +01:00
David f4bc023147 Merge pull request #14171 from grafana/davkal/explore-fix-empty-suggestion
Explore: make query field suggestions more robust
2018-11-23 13:14:30 +01:00
David Kaltschmidt f831836fa7 Explore: make query field suggestions more robust
- drop invalid history items
- make highlighter more robust by defaulting to empty string on text to highlight
2018-11-23 12:25:43 +01:00
David 16e7ae4e69 Merge pull request #14169 from grafana/davkal/explore-logging-keep-labels
Explore: switching to logging should keep prometheus labels in case o…
2018-11-23 11:47:39 +01:00
David Kaltschmidt ecaee88efe Sort Prometheus range suggestions by length
- add sortText property to range completion items
2018-11-23 11:43:21 +01:00
David Kaltschmidt b778b5350a Explore: swtiching to logging should keep prometheus labels in case of error
Logging's query importer drops all labels that are not common to both datasources.

- keep labels if label lookup of logging datasource came back empty
- easier to remove labels than having to add them in the first place
2018-11-23 11:15:25 +01:00
David Kaltschmidt c928c546a3 Sticky footer for all pages
Currently the footer is based on top margins which looks odd on big screen sizes.
Also, the footer shows up on the top of the page on pages take a moment to load (while ng-view is rendering).

- True sticky footer based on flexbox
- Ensure footer stays at bottom while ng-view div does not exist yet
2018-11-22 13:15:29 +01:00
David 377eaa891c Merge pull request #14147 from grafana/davkal/explore-data-query
Explore: Introduce DataQuery interface for query handling
2018-11-22 12:01:37 +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 bbaa5b63c8 Fix history rendering for DataQuery 2018-11-22 11:02:53 +01:00
David 1125ca4d79 Merge pull request #14014 from miqh/feat/explore-toggle-series
Add ability to toggle visibility of graph series in explore section
2018-11-21 17:31: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 5a759a8317 Merge pull request #14118 from grafana/davkal/explore-logs-dedup
Explore: POC dedup logging rows
2018-11-19 15:36:26 +00:00
David Kaltschmidt 4771eaba5b Explore: POC dedup logging rows
- added dedup switches to logs view
- strategy 'exact' matches rows that are exact (except for dates)
- strategy 'numbers' strips all numbers
- strategy 'signature' strips all letters and numbers to that only whitespace and punctuation remains
- added duplication indicator next to log level
2018-11-19 16:26:47 +01:00
David d4e792dccd Merge pull request #14107 from grafana/davkal/explore-panel
Explore: collapsible result panels
2018-11-19 15:17:05 +00:00
David c20c787b62 Merge pull request #14104 from grafana/davkal/prometheus-rule-expansion
Prometheus: fix rules expansion
2018-11-19 15:11:09 +00: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 e3e8be16b3 Prometheus: fix rules expansion
Rules expansion (available via query hints in explore) was broken for expressions that contained selectors.

- fix replacing regexp to recognize `{` and `[` as the end of a rule name
- moved logic to language utils
- added tests
2018-11-16 14:38:20 +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
David fe45cb9aa1 Merge pull request #14032 from grafana/davkal/explore-prevent-term-completion
Explore: Don't suggest term items when text follows
2018-11-15 16:43:15 +00:00
David Kaltschmidt ce59acd141 Extracted language provider variables for readibility 2018-11-15 11:20:27 +00:00
David 19b3578bdd Merge pull request #14048 from grafana/davkal/explore-table-pagination-styles
Explore: Fix table pagination styles
2018-11-14 14:45:51 +00:00
David f00f347099 Merge pull request #14033 from grafana/davkal/explore-slow-ds-load
Explore: Dont set datasource in state if navigated away
2018-11-14 14:45:35 +00:00
David Kaltschmidt 7627de80f2 Explore: Fix table pagination styles
- get rid of drop shadow
- get rid of top border
- add min height for better no-data placement
- add margins
2018-11-13 11:00:32 +00:00
David Kaltschmidt 9b48338d95 Explore: Dont set datasource in state if navigated away
Datasource selection triggers a connection test, on success
the DS is set in the Explore state. If the test takes long and user
selects a different DS, and just after that the first test succeeds,
then the first DS overwrites the state.

* when test returns check if datasource is still the requested one
2018-11-12 18:06:12 +00:00
David Kaltschmidt ff0ed06441 Explore: Don't suggest term items when text follows
Tab completion gets in the way when constructing a query from the inside
out:

```
up| => |up => sum(|up)
```

At that point the language provider will not suggest anything.
2018-11-12 17:40:05 +00:00
David 0e7b6dcfb4 Merge pull request #14008 from miqh/fix/query-stats-depth
Adjust UI depth of query statistics
2018-11-09 15:06:17 +01:00
David 502b3c390d Merge pull request #13954 from miqh/fix/apply-function-suggestion
Preserve suffix text when applying function suggestion
2018-11-09 14:56:25 +01:00
David 203078280f Merge pull request #13942 from grafana/davkal/explore-logging-graph
Explore: Logging graph overview and view options
2018-11-08 14:38:29 +01:00
David Kaltschmidt 6b8d7c89ac Refactored log stream merging, added types, tests, comments 2018-11-08 14:24:54 +01:00
David Kaltschmidt dfc0c5052d Fix loglevel tests for Explore loggging 2018-11-06 15:40:29 +01:00
David Kaltschmidt f5575459eb unify log level colors between rows and graph 2018-11-06 12:05:10 +01:00
David Kaltschmidt a5ed86edba Graph log entries by log level 2018-11-06 12:00:05 +01:00
David Kaltschmidt e39e82949d Adaptive bar widths for log graph 2018-11-06 11:07:12 +01:00
David Kaltschmidt c1ca1ed35e Time selection via graph 2018-11-05 23:36:58 +01:00
David 0df14f3fa8 Merge pull request #13927 from grafana/davkal/explore-start-task
Explore: fix metric selector for additional rows
2018-11-05 12:30:02 +01:00
David 24e5922d68 Merge pull request #13953 from miqh/fix/suppress-aggregation-suggestions
Handle suggestions for alternate syntax aggregation contexts
2018-11-05 12:15:37 +01:00
David Kaltschmidt 583334df05 Explore: Logging graph overview and view options
- Logging gets a graph for log distribution (currently per stream, but I
  think I'll change that to per log-level)
- added grid columns for timestamp and unique labels
- show common labels of streams
- View options to show/hide time columns, label columns
- created `--small` modifier for Switch CSS classes
- merging of streams is now a datasource responsibility
2018-11-02 08:25:36 +01:00
David Kaltschmidt edd575b552 Explore: fix metric selector for additional rows
- race condition in language provider leads to only one row getting
  selector options
- fixed by always returning the start task promise
2018-11-01 09:46:05 +01:00
David e5aeb00636 Merge pull request #13918 from grafana/davkal/explore-syntax-start
Explore: async starts of language provider
2018-10-31 20:45:33 +01:00
David Kaltschmidt 4f959648a7 Explore: async starts of language provider
- changed `start()` to return promise on main language feature task
- promise resolves to list of secondary tasks
- speeds up time to interaction of metric selector
- lazy loading of certain metric selector and log label selector items
- loading indication of metric and log label selectors
2018-10-31 17:53:28 +01:00
David e99c1b4838 Merge pull request #13904 from grafana/davkal/explore-logging
Explore: repair logging after recent Explore restructuring
2018-10-31 09:19:38 +01:00
David Kaltschmidt 037167ff07 Fix TimePicker test by enforcing UTC on date string 2018-10-30 16:50:03 +01:00
David Kaltschmidt c92f5462fe Explore: repair logging after code restructuring
this is a fix-up PR that cleans up Explore Logging after the recent
restructuring.

- log results need to be merged since query transactions have been
  introduced
- logging DS has its own language provider, query field, and start page
  (some of them based on prometheus components)
- added loader animation to log viewer
- removed logging logic from prometheus components
2018-10-30 16:35:49 +01:00
David 758ec4bc70 Merge pull request #13844 from grafana/davkal/explore-empty-page
Explore: Pluggable components from datasource plugins
2018-10-30 14:54:34 +01:00
David Kaltschmidt cf19ecc8f5 Make Explore plugin exports explicit 2018-10-30 14:38:34 +01:00
David 45d7516408 Merge pull request #13901 from grafana/davkal/grunt-newer
JS tooling: run TS grunt tasks only when files changed
2018-10-30 14:35:19 +01:00
David Kaltschmidt e8a895d58b JS tooling: run TS grunt tasks only when files changed
- using grunt-newer to prefix precommit tasks
- only got it to work for tslint and tsc

Not applied to:

- sasslint does not take the file arguments in a way that grunt-newer
  recognizes
- no-only-tests throws an error when used with `newer`, but it's
  sub-second runtime
2018-10-30 10:25:53 +01:00
David a0aaf70060 Merge pull request #13886 from grafana/davkal/explore-fix-cell-click
Explore: fix copy/paste on table cells
2018-10-29 17:06:54 +01:00
David Kaltschmidt 5a23723f2c Explore: fix copy/paste on table cells
When selecting text via mouse, our ReactTable cells' click handler
triggers an event.

- check event target to be the link, only then handle the event
2018-10-29 16:44:50 +01:00
David Kaltschmidt d0776937b5 Pluggable components from datasource plugins
- when instantiating a datasource, the datasource service checks if the
  plugin module exports Explore components, and if so, attaches them to
  the datasource
- Explore component makes all major internal pluggable from a datasource
  `exploreComponents` property
- Moved Prometheus query field to promehteus datasource and registered
  it as an exported Explore component
- Added new Start page for Explore, also exported from the datasource
2018-10-29 15:14:36 +01:00
David b00e709aee Merge pull request #13842 from grafana/davkal/explore-error-handling
Explore: error handling and time fixes
2018-10-29 15:08:14 +01:00
David Kaltschmidt a4ef1d6175 Makefile: dependency-driven target to build node_modules
- added `node_modules` as new target
- dependency on `package.json` and `yarn.lock` allows for quick `make
  node_modules` after a branch change, which noops when the deps have
 not changed
- also added `clean` target
2018-10-29 11:08:30 +01:00
David 121ac93d08 Merge pull request #13847 from miqh/fix/multi-line-aggregation
Fix label suggestions inside multi-line aggregation contexts
2018-10-28 18:05:31 +01:00
David Kaltschmidt 9245dad53e Fix query hint tests after refactor 2018-10-28 17:48:17 +01:00
David 2ec827f02f Merge pull request #13774 from miqh/feat/sum-query-suggestion
Implement sum aggregation suggestion with placeholder support
2018-10-28 17:37:42 +01:00
David Kaltschmidt bf1af66292 Explore: error handling and time fixes
- use global range types
- add ErrorBoundary around individual Explore components
- fix table merge on empty results
- fix TimePicker date parsing on ISO dates
- fix TimePicker range string after relative move
2018-10-26 18:16:00 +02:00
David 239dfbc9ae Merge pull request #13824 from grafana/davkal/explore-plugins
Explore: move suggestions logic to datasource language provider
2018-10-26 11:40:52 +02:00
David Kaltschmidt 6f2315d5c5 Moved prom language features to datasource language provider 2018-10-25 12:24:24 +02:00
David Kaltschmidt 54a3e2d1d1 Added types to query rows 2018-10-24 14:55:56 +02:00
David a6fc74e35b Merge pull request #13803 from grafana/davkal/explore-fix-resize
Explore: fix graph resize on window resize
2018-10-24 12:32:27 +02:00
David 8f7686c5a7 Merge pull request #13773 from miqh/fix/click-typeahead-suggestion
Fix click-based selection of typeahead suggestion
2018-10-24 11:42:58 +02:00
David Kaltschmidt d6ff16fe72 Explore: fix graph resize on window resize
- resize HOC wrapper only resized first child which in case of large
  graphs was the warning button
- moved warning button inside the panel parent
2018-10-24 11:30:32 +02:00
David 7d0eccdd23 Merge pull request #13787 from grafana/davkal/explore-transactions
Explore: query transactions for faster result display
2018-10-24 11:24:29 +02:00
David Kaltschmidt a121cd0e49 Fix race condition on add/remove query row 2018-10-24 11:08:15 +02:00