Commit Graph

148 Commits

Author SHA1 Message Date
Galen Kistler
faa29db241
Logs Panel: Table UI - Pull logs table into dashboard panel (#77757)
* Allows users to add a logs table in explore to a dashboard panel via the includeByName transformation
2023-11-29 10:01:28 -06:00
Matias Chomicki
630b8a30be
Popover menu: update tracking attributes + move under Explore/logs (#78739)
* Popover menu: update event tracking attributes

* Popover menu: move under explore/loggs

* Popover menu: narrow down support to only Explore app
2023-11-28 15:21:37 +02:00
Matias Chomicki
ec7d09b8e0
Popover menu: refactor event tracking (#78733) 2023-11-28 12:44:08 +00:00
Sven Grossmann
177496a686
Loki: Filter by labels based on the type of label (structured, indexed, parsed) (#78595)
* add label addition based on labeltype

* add `logRowToDataFrame`

* change to single row dataframe

* add documentation

* add tests for `LogDetailsRow`

* add tests for datasource

* remove row

* update tests

* fix tests

* PR comments

* removed comment

* add comment

* remove params

* remove unused jsdoc

* move `getLabelTypeFromFrame` to `languageUtils`

* add tests

* remove `refId` and use `frame`

* fix tests

* Update public/app/plugins/datasource/loki/modifyQuery.ts
2023-11-27 14:29:00 +01:00
Matias Chomicki
5db420619d
Logs Popover Menu: close menu on right click (#78674)
LogRows: close menu on right click
2023-11-27 12:36:55 +00:00
Matias Chomicki
02068662c1
Logs: create DataSourceWithQueryModificationSupport + determine popover menu support (#78322)
* DataSourceWithQueryModificationSupportSupport: create interface

* Loki: implement DataSourceWithQueryModificationSupportSupport

* Elasticsearch: implement DataSourceWithQueryModificationSupportSupport

* DataSourceWithQueryModificationSupportSupport: add type guard

* DataSourceWithQueryModificationSupport: rename

* Check for nullish values in guards

* Logs container: replace support map with ds instances map

* Log rows: refactor deselection listener

* Formatting

* Formatting

* DataSourceWithQueryModificationSupport: add missing comment

* Logs container: update method name

* Logs container: check for query modification support

* Create QueryFixType

* QueryFixAction: move back to ds types

* getSupportedQueryModifications: update signature

* getSupportedQueryModifications: update signature
2023-11-23 11:04:23 +01:00
Matias Chomicki
9cb303c3f7
Log Rows: Added popover menu with filter options when a log line is selected (#75306)
* LogRow: detect text selection

* LogRow: refactor menu as component

* LogRow: add actions to menu

* LogRow: hack menu position

* Remove unsused imports

* LogRowMessage: remove popover code

* PopoverMenu: refactor

* LogRows: implement PopoverMenu at log rows level

* PopoverMenu: implement copy

* PopoverMenu: receive row model

* PopoverMenu: fix onClick capture issue

* Explore: add new filter methods and props for line filters

* PopoverMenu: use new filter props

* Explore: separate toggleable and non toggleable filters

* PopoverMenu: improve copy

* ModifyQuery: extend line filter with value argument

* PopoverMenu: close with escape

* Remove unused import

* Prettier

* PopoverMenu: remove label filter options

* LogRow: rename text selection handling prop

* Update test

* Remove unused import

* Popover menu: add unit test

* LogRows: update unit test

* Log row: hide the log row menu if the user is selecting text

* Log row: dont hide row menu if popover is not in scope

* Log rows: rename state variable

* Popover menu: allow menu to scroll

* Log rows: fix classname prop

* Log rows: close popover if mouse event comes from outside the log rows

* Declare new class using object style

* Fix style declaration

* Logs Popover Menu: add string filtering functions (#76757)

* Loki modifyQuery: add line does not contain query modification

* Elastic modifyQuery: implement line filters

* Modify query: change action name to not be loki specific

* Prettier

* Prettier

* Elastic: escape filter values

* Popover menu: create feature flag

* Log Rows: integrate logsRowsPopoverMenu flag

* Rename feature flag

* Popover menu: track interactions

* Prettier

* logRowsPopoverMenu: update stage

* Popover menu: add ds type to tracking data

* Log rows: move feature flag check

* Improve handle deselection
2023-11-16 11:48:10 +02:00
Ivana Huckova
c0a866d7c7
Logs: For LogLines frames, don't show additional fields in log details (#78109)
* Logs: Don't use other fields in log details for log details

* Reorder variables

* Update comment

* Update comment
2023-11-15 12:02:32 +01:00
Ivana Huckova
cb711660f1
Logs: Use "labels" data frame field if type "other" in log details (#77806)
* Logs: Use labels field if time other

* Keep loki test
2023-11-10 12:54:59 +01:00
Esteban Beltran
0b03344baa
Chore: Update to typescript 5 (#76511)
* Update dependency typescript to v5

* Update yarn.lock

* Fix typescript errors

* Update typescript version sdk

* Revert useDescription.ts

* Fix ts errors

* Fix Typescript errors after Symbol.unscopables type change

* Fix colormanipulator errors

* Update packages/grafana-data/src/vector/FunctionalVector.ts

* Fix ts errors in dashboardmigrator

* Fix sandbox component typescript error

* Update yarn

* Update to typescript 5.2

* Fix typescript error

* update typescript/vscode patch/sdk/whatever

* fix ts errors in elasticsearch

* Fix two errors in alerting

* Fix error in dashboard-scene

* Fix errors in dashboard tests

* Fix errors in explore tests

* Fix error in plugins sandbox

* fix error in DashboardQueryRunner

* fix errors in grafana-data

* fix errors in PanelChrome story

* update betterer

* better fix for cloud monitoring

* fix error in reducer tester

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Co-authored-by: joshhunt <josh@trtr.co>
2023-11-07 13:20:20 +00:00
Ivana Huckova
d4a257bc8e
Logs: Update logic to process logs dataPlane frame with labels field (#77708)
* Logs: Update dataplane logic to use labels instead of attributes

* Update Loki logs data plane data frame according to specs

* Remove only in test
2023-11-07 10:53:10 +01:00
Matias Chomicki
7e1110f1f9
Log Row: memoize row processing (#77716)
* LogRow: memoize row processing

* Rename method
2023-11-06 16:59:48 +02:00
Matias Chomicki
d7c50eb650
Logs: Deprecated showContextToggle in DataSourceWithLogsContextSupport (#77232)
* Logs: deprecate showContextToggle

* Logs: make row mandatory on showContextToggle prop

* DataSourceWithLogsContextSupport: make showContextToggle optional

* Loki: update test

* Update packages/grafana-data/src/types/logs.ts

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

* Prettier

* showContextToggle: update deprecation

---------

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2023-10-31 13:37:44 +02: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
Matias Chomicki
46f331e284
Logs: remove toggleLabelsInLogsUI (#77264)
* toggleLabelsInLogsUI: remove flag

* Remove unused imports

* isFilterLabelActive: refId is not optional

* Revert "isFilterLabelActive: refId is not optional"

This reverts commit 008931b7e9.

* Revert method signature change

* Update tests

* Update tests
2023-10-27 13:00:49 +02:00
Torkel Ödegaard
fc0933d5f4
Schema: Clean up dashboard variables schema (#76121)
* Cleanup variable schema model

* minor fix

* remove type ignores that are no longer type errors
2023-10-09 09:10:52 +02:00
Josh Hunt
720543f483
Chore: Remove unreachable return in parseDataplaneLogsFrame (#75516) 2023-09-27 11:11:37 +00:00
Sven Grossmann
01755608db
LogDetails: Fix copy button visibility (#74663)
* change css classname

* remove class

* Log details row: refactor style variable and add class to copy container

* Log details row: refactor test

* Prettier

* Update test

* Use toBeVisible

* Remove unsused import

* Update public/app/features/logs/components/LogDetailsRow.test.tsx

* remove `cx`

* fix lint

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>
2023-09-13 19:45:49 +02:00
Galen Kistler
4f5728233c
Logs Panel: Performance issue while scrolling within panel in safari (#74694)
* adding contain:strict to let browsers know the layout of logs panel can be rendered independently

* add new prop to allow LogRow component to contain content
2023-09-12 09:57:14 -05:00
Sven Grossmann
f53c0a35aa
LogContext: Remove feedback button (#74447)
remove feedback button
2023-09-06 16:46:48 +03:00
Matias Chomicki
04c44f0a11
Explore Logs: Update log filtering functions to only have effect in the source query (#73626)
* isFilterLabelActive: add row parameter to method signature

* onClickFilter: add row parameter to method signature

* Explore: implement optional row parameter to modify queries

* LogDetails: add integration test with filters and log details row

* Change signature from LogRowModel to string

* Add refid reference to tooltips
2023-09-04 14:30:17 +00:00
Sven Grossmann
5e61b54fa3
Logs: Fix permalinks not scrolling into view (#73464)
* fix log line scrolling

* add scrolling tests

* fix `LogRow` tests
2023-08-18 12:54:08 +02:00
Matias Chomicki
48c3dc7203
Logs: Hide filters in log details if the data source doesn't support them (#73230)
* Logs: Hide filters in log details if the data source doesn't support them

* Logs Container: use logsQueries prop

* Log details: add filters visibility test
2023-08-17 17:53:11 +02:00
Matias Chomicki
0fe53fbd1d
Log row: split row-highlighting booleans in two (#73330) 2023-08-16 17:51:18 +02:00
Ashley Harrison
963fffeef1
Chore: fix some more types (#72726)
fix some more types
2023-08-14 16:04:04 +01:00
Sven Grossmann
533fae4c60
Logs: Fix displaying the wrong field as body (#73025)
* fix displaying the wrong field as body

* fix test

* fix `getFirstFieldOfType` with non-present type
2023-08-08 12:02:30 +02:00
Matias Chomicki
869d3fc8b1
LogRowMessage: remove hardcoded true from condition (#72976) 2023-08-07 17:41:03 +03:00
Matias Chomicki
9c6a9a3977
Logs: Improved keyboard accessibility of log rows menu (#72686)
* Log Row Menu Cell: improve accessibility

* Explain implementation in comments

* Make onBlur mandatory
2023-08-02 16:36:53 +00:00
Ashley Harrison
e0587dfb30
Chore: Replace deprecated usage of shape.borderRadius() (#72672)
* properly mark borderRadius() as deprecated, replace borderRadius() with default

* undo a couple of changes

* use radius.pill in FilterPill
2023-08-01 14:46:07 +01:00
Ivana Huckova
117e334719
Logs: Fix ui getting stuck when removing fields (#72597)
* Logs: Fix ui getting stuck when removing fields

* Update public/app/features/logs/components/LogDetailsRow.tsx

* Update

* Fix tests
2023-07-31 15:47:26 +02:00
Gábor Farkas
0da199324a
logs: log-details: handle dataplane-compliant dataframes (#71935)
* logs: log-details: handle dataplane-compliant dataframes

* lint fix, removed unused import
2023-07-26 10:56:26 +02:00
Matias Chomicki
ec5650cc82
LogRow: ensure scrollIntoView is called only once with shortlinks (#72291) 2023-07-25 18:00:10 +02:00
Gábor Farkas
63e0b927bd
logs: context: various scrolling-fixes (#72271)
* logs: context: correctly append to the above&below arrays

* logs: context: on initial load always scroll to center

* logs: context: reset counts when context-query-ui changes
2023-07-25 14:34:02 +02:00
Gábor Farkas
f2f30caa73
logs: better unit tests (#72246) 2023-07-25 10:50:54 +02:00
Matias Chomicki
84f94cdc24
Logs: Show active state of "filter for value" buttons in Logs Details (#70328)
* Datasource test: fix describe nesting

* Parsing: export handleQuotes function

* Modify query: add functions to detect the presence of a label and remove it

* Loki: add support to toggle filters if already present

* Datasource test: fix describe nesting

* Loki: add support to toggle filter out if present

* Remove label: handle escaped values

* Datasource: add test case for escaped label values

* Loki: remove = filter when applying !=

* Remove selector: add support for Selector node being far from Matcher

* Modify query: add unit tests

* Elasticsearch: create modifyQuery for elastic

* Elastic modify query: implement functions

* Elasticsearch: implement modifyQuery functions in datasource

* Elasticsearch: update datasource test

* Loki modify query: check for streamSelectorPositions length

* Elasticsearch query has filter: escape filter value in regex

* Remove unused type

* Modify query: add functions to detect the presence of a label and remove it

* Remove label: handle escaped values

* Logs: create props to check for label filters in the query

* Log Details Row: use label state props to show visual feedback

* Make isCallbacks async

* Explore: add placeholder for checking for filter in query

* Datasource: define new API method

* Inspect query: add base implementation

* Remove isFilterOutLabelActive as it will not be needed

* Check for "isActive" on every render

Otherwise the active state will be out of sync

* Elasticsearch: implement inspectQuery in the datasource

* Logs: update test

* Log details: update test

* Datasources: update tests

* Inspect query: rename to analize query to prevent confusion

* Datasource types: mark method as alpha

* Explore: add comment to log-specific functions

* Remove duplicated code from bad rebase

* Remove label filter: check node type

* getMatchersWithFilter: rename argument

* Fix bad rebase

* Create DataSourceWithQueryManipulationSupport interface

* Implement type guard for DataSourceWithQueryManipulationSupport

* DataSourceWithQueryManipulationSupport: move to logs module

* hasQueryManipulationSupport: change implementation

`modifyQuery` comes from the prototype.

* DataSourceWithQueryManipulationSupport: expand code comments

* AnalyzeQueryOptions: move to logs module

* DataSourceWithQueryManipulationSupport: add support for more return types

* Fix merge error

* Update packages/grafana-data/src/types/logs.ts

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

* DatasourceAPI: deprecate modifyQuery

* Explore: refactor isFilterLabelActive

* DataSourceWithQueryModificationSupport: rename interface

* Split interfaces into Analyze and Modify

* Query analysis: better name for interface

* Fix guard

* Create feature flag for active state

* Use new feature flag in Explore

* DataSourceToggleableQueryFiltersSupport: create a specific interface for this feature

* Rename feature flag

* De-deprecate modifyQuery

* DataSourceToggleableQueryFiltersSupport: Rethink types and methods

* Explore: adjust modifyQuery and isFilterLabelActive to new methods

* Loki: implement new interface and revert modifyQuery

* DataSourceToggleableQueryFiltersSupport: better name for arguments

* Elasticsearch: implement new interface and revert modifyQuery

* Loki: better name for arguments

* Explore: document current limitation on isFilterLabelActive

* Explore: place toggleable filters under feature flag

* Loki: add tests for the new methods

* Loki: add legacy modifyQuery tests

* Elasticsearch: add tests for the new methods

* Elasticsearch: add legacy modifyQuery tests

* Toggle filter action: improve type values

* Logs types: update interface description

* DataSourceWithToggleableQueryFiltersSupport: update interface name

* Update feature flag description

* Explore: add todo comment for isFilterLabelActive

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-07-24 11:22:47 +03:00
Gábor Farkas
d4dcf9f9d2
logs: log-details: updated test for more complete mock data (#71941)
logs: updated test for more realistic mock data
2023-07-19 14:37:37 +02:00
Gábor Farkas
709e4de7c6
logs: log-details: test for datalink without field value (#71922)
* logs: log-details: test for datalink without field value

* added more test-cases
2023-07-19 14:12:49 +03:00
Gábor Farkas
eaeeb5c698
logs: improved unit tests (#71840) 2023-07-19 11:42:23 +02:00
Ivana Huckova
72c92ca187
Logs: Fix shouldRemoveField (#71882) 2023-07-18 19:12:25 +02:00
Gábor Farkas
9b6c7b74c7
logs: added test for parsing a dataplane-logs-frame (#71758)
logs: added tests for parsing a dataplane-logs-frame
2023-07-18 13:33:49 +02:00
Matias Chomicki
43f4e55a76
LogRowMessageDisplayedFields: sync implementation with LogRowMessage (#71770)
* LogRowMessageDisplayedFields: sync implementation with LogRowMessage

* Add regression test
2023-07-17 18:20:25 +03:00
Gábor Farkas
d0351bac57
logs: restrict permalinks to datasources with id fields (#71729)
* logs: restrict permalinks to datasources with id fields

* simplified code

* more tests

* more test

* removed unnecessary comment

* fixed tests

* updated tests
2023-07-17 15:01:48 +02:00
Gábor Farkas
ab58466d09
logs: improve logs-frame parsing (#71450)
* logs: improve logs-frame parsing

* renamed fields
2023-07-17 14:42:33 +02:00
Matias Chomicki
1f3aa099d5
Log rows performance: Render LogRowMenuCell on demand (#71354)
* Log row menu: refactor visibility

* LogRowMenuCell: display if mouse over or pinned

* LogRowMenuCell: use unique wrapper for all buttons

* Revert to using table row as position reference

* Log row message: update test

* Fix tests

* LogRow: handle mouse over behavior
2023-07-14 14:49:08 +03:00
Gábor Farkas
98f4bbf7fa
logs: context small improvements (#71546)
adjusted page size
normalize logrow refid
add tracking
2023-07-13 12:18:26 +00:00
Gábor Farkas
1f55003db2
logs: make sure log-row-react-keys are always unique (#71279) 2023-07-13 08:01:55 +02:00
Sven Grossmann
7e4e743a42
Logs: Add experimental table visualisation in Explore (#71120)
* add table visualisation for logs

* add `logsExploreTableVisualisation` feature flag

* add feature flag to visualisation switch

* fix english

* improve state when no data is present

* improve margin

* add missing prop to test

* add tests

* fix logs table height

* fix linting

* move visualisation toggle

* add field config overrides

* update tests

* fix explore test

* fix explore test

* add missing header and revert test changes

* use timefield from logsFrame.ts

* add TODO

* move to new file

* hide fields that should be hidden

* add test to hide fields

* remove unused lines
2023-07-12 15:52:42 +02:00
Sven Grossmann
9ddba37dbc
Logs: Fix nanosecond partition in log context (#71346)
* add ts partition

* fix setting wrong loadingstate

* improve setContext

* update context and test
2023-07-11 16:20:41 +02:00
Matias Chomicki
b8fbeb084a
Logs: Display log row menu cell on displayed fields (#71300)
* LogRowMenuCell: create component

* LogRowMessage: use new LogRowMenuCell component

* LogRowMessage: turn into functional component

* LogRowMenuCell: memoize component

* LogRowMessage: remove cx

* LogMessage: create component from function

* LogRowMessageDisplayedFields: turn into component

* LogRowMessageDisplayedFields: add LogRowMenuCell

* LogRowMessageDisplayedFields: rename prop and pass missing context prop

* LogRowMessageDisplayedFields: add unit test
2023-07-11 14:50:53 +02:00
Sven Grossmann
212239aedb
LogContext: Fix a bug where multiple logs with similar nanosecond timestamps were loaded too often (#71319)
fix bug with multiple ns logs
2023-07-11 10:00:10 +02:00