* POC for toggling parsed fields in Explore/Loki
* fixed issues
* add clear button for toggled parsed fields
* fix test-frontend failures
* use blue eye instead of eye/eye-slash and update tooltips
* break out parseMessage
* move indicator to meta data section
* clean up LogRowMessageParsed
* better label
* clean up after making optional
* Update LogsDedupStrategy enum to keep consistent with radio button capitalization
* Revert "Update LogsDedupStrategy enum to keep consistent with radio button capitalization"
This reverts commit 0b05cd4e00.
* Capitalize dedup strategy in radio buttons
* Create sorting button and functionality
* Set up logs ordering
* Add tests
* Refactor
* Refactor
* Replace new button with old
* Move SortOrder enum to grafana/data
* Update SortOrder in test
* Update context based on sort order of logs
* Update used method for panel, update tests
* Rename prop to logsSortOrder
* Memoize resuults
* Add title too button
* Add disablinng of button for 1sec
* Update wordiing
* Update packages/grafana-data/src/utils/logs.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update packages/grafana-data/src/utils/logs.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update test by reordering logs
* Clear timers, add button flipping title
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Send current time range when fetching labels and values in Explore
* Pass range to Editors, in the same way as it was in Angular editors
* Remove unused imports
* Remove unused imports, props
* Update
* Update
* Update refresh condition
* Add comment
* Add stack trace to span detail row
* Modify accordian text not to have a whitespace
* Modify stackTrace to stackTraces
* Modify AccordianText ti get text component as prop
* Fix typecheck and test failure
* Span details text area do not wrap line
* Return valid metadata even if data is empty
* Make sure fields is not accessed when there is no data
* Meta Info should depend only on meta data
* Refactor condition for better reading
* Change data to empty array for better condition handling
* Remove unecessary checks
* Add test for showing metaData even when data is empty
Removes "Metrics"/"Logs" mode switcher from Explore, allowing for both
metrics and logs queries at the same time.
Co-authored-by: kay delaney <kay@grafana.com>
- more and more datasources are having long-running queries,
automatically triggering is becoming more of a burden than a help.
- some datasource queries might actually cost money, so running queries
should be explicit.
* Add searching functionality to Queries tab
* Implement search for starred queries
* Update tests and add test coverage for searching
* Changes based on provided feedback
* Remove redundant storing of results
* Update naming of onSearchFilterChange function in tests
* Update filterQueriesBySearchFilter function
* Update filterQueriesBySearchFilter function
* Debounce search
* Remove console.log()
* Use useDebouncedCallback
* Update tests, remove redundant props
* When in starred, search only in starred
* Add timefilter as dependency
* Remove redundant dependency, refactor
* Add internal links in table and with custom query
* Add specific types for internal and external link
* Change the datalink types to be more backward compatible
* Refactor the link utils for explore
* Add internal linking to table panels
* Fix derived field condition
* Prettify
* Add and fix tests
* Prettify
* Fix imports and tests
* Remove unused type
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* draft on a unified TimeZonePicker.
* most of the data structures is in place.
* wip.
* wip.
* wip: timezone selector in progress.2
* fixed so we have proper data on all timezones.
* started to add timezone into time picker.
* addeing time zone footer.
* footer is working.
* fixed so we use the timeZone picker in shared preferences.
* Added so we can change timeZone from picker.
* did some styling changes.
* will update timezone on all places that we need to update it.
* removed console.log
* removed magic string.
* fixed border on calendar.
* ignoring eslint cache.
* cleaned up the code a bit.
* made the default selectable.
* corrected so the behaviour about default works as expected.
* excluded timezone from change tracker.
* revert so default will always be the intial value.
* default will always fallback to the one in the config.
* do the country mapping on startup.
* fixed nit.
* updated snapshots for timepicker.
* fixed build errors.
* updating so snapshot tests is in sync.
* removed Date.now from prop since it will change each run in the snapshot tests.
* fixed so e2e tests works as before.
* moved files into separate folders.
* Chore: changes null values to undefined in explore reducer
* Chore: changes sortLogsResult param type from null to undefined
* Chore: changes null values to undefined in explore reducer
* Chore: updates strict null errors count
* Revert "Chore: changes null values to undefined in explore reducer"
This reverts commit b82d841611.
* Revert "Chore: changes sortLogsResult param type from null to undefined"
This reverts commit 21073b5d30.
* Revert "Chore: changes null values to undefined in explore reducer"
This reverts commit 798559688c.
* Chore: updates ExploreItemState type
* Chore: updates initial ExploreItemState in Explore reducer
* Chore: updates strict null errors count to 699
* Chore: changed ExploreMode and Emitter type in ExploreStateItem
* Revert "Chore: changed ExploreMode and Emitter type in ExploreStateItem"
This reverts commit 7e0e2027fc.
* Table: Adds adhoc filtering
* Refactor: changes after PR comments
* Refactor: hides filtering for data sources that do not support modifyQuery in Explore
* Refactor: fixes strict null error
* Changed tooltip position to above icon
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Chore: adds query keys and refId reassignment on query row removal
* Chore: updates explore reducer tests to cover query row adding, removal, refId and key reassignment
* Chore: changes refId value in explore reducer from undefined to string to avoid introducing new strict null errors
* Chore: fixes a small nitpick with array spread in Explore reducer
* Chore: removes unnecessary dispatches in query row tests in Explore reducer test
* Logs: Use result range instead of timepicker range for log histogram
If a logs datasource does not send histogram data for the requested
time range, the logs model computes a timeseries based on the log row
counts, bucketed by an automcatically calculated time interval. Even
when this histogram time series did not span the whole requested time
range it was still rendered in the graph across the whole range, leaving
an empty area at its start. Users find this confusing and are lead to
believe their log data is missing.
This change fixes this by anchoring the start of the timeseries on the
first log row's timestamp from the result, and adds this smaller range
as `visibleRange` to the logs model and passes it through to the logs
component that optionally takes it into account to not render the empty
area.
The interval (bucket size) is also adjusted to account for a potentially
finer resolution on the shorter visible time interval.
The bucketsize multiplier was also changed from 10 to 20 to account for
the space between the chart's bars.
* Aligned visible range with buckets
* Extract bucket size calculation and add test
* Chore: updates Explore result processor to sort dataframes based on their refId so results are displayed in a correct order
* Chore: adds types to Explore ResultProcessor getTableResult DataFrames
* Shorten filter history label
* Add keyboard shortcuts for update comment in Query history
* Add test coverage for new keyboard shortcuts
* Update changed aria-label in tests
* Add test scenario for enter and ctr key
While query fields should not rely on getting unmounted when the data source changes (and instead react to that change in e.g. componentDidUpdate()), query fields other than PromQueryField still rely on this.
* Chore: adds timeEpochNs to LogRowModel in @grafana/data
* Chore: updates explore utils ResultProcessor getLogsResult and explore utils tests
* Chore: updates core/logs_model to include nanoseconds
* Chore: updates LogRowModel sorting key from milliseconds to nanoseconds and adds timeEpochNs to tests
* Chore: adds timeEpochNs to LogRowModel mock in Explore LiveLogs test
* Chore: fixes logs model timeEpochNs padding
* Chore: updates timeEpochNs padding in tests
* Chore: updates LogRowModel mocks
* Chore: changes isLoki to datasourceId
* Chore: adds hasFieldWithNameAndType method to FieldCache in grafana-data dataframe
* Chore: changes timeEpochNs from number to string as it can overflow Number.MAX_SAFE_INTEGER
* Chore: updates LogRowModel sorting to use milliseconds and nanoseconds
* Chore: removes datasourceId from logSeriesToLogsModel method
* Chore: updates ResultProcessor tests to include nanosecond-level precision log rows sorting