* add query tracking
* add app
* add comment
* use `reportInteraction` not `console.log`
* add test to `queryUtils`
* organize imports
* add datasource tests
* change `metrics` to `metric`
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* change `parseToArray` to `parseToNodeNamesArray`
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* 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-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
* 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
* 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>
* Basic implementation of getLogsVolumeQuery method
* Add todos
* Add a switcher to automatically load logs volume
* De-scope dismissing logs volume panel
* De-scope logs volume query cancellation
* Remove todo
* Aggregate logs volume components in single panel
* Show logs volume only when it's available
* Aggregate logs volume by level
* Simplify aggregation
* Handle no logs volume data
* Add error handling
* Do not show auto-load logs volume switcher when loading logs volume is not available
* Remove old logs volume graph
* Clean up
* Make getting data provider more generic
* Provide complete logs volume data (error, isLoading)
* Display more specific error message
* Add missing props to mocks
* Remove setRequest method
* Mark getQueryRelatedDataProviders as internal
* Add missing dataQueryRequest and add a todo
* Remove redundant loading state
* Do not mutate existing queries
* Apply fix for zooming-in from main
* Post-merge fixes
* Create collection for data provider results
* Use more generic names
* Move aggregation logic to Loki logs volume provider
* Move LogsVolume to common types
* Update tests
* Post-merge fixes
* Fix mapping related data values
* Simplify prop mappings
* Add docs
* Fix property name
* Clean-up
* Mark new types as internal
* Reduce number of providers to logs volume only
* Simplify data structure to DataQueryResponse
* Move Logs Volume panel to a separate component
* Test logsVolumeProvider.ts
* Add observable version of datasource mock
* Test getLogsVolumeDataProvider method
* Test LogsVolumePanel
* Test logs volume reducer
* Clean up
* Clean up
* Fix test
* Use sum by to use level field directly
* Fix strict type errors
* Fix strict type errors
* Use "logs" instead of "unknown" if only one level was detected
* Add docs about logs volume
* Rename histogramRequest to logsVolumeRequest
* Use LogsVolumeContentWrapper all content types
* Move `autoLoadLogsVolume` local storage handling
* Fix strict error
* Move getting autoLoadLogsVolume to initial state
* Cancel current logs volume subscription
* Test cancelling subscriptions
* Update docs/sources/datasources/loki.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Inline container styles
* Ensure logs volume is aggregated per each subscription separately
* Simplify logs volume provider
* Type-guard support for logs volume provider
* Simplify event handlers to avoid casting
* Clean up and docs
* Move auto-load switcher to logs volume panel
* Fix test
* Move DataSourceWithLogsVolumeSupport to avoid cross referencing
* Simplify interface
* Bring back old histogram and hide the new one behind a feature flag
* Add missing props to logs histogram panel
* Clean up the provider when it's not supported
* Simplify storing autoLoadLogsVolume
* Remove docs
* Update packages/grafana-data/src/types/logsVolume.ts
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Skip dataframes without fields (instant queries)
* Revert styles changes
* Revert styles changes
* Add release tag
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Add input to specify min step
* Add stepInterval to as input to component
* Add onBlur to Input component
* Loki: add functionality for min step
* Loki: change name on props to step to make it more clear
* Loki: add resolution as a query option
* Loki: Add min,max,exact as step options
* Loki: add functionality for different step modes
* Loki: fix bug where step function isn't working
* Loki: fix bug where exact step isn't working
* Loki: change width of step input field
* Loki: add tests for adjustInterval function
* Loki: add check for max step oprio to make sure it's not below the safe interval
* Loki: fix bug with some tests
* Loki: fix bug with tests
* Explore: add tooltip to loki step function
* Loki: remove resolution as a logs option
* Loki: update snapshots
* Fix failing tests
* Loki: add select component for choosing resolution
* Loki: add functionality for calculating correct interval with resolution applied
* Loki: remove functionality for step mode
* Loki: remove tests for step mode
* Loki: add tooltip to line limit and resolution
* Loki: add backend support for resolution
* Loki: fixed backend bug where resolution was undefined
* Loki: add check for resolution