* Range splitting: allow splits larger than 30 days while keeping the fail safe
* Remove limit
* Fix test
* Remove unnecessary try/catch
* Remove unused export
* Query splitting: enable instant queries
* Range splitting: send instant queries as another request group
* Range splitting: increase grouped splitted requests stability
We were defaulting to the `0` index as the first group for the next request batch, but there was no guarantee that the group `0` had a `.partition` entry for `requestN-1`. Now we find the first defined and use that index as the next starting group.
* Range splitting: update unit test
* Range splitting: group metric and logs queries
* Range splitting: intercalate logs and metric queries when > 1 queries
* Range splitting: fix possibly undefined error and remove console log
* Range splitting: update test imports
* Range splitting: add unit tests for multiple queries
* Query splitting: use lodash partition function
* Chore: rename variable
* Chore: attempt to improve readability
* Range splitting: range splitting function
* Range splitting: experiment with 1 hour splits
* Range splitting: reorganize code
* Range splitting: improve code readability and meaning
* Range splitting: add partition limit to prevent infinite loops
* Range splitting: add error handling
* Range splitting: disable for logs queries
* Range splitting: support any arbitrary time splitting + respect original from/to in the partition
* Chore: remove console logs
* Chore: delete unused import
* Range splitting: actually send requests in sequence
* Range splitting: do not split when > 1 query
* Range splitting: combine frames
* Chore: rename function
* split in reverse
* polished reversing
* keep reference to the right frame in the result
* Range splitting: change request state to Streaming
* Range splitting: fix moving only 1 unit of time instead of the provided one
* Chore: change default parameter to timeShift = 1
* Range splitting: do not split for range queqries
* Range splitting: add initial support for log queries
* Range splitting: do not use MutableDataFrame
It has bad performance and it's not required
* Chore: remove unused export
* Query Splitting: move to module
* loki: split: fix off-by-one error (#62966)
loki: split: fix off-by-one loop
* Range splitting: disable for logs volume queries
* Range splitting: combine any number of fields, not just hardcoded 2
* Range splitting: optimize frame-combining function
* Range splitting: further optimize
* Range splitting: combine frame length
* Range splitting: combine stats
* Range splitting: combine stats without assuming the same order
* Query splitting: catch and raise errors
* Range splitting: create feature flag
* Range splitting: implement feature flag
* Range splitting: add unit test for datasource query
* Range splitting: add basic test for runPartitionedQuery
* Range splitting: add unit test for resultLimitReached
* Range splitting: test frame merging
* Chore: fix unit test
---------
Co-authored-by: Sven Grossmann <svennergr@gmail.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* fix(auto-size-input): return maxWidth when realWidth exceeds limit
* fix(query-builder): sex madWidth for simple editor component
* fix(auto-size-input): add unit test
* Logs A11y: Support keyboard interactions with log lines
* LogRowMessage: specify text align
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Chore: refactor test to improve internal categorization of scenarios
* feat(loki-monaco-unwrap): add unwrap situation support
* Chore: remove redundant path from aggregation situation
* feat(loki-monaco-unwrap): add unwrap suggestions
* feat(loki-monaco-autocomplete): rename IN_DURATION and add missing tests
* feat(loki-monaco-autocomplete): detect parser and line filter
* feat(loki-monaco-autocomplete): optionally suggest line filters and parsers
* feat(loki-monaco-autocomplete): improve suggestions and update completions tests
* feat(loki-monaco-autocomplete): allow for multiple line filters suggestions
* Chore: update situations test
* Chore: add test case for AFTER_UNWRAP completion
* feat(loki-monaco-autocomplete): use logs query instead of labels for data sample
* Chore: improve getParser function name and add tests
* Chore: update test mock data
* Update public/app/plugins/datasource/loki/components/monaco-query-field/monaco-completion-provider/situation.test.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* feat(loki-monaco-autocomplete): improve after unwrap detection
* feat(loki-monaco-autocomplete): remove leftover parser detection
* Chore: completely remove parser suggestion exclusion implementation
It was correct to have more than one parser, so we don't need to exclude parsers if one is present.
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* feat(loki-monaco-editor): update e2e test with autocomplete steps
* Chore: replace typing method
* Test simpler POC test
* Chore: refactor test
* Chore: use selector to get the editor value
* feat(loki-monaco-editor): update tests
* chore(loki): use unified datasource mock function in tests
* chore: enable monaco feature flag in tests
* feat(loki-monaco-editor): add test case for disabled feature
* feat(loki-monaco-editor): enable by default
* Revert "feat(loki-monaco-editor): enable by default"
This reverts commit 08904f94a707a4fa32aa1e7f3f0de377575a7636.
* feat(loki-monaco-editor): enable from registry
* feat(loki-monaco-editor): make feature flag frontend only
* loki: switch to a monaco-based query field, step 1 (#46291)
* loki: use monaco-logql (#46318)
* loki: use monaco-logql
* updated monaco-logql
* fix all the tests (#46327)
* loki: recommend parser (#46362)
* loki: recommend parser
* additional improvements
* more improvements
* type and lint fixes
* more improvements
* trigger autocomplete on focus
* rename
* loki: more smart features (#46414)
* loki: more smart features
* loki: updated syntax-highlight version
* better explanation (#46443)
* better explanation
* improved help-text
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Fix label
* feat(loki-monaco-editor): add monaco-logql as a dependency
* feat(loki-monaco-editor): add back range function removed during merge
* feat(loki-monaco-editor): sync imports with recent changes
* feat(loki-monaco-editor): add missing lang provider functions
* feat(loki-monaco-editor): fix imports
* feat(loki-monaco-editor): display monaco editor by default
Temporarily
* Chore: remove commented code
* Chore: minor refactor to NeverCaseError
* Chore: minor code cleanups
* feat(loki-monaco-editor): add history implementation
Will see how it behaves and base the history slicing on tangible feedback
* feat(loki-monaco-editor): turn completion data provider into a class
* Chore: fix missing imports
* feat(loki-monaco-editor): refactor data provider methods
Move complexity scattered everywhere to the provider
* Chore: clean up redundant code
* Chore: minor comments cleanup
* Chore: simplify override services
* Chore: rename callback
* feat(loki-monaco-editor): use query hints implementation to parse expression
* feat(loki-monaco-editor): improve function name
* Chore: remove superfluous variable in favor of destructuring
* Chore: remove unused imports
* Chore: make method async
* feat(loki-monaco-editor): fix deprecations and errors in situation
* feat(loki-monaco-editor): comment failing test case
* Chore: remove comment from test
* Chore: remove duplicated completion item
* Chore: fix linting issues
* Chore: update language provider test
* Chore: update datasource test
* feat(loki-monaco-editor): create feature flag
* feat(loki-monaco-editor): place the editor under a feature flag
* Chore: add completion unit test
* Chore: add completion data provider test
* Chore: remove unwanted export
* Chore: remove unused export
* Chore(loki-query-field): destructure all props
* chore(loki-completions): remove odd string
* fix(loki-completions): remove rate_interval
Not supported
* fix(loki-completions): remove line filters for after pipe case
We shouldn't offer line filters if we are after first pipe.
* refactor(loki-datasource): update default parameter
* fix(loki-syntax): remove outdated documentation
* Update capitalization in pkg/services/featuremgmt/registry.go
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* refactor(situation): use node types instead of names
* Chore: comment line filters pending implementation
It's breaking the build due to a linting error.
* Chore: update feature flag test after capitalization change
* Revert "fix(loki-completions): remove line filters for after pipe case"
This reverts commit 3d003ca4bc.
* Revert "Chore: comment line filters pending implementation"
This reverts commit 84bfe76a6a.
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
* feat(loki-variable-query-support): refactor datasource to support legacy and new variable query format
* Chore: fix comment
* Chore: use internal method to interpolate strings
* Chore: revert removed changes
* Chore: update test
* feat(loki-variable-editor): replace input with select with datasource labels
* feat(loki-variable-editor): update test
* feat(loki-variable-editor): allow the editor to receive an existing query instance and edit it
* feat(loki-variable-editor): allow custom values in the label select
* feat(loki-variable-editor): mark stream field as optional
* feat(loki-variable-editor): add placeholder to stream selector and extend tooltip info
* refactor(elastic-test): add datasource mock factory
* refactor(elastic-test): use new factory and attempt to fix some type issues
* refactor(elastic-test): type fixes
* refactor(elastic-test): update test with mock changes
* refactor(elastic-test): remove commented code
Git history should be more than enough to go back to previous revisions instead of keeping commented code.
* refactor(elastic-test): use mock factory and fix type issues in language provider test
* Chore: rename mock parameter
* Chore: remove unnecessary conditional
* Chore: remove ts-expect-error
* feat(loki-query-editor): create base editor component
* feat(loki-query-editor): update editor to use loki query type
* feat(loki-query-editor): add custom variable support to datasource
* feat(loki-query-editor): prevent errors when no label is present
* Add unit test for LokiMetricFindQuery
* Update datasource test
* Add component test
* Add variable query migration support
* feat(loki-query-editor): add migration support for older-format variables
* Fix enum capitalization for consistency
* Move attribute to the top of the class
* Remove unnecessary from()
* Update capitalization of new enum
* Fix enum capitalization in component
* feat(loki-query-editor): replace unnecessary class with class method
* refactor(loki-test): move mock creation to mock module
* refactor(loki-test): allow to pass custom settings to the mock constructor
* refactor(loki-test): refactor mock factory in datasource test
* refactor(loki-test): revert change in undefined test case for dsMaxLines
* refactor(loki-test): move type assertion to mock definition
* refactor(loki-test): fix more type issues
* refactor(loki-explore-query-editor): refactor test to use createLokiDatasource() and fix type issues
* refactor(loki-test): replace makeMockLokiDatasource with metadataRequest factory
* fix: remove any
* fix(loki-test): fix remaining usages of any
* Fix: add missing exported type
* refactor(loki): use Loki parser in getHighlighterExpressionsFromQuery
* fix(highlighter): update regex to properly identify term quotes
* refactor(highlighter): determine quote type by string comparison
* Chore: remove empty line
* Chore: add missing refId property to LokiQuery type
* Chore: fix types in Loki querybuilder state test
* Chore: remove unnecessary added property to LokiQuery