<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Added support for code coverage reporting with the integration of
`vite-plugin-istanbul`.
- Introduced a new configuration file for code coverage settings.
- **Improvements**
- Updated project to use ECMAScript modules for better compatibility.
- Enhanced UI test coverage with additional test cases and improved
error handling.
- Refactored test suites to utilize a custom module for better
organization and maintainability.
- Improved the login process and dashboard loading in test cases for
better reliability.
- **Bug Fixes**
- Resolved issues related to import statements affecting test execution.
- **Documentation**
- Updated `.gitignore` to exclude coverage directories from version
control.
These updates enhance the functionality, maintainability, and
reliability of the application and its testing framework.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- #5036
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced styling for rendered HTML and Markdown content using Tailwind
CSS typography utilities.
- Integrated the `@tailwindcss/typography` plugin for improved text
styling capabilities.
- **Chores**
- Updated project dependencies to include `@tailwindcss/typography` in
development dependencies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Enhanced `SessionViewer` component for improved readability in method
calls.
- Additional fields in stream settings for better configuration
management.
- **Bug Fixes**
- Adjusted expected outputs in test cases for `LogStream` and `Schema`
components.
- **Refactor**
- Updated dependencies for testing tools, transitioning from Jest to
Vitest.
- Improved structure and presentation in the `schema.vue` component.
- **Chores**
- Modified testing configuration paths and updated inline dependencies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR implements the new design of **Pipeline** introduced by #4432
---
**2 types of pipelines differentiates by the source**
Type I: **Realtime**
- source is a stream (Logs, Metrics, & Traces)
- takes effect when the source stream is being ingested
Type II: **Scheduled** (aka DerivedSteram)
- source is a SQL query
- takes effect based on the given schedule
The new pipeline is represented as a graph consists of different types
of Nodes that are connected by edges.
**Pipeline Data Model**
```rs
pub struct Pipeline {
pub id: String,
pub version: i32,
pub enabled: bool,
pub org: String,
pub name: String,
pub description: String,
pub source: PipelineSource,
pub nodes: Vec<Node>,
pub edges: Vec<Edge>,
}
```
**4 types of node**
I. StreamNode: either used for source node of realtime pipeline or for
destination nodes
II. QueryNode: used for source node of scheduled pipeline
III. FunctionNode: used for executing vrl functions
IV. ConditionNode: used for checking routing conditions
Rules applied to validating a pipeline when it's created:
1. non-empty nodes list
2. non-empty edges list
3. 1st node in nodes list is either StreamNode or QueryNode
4. non-empty `conditions` in all ConditionNode nodes in nodes list
5. all leaf nodes are of type StreamNode
6. In the same branch, unchecked `after_flattened` FunctionNode can't
follow checked
`after_flattened` checked FunctionNode
Pipeline execution is implemented with the struct `ExecutablePipeline`,
a ready-execute pipeline object cached in memory based on the Pipeline
objects modified on the UI side.
`ExecutablePipeline` object
- builds the relationships among all the nodes based on the edges
- topologically sorts the nodes based on the level to determine which
node to process first
- registers all the vrl function node once
`ExecutablePipeline` object processes ingested records in batch.
Starting from the source node, each connecting edge has a channel
connecting the parent and child node, used for passing the records. This
approach enables batch processing in parallel.
---
**Deprecated Features**
1. previous implementation of pipeline
2. Function x Stream associations
- Functions can still be added/edited/removed as before
- Needs to create a pipeline in order to apply chosen functions to the
desired stream
The new release when this pr is merged will automatically migrate **old
pipelines** and **Function x Stream associations** to new pipeline
format and can be found in `Stream Pipelines` tab with `Migrated-`
prefix names.
**_Note: Auto generated pipelines are paused by default. Please verify
the pipelines before enabling them_**
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
- #4837
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced a new color configuration option for dashboard panels,
allowing users to customize colors via a new dropdown component.
- Added a utility for managing color palettes and calculating color
values based on data metrics.
- **Enhancements**
- Improved SQL and PromQL data conversion processes to dynamically apply
color schemes and enhance tooltip formatting.
- Enhanced the configuration options for dashboard panels with
additional color settings.
- **Dependencies**
- Added new dependencies for improved data visualization capabilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced new utility functions for SQL query parsing and un-parsing.
- Added functionality for managing fields in SQL queries based on user
interactions in the log search interface.
- **Improvements**
- Enhanced log search interface with new event handlers and improved
user feedback.
- Streamlined error handling and data management for log queries.
- Refined conditional rendering and query construction logic in the
search interface.
- Updated SQL query manipulation logic for better accuracy and error
handling.
- Improved the clarity and efficiency of SQL query handling and saved
views.
- Enhanced control flow and data structure management within SQL query
handling.
- Added optional chaining to improve robustness in dashboard panel data
handling.
- Adjusted handling of SQL queries for improved performance and
responsiveness.
- **Bug Fixes**
- Removed redundant code to improve performance and clarity.
- **Chores**
- Updated dependencies to enhance SQL parsing capabilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
fix#3973
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new dynamic table component for enhanced data display and
interaction.
- Added support for Tailwind CSS, improving styling capabilities across
the application.
- Implemented interactive controls for managing log entries in the data
table.
- **Improvements**
- Enhanced logging functionality with clearer error messaging, improved
content wrapping, and optimized selection of log fields based on user
input.
- Streamlined user interface in the JSON preview and search result
components for better usability and readability.
- Improved performance and responsiveness of the search results table.
- Refined column visibility management in the search results, enhancing
user experience.
- **Bug Fixes**
- Updated column management logic in the search results for improved
robustness.
- Enhanced reliability of Playwright tests by refining timing and
interaction steps.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Sai Nikhil <nikhil@openobserve.ai>
Removed Monoco-single-line dependency
When user clicks on Ctrl + enter (windows) or Cmd + enter (max) in query
mode or vrl function editor
run query runs
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a keyboard shortcut (Ctrl + Enter) in the Search Bar for
executing queries, enhancing user experience and interactivity.
- **Dependency Updates**
- Updated the dependency from `vue-monaco-singleline` to
`monaco-editor-vue`, which may introduce new features and optimizations
for the Monaco Editor integration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Downgraded the `rudder-sdk-js` dependency version to enhance
compatibility and stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Updated error messaging in the Logs UI to provide clearer feedback to
users when search queries fail.
- **Chores**
- Improved element selection specificity in Playwright tests to ensure
interactions with the correct UI elements.
- Upgraded dependencies to the latest versions for improved performance,
security, and compatibility.
- Excluded unnecessary directories from TypeScript compilation to
enhance project specificity and efficiency.
- Refined time zone handling across components for better accuracy in
date and time displays.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Neha P <neha@openobserve.ai>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Integrated Tailwind CSS for enhanced styling capabilities.
- Added Autoprefixer to ensure cross-browser compatibility.
- Introduced PostCSS configuration for better CSS processing.
- **Improved Styling**
- New styling framework (Tailwind CSS) incorporated into the project for
easier and more efficient design.
```
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- #3460
- #2015
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added multi-select functionality for variables in dashboards.
- Introduced a custom value selector component for dashboard settings.
- Updated the app to use Quasar's fullscreen module.
- **Enhancements**
- Improved query verification process in DashboardQueryEditor.
- Enhanced filtering logic for variable placeholders and values in
queries.
- Added "IN" operator support for dashboard queries.
- **Bug Fixes**
- Fixed issues with handling and displaying selected values in various
components.
- **Performance Improvements**
- Increased size parameter for dashboard panel data loading from 10 to
100.
- **Localization**
- Added new localization key: "multiSelect" for multiple selection
support.
- **UI/UX**
- Updated styles and key bindings in DrilldownPopUp.
- Enhanced display logic for selected values in
VariableQueryValueSelector.
- **Dependencies**
- Updated Quasar package from version ^2.7.5 to ^2.15.4.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Add a new ENV for it: `ZO_FAST_MODE_FILE_LIST_INTERVAL=300`, update
every 5 minutes.
Other new environments:
```
ZO_RUM_ENABLED=false
ZO_RUM_CLIENT_TOKEN=""
ZO_RUM_APPLICATION_ID=""
ZO_RUM_SITE=""
ZO_RUM_SERVICE=""
ZO_RUM_ENV=""
ZO_RUM_VERSION=""
ZO_RUM_ORGANIZATION_IDENTIFIER=""
ZO_RUM_API_VERSION=""
ZO_RUM_INSECURE_HTTP=false
O2_CUSTOM_SLACK_URL=""
O2_CUSTOM_DOCS_URL=""
```
- Doc URL and Slack URL will be custom configurable for enterprise
version
- RUM configuration can be enabled via environment variable.
---------
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
This PR contains timezone-related changes.
Problem: The timestamp column displayed on the grid and charts across
the log, metrics, traces, and dashboard pages is currently set to the
browser's timezone, and there is no option to adjust it to a different
timezone.
Solution: Users will have the option to select their preferred timezone
within the datetime component. This selected timezone will then be
applied to the timezone column in both the grid and charts.
---------
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-keshavi <keshavi.bhalani@kiara.tech>
Features:
- Multi-query support for PromQL (#799)
- New chart type: heatmap (#1111)
- Unit support for SQL queries
- Replacing plotly with echarts for chart rendering
- Resizable query editor in add/edit panel page
- Warn user when navigating away from add/edit panel page
- Show a warning when the panel configurations are updated and not
applied on the chart
- Performance Improvement for dashboards with a lot of panels
- For SQL and PromQL queries all the legends are now shown at the bottom
Bugs Fixed:
- Prevent duplicate save clicks from add panel page
- Variable loading UI issue (#1375)
- Axis ticks overlapping issues fixed
- Legend positioning and configuration issues (#801, #802)
- Dates are not fully visible in custom sql mode (#1043)
Other:
- Panel and dashboard data version conversion
- Refactoring dashboard componets for modular and resulable architecture
- Aggregation issues in chart rendering
- Chart loading and updating animations
- Shows axis pointer on hovering over the chart
- Introduce dashboard versioning for maintaining schema changes
---------
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-keshavi <keshavi.bhalani@kiara.tech>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
* test: updated setupTests and vite config
* test: created common store with default values
* test: updated ingestion test cases
* test: updated streams test case
* test: added test cases
* added test cases for alerts and fixed failing test cases
* core: added canvas package to enable canvas in testing env
* update test config
* updated setup test
* core: uninstalled canvas library
* updated snaps
* added test cases for templateList components
* added test cases for destinations
* added test cases for add alert page
* added test cases for add destination and add template
* added test cases for logs page
This reverts commit a4234be41b292110af7d596d6e9e824e40e03633.
* eslint formatting
* Revert "core: added canvas package to enable canvas in testing env"
This reverts commit 5151f43b8f90bd2142a1b7da30eaf5e29dc4fa9a.
* Revert "core: added canvas package to enable canvas in testing env"
This reverts commit 5151f43b8f90bd2142a1b7da30eaf5e29dc4fa9a.
* test: added test cases for searchResult page
* test : added test cases for IndexList component
* test: updated alertList test cases
* test: added test cases for logs SearchBar component
* core : updated vite config
Added path to exclude files inside test folder in test coverage
* test : updated searchResult snapshot
* test: added test cases for QueryEditor and updated search bar test cases
* test: updated vite test config
* core: added jest-canvas-mock package for mocking canvas
* test: updated logs test case
* test: replaced adding mocks to global with vi.stubGlobal
* delete: removed RefreshInterval component
* test: updated logs test cases
* test: updated conformDialog and SearchBar test cases
* test: removed console log
* test: updated MenuLink test cases
* test: created __mocks__ folder to store all mock
* test: added router in Users test case
* test: fixed failing test cases of MainLayout
* fix: fixed main layout test cases
* fix: SearchBar test cases
* refactor: imported routes in router from routes folder
* fix: failing test cases
* test: created router.ts helper to create router
* fix: fixed failing test cases