Commit Graph

57 Commits

Author SHA1 Message Date
Edvard Falkskär 2669e0a770
LogsView + TraceView: Add time range to resource attributes extension range (#111171) 2025-09-24 08:49:18 +01:00
Hugo Häggmark 2b8c74de2e
i18n: removes useTranslate hook (#106556)
* i18n: removes useTranslate hook

* chore: fix duplicate imports

* chore: fix import sorting and hook dependencies
2025-06-12 11:03:52 +02:00
Hugo Häggmark 119d5897ea
i18n: imports use @grafana/i18n (#105177)
* i18n: everything should target @grafana/i18n

* wip

* chore: updates after PR feedback

* Trigger build

* Trigger build

* Trigger build

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: revert all flaky tests

* chore: some incorrect usages of useTranslate
2025-05-15 09:17:14 +02:00
Matias Chomicki 815d17bd5c
Logs: Fixed prettify JSON behavior with unescaped content (#105390)
* LogRowMessage: unescape after prettifying

* Add unit tests
2025-05-14 15:06:19 +02:00
Ashley Harrison 1c5545da04
Internationalisation: Check and mark up tooltip content prop (#104536)
* make lint rule check for "content"

* undo unnecessary translation
2025-04-30 14:40:15 +01:00
Edvard Falkskär e45f2d0a18
Logs: Add labels as variable for use in correlations/links (#103605) 2025-04-15 16:08:29 +02:00
Galen Kistler 5c785e6101
LogsPanel: Fix safari text selection bug (#99522)
* feat: a11y review - remove anchor wrapping LogMessage, instead style expand button focus to wrap row
2025-01-27 12:05:50 -06:00
Matias Chomicki 52673ad390
Log rows: Refactor as functional components and remove render preview (#98025)
* LogRow: migrate to functional component

* LogRowContextModal: remove dependency between test cases

* LogRows: turn into functional component

* LogRows: try GhostRow, preview, and move event listeners to the parent

* LogRows: adjust preview size for few log rows

* Explore: optimize inline and derived props

* Remove log

* Logs: restore set displayed fields

* Refactor props that cause re-renders

* Unmemoize shouldShowMenu

* Refactor to PreviewLogRow and add preview to DisplayedFields

* Refactor moving listeners to parent

* Update unit tests

* LogRows: update preview size to twice screen height

* Revert change

* Update unit test

* Update utils test

* Update logsPanel unit test

* Improve permalinking

* LogRows: decrease preview size

* PreviewRow: render log entry

* Prettier

* LogRow: update unit test

* Update missing props

* Fix logs volume toggling

* Destructure prop
2024-12-18 19:03:47 +01:00
Matias Chomicki 8243e030b4
Log Labels: add support to disable labels for unique labels (#97567)
* LogLabels: add support to disable labels for unique labels

* LogRow: disable tooltip for unique labels
2024-12-06 18:15:25 +02:00
Matias Chomicki f3783146bb
Explore: Sync logs displayed fields with URL state (#96242)
* Explore: store displayedFields in URL state

* Displayed fields: reset when queries change

* Add test

* LogRowMessageDisplayedFields: pass logRowMenuIcons props to component

* LogsMetaRow: use primary outline for reset button

* Logs: clear displayedFields from URL
2024-11-19 16:27:26 +01:00
Matias Chomicki d6efd6d606
Logs Panel: Added support to pass custom options to the log rows menu (#95330)
* LogsPanel: add props to prepend or append icons to the log row menu

* LogsPanel: add test and type guard

* LogsPanel: add test

* Fix addonBefore position

* Refactor to be an array of ReactNode

* Remove comment

* chore: add docs

* Linting issues
2024-10-28 17:39:12 +01:00
Galen Kistler 867f3f793c
Logs Panel: Only send DataHoverClearEvent on container mouse leave event (#92526)
* fix: stop sending clear events between every row, and only when the mouse leaves the container
2024-08-27 22:44:17 +03:00
Sven Grossmann e7156e7e60
Logs: Remove `grafana_explore_logs_log_details_clicked` event (#91171) 2024-07-30 20:12:30 +02:00
Galen Kistler 1367d5d721
Logs: Add log line to content outline when clicking on datalinks (#90207)
* feat: add bg color to pinned logs, pin logs when opening datalinks
2024-07-12 08:14:53 -05:00
Ashley Harrison 47f8717149
React: Use new JSX transform (#88802)
* update eslint, tsconfig + esbuild to handle new jsx transform

* remove thing that breaks the new jsx transform

* remove react imports

* adjust grafana-icons build

* is this the correct syntax?

* try this

* well this was much easier than expected...

* change grafana-plugin-configs webpack config

* fixes

* fix lockfile

* fix 2 more violations

* use path.resolve instead of require.resolve

* remove react import

* fix react imports

* more fixes

* remove React import

* remove import React from docs

* remove another react import
2024-06-25 12:43:47 +01:00
Travis Patterson 59f255bb7f
Add info tooltips to logs that have been sampled by adaptive logs (#89320)
* Add info tooltips to logs that have been sampled by adaptive logs

* review commends and linter changes

* make warnings match info

* fix betterer results
2024-06-18 19:54:14 +03:00
Haris Rozajac 2d370f3983
Explore: Logs pinning in content outline (#88316)
* wip: working version

* add delete buttons, put pinned logs on top,

* Use already available onPinLine prop

* cleanup

* Fix alignment of pinned log

* Limit to 3 pinned log lines

* Format tooltip message

* Lower to font size and adjust padding so pinned log title is fully visible

* Add internationalization support in Explore Logs

* Update json for i18n

* Test remove button

* Open content outline after pinning a log

* Remove console.log statements

* Minor changes

* Conflict stuff
2024-06-11 11:15:36 -06:00
Matias Chomicki 97cb92eb1e
Logs: Added multi-line display control to the "wrap lines" option (#88144)
* LogRowMessage: strip new lines when wrapping is disabled

* LogRowMessage: prevent conflicts between failed json parsing and unwrapping

* LogRowMessage: expand multi-line unwrapped logs when opening details

* Add unit test

* Prettier

* chore: update comment
2024-05-28 11:59:11 +03:00
Ivana Huckova 12a87c0899
Logs panel: Fix spacing when log details disabled (#87431)
* Logs panel: Fix spacing when log details disabled

* Fix error spacing
2024-05-07 15:27:44 +03:00
Sven Grossmann 99a821e665
Log Context: Add `cacheFilters` property (#79784)
* add `forceApplyFilters` property

* PR review

* fix tests

* remove import

* comment flaky test

* add context tab documentation

* review

* doc
2023-12-21 17:02:29 +01:00
Sven Grossmann f05cbe589a
Loki: Open log context in new tab (#79723)
* pass `getLogRowContextQuery` to component

* reset `appliedContextFilters` in `getLogRowContextQuery`

* open show context in new tab

* open window before crafting url

* only open in new tab if getRowContextQuery is set

* only open `about:blank`

* change conditional
2023-12-20 22:10:29 +01: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 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
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
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 0fe53fbd1d
Log row: split row-highlighting booleans in two (#73330) 2023-08-16 17:51:18 +02: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
Matias Chomicki ec5650cc82
LogRow: ensure scrollIntoView is called only once with shortlinks (#72291) 2023-07-25 18:00:10 +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
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
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
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 1206cf3dfa
LogContext: Make centered row unsticky on click (#70832)
* add pinning in log context

* add tests

* move icon names

* fix type of `pinned`
2023-06-28 15:22:54 +02:00
Sven Grossmann 90b621be20
Logs: Add tracking for permalinking (#70334)
* add permalink tracking

* move location override to beforeAll

* add `logLevel` to tracking
2023-06-20 14:55:51 +02:00
Sven Grossmann 68637059c4
Logs: Add permalink to log lines (#69464)
* create explore panel state for logs

* add props to LogRows and unify

* pass properties from explore to logs

* add css

* implement button and scrolling

* export and use `getUrlStateFromPaneState`

* make `scrollIntoView` optional

* change state handling for permalinks

* change link icon

* removed unused state

* add tests for `LogRowMessage`

* remove unused prop

* fix name

* reorg component

* add `LogRow` tests

* add test for `Logs`

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

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

* Update public/app/features/explore/Logs/Logs.test.tsx

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

* improve types in test

* fix props export in Logs.tsx

* fix props export in LogRowMessage.tsx

* fix props export in LogRow.tsx

* fixed import

* fix theme import

* remove hidden style

* add better test names

* change to `log line` rather logline

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

* fix tooltips

* remove unused css

---------

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2023-06-16 14:07:51 +02:00
Gábor Farkas 4cbe20ca5a
logs: context: removed unused code (#69392) 2023-06-01 15:23:30 +00:00
Gábor Farkas e5ec8535ec
logs: context: removed unused code (#69383) 2023-06-01 16:38:31 +02:00
Sven Grossmann a6a7cebbe5
Logs: Redesign and improve LogContext (#65939)
* Logs: Add new LogRowContext types to grafana/data

* use right type for `RowContextOptions`

* add missing renames

* add show context modal

* no need to call

* removed unused css

* sort properties

* rename

* use correct

* use

* add tests for

* wip

* remove add/minus buttons

* add tests

* disable processing of context results in Loki

* moved into table to align properly

* remove imports

* add highlighting of opened logline

* improve scrolling behavior

* correct style for the table

* use correct query direction

* fix text

* use LoadingBar

* use overflow auto

* rename `onToggleContext` to `onOpenContext`

* add missing import

* mock scrollIntoView

* update unused props

* remove unused import

* no need to process context dataframes

* only show `LogRowContextModal` if `getRowContext` is defined

* remove unused param

* use `userEvent` rather `fireEvent`

* change to `TimeZone`

* directly use style classes

* revert change to public_dashboard_service_mock.go

* improved styling

* add missing await in test

* fix lint

* fix lint

* remove LogRow scrolling when context is opened

* remove references to `scrollElement`

* Update public/app/features/logs/components/log-context/LogRowContextModal.tsx

Co-authored-by: Matias Chomicki <matyax@gmail.com>

* fix lint

* add comment explaining `onCloseContext`

* add comment about debounced onClose

* add comments and remove `showRowMenu`

* scroll twice to correctly center the element

* revert double scrolling

* remove unnecessary `processDataFrame`

* trigger drone

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>
2023-04-14 17:05:43 +02:00
Sven Grossmann 7bc0692801
Logs: Add new LogRowContext types to `@grafana/data` (#66404)
* Logs: Add new LogRowContext types to grafana/data

* use right type for `RowContextOptions`

* add missing renames
2023-04-13 13:07:28 +02:00
Sven Grossmann e9b15eff72
Logs: Move components to dedicated directory (#65936)
* move log-context components to dedicated directory

* fix any

* add right format of lerna.json
2023-04-11 12:19:28 +02:00
Sven Grossmann 42c32504be
Logs: Add millisecond to timestamp in log line (#64372)
* add milliseconds to logrow

* adjust tests to also have milliseconds
2023-03-08 11:39:56 +01:00
Matias Chomicki b731540939
Log Components: Optimize style computing and re-renders in Row, Details, and Context (#63728)
* Log Details: grab parsed styles from parent

* Log Details Row: better memoization of style parsing

* Log Context: less re-renders

* Log Row Styles: memoize

* Log Row: use class method instead of anonymous function
2023-03-03 10:19:48 +01:00
Matias Chomicki c139768e3b
Logs Panel: Refactor style generation to improve rendering performance (#62599)
* Log row: move level styles to its own provider

* Log row message: remove unnecessary extra param from styles

* Log rows: parse and pass styles to children

* Log row: receive parsed styles props from parent

* Log details: receive styles from parent

* Revert "Log details: receive styles from parent"

This reverts commit 8487482a6f4fdcf5e26896182c5ad3982774eea2.

* Log row message: receive styles from parent

* Chore: remove unnecessary comment

* Log level styles: move common styles out of getLogLevelStyles

* Chore: fix TimeZone deprecated import

* Log Details: inverse ternary operator for readability

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

* Log Details: inverse ternary operator for readability

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

* Chore: apply prettier formatting

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-02-01 14:28:10 +00:00
Sven Grossmann 7c02d9bb8a
Logs: Add experimental support to display a datasource custom UI in LogContext (#62189)
* add loki contextfilter component

* add `getLogRowContextUi` support to DataSourceAPI

* add `runContextQuery` to LogRowContextProvider

* pass `getRowContextUi` to `LogRowContext`

* adapt LogRowContext to show datasource ui

* implement LogRowContextUi in Loki

* add `logsContextDatasourceUi` feature flag

* change state to `Alpha`

* disable the feature if `logsContextDatasourceUi` is not set

* don't fetch labels in the constructor

* adjust to right height

* remove unnecessary eslint disable

* add test for LokiContextUi

* move code down in datasource.ts

* rename `refresh` to `runContextQuery`

* update datasource tests

* don't update if `updateFilter` fn changes

* organized imports in datasource.test.ts

* don't trigger on intialization changes

* change tag to `experimental`

* move `getLogRowContextUi` to props
2023-01-27 15:12:01 +01:00
Sven Grossmann 5b2184c485
Logs: Unify detected fields and labels in Log Details (#60448)
* removed js-fields

* added buttons

* rename detectedField to field

* removed unused things from `logParser.ts`

* improve comment

* wip

* better way for statistics

* better hide-stats button

* update tests

* updated tests and var names

* made props optional again

* fix padding

* fix unused import

* removed test

* close elements

* renamed `LogRowMessageDetectedFields` to `LogRowMessageDisplayedFields`

* add active style to menu button

* changed comment in logParser

* updated ToolbarButton colors

* rename `Data Links` to `Links`

* fix stats button being wrongly highlighted
2023-01-11 19:20:11 +01:00
Piotr Jamróz 039f4cb4dd
Explore: Support fields interpolation in logs panel (#58426) 2022-11-10 15:33:17 +01:00
Gareth Dawson 20616eef8c
Logs: Add feature to tracking show context button click (#57074)
* report interaction on context open

* report interaction on context close_esc

* replace deprecated feature (KeyboardEvent.keyCode)

* update to report interaction on toggle context

* remove redundant if statement
2022-10-19 10:01:45 +01:00
Gareth Dawson b8b25f7e31
Logs: add app to feature tracking in ad-hoc statistics (#56865)
* add app tracking to adhoc statistics

* use the object property value shorthand
2022-10-13 14:26:59 +01:00