* Switch to GraphNG for Logs Histogram
* Remove redundant timeZone
It was used just to format timestamp in the tooltip but it's not needed anymore.
* Add tests for creating logs histogram data
* Update decoractors tests
* Adjust bar width to be more like in the old graph
* Fix tooltip pointer color
* Test tooltip pointer color
* Decouple graph config from uPlot internals
* Ensure nested properties are not mutated when overrides are applied
* Add legend toggling for Explore graphs
* Remove unused component
ExploreGraphNGPanel is now used in Explore
* Code formatting
* allow multiple bars pathBuilders to be globally cached with different settings
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* WIP: Implement simple caching
* If results are cached, don't run new query and use those results
* Add duplicate key check
* Clean up
* Clean up
* Add tests for caching
* Remove unused variables
* Update public/app/features/explore/state/query.test.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Update public/app/features/explore/state/query.test.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Use decorateData to apply all decorators
* Remove unused variables
* Change loading stte to Done
* Clear cache when running query from navigation
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Store queries that were run to get log results
* Fix typing
* Update public/app/features/explore/Logs.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Add changes based on feedback
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Update UI
* Update UI, return spinner
* Add title to Scroll to top button
* Update public/app/features/explore/Logs.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Update public/app/features/explore/LogsNavigation.test.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Remove unnecessary memoization
* Update public/app/features/explore/LogsNavigationPages.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Move fitlering and deduplication to comnponent to enable future caching
* Clean up LogsMetaInfo
* Update
* Memoize component
* Fix type errors
* Clean uo
* Add tests for filtering in combination with deduplication
* If error - catch and show, if no logs - return null
* Refactor LogsContainer to use ConnectedProps
* Fix typescript error
* Remove no logs check
* Include review feedback
* Add SplitOpen type to createSpanLink and TraceView
* Elasticsearch: View in context feature for logs
* Fixing unused type
* Limit show context to esVersion > 5
* Fixing scope for showContextToggle; removing console.log
* Fix typing; adding check for lineField
* Update test to reflect new sorting keys for logs
* Removing sort from metadata fields
* Adding comment for clarity
* Fixing scenerio where the data is missing
* remove export & use optional chaining
Co-authored-by: Elfo404 <gio.ricci@grafana.com>
* Split main reducer from item reducer
* Move query related redux to separate file
* Split more parts and tests
* Fix import
* Remove unused code
* Update public/app/features/explore/state/datasource.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Add section comments
* Rename ExploreItem to ExplorePane
* Fix imports
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Make graph and table collapsing just a UI thing
* Remove showingGraph and showingTable, set them defaultly to true
* Remove collaapsing for panels in Explore
* UI toggle WiP
* WIP, add query type
* Refactor, clean up
* Update tests
* Clean uo
* Update rangeAll to range and instant
* Remove console logs
* Update packages/grafana-data/src/types/datasource.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update public/app/core/utils/explore.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Fix prettier error
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
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>
* 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
* Datasource/Cloudwatch: Adds support for Cloudwatch Logs
* Fix rebase leftover
* Use jsurl for AWS url serialization
* WIP: Temporary workaround for CLIQ metrics
* Only allow up to 20 log groups to be selected
* WIP additional changes
* More changes based on feedback
* More changes based on PR feedback
* Fix strict null errors
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Fix some null errors
* Fix test after strict null changes
* Review feedback fixes
* Fix toggle name
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
Adds a config section with derived fields which is a config that allows you to create a new field based on a regex matcher run on a log message create DataLink to it which is the clickable in the log detail.
Add LogDetail section that is shown when log line is clicked and expanded. Contains labels/fields and actions to show stats and add/remove label filter.
* WIP: inital POC
* Wip: Moving forward
* Wip
* Refactor: Makes loading indicator work for Prometheus
* Refactor: Reverts prom observable queries because they did not work for multiple targets
* Refactor: Transforms all epics into thunks
* Fix: Fixes scanning
* Fix: Fixes so that Instant and TimeSeries Prom query loads in parallel
* Fix: Fixes negation logic error
* Wip: Introduces PanelData as a carries for query responses
* Refactor: Makes errors work again
* Refactor: Simplifies code somewhat and removes comments
* Tests: Fixes broken tests
* Fix query latency
* Remove unused code
* Refactor: Removes switches for TimeStamp and LocalTime and displays time as configured for user
* Styles: Updates classname used to display timeUtc
* Refactor: Adds switch for Time column
* feat: Add new picker to DashNavTimeControls
* chore: noImplicitAny limit reached
* chore: noImplicityAny fix
* chore: Add momentUtc helper to avoid the isUtc conditionals
* chore: Move getRaw from Explore's time picker to grafana/ui utils and rename to getRawRange
* feat: Use helper functions to convert utc to browser time
* fix: Dont Select current value when pressing tab when using Time Picker
* fix: Add tabIndex to time range inputs so tab works smoothly and prevent mouseDown event to propagate to react-select
* fix: Add spacing to custom range labels
* fix: Updated snapshot
* fix: Re-adding getRaw() temporary to fix the build
* fix: Disable scroll event in Popper when we're using the TimePicker so the popup wont "follow" the menu
* fix: Move all "Last xxxx" quick ranges to the menu and show a "UTC" text when applicable
* fix: Add zoom functionality
* feat: Add logic to mark selected option as active
* fix: Add tooltip to zoom button
* fix: lint fix after rebase
* chore: Remove old time picker from DashNav
* TimePicker: minor design update
* chore: Move all time picker quick ranges to the menu
* fix: Remove the popover border-right, since the quick ranges are gone
* chore: Remove function not in use
* Fix: Close time picker on resize event
* Fix: Remove border bottom
* Fix: Use fa icons on prev/next arrows
* Fix: Pass ref from TimePicker to TimePickerOptionGroup so the popover will align as it should
* Fix: time picker ui adjustments to get better touch area on buttons
* Fix: Dont increase line height on large screens
* TimePicker: style updates
* Fix: Add more prominent colors for selected dates and fade out dates in previous/next month
* TimePicker: style updates2
* TimePicker: Big refactorings and style changes
* Removed use of Popper not sure we need that here?
* Made active selected item in the list have the "selected" checkmark
* Changed design of popover
* Changed design of and implementation of the Custom selection in the dropdown it did not feel like a item you
could select like the rest now the list is just a normal list
* TimePicker: Refactoring & style changes
* TimePicker: use same date format everywhere
* TimePicker: Calendar style updates
* TimePicker: fixed unit test
* fixed unit test
* TimeZone: refactoring time zone type
* TimePicker: refactoring
* TimePicker: finally to UTC to work
* TimePicker: better way to handle calendar utc dates
* TimePicker: Fixed tooltip issues
* Updated snapshot
* TimePicker: moved tooltip from DashNavControls into TimePicker
* Explore: Improves performance of Logs element by limiting re-rendering
Re-renders only when query has finished executing or when deduplication
strategy changes.
Closes#17663
* Explore: Adds logsHighlighterExpressions as prop to consider when re-rendering Logs
* Refactor: Removes replaceUrl from actions
* Refactor: Moves saveState thunk to epic
* Refactor: Moves thunks to epics
* Wip: removes resulttype and queries once
* Refactor: LiveTailing uses observer in query
* Refactor: Creates epics folder for epics and move back actioncreators
* Tests: Adds tests for epics and reducer
* Fix: Checks for undefined as well
* Refactor: Cleans up previous live tailing implementation
* Chore: merge with master
* Fix: Fixes url issuses and prom graph in Panels
* Refactor: Removes supportsStreaming and adds sockets to DataSourcePluginMeta instead
* Refactor: Changes the way we create TimeSeries
* Refactor: Renames sockets to streaming
* Refactor: Changes the way Explore does incremental updates
* Refactor: Removes unused method
* Refactor: Adds back Loading indication
* Move log's typings into grafana/ui
* Update the way context is retrieved for Loki
Major changes:
1. getLogRowContext expects row to be of LogRowModel type
2. getLogRowContext accepts generic options object, specific to a datasource of interest. limit option has been removed, and now it's a part of Loki's context query options (see below)
3. LogRowContextProvider performs two queries now. Before, it was Loki ds that performed queries in both directions when getLogRowContext.
4. Loki's getLogRowContext accepts options object of a type:
interface LokiContextQueryOptions {
direction?: 'BACKWARD' | 'FORWARD';
limit?: number;
}
This will enable querying in either direction independently and also slightly simplifies the way query errors are handled.
LogRowContextProvider maps the results to a Loki specific context types, basically string[][], as raw log lines are displayed in first version.
* Wip: Initial commit
* Refactor: Adds support in Loki datasource for streaming
* Refactor: Adds Live option to RefreshInterval
* Refactor: Adds styles to logrows
* Style: Reverses the order of Explore layout on Live
* Refactor: Adds LiveLogs component
* Tests: Adds tests for epics
* Style: Adds animation to Live in RefreshPicker
* Refactor: Adds ElapsedTime and progress line to LiveLogs
* Style: Adds specific colors to each theme
* Refactor: Adds support for Lokis new API
* Fix: Adds null to resulting empty array
* Refactor: Limits the rate of incoming messages from websockets
* Refactor: Throttles messages instead for simplicity
* Refactor: Optimizes row processing performance
* Refactor: Adds stop live button
* Fix: Fixes so that RefreshPicker shows the correct value when called programmatically
* Refactor: Merges with master and removes a console.log
* Refactor: Sorts rows in correct order and fixes minor UI issues
* Refactor: Adds minor improvments to sorting and container size
* Extend DataSourceAPI to enable log row context retrieval
* Add react-use package
* Display log row context in UI
* Make Loki datasource return "after" log context in correct order
* Don't show Load more context links when there are no more new results
* Update getLogRowContext to return DataQueryResponse
* Use DataQueryResponse in log row context provider, filter out original row being duplicated in context
Removes the functionality of being able to collapse/expand the logs
container.
When both graph and table are collapsed and you reload the page
then the start page should not be displayed.
When both graph and table are collapsed and you reload the page
then the graph and table panels should be displayed.
Fix so that reducer tests are run. On of the test used fit() instead of
it() which had the consequence of only 1 reducer test was executed
and the rest skipped. There was some failing tests that now is
updated and now passes.
Fixes#17098
* Wip: Removes queryTransactions from state
* Refactor: Adds back query failures
* Refactor: Moves error parsing to datasources
* Refactor: Adds back hinting for Prometheus
* Refactor: removed commented out code
* Refactor: Adds back QueryStatus
* Refactor: Adds scanning back to Explore
* Fix: Fixes prettier error
* Fix: Makes sure there is an error
* Merge: Merges with master
* Fix: Adds safeStringifyValue to error parsing
* Fix: Fixes table result calculations
* Refactor: Adds ErrorContainer and generic error handling in Explore
* Fix: Fixes so refIds remain consistent
* Refactor: Makes it possible to return result even when there are errors
* Fix: Fixes digest issue with Angular editors
* Refactor: Adds tests for explore utils
* Refactor: Breakes current behaviour of always returning a result even if Query fails
* Fix: Fixes Prettier error
* Fix: Adds back console.log for erroneous querys
* Refactor: Changes console.log to console.error