This pull request introduces a new, customizable logs export feature in the Logs Explorer view, replacing the previous hardcoded download functionality. Users can now select export format, row limit, and which columns to include via a dedicated options menu. The implementation includes a new API integration for downloading export data, UI components for export options, and associated styling.
* feat: handle active log flow
* feat: show live logs in logs explorer view
* feat: enable live logs in logs explorer
* feat: show live time option only in logs list view
* chore: pass showLiveLogs as false in test cases
* fix: handle live logs data format to open in log details
* fix: use current query state for frequency chart in live logs view
* fix: encode filter expression, show live option only in list view
* feat: replace infinity list view component with data table component
* feat: remove duplicate hook calls
* chore: add @signozhq/table to transformIgnorePatterns
* feat: update test cases for frequency chart in logs explorer
* feat: address review comments , add sonner for notifications
* feat: address review comments
* fix: fix the issue of group by queries not switching to timeseries view in logs explorer
* fix: fix the issue of group by queries not switching to timeseries view in traces explorer
* chore: overall improvements
* feat: fixed panel coorelation not spreading the filter expression in explorer pages
* feat: fixed multiagregation not getting sent in create alert
* fix: fixed failing test cases
* Update frontend/src/api/v5/queryRange/prepareQueryRangePayloadV5.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix: fix lint error
* fix: stepInterval not updating in panel qb
* fix: added test cases for mapQueryDataFromApi and prepareQueryRangePayloadV5
* fix: added convertV5Response test cases - timeseries, pie and table
* fix: refactored handleRunQuery
* fix: code refactor
* fix: refactored the mapQueryDataFromApi function according to new sub_var api
* fix: updated test cases
* fix: removed isJSON and isColumn from everywhere
* fix: fixed code and test cases
* fix: fixed bar chart custom - step interval for qb v5 (#8806)
* fix: added querytype boolean check for v5 changes
* fix: fixed typechecks
* fix: fixed typechecks
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix: added sanity logic for explorer old urls
* fix: added test for useSanitizeOrderBy
* fix: added sentry events for orderby validation
* fix: cleanup unused logic and renamed boolean state
* feat: display custom empty message if no logs on navigating from trace to logs
* chore: write tests for logs explorer normal and custom empty state
* feat: build the custom empty logs UI based on the updated designs
* feat: clear the filters and run stage query on clicking clear filters in logs custom empty state
* fix: update the failing test to match the logs custom empty state
* chore: remove the unnecessary onClick for documentation links
* refactor: overall improvements
* refactor: move the empty logs list config to util
* chore: update the documentation links + remove the explicit height from resources card
* refactor: reuse the EmptyLogsListConfig type in EmptyLogsSearch
* test: update LogsExplorerList tests to reflect changes in documentation links
---------
Co-authored-by: Vishal Sharma <makeavish786@gmail.com>
* fix: recalculate start and end time only for relative time ranges
* fix: don't dsipatch UpdateTimeInterval on initial load
* fix: change list query to state instead of memo
* fix: fix the failing test
* chore: improvement to the test
---------
Co-authored-by: Aditya Singh <adityasingh@Adityas-MacBook-Pro.local>
* fix: add active log id to charts query
* refactor: remove comment
* fix: remove active log id on filter change
* test: update test for log explorer
* test: update test for log explorer
---------
Co-authored-by: Aditya Singh <adityasingh@Adityas-MacBook-Pro.local>
* refactor: pagination changes in query range custom hook
* refactor: handle pagination changes in k8s logs and host logs
* refactor: logs panel component pagination changes
* fix: handle resetting offset on changing page size
* fix: optimize context log rendering and prevent duplicate logs
* chore: revert pagination handling changes for logs context view
* chore: remove unused function and prop
* refactor: handle the updated pagination logic in k8s entity events
* refactor: refactor queryPayload generation in logs pagination custom hook
* fix: remove handling for last log timestamp being sent with query_range
* chore: remove the unnecessary last log related changes from LogsExplorerViews
* Revert "fix: optimize context log rendering and prevent duplicate logs"
This reverts commit ad9ef188651e5106cbc84fe40fc36061c2b9fd40.
* fix: prevent recalculating the start/end timestamps while fetching next/prev pages
* chore: logs explorer pagination tests
* fix: rewrite test and mock scroll
* chore: use real timers to detect the start/end timestamps mismatch + enhance tests
* refactor: extract filters and order by into a separate function
* chore: add tests for logs context pagination
* chore: write tests for host logs pagination
* chore: overall improvements to host logs tests
* chore: k8s entity logs pagination tests
* chore: reset capturedQueryRangePayloads in beforeEach
* chore: dashboard logs panel component pagination tests
* fix: fix the breaking logs pagination test by change /v3 to /v4
* chore: remove the unused prop from HostMetricsLogs
* feat: custom hook to prevent redundant navigation and handle default params with URL comparison
* feat: implement useSafeNavigation to QB, to ensure that the back navigation works properly
* fix: handle syncing the relativeTime param with the time picker selected relative time
* feat: add support for absolute and relative time sync with time picker component
* refactor: integrate safeNavigate in LogsExplorerChart and deprecate the existing back navigation
* feat: update pagination query params on pressing next/prev page
* fix: fix the issue of NOOP getting converted to Count on coming back from alert creation page
* refactor: replace history navigation with safeNavigate in DateTimeSelectionV2 component
it also fixes the issue of relativeTime not being added to the url on mounting
* feat: integrate useSafeNavigate across service details tabs
* fix: fix duplicate redirections by converting the timestamp to milliseconds
* fix: replace history navigation with useSafeNavigate in LogsExplorerViews and useUrlQueryData
* fix: replace history navigation with useSafeNavigate across dashboard components
* fix: use safeNavigate in alert components
* fix: fix the issue of back navigation in alert table and sync the pagination with url param
* fix: handle back navigation for resource filter and sync the state with url query
* fix: fix the issue of double redirection from top operations to traces
* fix: replace history.push with safeNavigate in TracesExplorer's updateDashboard
* fix: prevent unnecessary query re-runs by checking stagedQuery before redirecting in NewWidget
* chore: cleanup
* fix: fix the failing tests
* fix: fix the documentation redirection failing tests
* test: mock useSafeNavigate hook in WidgetGraphComponent test
* test: mock useSafeNavigate hook in ExplorerCard test
* feat: change the format of uplot x axis to 24 hours
* feat: centralize date/time formats
* refactor: use the centralized 24 hour date/time formatting across components
* refactor: centralize uPlot x-axis values formatting
* feat: make the x axis of alert history in 24 hour format
* feat: time picker hint and timezone picker UI with basic functionality + helper to get timezones
* feat: add support for esc keypress to close the timezone picker
* chore: add the selected timezone as url param and close timezone picker on select
* fix: overall improvement + add searchIndex to timezone
* feat: timezone preferences UI
* chore: improve timezone utils
* chore: change timezone item from div to button
* feat: display timezone in timepicker input
* chore: fix the typo
* fix: don't focus on time picker when timezone is clicked
* fix: fix the issue of timezone breaking for browser and utc timezones
* fix: display the timezone in timepicker hint 'You are at'
* feat: timezone basic functionality (#6492)
* chore: change div to fragment + change type to any as the ESLint complains otherwise
* chore: manage etc timezone filtering with an arg
* chore: update timezone wrapper class name
* fix: add timezone support to downloaded logs
* feat: add current timezone to dashboard list and configure metadata modal
* fix: add pencil icon next to timezone hint + change the copy to Current timezone
* fix: properly handle the escape button behavior for timezone picker
* chore: replace @vvo/tzdb with native Intl API for timezones
* feat: lightmode for timezone picker and timezone adaptation components
* fix: use normald tz in browser timezone
* fix: timezone picker lightmode fixes
* feat: display selected time range in 12 hour format
* chore: remove unnecessary optional chaining
* fix: fix the typo in css variable
* chore: add em dash and change icon for timezone hint in date/time picker
* chore: move pen line icon to the right of timezone offset
* fix: fix the failing tests
* feat: handle switching off the timezone adaptation
* feat: initial setup for group by severity logs explorer page
* chore: reduce the height of the histogram
* chore: pr cleanup
* chore: minor color update
* chore: clean the PR
* chore: clean the PR
* chore: better base handling
* fix: append query names to the legends in case of multiple queries
* feat: make the changes only for list view and add back legends
* chore: test websockets
* chore: test websockets
* chore: test websockets
* chore: test websockets
* chore: cleanup PR
* chore: added back check origin function and loggings to check why the mismatch
* chore: the uuid should update on every new request
* chore: experiment with delaying the query deletion
* chore: experiment with delaying the query deletion
* chore: experiment with delaying the query deletion
* chore: upgrade nginx conf
* chore: upgrade nginx conf
* chore: upgrade nginx conf
* chore: experiment with delaying the query deletion
* chore: cleanup PR
* chore: remove print statements
* feat: make the query builder search extensible
* feat: setup the framework and necessary states needed
* feat: cover the happy path of selects
* chore: forward typing flow handled
* chore: add antd select
* chore: add antd select
* chore: handle forward and backward flows
* feat: added tag properites to the search bar and multi tag partial handling
* feat: handle tag on blur and body contains changes
* feat: handle tag deselect
* feat: multi tag handling
* feat: multi tag handling
* fix: jest test cases
* chore: update the key
* chore: add edit tag not working as expected
* feat: handle cases for exists and nexists
* fix: handle has / nhas operators
* chore: fix usability issues
* chore: remove the usage for the new bar
* fix: flaky build issues
* feat: client changes for consumption and design changes for where clause in logs explorer (#5712)
* feat: query search new ui
* feat: suggestions changes in v2
* feat: dropdown and tags ui touch up
* feat: added missing keyboard shortcuts
* fix: race condition issues
* feat: remove usage
* fix: operator select fix
* fix: handle example queries click changes
* chore: design sync
* chore: handle boolean selects
* chore: address review comments
* feat: changes for the query stats websockets
* chore: remove unwanted files
* fix: work on random id rather than hash
* fix: improve the icons and design
* feat: webpack and docker file changes
* fix: test cases
* chore: format the units
* chore: address review comments
* chore: update the id to uuid package
* fix: build issues
* chore: remove docker file changes
* chore: remove docker file changes
* feat: qb-suggestions base setup
* chore: make the dropdown a little similar to the designs
* chore: move out example queries from og and add to renderer
* chore: added the handlers for example queries
* chore: hide the example queries as soon as the user starts typing
* feat: handle changes for cancel query
* chore: remove stupid concept of option group
* chore: show only first 3 items and add option to show all filters
* chore: minor css changes and remove transitions
* feat: integrate suggestions api and control re-renders
* feat: added keyboard shortcuts for the dropdown
* fix: design cleanups and touchups
* fix: build issues and tests
* chore: extra safety check for base64 and fix tests
* fix: qs doesn't handle padding in base64 strings, added client logic
* chore: some code comments
* chore: some code comments
* chore: increase the height of the bar when key is set
* chore: address minor designs
* chore: update the keyboard shortcut to cmd+/
* feat: correct the option render for logs for tooltip
* chore: search bar to not loose focus on btn click
* fix: update the spacing and icon for search bar
* chore: address review comments
* fix: page breaking when query range response is null for table panel type
* fix: page breaking when query range response is null for table panel type
* fix: page breaking when query range response is null for table panel type
* chore: add test cases for Logs
* chore: add test cases for Logs - explorer
* chore: add test cases for Logs - toolbarAction
* chore: add test cases for Logs - list and table view
* chore: add test cases for Logs - list and table view
* chore: code fix
* feat: implement download logs feature for logs explorer new design
* feat: address review comments
* feat: added timestamp and body to the start
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* refactor: done log explorer minimising save view toolbar
* refactor: local storage visibility support and done with traces toolbar
* refactor: added toolbar and removed commented code
* chore: css updates
* refactor: removed the background hightlighted code for droppable area
* refactor: merge conflict resolve and updated variable name
* chore: base file for logs explorer jest test cases
* chore: added base setup for logs explorer jest fixing the uplot/d3-interpolate/antd-config errors
* chore: added test for rendering of logs explorer page without API calls
* chore: added test for rendering of logs with API call
* chore: used virutoso mock to render items on the screen
* chore: used virutoso mock to render items on the screen
* chore: update dummy data
* feat: logs explorer - new design
* feat: update styles
* feat: added new toolbar for logs explorer (#4336)
* feat: logs list view changes (#4348)
* feat: logs list view changes
* fix: list view and toolbar styles
* feat: side btns
* feat: added auto refresh handler
* feat: handle popover close for btn click date time
* feat: extract the common log actions btn component
* feat: update the button for log line actions
* fix: event propagation from context button
* feat: use styles from ui-library
* Query builder design update (#4359)
* feat: QB design update
* fix: add functionality and light mode styles
* fix: ts issues
* fix: update all css color variables to correct names
* fix: lint errors
* feat: new table view for logs explorer list section (#4353)
* feat: table view changes for logs list
* feat: code refactor to support log line actions
* feat: code refactor to support log line actions
* fix: the positioning of the btns
* feat: fix the table onclick
* fix: header issue
* fix: on hover
* fix: type issue
* fix: eslint error
* fix: type errors (#4360)
* feat: handle light theme for logs explorer design changes (#4363)
* feat: handle light theme for list tables and dateTime selection
* feat: handle light theme for popover
* fix: address review comments
* feat: date time custom time modal to render inside the new popover (#4366)
* feat: single calender for range picker
* fix: edgecases
* feat: integrate date time selector across app
* fix: remove dangling border after element removal
* feat: handle qb design changes across the application
* feat: handle light theme
* feat: handle light theme
* fix: virtuoso scroll refresh issue
* feat: handle new typing changes for date time picker v2 (#4386)
Co-authored-by: Yunus M <myounis.ar@live.com>
* chore: styles improvement across new design (#4389)
* fix: improve date time styles
* feat: table view changes according to new design
* fix: button visibility in clickhouse and promQL headers (#4390)
* feat: change the tabs to new design buttons for query builder
* Settings theme change (#4368)
* feat: settings theme change
* [Refactor]: New design for Log details page (#4362)
New design for Log details page
Co-authored-by: Vikrant Gupta <vikrant.thomso@gmail.com>
Co-authored-by: Yunus M <myounis.ar@live.com>
* feat: save view for new design (#4392)
* feat: save view for new design
* refactor: done with save view
* feat: update styles for logs detail view (#4407)
* feat: update styles for logs detail view
* feat: update styles for logs detail view
* feat: add raw view attributes in the logs list view (#4422)
* feat: add raw view attributes in the logs list view
* feat: add raw view attributes in the logs list view
* fix: raw attributes
* fix: logs UI improvements (#4426)
* fix: remove fixed times from the date time picker v2
* fix: added old logs explorer CTA in new designs
* feat: handle active logs indicator update
* fix: address review comments
* fix: old logs explorer page
* fix: remove info text and add relative time buttons
* fix: update logs explorer tab designs
* fix: update logs explorer tab designs
* fix: update logs explorer tab designs
* refactor: New design for Save views. (#4435)
* feat: [GH-4436]: date range enhancements (#4448)
* feat: [GH-4436]: when selecting custom time range it should be from start of day to end of date
* fix: custom time width and refresh text visibility issues (#4428)
---------
Co-authored-by: Yunus M <myounis.ar@live.com>
* feat: update ui (#4449)
* feat: added loading and error states for logs design (#4452)
* feat: added loading and error states for logs design
* feat: added error states for table view and time series view
* feat: handle error and loading states
* feat: loading states
* [Refactor]: Tab Switch deplay issue and UI improvement for Clickhouse (#4409)
* fix: switching between logs display tabs (#4457)
* [Feat]: View in Traces (#4450)
* refactor: datetime selector beside run query removed add to dashboard
* refactor: added tab for traces view details page
* refactor: done with the save view in traces
* fix: the gittery effect when navigatigating from views
* refactor: view tab view title light mode support
* refactor: removed console
* fix: gittery effect when switch view from views tabs
* refactor: separate traces routes
* refactor: remove query params
* chore: fix tsc issues
* fix: jest config issues
* fix: update TODO and remove extra braces
* feat: handle loading states and incorporate ui feedback (#4479)
* UI feedback updates (#4482)
* feat: handle loading and fix ui issues
* feat: ui updates
* fix: logs explorer issues (#4483)
* fix: logs explorer issues
* fix: jest test cases
* feat: support custom times unique to pages new design changes (#4485)
* fix: loading states for list log view (#4486)
* fix: logs search view query fix, logs details view - attribute tags alignment fix (#4489)
* fix: delete empty file
* fix: chart loading when scrolling logs (#4495)
* fix: chart should not load when scrolling the logs as it is already fetched
* fix: make the search bar as default rather than advanced options
* fix: rename show context to show in context
* fix: query range api not triggering on default select first load (#4498)
* Refactor: Log Explorer UI changes. (#4502)
* refactor: used selected view enum
* refactor: updated hight of switch old button and tab border
* refactor: import fixes
* refactor: query builder border and button groups
* refactor: removed hypen from refreshed
* refactor: show delete button only when there is more than one query
* refactor: sqaure up the query build button groups
* refactor: updated css
* fix: additional filter color button shadow
* refactor: removed commented code and used selected panel enum
* refactor: updated typecheck script
* refactor: used enum selected view (#4504)
* fix: retain the current query on date time change (#4510)
* feat: added new icon for promQL and added tooltips for dashboards and alerts (#4512)
* feat: added new icon for promQL and added tooltips for dashboards and alerts
* fix: styles at 1440 px zoom
* fix: rename clickhouse to clickHouse
---------
Co-authored-by: Vikrant Gupta <54737045+Vikrant2520@users.noreply.github.com>
Co-authored-by: Vikrant Gupta <vikrant.thomso@gmail.com>
Co-authored-by: Rajat Dabade <rajat@signoz.io>
* refactor: search in dropdown
* refactor: name of the view to i18
* refactor: make the use of useForm from antd
* refactor: moved QuerySearchParamNames into save view module
* refactor: reset to query build when click on explorer link
* refactor: save view prd design changes
* refactor: reverted resetQuery in querybuilder
* refactor: queryParams to query.ts in querybuilder constants
* fix: redirect with saved view is updated
* refactor: removed useffect logic for updating query
---------
Co-authored-by: Palash Gupta <palashgdev@gmail.com>