Commit Graph
100 Commits
Author SHA1 Message Date
David Kaltschmidt 26236b4bc3 fix(renderer): Vendor ansicolor as typescript
Fixes #15635

Importing ansicolor from node_modules or vendored as is failed because
there is no ES5 transpiler configured for ES6 libs.

- remove ansicolor from package.json
- add ansicolor to public/vendor/ansicolor and port to typescript
- adapt all ansicolor imports
- add `public/vendor` as a path to be considered by ts compiler
2019-03-06 14:22:59 +01:00
David Kaltschmidt 539333bb01 Explore: Enable click on name label
- click on the name label in a prometheus table was disabled
- it was disabled because every query used to have a metric which is no
longer true
- this change enables it
2019-02-26 14:21:46 -08:00
David Kaltschmidt e6a74eb1a2 Explore: Make sure line graphs get different colors
- lines for graphs from different query rows end up in different
transactions
- within each transaction the color distribution resets leading to color
overlap
- this change takes existing transaction colors into account
2019-02-24 10:01:50 -08:00
David 5e8570f822 Merge pull request #15491 from grafana/davkal/15436-loki-docs
Datasource docs for Loki
2019-02-18 16:20:40 +01:00
David Kaltschmidt 815affe02d Datasource docs for Loki
- adds Loki data source docs to Grafana docs
- moved query-related docs from Explore to Loki
2019-02-18 09:39:44 +01:00
David 2c92365969 Merge pull request #15305 from avaly/feature/ansi-colors
Support ANSI colors codes in Loki logs
2019-02-14 18:01:23 +01:00
David Kaltschmidt 8d44ed8d8f Explore: query field should not propagate non-text change
- after mounting with an initial value, the onChange of a query field is triggered
- even though the slate documents are not the same, their text values are identical, hence the change propagation is useless
- added check to propagate text change only when text has actually changed
2019-01-29 15:53:51 +01:00
David edfce0893e Merge pull request #15090 from grafana/hugoh/bug-explore-cant-go-from-dashboard-to-explore
Fixed reinitialise of Explore
2019-01-28 13:43:32 +01:00
David Kaltschmidt c0277ab595 Explore: Fix scanning for logs
- Redux migration caused the scanner to not be set
- this change adds the setting/unsetting of the scanner in the reducer
- added test
2019-01-23 15:05:54 +01:00
David 6f6c4652dc Merge pull request #14928 from grafana/davkal/14926-loki-missing
Explore: Fix datasource selector being empty with single datasource
2019-01-17 14:49:55 +01:00
David Kaltschmidt 648a775acb Explore: Fix datasource selector being empty with single datasource
- The "missing" action was triggered unless the number of datasource >1 🤦
- Made datasource preselection more robust in case the requested datasource is already gone
2019-01-17 12:07:42 +01:00
David 25e6d075ab Merge pull request #14821 from grafana/davkal/explore-redux
Explore: Redux migration
2019-01-16 11:13:30 +01:00
David Kaltschmidt 9575a4a2c0 Move action properties to payload 2019-01-16 10:21:11 +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 9aede9e636 Fix reducer issues 2019-01-15 20:04:03 +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
David Kaltschmidt ce3117507a Prometheus: Fix annotation step calculation
- since e731c248d7 step calculation for
annotation queries was broken
- this change puts the interval in the correct parameter so it gets
considered in `createQuery`
- added tests
2019-01-14 17:40:47 +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
David Kaltschmidt a364487b3a Logs data model: add more log levels
- add `eror` used in github.com/inconshreveable/log15 (used by Grafana as well)
- add levels from SYSLOG
2018-12-31 14:44:13 +00:00
David Kaltschmidt f4b4ee3ff8 Review feedback 2018-12-31 14:10:45 +00:00
David b712337a3b Merge pull request #14693 from grafana/davkal/loki-single-query
Loki: change query row to be single field again
2018-12-31 14:55:44 +01:00
David Kaltschmidt 652c149ca2 Explore: fix loading indicator z-index on panel container
- existing z-index placed the loading indicator above dropdowns of the panel children
- removed z-index for natural ordering
2018-12-31 12:55:03 +00:00
David Kaltschmidt 32438c4716 Loki: change query row to be single field again
- tried split selector and search for a week, and it did not feel natural
- keeping some of the original modifications in QueryField from splitting PR
- adapted CheatSheet and placeholder text
- added new label selector state: No labels found
2018-12-31 12:38:13 +00:00
David Kaltschmidt 39833b0df7 Explore: logging UI style fixes
- baseline aligment for meta field labels
- use variables for font sizes and margins
2018-12-31 12:05:07 +00:00
David Kaltschmidt 26a5e07737 Loki: query limit configurable in datasource
- Loki queries must contain a limit
- this change makes this limit configurable in the datasource
- keep default at 1000, add tooltip on why inc/dec makes sense
- added tests
2018-12-31 11:25:28 +00:00
David b05e7aaecb Merge pull request #14636 from grafana/davkal/fix-14635
Loki: fix timestamp field
2018-12-22 17:52:59 +01:00
David Kaltschmidt d1dec8bd44 Add timestamp back to log entry type 2018-12-22 17:36:35 +01:00
David Kaltschmidt e694604be5 Loki: fix timestamp field
- timestamp was renamed to `ts` in grafana/loki#152
- renamed here in result transformer and tests
2018-12-22 17:19:58 +01:00
David b2401e37fa Merge pull request #14414 from grafana/davkal/explore-logging-search
Explore: Split logging query into selector and search
2018-12-22 17:00:57 +01:00
David Kaltschmidt 71429d7210 Explore: Improved line parsing for logging
- changed log parser API to be more semantic: getting fields, getting values
- regexps become an implementation detail of parser and are no longer part of the API
- improved JSON parser to not be tripped by nested quotation marks
- improved JSON parser to support numbers
- added more tests
2018-12-10 10:05:57 -08:00
David Kaltschmidt 117adbbe5d Fix search field styles 2018-12-09 14:39:25 -08:00
David Kaltschmidt 9293ff06cd Enable search also after editing 2018-12-09 18:53:03 +01:00
David Kaltschmidt 6b9200a606 Explore: Split logging query into selector and search
- add second query field to logging datasource query component
- second field manages search term, first field manages stream selectors
- improved logging cheat sheet to get started
2018-12-09 18:44:59 +01:00
David Kaltschmidt b0c431ae67 Fix logs panel meta wrap 2018-12-09 17:22:35 +01:00
David Kaltschmidt 61924e9130 Explore: dont pass all rows to all rows, fixes profiler
- react profiler seems to evaluate all props of all components down the tree
- this becomes slow when 1000 rows are passed to 1000 rows and their labels
- use getter function instead to ask for rows on demand
2018-12-09 13:23:44 +01:00
David Kaltschmidt 487de2b832 Explore: Logging dedup tooltips
- use title attribute of toggle button group
- add descriptions for all dedup options
2018-12-09 13:06:34 +01:00
David e5c547c504 Merge pull request #14406 from grafana/davkal/fix-14390
Explore: Fix timepicker inputs for absolute dates
2018-12-09 11:45:17 +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
David Kaltschmidt 60ee4499e7 Explore: Fix timepicker inputs for absolute dates
- Timepicker needs to keep from and to internally as strings
for the fully controlled inputs
- make sure from and to are strings when time is reset
2018-12-09 07:05:27 +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
David Kaltschmidt 80d62013b2 Remove Explore > "New tab" from sidebar
- we don't support tabs yet, might as well remove the entry
2018-12-07 11:27:46 +01:00
David Kaltschmidt c0c06e4dd8 Prometheus: Make result transformer more robust for empty responses
- some prometheus-compatible backends may return `null` instead of empty lists
- test for lists before iterating
- added tests for empty responses
2018-12-07 11:22:55 +01:00
David Kaltschmidt fb4925a8c2 Rebase fixes 2018-12-07 10:22:52 +01:00
David Kaltschmidt acd52e6a93 Explore: Logging line parsing and field stats
Lazily parse lines and display stats for field when clicked on.

- log line parsers for JSON (basic), and logfmt
- delayed parsing in case user moves to other line
- reuse label stats for field stats
2018-12-07 09:59:55 +01:00
David be2d9edd1f Merge pull request #14353 from grafana/14249-multi-button-group
Multi button group
2018-12-06 21:27:34 +01:00
David Kaltschmidt 15eb3bb2f8 Explore: improve error handling 2018-12-06 16:47:36 +01:00
David Kaltschmidt 6980d2e142 Explore: Display duplicate row count as number
- the pips were hard to see
- make it really clear which rows are duplicates by allocating a column to show number
2018-12-04 16:21:27 +01:00
David c4a89eb32d Merge pull request #14277 from grafana/davkal/explore-logging-live-preview
Explore: Logging query live preview of matches
2018-12-04 16:20:01 +01:00
David Kaltschmidt b95b796a34 Adapt styles 2018-12-04 15:58:10 +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
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 Kaltschmidt d150b62d06 Stick to .tsx? for babel file test 2018-12-03 16:32:50 +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