Commit Graph
100 Commits
Author SHA1 Message Date
David 54a3f5fd87 Loki: use series API for stream facetting (#21332) 2020-03-04 17:17:02 +01:00
David a3c99f4871 Logs: Fix parsing for logfmt fields that have parens (#21407)
* Logs: Fix parsing for logfmt fields that have parens

- added `()`, `[]`, and `{}` to be allowed in logfmt field names

* Fix matcher
2020-01-10 13:53:31 +01:00
David cb3d91b53c Prometheus: user metrics metadata to inform query hints (#21304)
* Prometheus: user metrics metadata to inform query hints

- no longer analyse datapoints
- either use metrics metadata to determine metrics type or use metric
name suffix
- removed testcases based on datapoints

* Added hint certainty and tests
2020-01-03 12:55:50 +01:00
David d63ad9ac93 Prometheus: Disable suggestions at beginning of value (#21302)
* Prometheus: Disable suggestions at beginning of value

- fixed comparison operator regex
- no longer suggest anything at beginning of label value

* Detect cursor in front of label values
2020-01-03 12:16:27 +01:00
David 3667781e6f Loki: fix filter expression suggestions (#21290)
* Loki: fix filter expression suggestions

- dont suggest term completion items in filter expression
- allow at least one character before suggesting term items
- keep logql expression when switching between Metrics/Logs mode
- show only history by default in completion items

* Clear results when changing mode
2019-12-31 09:53:30 +01:00
David 334b89f3ee Prometheus: Fix label value suggestion (#21294)
* Prometheus: Fix label value suggestion

- remove quotes from typeahead input to suggest correct label values
- fix acceptance of partial label values

* Disable mid-word suggestions

* Fix test
2019-12-31 08:56:57 +01:00
David 649fa6789e Prometheus: Fix term completion that contain keywords (#21295)
- `unless`, `or` and `and` are binary operators
- if they appear in a query the query was broken up so the suggestor
only works on the current term
- this change fixes the splitter logic to make sure those keywords are
not inside a word
2019-12-30 18:03:35 +01:00
David d0ba644355 Promtheus: Fix hint and error display for query rows (#21242)
- prometheus explore editor introduced new styles for the hint display
- when multiple rows are rendered the hints are covered because they are
forced to have 0 height
- this change removes the 0-height
2019-12-23 19:53:42 +01:00
David 6ac53a1312 Editor: Ignore closing brace when it was added by editor (#21172)
* Editor: Ignore closing brace when it was added by editor

- brace completion gets annoying if the user still types closing brace
- this change marks automatically added closing braces and when the user
types a closing brace at that position, it will be overridden instead of
added

* Fix label suggestions

* Correct brace behavior, but broken completion

* Rewrite auto-match detection with annotations
2019-12-23 12:49:55 +01:00
David 34c1433ba4 Prometheus: Fix typehead after binary operators (#21152)
- no longer do right-trim to prevent suggestions after space
- rely on splitting on syntax elements to identify relevant prefix
- added tests
2019-12-18 13:35:31 +01:00
David 13073fa6ba Prometheus: Display HELP and TYPE of metrics if available (#21124)
* Prometheus: Display HELP and TYPE of metrics if available

- Prometheus recently added a metadata API around HELP and TYPE of
metrics
- request metadata when datasource instance is created
- use metadata to show help and type in typeahead suggestions and in
metrics selector as tooltip

* Fix types
2019-12-17 11:06:43 +01:00
David e7ae220cde Logs: Optional logs label column (#21025)
* Logs: Optional logs label column

- reintroduces label column that was removed when log details were
introduced
- added to explore and also as a new option to logs panel
- explore column settings now stored in localstorage
- labels are rendered with font size xs
- labels that start with `_` or are called `level` or `filename` are not
displayed
- removed click handlers and moved remaining `LogLabel` logic into `LogLabels`

* Added prop to satisfy interface

* Review feedback

* removed comment

* Changed label of label column switch
2019-12-11 16:11:32 +01:00
David 75923c43d1 Promtheus: Improve tab completion (#20938)
Change in behavior:

- no longer suggest everything in empty field, only history
- term suggestions need at least one character
2019-12-10 16:11:31 +01:00
David 2d5dc5d6b2 Loki: fix labels fetching when no initial range given (#21000) 2019-12-10 15:29:32 +01:00
David 1a2dad9d0c Prometheus: disable dynamic label lookup on big datasources (#20936)
* Prometheus: disable dynamic label lookup on big datasources

- when a prometheus datasource has more than 10000 metrics, label lookup
for the query field is disabled
- installations of that size have slow typehead lookup times and make
the editor sluggish

* Raise dynamic lookup threshold to 10000 metrics

* Run start tasks again
2019-12-09 17:02:17 +01:00
David 7665dcc867 Loki: Fix datasource config page test run (#20971)
- since the API update, the URL fallback was working, but the response
format also needed adapting: `data` (v1) vs `values` (pre-v1)
- this change looks for either data or values in the response for test
and metadata requests
2019-12-09 16:45:56 +01:00
David 36ff6d8635 Devenv: Fix loki block (#20967) 2019-12-09 15:29:47 +01:00
David ab3df98523 Cloudwatch: Defined explore query editor for cloudwatch (#20909)
* Defined explore query editor for cloudwatch

* Fix types
2019-12-06 16:04:31 +01:00
David c53ed5bbac Loki: Fix query error for step parameter (#20607)
* Loki: Fix query error for step parameter

- Loki does not fully support float steps like prometheus and returns a
query error
- this change makes sure that the step parameter is rounded to an
integer

* Added test and comments
2019-11-26 05:43:24 -08:00
David 6d70545c07 Devenv: Enable tracing for loki docker block (#20309) 2019-11-12 13:26:35 +01:00
David 9f81fcdd2f Devenv: fix kibana in elastic7 docker block (#20308)
* Devenv: fix kibana in elastic7 docker block

* Remove network host mode for metricbeat container
2019-11-12 09:45:12 +01:00
David fa91462d53 Devenv: fix connection in elastic 5 and 6 blocks (#20304)
* Docker block: fix failed connection in elastic5 block

* Fix docker block elastic6 data link

* Fix elastic7 datagenerator
2019-11-11 17:06:03 +01:00
David c941718a5f Docker blocks: Add loki blocks for loki releases (#20172)
* Docker blocks: Add loki blocks for loki releases

- Loki did major API changes between 0.3 and 0.4
- Adding blocks to simplify Grafana datasource testing for different
versions
- keeing `loki` block pointing at loki master
- Run all versions in parallel:
```
./create_docker_compose.sh loki0.3 loki0.4 loki
```
- all versions have different hostnames and ports internally
- datasource url depends on version so you can set them up as separate
datasources:
  - master: http://localhost:3100/
  - 0.3.0: http://localhost:3103/
  - 0.4.0: http://localhost:3104/

* Add loki minor version datasources
2019-11-11 16:31:45 +01:00
David a499586f15 Elasticsearch: Support rendering in logs panel (#20229)
* Elasticsearch: Support rendering in logs panel

- add "Logs" metric query type so panels can inform the datasource that
the query is a logs query
- datasource modifies target when metric query type `logs` is detected
- then existing log result processeing paths are followed

* Fix failing test, number of agg types changed
2019-11-07 12:13:24 +00:00
David 9507eda9d1 QueryField: Prevent query runs on blur in Explore (#20180)
As discussed in a UX feedback session, it's annoying that queries are
automatically executed in Explore. This change adds props to override
the blur behavior.

- add `onBlur` to Explore query field props
- Explore's query row will pass down an empty function for onBlur to the
query fields
- pass onBlur through to the QueryField component for Loki and
Prometheus
- add test to QueryField to make sure if onBlur is specified, the
onRunQuery is not executed
2019-11-06 15:08:30 +00:00
David 781cff07af Explore: Remove datasource testing on selector (#19910)
* Explore: Remove datasource testing on selector

- datasource testing gets in the way of fast query iteration: switching
between datasources can take seconds
- it should not be explore's duty to test datasources in the first place
- removed the concept of datasourceError in Explore, should not be its
concern
- datasource erorrs will express themselves in query errors just fine
- connection errors are still bubbled up
- removed reconnection logic from explore, should not be its concern
- missing labels in loki are still "visible" via an empty label selector
- Loki and Prometheus treated connection errors differently than other
datasources, making sure to pass through the original error message

* Show datasource error in query field for prom/loki/influx

* Removed connection test case, fixed disabled state
2019-10-29 10:37:36 +00:00
David cf7ace6aad Rename live option in queries (#19658) 2019-10-07 14:09:46 +02:00
David 942f702d80 Loki: remove live option for logs panel (#19533)
* Loki: remote live option for logs panel

* Remove live from logs panel docs
2019-10-01 16:31:45 +02:00
David Kaltschmidt 47432e9349 Fix logs panel image path 2019-09-30 20:43:51 +02:00
David 265669710c Logs: Publish logs panel (#19504)
* Logs: Publish logs panel

- remove alpha state from plugins definition
- add panel documentation
- updated panel reference in Loki docs

* Review feedback
2019-09-30 20:39:42 +02:00
David a28aefa370 Graph: constant series as override (#19102)
* Graph: constant series as override

- ability to define a series override that takes the first value of a
timeseries and produces constant series from it.

* Moved constant series override logic to grafana-ui

* Added docs for instant queries and constant series override
2019-09-16 13:49:55 +02:00
David b392bba745 Loki: Updated cheat sheet with new filter syntax (#18947)
* Loki: Updated cheat sheet with new filter syntax

- updated cheat sheet with new filter syntax
- added user-specific examples from the user's label set
- added link to LogQL docs
- separated styles for examples (clickable) and expressions

* Review feedback
2019-09-16 07:17:34 +02:00
David 2f9c2f3886 Loki: Fix vertical alignment issue in label selector (#18943)
- upgraded rc-cascader (did not fix the alignment issue)
- Safari seems to default to middle alignment, added override to explore
styles
- added empty expand icon property to satisfy API after upgrade
2019-09-12 15:33:16 +02:00
David 89abc77b22 Build: Optional skipping of typescript checking in dev bundler (#18772)
* Build: Removed typescript checking from dev bundler

- when switching branches and trying out features, TS checking and bundling are eating up a lot
of CPU
- most of us are using an editor with typechecking support
- this commit removes type checking from the dev bundler
- we still have type checking enabled as a precommit hook and as part of
the prod bundler

* Adds new npm script: start:noTsCheck
2019-08-30 14:02:31 +02:00
David b3d2cc3e2f Explore: Fix loading error for empty queries (#18488)
* Explore: Fix loading error for empty queries

* Explore: Render tests for QueryField
2019-08-09 17:08:59 +02:00
David e8790c32ca Loki: Apply start parameter to speed up test query (#18266) 2019-08-03 16:58:08 +02:00
David 459769af70 Loki: Remove prefetching of default label values (#18213) 2019-07-24 14:58:32 +02:00
David 9cd069f2c5 Graph: fix time label description for datalink suggestions (#18214) 2019-07-22 13:35:12 +02:00
David 7139544c76 Explore: Reduce default time range to last hour (#18212) 2019-07-22 13:34:10 +02:00
David c6d3ffce91 Panel: Show error in edit mode (#18175)
- the error was set, but has not been shown
- this change will force a digest before the query promises return with
their error handling
2019-07-18 16:09:04 +02:00
David fb21492eae E2E: saving a dashboard should wait for success (#18171)
- navigating right away triggered the unsaved warning on slower machines
- this change makes sure we see a success message first
2019-07-18 15:36:03 +02:00
David 4ddeb94f52 Dashboard: Use Explore's Prometheus editor in dashboard panel edit (#15364)
* WIP prometheus editor same in panel

* Dont use panel in plugin editors

* prettiered modified files

* Fix step in external link

* Prevent exiting edit mode when slate suggestions are shown

* Blur behavior and $__interval variable

* Remove unused query controller

* Basic render test

* Chore: Fixes blacklisted import

* Refactor: Adds correct start and end time
2019-06-24 08:42:08 +02:00
David 927e1cbd27 (feat/explore): Support for new LogQL filtering syntax (#16674)
* (feat/explore): Support for new LogQL filtering syntax

Loki is adding syntax to support chained filtering.
This PR adapts Grafana to support this.

- Send only `query` parameter in loki request
- Automatically wrap search text in simple syntax, e.g., `{} foo` is
sent as `{} |~ "foo"`.


* Adapted to regexp parameter staying on in Loki

* Dont wrap single regexp in new filter syntax

* Fix datasource test

* Fallback regexp parameter for legacy queries

* Fix search highlighting

* Make highlighting work for filter chains

* Fix datasource test
2019-05-13 09:58:26 +02:00
David bf5b60f74a fix(explore): Prevent double querying for Prometheus and Loki (#17004)
* fix(explore): Prevent double querying for Prometheus and Loki

- queries were triggered twice because two Enter handlers existed
- removed runner plugin from Loki and Prom query fields (runner plugin
is still being used in azure)

Part of #16995

* Set loki's mtrics capability to false

Loki is not a metrics store. Explore was using the `metrics` field in
the plugin definition to issue a second query run. But Loki shows only
one result viewer.

Fixes #16995
2019-05-13 09:55:20 +02:00
David 9008fcc790 fix(prometheus): Change aligment of range queries (#16110)
- future alignment cause issues with rate charts and the display of last
values
- this change modifies the alignment to use the last available aligned
end date and no longer possibly requests data from the future
2019-03-21 10:25:20 +01:00
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