Commit Graph
100 Commits
Author SHA1 Message Date
Piotr Jamróz b7f854a06c Correlations: Fix incorrect state transitions in transformations editor (#77434)
* Extract transformations editor row to a seprate component

* Use css object instead of string literals

* Update .betterer.results

* Post merge fixes

* Bring back validation rules

* Switch to css/object

* Post-merge fixes

Ensuring Stack from grafana-ui is used after conflicts with 25779bb6e5
2023-11-07 12:17:02 +01:00
Piotr Jamróz 03ca9c7c66 Explore: Ensure logs volume data points are in order (#77268)
* Ensure logs volume data points are ordered

* Add a test for data points order
2023-10-30 13:40:44 +01:00
Piotr Jamróz 152e0e21f9 Correlations: Allow the insert query to be retried in a test (#76877)
Allow the insert query to be retried
2023-10-21 20:21:21 +02:00
Piotr JamrózandKristina Durivage 6531cd94c4 Explore: Cancel previous queries when a new query is run (#76674)
* Cancel streaming queries before running new queries

* Cancel previous queries when a new query is run

* Remove redundant dependency

---------

Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
2023-10-19 19:31:23 +02:00
Piotr Jamróz 8f6a3c18c5 Explore: Do not assert order of query history items when initializing from URL (#76806)
Assert initial state of the query history without requiring correct order.
2023-10-19 19:31:06 +02:00
Piotr JamrózandGiordano Ricci 1e3254bb43 Correlations: Docs update (#76508)
* First draft

* Update docs

* Update docs

* Fix a typo

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update docs/sources/administration/correlations/use-correlations-editor-in-explore/index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Fix linting

* Fix a typo

* Update how correlations works in logs panel

* Add more context to results field

---------

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-10-13 19:16:23 +02:00
Piotr Jamróz 23fe8fcf5a Correlations: Add documentation around variable exceptions (#71511) (#76510) 2023-10-13 15:32:38 +02:00
Piotr Jamróz ddb9b64128 Explore: Remove redundant TODO (#76262)
Remove redundant todo
2023-10-11 15:18:43 +02:00
Piotr JamrózandGiordano Ricci 946da57b6a Correlations: Allow creating correlations for provisioned data sources (#73737)
* Allow creating correlations for provisioned data sources

* Update docs

* Fix linting

* Add missing props

* Add missing props

* Fix linting

* Fix linting

* Clarify error name

* Removed error handling for a non-existing use case

* Create a list of deleted data datasources based on all configs

* Add org_id to correlations

* Add tests

* Allow org_id to be null in case org_id=0 is used

* Create organization to ensure stable id is generated

* Fix linting

* Ensure backwards compatibility

* Add deprecation information

* Update comments

* Override existing datasSource variable so the UID is retrieved correctly

* Migrate correlations indices

* Default org_id when migrating

* Remove redundant default

* Make PK non-nullable

* Post merge fixes

* Separate data sources / correlations provisioning

* Adjust comments

* Store new data sources in spy store so it can be used to test correlations as well

* Fix linting

* Update tests

* Ensure response is closed

* Avoid creating duplicates during provisioning

* Fix updating provisioned column and update tests

* Rename error message

* Fix linting errors

* Fix linting errors and rename variable

* Update test

* Update pkg/services/sqlstore/migrations/correlations_mig.go

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Remove unused error

* Fix lining

---------

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-09-13 15:10:09 +02:00
Piotr Jamróz e4ea62b3af Explore: Fix tracking when log results are shown (#74798)
Fix tracking logs results displayed
2023-09-13 11:47:39 +02:00
Piotr Jamróz c5a0d64652 Explore: Fix interpolating external data link in Explore table (#74351)
Fix interpolating external links in Explore table
2023-09-05 13:10:01 +02:00
Piotr JamrózandGiordano Ricci 975edf14dc Explore: Unify spec setup (#73994)
* Simplify Explore spec setup

* Update public/app/features/explore/spec/helper/setup.tsx

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

---------

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-09-05 13:05:11 +02:00
Piotr Jamróz fdd384ab56 Explore: Decouple TimeSrv from Explore (#73559) 2023-09-04 14:08:52 +01:00
Piotr Jamróz 291ca54010 Explore: Fix TimeSrv initializations (#73903)
Ensure TimeSrv is re-initializes
2023-08-29 15:05:18 +02:00
Piotr Jamróz b30e0aa5aa Correlations: Add organization id (#72258)
* Add org_id to correlations

* Add tests

* Allow org_id to be null in case org_id=0 is used

* Create organization to ensure stable id is generated

* Fix linting

* Ensure backwards compatibility

* Add deprecation information

* Migrate correlations indices

* Default org_id when migrating

* Remove redundant default

* Make PK non-nullable
2023-08-24 09:39:30 +02:00
Piotr Jamróz f11cc0e60e Explore: Improve handling time range keyboard shortcuts inside Explore (#73600)
* Handle time keyboard shortcuts inside Explore

* Remove unused handler for make absolute

* Remove unused code

* Unify handling keyboard shorcuts logic
2023-08-23 16:02:49 +02:00
Piotr Jamróz ab451d76ac Explore: Improve parsing ranges from URL (#72498)
* Fix parsing absolute range

* Silence warning issued by moment js

* Introduce URLRangeValue to enforce better type-checking

* Fix unit tests

* Allow not passing range to generate ExploreUrl

* Use updated time range format in a test

* Allow empty object to be passed as a data link for backward compatibility

* Update mocks

* Post-merge fixes

* Simplify checking if range is passed as an empty object

* Update docs
2023-08-17 12:06:52 +02:00
Piotr JamrózandHaris Rozajac 922dd94997 Explore: Fix parsing absolute range when URL changes (#72578)
* Fix parsing absolute range when URL changes

* Update public/app/features/explore/hooks/useStateSync/index.test.tsx

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>

* Clean up docs

* Clean up

---------

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2023-08-02 11:56:54 +02:00
Piotr Jamróz 89618e0c0f Explore: Do not update URL when time range changes to absolute (#72436)
Allow passing updateURL flag to absolute time range event
2023-07-31 14:11:44 +02:00
2ae226de89 Explore: Decouple SplitOpen and getFieldLinksForExplore from Panel visualizations (#71811)
* Allow overriding internal data link supplier

* Remove SplitOpen and getFieldLinksForExplore dependencies

* Fix checking if row index is provided

* Fix unit test

* Add a comment

* Mark SplitOpen as deprecated

* Use Panel Context to provide internal data link supplier

* Update packages/grafana-ui/src/components/PanelChrome/PanelContext.ts

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>

* Update packages/grafana-data/src/utils/dataLinks.ts

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>

* Add missing eventsScope

* Fix infinite render loops

* Rename internal data link supplier to data link post processor

* Update packages/grafana-data/src/field/fieldOverrides.ts

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>

---------

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-07-31 14:10:03 +02:00
Piotr Jamróz 173c87beb5 DatasourcePicker: Call onChange only if data source changes (#71630)
Call onChange only when data source changes
2023-07-19 08:39:52 +02:00
Piotr Jamróz dc4cedd298 TestDatasource: Generate refId for the flame graph (#71547)
* Remove hardcoded refId

* Generate correct refId for flameGraph
2023-07-14 15:15:50 +02:00
Piotr Jamróz c191a20591 Explore: Fix Query History flakey test (#71190)
* Baseline benchmark

* Baseline benchmark

* Re-trigger the build

* Use test id

* Re-trigger the build

* Re-trigger the build

* Use test id to speed up the test

* Split query history sync tests
2023-07-10 14:35:54 +02:00
Piotr Jamróz c9c357fc19 Explore: Ensure old panes are removed before opening split view (#70670) 2023-06-27 14:59:13 +02:00
Piotr Jamróz cb2cc591da Explore: Clean up query subscriptions when a query is canceled (#70235)
* Ensure clean up functions are called when query subscriptions are canceled

* Fix unit tests
2023-06-22 15:00:20 +02:00
Piotr Jamróz a94ba7784a Explore: Remove storing derived "loading" property (#70324)
* Remove storing derived state (loading property) and use a selector instead

* Remove redundant tests

There's no way to change the interval while live streaming

* Remove check for isLive when deriving waiting for data

It was introduced in #18804

* Remove unused props
2023-06-20 17:38:05 +02:00
Piotr Jamróz 4f5b80095e Dashboards: Fix broken internal data links (#66567)
* In dashboards splitOpenFn is not passed, instead "href" link is used. When we added tracking we changed the behaviour so onClickFn is always passed when generating the model. To bring back the previous behaviour we skip the onClickFn if the split function is not provided.

* Fix test and add a task to re-check the logic
2023-04-14 14:25:07 +02:00
Piotr Jamróz 1855bca2fa Explore: Promote exploreMixedDatasource feature toggle to beta (#66552)
Promote exploreMixedDatasource to beta
2023-04-14 13:07:46 +03:00
Piotr Jamróz b5e2b0d14c Explore: Allow supplementary query data provider to be undefined for mixed data sources (#66422)
* Switch back to the API where data provider for a supplementary query can be undefined

* Promote exploreMixedDatasource to beta

* Revert "Promote exploreMixedDatasource to beta"

This reverts commit a3bc167d1c.

* Resolve data source in parallel

* Do not modify function params

* Reorganize code for better readability

* Improve readability

* Simplify code

* Stop using a deprecated error property
2023-04-14 11:31:46 +02:00
Piotr Jamróz 92b69dfb97 Correlations: Track completion rate for adding correlations (#66361)
Track completion rate for adding correlations
2023-04-13 09:48:09 +02:00
Piotr Jamróz f48d31171e Docs: Correlations (#66121)
* Add usage stats about correlations

* Add stats.correlations.count to collected stats

* Expose grafana_stat_totals_correlations metric

* Organize imports

* Correlations: Add documentation

* Add info about the feature toggle and move it to beta

* Remove incorrect bullet point

* Remove a bullet point that is not a step

* Update punctuation

* Update punctuation

* Fix typo

* Fix typo

* Grammar

* Rephrase

* Clarify

* Update transformation.field documentation

* Revert automatic merge formatting
2023-04-12 15:24:11 +02:00
Piotr Jamróz 4e14224669 Correlations: Fix parsing create/update response (#66193)
* Fix parsing create/update response

* Make types more explicit
2023-04-12 10:13:28 +02:00
Piotr Jamróz 0bf2b89eb9 Explore: Align multiple log volumes (#64356)
* Align log volumes on x an y axes

* Move helper functions to logs/utils

* Add tests

* Simplify supplementaryQueries.ts

* Fix tests

* Revert code simplifications

To simplify the PR, this can be added in a separate PR

* Fix reusing logs volume when limited/non-limited are used

* Use more specific property name

* Add missing property

* Stretch graph to selected range but only if there's data available

* Fix unit tests

* Fix calculating maximum when bars are stacked

* Sort log volumes by data source name

* Simplify logic to determine if log volumes can be zoomed in
2023-04-11 10:05:04 +02:00
Piotr Jamróz b68be999f7 Correlations: Add usage stats about correlations (#66021)
* Add usage stats about correlations

* Add stats.correlations.count to collected stats

* Expose grafana_stat_totals_correlations metric

* Organize imports
2023-04-11 08:53:34 +02:00
Piotr Jamróz b302cc2297 Correlations: Show correct number of variables (#66191)
* Show correct number of variables

* Remove duplicated test
2023-04-11 08:53:00 +02:00
Piotr Jamróz 423abe3cea Correlations: Show variables used in the target query (#66009)
* Show variables used in the target query

* Remove redundant dot

* Add usage stats about correlations

* Revert "Add usage stats about correlations"

This reverts commit 6f0c70084a.
2023-04-05 21:15:25 +02:00
Piotr Jamróz 90b15d41bf Correlations: Don't show Add button in empty call-to-action page when user has no sufficient permissions (#66006)
Do not show add correlation button if user has no permissions to add new correlations
2023-04-05 21:08:12 +02:00
Piotr JamrózandGiordano Ricci 5c138e16d7 Logs: Merge Log Volumes by data source name (#65392)
* Merge log volume by data source name

* Fix creating response for multiple fallback volumes

* Fix unit tests

* Hide title if there's only one log volume visible

* Make hide title optional

* Remove redundant parentheses

* Do not use frame.name, so the visualization can pick displayNameFromDS from the field config

* Simplify setting aggregated data frame meta data

* Update public/app/features/logs/utils.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Fix legend toggling

* Ensure limited graph info is shown

* Always show the data source name

---------

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-03-29 13:43:56 +02:00
Piotr Jamróz 383148bcd1 Glue: Fix creating duplicated data links created by Correlations (#65490)
* Ensure correlations do not create duplicated data links

* Remove correlation links before processing each correlation

* Improve test coverage
2023-03-29 13:09:27 +02:00
ae3be459f0 Docs: Clean up Explore documentation (#64908)
* Remove the info about custom Prometheus Query Editor as it's not relevant since #60020

* Update basic Explore documentation

* Change graphs and tables to visualizations as Explore supports different types of visualization

* Make clear "Starred" refers to a tab

* Update how to select start/end date for query history

* Remove Prometheus specific section as it's no longer relevant. Prometheus query editor is documented in https://grafana.com/docs/grafana/latest/datasources/prometheus/query-editor/#metrics-browser

* Add informational log level (added in #30942)

* Use more direct language

* Fix a link

* Make headers more consistent

* Minor tweaks

* Update docs/sources/explore/explore-inspector.md

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>

* Do not enumerate bullet points

* Fix incorrect header type

* Update tracing headers

* Link to more info about Mixed data source

* Use "data source" instead of "datasource"

* Fix tracing headers

* Fix more log headers

* Update docs/sources/explore/explore-inspector.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

---------

Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
Co-authored-by: J Stickler <julie.stickler@grafana.com>
2023-03-28 21:53:17 +02:00
Piotr JamrózandTorkel Ödegaard b11186f946 Templating: Optionally save interpolated expressions when replacing variables in a string (#65411)
* Testing a refactor

* update

* Update interface, test interoplations map

* Refactoring

* Add more explicit comment about new behavior

* Update packages/grafana-runtime/src/services/templateSrv.ts

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-03-28 16:19:27 +02:00
Piotr Jamróz b033fe8d73 Glue: Split correlations editor into 3 steps (#64818)
* Create simple Wizard for Correlations editor

* Allow using custom navigation in the wizard

* Update types

* Add more info

* Add comments

* Update comments

* Remove main info box to avoid having too many info boxes

* Fix CorrelationsPage.test.tsx

* Add Wizard test

* Simplify Correlations wizard

* Make expected typing error more explicit

* Don't use meaningless defaults
2023-03-22 20:20:45 +01:00
Piotr Jamróz 8ad9e70ef0 Feature Toggles: Assign ownership of Explore Squad's feature toggles (#64382) 2023-03-08 12:45:45 +01:00
Piotr Jamróz a7238ba933 Explore: Support mixed data sources for supplementary query (#63036)
* Consolidate logs volume logic (full range and limited)

* Fix showing limited histogram message

* Test passing meta data to logs volume provider

* Improve readability

* Clean up types

* Add basic support for multiple log volumes

* Move the comment back to the right place

* Improve readability

* Clean up the logic to support Logs Samples

* Update docs

* Sort log volumes

* Provide title to logs volume panel

* Move logs volume cache to the provider factory

* Add helper functions

* Reuse only if queries are the same

* Fix alphabetical sorting

* Move caching out of the provider

* Support errors and loading state

* Remove unused code

* Consolidate supplementary query utils

* Add tests for supplementaryQueries

* Update tests

* Simplify logs volume extra info

* Update tests

* Remove comment

* Update tests

* Fix hiding the histogram for hidden queries

* Simplify loading message

* Update tests

* Wait for full fallback histogram to load before showing it

* Fix a typo

* Add feedback comments

* Move feedback comments to github

* Do not filter out hidden queries as they may be used as references in other queries

* Group log volume by refId

* Support showing fallback histograms per query to avoid duplicates

* Improve type-checking

* Fix supplementaryQueries.test.ts

* Fix logsModel.test.ts

* Fix loading fallback results

* Fix unit tests

* WIP

* Update deprecated styles

* Simplify test

* Simplify rendering zoom info

* Update deprecated styles

* Simplify getLogsVolumeDataSourceInfo

* Simplify isLogsVolumeLimited()

* Simplify rendering zoom info
2023-03-07 15:00:11 +01:00
Piotr Jamróz 999c836753 Explore: Consolidate logs volume logic (full range and limited) (#61995)
* Consolidate logs volume logic (full range and limited)

* Fix showing limited histogram message

* Test passing meta data to logs volume provider

* Improve readability

* Clean up types

* Move the comment back to the right place

* Improve readability
2023-02-07 14:32:06 +01:00
Piotr JamrózandGiordano Ricci e8ef0395b1 Glue: Hide run queries button in Correlations Page (#61039)
* Hide run queries button in Correlations Page when showing Loki and Prometheus editors

* Use more semantic selectors

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Use more semantic selectors

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Post-merge fix (remove duplicate)

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-01-12 21:14:55 +01:00
Piotr Jamróz 454c8841a4 Glue: Show data links only for fully interpolated correlations (#59052)
* Create data link filters for Explore

* Add comments and make the code more explicit
2022-11-29 10:09:38 +01:00
Piotr Jamróz 039f4cb4dd Explore: Support fields interpolation in logs panel (#58426) 2022-11-10 15:33:17 +01:00
Piotr Jamróz dd5e3a0818 Explore: Track data links usage (#56868)
* Add tracking for data links in explore

* Add tracking for data links in explore

* Fix tests

* Retrigger build
2022-11-02 11:22:09 +01:00
Piotr JamrózandElfo404 ae927eab73 Glue: Enrich query results data frames in Explore with correlations to generate static links from correlations (#56295)
* Attach static generic data link to data frames in Explore

* WIP

* Always load correlations config when the query is run

This will be moved to Wrapper.tsx and called only once Explore is mounted

* remove comment

* Load the config when Explore is loaded

* Clean up

* Check for feature toggle, simplify cod

* Simplify the code

* Remove unused code

* Fix types

* Add a test for attaching links

* Revert package.json changes

* Display title provided in the correlation label

* Add missing mocks

* Fix tests

* Merge branch 'main' into ifrost/integration/attach-generic-data-link

# Conflicts:
#	public/app/features/explore/Wrapper.tsx
#	public/app/features/explore/state/main.ts

* Remove redundant async calls

* Do not block Wrapper before correlations are loaded (only delay the query)

* Test showing results after correlations are loaded

* Post-merge fix

* Use more consistent naming

* Avoid null assertions

Co-authored-by: Elfo404 <me@giordanoricci.com>
2022-10-11 14:40:55 +02:00
Piotr Jamróz a8f43b97a2 Glue: Return correlation config in GET /correlations (#55801)
* Fix getting and creating correlations config

* Fix tests
2022-09-28 12:17:43 +01:00
Piotr JamrózandElfo404 becdf10f0e Glue: Add DB migration & support provisioning for user-defined correlations config (#55560)
* Allow provisioning correlation config

* Simplify code

* Fix reading correlations test

* Fix linting errors

* Fix linting errors

* remove simpleJson

* Clean up

* Fix tests

* Update swagger docs

* Fix linting

* Fix linting

* Clean up swagger definitions

Co-authored-by: Elfo404 <me@giordanoricci.com>
2022-09-27 11:08:02 +02:00
Piotr Jamróz 9b4cdfe652 Correlations: Hide Correlations Page behind a feature toggle (#55224)
* Hide Correlations Page behind a toggle

* Remove redundant defaults

* Ensure top nav is rendered when correlations are disabled

This is for the case when:

[feature_toggles]
topnav = true
2022-09-16 15:14:27 +02:00
Piotr Jamróz 7352c181c2 Migrate user_id to BIGINT (#55084) 2022-09-15 13:29:46 +02:00
Piotr Jamróz 84860ffc96 Query History: Hide query history when anonymous user uses Explore (#49896)
* Hide query history when anonymous user uses Explore

* Show query history to anonymous users when local storage is used

* Fix integration test
2022-06-02 08:51:11 -05:00
Piotr Jamróz 927b6e33c0 Update total items when query history item is deleted to avoid triggering pagination (#49899) 2022-06-02 08:48:24 -05:00
Piotr Jamróz d41b0f0a21 Test commenting query history (#49802) 2022-06-02 08:48:04 -05:00
Piotr Jamróz e0adb41e80 Query History: Add feature tracking for query history (#49685)
* Add feature tracking for query history

* Fix unit tests

* Update event names
2022-05-26 16:04:10 +02:00
Piotr Jamróz a008a01315 Chore: Re-enable skipped test (#49484)
* Re-enable skipped test
2022-05-26 12:01:33 +02:00
Piotr Jamróz a67add5239 Query History: Track query history migration failures (#49560) 2022-05-25 12:21:23 +02:00
Piotr Jamróz f93ad85b08 Chore: Convert a test from enzyme to testing library (#49492) 2022-05-25 12:19:51 +02:00
Piotr Jamróz 5a3cd45f79 Query History: Enable new query history by default (#49407)
* Enable new Query History

* Update docs and sample.ini
2022-05-23 16:53:36 +02:00
Piotr Jamróz 8f4c3e94b0 Query History: Implement star, comment and delete methods (#49330)
* Implement star, comment and delete methods

* Remove redundant await
2022-05-23 15:07:37 +02:00
Piotr Jamróz 9e5292d32d CloudWatch: Remove duplicated metrics (#49400) 2022-05-23 14:52:12 +02:00
Piotr Jamróz 060f0e5633 Query History: Results pagination (#49217)
* Load Rich History when the container is opened

* Store rich history for each pane separately

* Do not update currently opened query history when an item is added

It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.

* Test starring and deleting query history items when both panes are open

* Remove e2e dependency on ExploreId

* Fix unit test

* Assert exact queries

* Simplify test

* Fix e2e tests

* Fix toolbar a11y

* Reload the history after an item is added

* Fix unit test

* Remove references to Explore from generic PageToolbar component

* Update test name

* Fix test assertion

* Add issue item to TODO

* Improve test assertion

* Simplify test setup

* Move query history settings to persistence layer

* Fix test import

* Fix unit test

* Fix unit test

* Test local storage settings API

* Code formatting

* Fix linting errors

* Add an integration test

* Add missing aria role

* Fix a11y issues

* Fix a11y issues

* Use divs instead of ul/li

Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:

Certain ARIA roles must contain particular children
   (https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)

   (#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
   div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)

   <ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>

* Clean up settings tab

* Remove redundant aria label

* Remove redundant container

* Clean up test assertions

* Move filtering to persistence layer

* Move filtering to persistence layer

* Simplify applying filters

* Split applying filters and reloading the history

* Debounce updating filters

* Update tests

* Fix waiting for debounced results

* Clear results when switching tabs

* Improve test coverage

* Update docs

* Revert extra handling for uid (will be added when we introduce remote storage)

* Create basic plan

* Rename query history toggle

* Add list of supported features and add ds name to RichHistoryQuery object

* Clean up

Removed planned items will be addressed in upcoming prs (filtering and pagination)

* Handle data source filters

* Simplify DTO conversion

* Clean up

* Fix betterer conflicts

* Fix imports

* Fix imports

* Post-merge fixes

* Use config instead of a feature flag

* Use config instead of a feature flag

* Update converter tests

* Add tests for RichHistoryRemoteStorage

* Simplify test setup

* Simplify assertion

* Add e2e test for query history

* Remove duplicated entry

* Fix unit tests

* Improve readability

* Remove unnecessary casting

* Mock backend in integration tests

* Remove unnecessary casting

* Fix integration test

* Update betterer results

* Fix unit tests

* Simplify testing with DataSourceSrv

* Fix sorting and add to/from filtering

* Basic pagination

* Show load more only if there are items to load

* Post-merge fixes

* Change initial page limit to 100

* Fix unit tests

* Fix linting errors

* Test pagination

* Fix query migration

* Fix unit tests

* Fix prettier

* Remove full stop

* Do not show number of queries with partial results to avoid confusion

* Show number of displayed results when partial results are shown
2022-05-23 14:43:38 +02:00
Piotr Jamróz 16a948fc88 Query History: Implement RemoteStorage methods: settings (#49320)
* Implement methods to get an update user preferences

* Update integration test

* Update label

* Remove unused type

* Simplify async code
2022-05-23 13:42:12 +02:00
Piotr Jamróz c78b1fb304 Skip Angular error handling when Angular support is disabled (#49311) 2022-05-23 08:33:05 +02:00
Piotr Jamróz 2d48e75e88 Chore: Remove deprecated DataSourceAPI methods (#49313)
* Remove deprecated metods

* Update docs
2022-05-23 08:26:33 +02:00
Piotr Jamróz c6c79a9360 Query History: Migrate local storage to remote storage (#48572)
* Load Rich History when the container is opened

* Store rich history for each pane separately

* Do not update currently opened query history when an item is added

It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.

* Test starring and deleting query history items when both panes are open

* Remove e2e dependency on ExploreId

* Fix unit test

* Assert exact queries

* Simplify test

* Fix e2e tests

* Fix toolbar a11y

* Reload the history after an item is added

* Fix unit test

* Remove references to Explore from generic PageToolbar component

* Update test name

* Fix test assertion

* Add issue item to TODO

* Improve test assertion

* Simplify test setup

* Move query history settings to persistence layer

* Fix test import

* Fix unit test

* Fix unit test

* Test local storage settings API

* Code formatting

* Fix linting errors

* Add an integration test

* Add missing aria role

* Fix a11y issues

* Fix a11y issues

* Use divs instead of ul/li

Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:

Certain ARIA roles must contain particular children
   (https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)

   (#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
   div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)

   <ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>

* Clean up settings tab

* Remove redundant aria label

* Remove redundant container

* Clean up test assertions

* Move filtering to persistence layer

* Move filtering to persistence layer

* Simplify applying filters

* Split applying filters and reloading the history

* Debounce updating filters

* Update tests

* Fix waiting for debounced results

* Clear results when switching tabs

* Improve test coverage

* Update docs

* Revert extra handling for uid (will be added when we introduce remote storage)

* Create basic plan

* Rename query history toggle

* Add list of supported features and add ds name to RichHistoryQuery object

* Clean up

Removed planned items will be addressed in upcoming prs (filtering and pagination)

* Handle data source filters

* Simplify DTO conversion

* Clean up

* Fix betterer conflicts

* Fix imports

* Fix imports

* Post-merge fixes

* Use config instead of a feature flag

* Use config instead of a feature flag

* Update converter tests

* Add tests for RichHistoryRemoteStorage

* Simplify test setup

* Simplify assertion

* Add e2e test for query history

* Remove duplicated entry

* Fix unit tests

* Improve readability

* Remove unnecessary casting

* Mock backend in integration tests

* Remove unnecessary casting

* Fix integration test

* Update betterer results

* Fix unit tests

* Simplify testing with DataSourceSrv

* Fix sorting and add to/from filtering

* Add migration for local storage query history

* Test query history migration

* Simplify testing DataSourceSettings

* Skip redundant migrations

* Revert error logging test

* Fix tests

* Update betterer results

* Change notification message after migration

* Ensure previous request is canceled when getting search results

* Add loading message when results are being loaded

* Show info message only if local storage is enabled

* Fix unit test

* Post-merge fixes

* Fix intergration tests

* Fix incorrect filtering
2022-05-19 13:45:32 +02:00
Piotr Jamróz f252e89339 Query History: Implement RemoteStorage methods: get all, add new (#48330)
* Load Rich History when the container is opened

* Store rich history for each pane separately

* Do not update currently opened query history when an item is added

It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.

* Test starring and deleting query history items when both panes are open

* Remove e2e dependency on ExploreId

* Fix unit test

* Assert exact queries

* Simplify test

* Fix e2e tests

* Fix toolbar a11y

* Reload the history after an item is added

* Fix unit test

* Remove references to Explore from generic PageToolbar component

* Update test name

* Fix test assertion

* Add issue item to TODO

* Improve test assertion

* Simplify test setup

* Move query history settings to persistence layer

* Fix test import

* Fix unit test

* Fix unit test

* Test local storage settings API

* Code formatting

* Fix linting errors

* Add an integration test

* Add missing aria role

* Fix a11y issues

* Fix a11y issues

* Use divs instead of ul/li

Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:

Certain ARIA roles must contain particular children
   (https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)

   (#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
   div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)

   <ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>

* Clean up settings tab

* Remove redundant aria label

* Remove redundant container

* Clean up test assertions

* Move filtering to persistence layer

* Move filtering to persistence layer

* Simplify applying filters

* Split applying filters and reloading the history

* Debounce updating filters

* Update tests

* Fix waiting for debounced results

* Clear results when switching tabs

* Improve test coverage

* Update docs

* Revert extra handling for uid (will be added when we introduce remote storage)

* Create basic plan

* Rename query history toggle

* Add list of supported features and add ds name to RichHistoryQuery object

* Clean up

Removed planned items will be addressed in upcoming prs (filtering and pagination)

* Handle data source filters

* Simplify DTO conversion

* Clean up

* Fix betterer conflicts

* Fix imports

* Fix imports

* Post-merge fixes

* Use config instead of a feature flag

* Use config instead of a feature flag

* Update converter tests

* Add tests for RichHistoryRemoteStorage

* Simplify test setup

* Simplify assertion

* Add e2e test for query history

* Remove duplicated entry

* Fix unit tests

* Improve readability

* Remove unnecessary casting

* Mock backend in integration tests

* Remove unnecessary casting

* Fix integration test

* Update betterer results

* Fix unit tests

* Simplify testing with DataSourceSrv

* Fix sorting and add to/from filtering

* Simplify testing DataSourceSettings

* Update betterer results

* Ensure previous request is canceled when getting search results

* Add loading message when results are being loaded

* Show info message only if local storage is enabled

* Fix unit test

* Reuse sort order options

* Reuse sort order options

* Fix footer spacing
2022-05-17 12:59:16 +02:00
Piotr Jamróz 101ae4b828 Chore: Generate missing theme JSON (#48802) 2022-05-06 12:05:40 +02:00
Piotr Jamróz f0f3134cb1 Explore: Fix legend toggling (#47823) 2022-04-28 15:55:16 +02:00
Piotr Jamróz 361cc18b45 Query History: Move filtering to service layer (#48008)
* Load Rich History when the container is opened

* Store rich history for each pane separately

* Do not update currently opened query history when an item is added

It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.

* Test starring and deleting query history items when both panes are open

* Remove e2e dependency on ExploreId

* Fix unit test

* Assert exact queries

* Simplify test

* Fix e2e tests

* Fix toolbar a11y

* Reload the history after an item is added

* Fix unit test

* Remove references to Explore from generic PageToolbar component

* Update test name

* Fix test assertion

* Add issue item to TODO

* Improve test assertion

* Simplify test setup

* Move query history settings to persistence layer

* Fix test import

* Fix unit test

* Fix unit test

* Test local storage settings API

* Code formatting

* Fix linting errors

* Add an integration test

* Add missing aria role

* Fix a11y issues

* Fix a11y issues

* Use divs instead of ul/li

Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:

Certain ARIA roles must contain particular children
   (https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)

   (#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
   div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)

   <ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>

* Clean up settings tab

* Remove redundant aria label

* Remove redundant container

* Clean up test assertions

* Move filtering to persistence layer

* Move filtering to persistence layer

* Simplify applying filters

* Split applying filters and reloading the history

* Debounce updating filters

* Update tests

* Fix waiting for debounced results

* Clear results when switching tabs

* Improve test coverage

* Update docs

* Revert extra handling for uid (will be added when we introduce remote storage)

* Fix betterer conflicts

* Fix imports

* Fix imports

* Simplify test setup

* Simplify assertion

* Improve readability

* Remove unnecessary casting

* Mock backend in integration tests
2022-04-27 15:07:44 +02:00
Piotr Jamróz 5cb5141c72 Query History: Move local storage specific settings to persistence layer (#47500)
* Load Rich History when the container is opened

* Store rich history for each pane separately

* Do not update currently opened query history when an item is added

It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.

* Test starring and deleting query history items when both panes are open

* Remove e2e dependency on ExploreId

* Fix unit test

* Assert exact queries

* Simplify test

* Fix e2e tests

* Fix toolbar a11y

* Reload the history after an item is added

* Fix unit test

* Remove references to Explore from generic PageToolbar component

* Update test name

* Fix test assertion

* Add issue item to TODO

* Improve test assertion

* Simplify test setup

* Move query history settings to persistence layer

* Fix test import

* Fix unit test

* Fix unit test

* Test local storage settings API

* Code formatting

* Fix linting errors

* Add an integration test

* Add missing aria role

* Fix a11y issues

* Fix a11y issues

* Use divs instead of ul/li

Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:

Certain ARIA roles must contain particular children
   (https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)

   (#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
   div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)

   <ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>

* Clean up settings tab

* Remove redundant aria label

* Remove redundant container

* Clean up test assertions
2022-04-12 18:55:39 +02:00
Piotr Jamróz 7f5e8bb00f Temporarily skip a test that is intermittently timing out and causing build failures. (#47637) 2022-04-12 16:48:37 +02:00
Piotr Jamróz 88ec750728 Query History: Load history when QueryHistoryContainer is opened (#46457)
* Load Rich History when the container is opened

* Store rich history for each pane separately

* Do not update currently opened query history when an item is added

It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.

* Test starring and deleting query history items when both panes are open

* Remove e2e dependency on ExploreId

* Fix unit test

* Assert exact queries

* Simplify test

* Fix e2e tests

* Fix toolbar a11y

* Reload the history after an item is added

* Fix unit test

* Remove references to Explore from generic PageToolbar component

* Update test name

* Fix test assertion

* Add issue item to TODO

* Improve test assertion

* Simplify test setup
2022-04-06 13:49:25 +02:00
Piotr Jamróz 8490fd77e3 Users: clean up OrgId when all user orgs are removed (#46003)
* Clean up orgId when user organization is removed

* Add a test for removing user org

* Fix linting errors

* Update comment

* Fix linting errors

* Make removing user org more explicit
2022-04-06 08:35:58 +02:00
Piotr Jamróz bf977ac245 Explore: Fix time interpolation (#46737)
* Ensure TemplateService is updated with new time range on each time range change.

* Fix linting errors

* Fix explorePane.test.ts

* Reuse createDefaultInitialState

* Remove unused imports

* Add a test for left/right split

* Silence console.error in tests

* Silence console.error in tests
2022-03-29 15:10:40 +02:00
Piotr Jamróz ed155e47c4 Graphite: Fallback to hardcoded list of functions when no functions are returned (#46681) 2022-03-17 14:26:08 +01:00
Piotr JamrózandGiordano Ricci 5715be4afa Explore: Integration test for running a query and saving it in query history (#45728)
* Create basic query history test

* Clean up

* Clean up

* Use run button selector

* Mock AutoSizer instead of monkey-patching

* Reset local storage after each test

* Add accessible name to Run Query button and use it in the test

* Update public/app/features/explore/spec/helper/interactions.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Rename query to urlParams

* Fix linting errors

* Remove unused import

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2022-02-23 19:05:38 +01:00
Piotr Jamróz 25f155a44d Explore: Fix closing split pane when logs panel is used (#45602)
* Clear cache when LogsNavigation is mounted

* Update docs
2022-02-18 15:34:19 +01:00
Piotr JamrózandGiordano Ricci e7605ad974 Query History: Split data and view models (#44922)
* Remove unused properties

* Fix unit tests

* Fix unit tests

* Split data models

* Simplify updating items in rich history

* Update tests

* Fix starring an item and add a unit test

* Move the converter to a separate file and add unit tests

* Convert a private function to an inline function

* Add more docs and clean up the code

* Update public/app/core/history/localStorageConverter.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/core/utils/richHistory.test.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Use template literals over explicit casting

* Split updateRichHistory to three separate functions

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2022-02-10 13:59:43 +01:00
Piotr Jamróz bfe66a1780 Fix conflicts incorrectly resolved in 8fabe8b6a7 (#44975) 2022-02-07 13:36:16 +01:00
Piotr Jamróz a40fa83893 Query History: Remove unused properties (#44904)
* Remove unused properties

* Fix unit tests

* Fix unit tests
2022-02-04 17:05:46 +01:00
Piotr JamrózandGiordano Ricci 6bb6b13379 Query History: Refactor persistence layer (#44545)
* Extract Rich History storage into two separate implementations

Implement getting all entries and adding a new entry

* Add deleting rich history items

* Add editing rich history

* Simplify RichHistoryStorage API

* Reorganize methods

* Rename variable

* Remove feature toggle

* Fix TS errors

* Fix tests

* Clean up

* Clean up only when adding new entry

* Fix showing a warning message

* Use enum instead of a string

* Update public/app/core/history/richHistoryLocalStorage.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/core/history/richHistoryLocalStorage.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Improve readability

* Rename files and remove inferred return types

* Use const over a var

* Remove unsed files

* Remove redundant null check

* Update public/app/core/history/richHistoryLocalStorageUtils.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Fix linting issues

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2022-02-04 12:46:27 +01:00
Piotr Jamróz 9fb8339f87 Elastic: Allow using long/int as date field for alerts (#44027)
* Use integers for time range filter

Previously it was passed as a string which is automatically converted by Elastic to a number only if the field type is "date". For other types (e.g. "long") such conversion doesn't work. In theory "date" could be passed as a formatted string but we don't use it this way and always pass it as a number so it is safe to always pass numbers, not strings.

* Fix time_series_query_test

* Retrigger build
2022-01-17 15:45:09 +01:00
Piotr Jamrózandkay delaney bac9253fdc A11y: Fix a11y issues in OpenTSDB (#43714)
* Fix a11y issues in OpenTSDB configuration page

* Fix a11y issues in OpenTSDB editor

* Link labels to inputs where possible

Co-authored-by: kay delaney <kay@grafana.com>
2022-01-05 19:28:28 +01:00
Piotr Jamróz 1695468de1 Loki: Improve log volume error handling (#42534)
* Reduce verbosity of the error message when log volume query fails

* Fix unit tests
2022-01-03 10:21:11 +01:00
Piotr Jamróz 7682eabd29 Graphite: Make Graphite config page more accessible (#43333) 2022-01-03 10:17:15 +01:00
Piotr Jamróz 19374fce39 Explore: Generic query import/export (#40987)
* Add basic implementation

* Split import/export query interface

* Rename abstract query type

* Rename abstract query type

* Split loki/prom parsing

* Update docs

* Test importing abstract queries to Elastic

* Test exporting abstract queries from Graphite

* Test Prom and Loki query import/export

* Give better control to import/export all queries to data sources

* Fix unit test

* Fix unit test

* Filter out non-existing labels when importing queries to Loki

* Fix relative imports, names and docs

* Fix import type

* Move toPromLike query to Prometheus code

* Dedup label operator mappings

* importAbstractQueries -> importFromAbstractQueries

* Fix unit tests
2021-12-14 14:36:47 +01:00
Piotr Jamróz cf2063f19a Select: Infer dropdown menu position (#42446)
* Infer dropdown menu position when using asynchronously loaded options

* Infer position only when the menu is opened when the component is created

* Add link to react-select bug

* Update docs
2021-12-13 14:59:51 +01:00
Piotr Jamróz bb24e8d578 Chore: Report frontend metrics for JS/CSS load time (#42421)
* Report frontend metrics for js/css load time

* Add FCP metric

* Change comment

* Simplify reporting frontend metrics
2021-12-02 09:34:39 +01:00
Piotr JamrózandGábor Farkas e170073aff A11y: Add aria-label and placeholder to Timeout & Access fields in HTTP Settings (#42559)
* Add aria label and placeholder to timeout input

* datasource settings: improved a11y

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-12-01 13:32:46 +01:00
Piotr Jamróz caf859f498 Add missing aria labels (#42532) 2021-12-01 10:16:09 +01:00
Piotr Jamróz 4e35d35e67 Logs: Cancel log volume query when the main query is canceled (#41856)
* Cancel log volume query when the main query is canceled

* Test keeping complete log volume data when main query is canceled
2021-11-24 15:34:19 +01:00
Piotr Jamróz 8725d3d7e0 Graphite: Limit number of suggestions displayed in Graphite drop downs (#42056)
* Limit number of suggestions displayed in Graphite dropdowns

* Use limit API to reduce number of loaded tags for autocomplete

* Make tests more explicit
2021-11-24 15:08:03 +01:00
Piotr Jamróz b3e417f768 Graphite: Run onChange/onRunQuery after reducer action finishes (#42136) 2021-11-24 14:08:00 +01:00
Piotr Jamróz 10f844e3ad Loki: Rename the hint header (#42205)
X-Query-Tag -> X-Query-Tags (https://github.com/grafana/grafana/pull/42108#discussion_r755776672)
2021-11-24 12:41:52 +01:00
Piotr Jamróz 4db4dc2ce9 Loki: Pass log volume hint as a request header (#42108) 2021-11-23 11:08:37 +01:00
Piotr Jamrózandachatterjee-grafana 7d2e9aa979 Elasticsearch: Enable full range log volume histogram (#41202)
* Rename "Logs volume" labels to "Log volume"

Code references are kept intact as there's a lot of them, it could be renamed in a separate PR just with renaming

* Add log level docs

* Remove feature flag to enable log volume by default

* Update error message

* Update docs

* Fix unit test

* Fix unit test

Queries are now run automatically

* Add extra param for Loki API

* Remove "Load volume" button

* Update documentation about log volume

* Move comment

* Make reload button more accessible

* Update docs/sources/explore/logs-integration.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Hide full range log volume for Loki behind the feature toggle

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-11-10 11:20:30 +01:00