mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 16:09:05 +00:00
bc38057bbd8af08060a67e8737667001792e8c19
317
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d9955aac86 |
test: enhanced unflattened test to not be flaky (#8808)
### **PR Type**
Tests
___
### **Description**
- Stabilize unflattened Playwright tests
- Add structured test logging throughout
- Increase waits for indexing and UI readiness
- Ensure query refresh and result validation
___
### Diagram Walkthrough
```mermaid
flowchart LR
Login["Login and setup"] -- "ingestion + waits" --> Streams["Open Streams"]
Streams -- "configure store original data" --> Schema["Update Schema"]
Schema -- "ingest + index wait" --> Explore["Explore Logs"]
Explore -- "set time range" --> Results["Load Results"]
Results -- "expand row" --> Details["_o2_id in details"]
Explore -- "SQL mode + SELECT * + refresh" --> Results
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>unflattened.spec.js</strong><dd><code>Stabilize
unflattened Playwright tests with logging</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/unflattened.spec.js
<ul><li>Add structured testLogger.info/error messages.<br> <li> Replace
flaky short waits; add longer indexing waits.<br> <li> Add query
refresh, SQL mode selection, and result assertions.<br> <li> Minor
formatting fixes and consistent waits in setup/teardown.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8808/files#diff-35703a04047bd3dc257e8e606360e196f9ead45fc44f3857a6e04023590f1a1e">+171/-137</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
9f8d25cb4d |
fix: dashboard listing pages UI changes made sync with other pages (#8796)
### **User description** 1. Table list changes 2. folder list changes 3. submit btn , cancel btn , move btn , export btn , discard btn, apply btn changes ___ ### **PR Type** Enhancement ___ ### **Description** - Align dashboards UI with new design - Replace buttons with themed O2 styles - Standardize toggles sizing and theming - Improve tables, search, and layout ___ ### Diagram Walkthrough ```mermaid flowchart LR AddDash["AddDashboard.vue"] -- "buttons, spacing" --> UI["Unified O2 styles"] AddFolder["AddFolder.vue"] -- "inputs, buttons" --> UI ConfigPanel["ConfigPanel.vue"] -- "toggle sizing/theming" --> UI QueryEditor["DashboardQueryEditor.vue"] -- "function toggle style" --> UI DashboardsView["Dashboards.vue"] -- "search, folder header, table footer" --> UI AddPanel["AddPanel.vue"] -- "action button styles" --> UI Styles["app.scss"] -- "new negative button theme" --> UI ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>7 files</summary><table> <tr> <td><strong>AddDashboard.vue</strong><dd><code>Update form spacing and action buttons styling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-21d49964b1a38dce6b2b2811cade3cff3dcfd0f70cb1aa94b6deb7ea9ac848ce">+10/-8</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Revamp paddings, inputs, and footer buttons</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-3bd1ba28ba29b71469aac901fd8000480c3db6c0f2dbc86ea55221787ae3ffd2">+10/-12</a> </td> </tr> <tr> <td><strong>ConfigPanel.vue</strong><dd><code>Apply large themed toggles across options</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-c3a6e64dff02b58bb7cdc3f0668990b41ff41544b4c5e991bbcd989ad4bba3f8">+25/-0</a> </td> </tr> <tr> <td><strong>DashboardQueryEditor.vue</strong><dd><code>Restyle function editor toggle with theming</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-68bf1b319223d103f1b99e0b681764e4eb76942399397779c81c2cd18f6485ff">+4/-3</a> </td> </tr> <tr> <td><strong>Dashboards.vue</strong><dd><code>Redesign list UI: search, folders, table, footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-8da3187db8ce3d795d0f196ede6b2290221ffa3e27b15dcc2b645e44dd196213">+119/-78</a></td> </tr> <tr> <td><strong>AddPanel.vue</strong><dd><code>Standardize header actions and picker height</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+22/-15</a> </td> </tr> <tr> <td><strong>app.scss</strong><dd><code>Add negative button themed variants</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-5703d12504b0395cbfbbfad02a592bc391496026e5f03743102ce06c210ea05f">+20/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
9329c12a0c |
test: updated merge logic for test dino upload (#8793)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Use Playwright blob reporter on CI
- Merge shard reports via playwright merge-reports
- Streamline GitHub Actions artifacts and steps
- Update Node.js to 22 in merge job
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Playwright tests (CI shards)"] -- "reporter: blob" --> B["blob-report artifacts"]
B -- "download & merge" --> C["playwright merge-reports"]
C -- "outputs" --> D["playwright-results/report.json + html-report"]
D -- "tdpw upload" --> E["TestDino"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.config.js</strong><dd><code>Conditional blob
reporter for CI</code>
</dd></summary>
<hr>
tests/ui-testing/playwright.config.js
<ul><li>CI uses <code>['blob']</code> reporter<br> <li> Local keeps HTML
and JSON reporters<br> <li> Enables cross-shard report merging</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8793/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+6/-4</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Artifact flow: blob
upload, merge, TestDino upload</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Comment out many test matrices<br> <li> Remove per-matrix
JSON/HTML upload steps<br> <li> Upload blob reports; merge with
Playwright<br> <li> New job merges and uploads to TestDino; Node 22</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8793/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+117/-236</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
923348bb43 |
fix: ux changes for logs page (#8790)
### **PR Type** Enhancement, Bug fix, Documentation ___ ### **Description** - Extracted inline styles to scoped SCSS - Improved logs UI/UX and theming - Fixed flicker and pagination UX - Added reusable toolbar and collapse styles ___ ### Diagram Walkthrough ```mermaid flowchart LR SearchBar["SearchBar.vue"] -- "toolbar, toggles, menu UX" --> Styles["New SCSS modules"] IndexList["IndexList.vue"] -- "field list pagination, loading" --> Styles SearchResult["SearchResult.vue"] -- "histogram/table layout refactor" --> Styles Index["Index.vue"] -- "splitter/collapse UX, visualize container" --> Styles TenstackTable["TenstackTable.vue"] -- "table hover/headers theme" --> Styles DetailTable["DetailTable.vue"] -- "wrap toggle, layout" --> Styles History["SearchHistory.vue"] -- "wrap toggle, warning pill" --> Styles Scheduler["SearchSchedulersList.vue"] -- "rounded btn, external styles" --> Styles TransformSel["TransformSelector.vue"] -- "toolbarized toggle, icons" --> Styles FunctionSel["FunctionSelector.vue"] -- "class hooks, styles" --> Styles SyntaxGuide["SyntaxGuide.vue"] -- "dark mode class, ext styles" --> Styles JsonPreview["JsonPreview.vue"] -- "externalized styles" --> Styles App["App.vue"] -- "theme root class" --> AppStyles["app.scss: global scrollbar, collapse btn"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>31 files</summary><table> <tr> <td><strong>SearchBar.vue</strong><dd><code>Toolbar/UI cleanup, toggles and menus restyle</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+272/-585</a></td> </tr> <tr> <td><strong>IndexList.vue</strong><dd><code>Field list pagination UX, loading state, helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+133/-419</a></td> </tr> <tr> <td><strong>SearchResult.vue</strong><dd><code>Histogram/table layout classes, external styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+30/-283</a></td> </tr> <tr> <td><strong>Index.vue</strong><dd><code>Splitter/collapse UX, visualize container cleanup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+99/-57</a> </td> </tr> <tr> <td><strong>DetailTable.vue</strong><dd><code>Wrap toggle restyle and list/table CSS extraction</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+19/-79</a> </td> </tr> <tr> <td><strong>SearchSchedulersList.vue</strong><dd><code>Minor button rounding, moved styles to SCSS</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0c0a4097c53f07712d35562b1336602bf24faddedab77a9f5717f5582dcac2f1">+2/-137</a> </td> </tr> <tr> <td><strong>TenstackTable.vue</strong><dd><code>Table container class and theming adjustments</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22">+5/-104</a> </td> </tr> <tr> <td><strong>SearchHistory.vue</strong><dd><code>Wrap toggle restyle and externalized styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-9dd167bd5e272b2057f53c16b905047eec00655a3552daad240a964d67a6f56d">+13/-100</a></td> </tr> <tr> <td><strong>TransformSelector.vue</strong><dd><code>Toolbarized transform toggle and SCSS import</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0037d8dd9cfbacc26309b26e98ae953e7ccbd0891ac2fd01c6314ebd7eed9d2c">+25/-47</a> </td> </tr> <tr> <td><strong>JsonPreview.vue</strong><dd><code>Moved component styles to shared SCSS</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+1/-109</a> </td> </tr> <tr> <td><strong>SyntaxGuide.vue</strong><dd><code>Dark-mode class hook and SCSS extraction</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-c6e8bb651fadd2b15b5b97f5b6069a57813fb97cc3d06eef983af4def33e8806">+5/-67</a> </td> </tr> <tr> <td><strong>FunctionSelector.vue</strong><dd><code>Class hooks and SCSS module inclusion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-11d9577516700b94b5f3325e77214d0d886473e690db8c9ea981613c9fb89b68">+5/-3</a> </td> </tr> <tr> <td><strong>VisualizeLogsQuery.vue</strong><dd><code>Externalized layout/splitter styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+1/-50</a> </td> </tr> <tr> <td><strong>DateTime.vue</strong><dd><code>Rounded buttons and hover feedback</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-c06c96ba750be6fc82f517a53ba809efff8aa619aba203b871d4d2aeb7f64f60">+6/-2</a> </td> </tr> <tr> <td><strong>App.vue</strong><dd><code>Theme root class binding for global styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-7322e6842f92edbe4a6e810d63f066ec95e64806d64a02b52e2b9bef2a73db91">+7/-1</a> </td> </tr> <tr> <td><strong>app.scss</strong><dd><code>Global scrollbar, collapse button, toggles polish</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-5703d12504b0395cbfbbfad02a592bc391496026e5f03743102ce06c210ea05f">+142/-2</a> </td> </tr> <tr> <td><strong>search-result.scss</strong><dd><code>New SCSS for search result layout and table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-e98f726aae49bdd5f8a426c8023eed612f3f33d52b0d458b7730990b3aafc41e">+235/-0</a> </td> </tr> <tr> <td><strong>detail-table.scss</strong><dd><code>New SCSS for detail table and panels</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-63d5673331a5ee1ab792d07831e4a6dbb0d2d40d2ad628652d57944e47a96338">+55/-0</a> </td> </tr> <tr> <td><strong>logs-page.scss</strong><dd><code>New SCSS for logs page structure and splitter</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-3d8458bb7b934b0529dcb35f85e008a4404510435ee4a636ff86e20cfd2970c9">+1401/-0</a></td> </tr> <tr> <td><strong>search-schedulerlist.scss</strong><dd><code>New SCSS for scheduler list views</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-42bbf309982cfcfd1cca270e80a2bddd35947e59dd91f600f5c85788af1e0802">+136/-0</a> </td> </tr> <tr> <td><strong>index-list.scss</strong><dd><code>New SCSS for field/index list</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0a3be477d7575f8e412bf8092f91901dd1330c8458ebc2b24f96107647cfe200">+139/-0</a> </td> </tr> <tr> <td><strong>search-history.scss</strong><dd><code>New SCSS for search history page</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-01ae0807917e4de78780d9ec549ae2b57e3004e7be72cd77536ac5ae75bda3ed">+97/-0</a> </td> </tr> <tr> <td><strong>transform-selector.scss</strong><dd><code>New SCSS for transform selector controls</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-131c7ba7388ebe94d30b7f42ca12c30b0840a9f8d69622b68e573e829d9fa7d6">+99/-0</a> </td> </tr> <tr> <td><strong>syntax-guide.scss</strong><dd><code>New SCSS for syntax guide dialog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-7173f5473b8fed57af19a3017f9823e68099745dc181f7996f0024fa8099535c">+78/-0</a> </td> </tr> <tr> <td><strong>tenstack-table.scss</strong><dd><code>New SCSS for data table and resizer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0175daf538e52ff95480cb40fadf8e26564474f15e39c5fe2d628f2d7e72aa78">+99/-0</a> </td> </tr> <tr> <td><strong>function-selector.scss</strong><dd><code>New SCSS for function selector</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-16e97b00c534fae20daf24545e4e6a37b83f59e22668eddfd2083c9d778a9032">+58/-0</a> </td> </tr> <tr> <td><strong>visualizelogs-query.scss</strong><dd><code>New SCSS for visualize logs layout</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-263f2af1f510ef9047a88f4cf438ffdc7b22cc598a56071900b898899d5bdab3">+50/-0</a> </td> </tr> <tr> <td><strong>json-preview.scss</strong><dd><code>New SCSS for JSON preview and menus</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-27d0a0d1ec327559e1c09ffec34a7fc937db12580f53d61f10897f378af7d6ff">+17/-0</a> </td> </tr> <tr> <td><strong>quasar-overrides.scss</strong><dd><code>Quasar overrides aligned to new tokens</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-563af58e60b7250169ebe9ced59dfe163a801a106d7f20964a8d20000b320af5">+16/-15</a> </td> </tr> <tr> <td><strong>_variables.scss</strong><dd><code>Variables updated for rem units and theming</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-b3e37ee00c17b89ad1177c5592504277aa645b374095c065ea8b3782df5e89a2">+1/-1</a> </td> </tr> <tr> <td><strong>quasar-variables.sass</strong><dd><code>Quasar variables tuned for new UI</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-bb2b39e6af7e949bef75bce0c7021310c42dd0945c30f963e3c8b599598bfdaa">+2/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>ui-guidelines.md</strong><dd><code>UI guidelines documentation added</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-8c5e2f35601f7d06e3389626dd501fc84e694efd6cf0faab6dfaf92445483dfa">+1056/-0</a></td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Ashish Kolhe <ashish.j.kolhe@gmail.com> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
e985244b61 |
test: e2e test dino poc (#8771)
### **PR Type**
Enhancement, Tests, Documentation
___
### **Description**
- Add Playwright JSON reporter for TestDino.
- Upload Alerts results to TestDino in CI.
- Limit matrix to Alerts specs for POC.
- Create result folders in workflow.
___
### Diagram Walkthrough
```mermaid
flowchart LR
PWCFG["Playwright config: JSON + HTML reporters"] -- "emit report.json, html-report" --> RESULTS["playwright-results/"]
GHA["GitHub Actions workflow"] -- "create results dirs" --> RESULTS
GHA -- "run Alerts specs only" --> TESTS["Alerts test run"]
TESTS -- "produce reports" --> RESULTS
GHA -- "tdpw upload" --> TESTDINO["TestDino platform"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Formatting</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>alerts-e2e-flow.spec.js</strong><dd><code>Minor comment
tweak in Alerts E2E spec</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Alerts/alerts-e2e-flow.spec.js
- Minor comment formatting change.
- No functional impact.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8771/files#diff-32972e38c1fe0e8bb887f9f254b3130916a36f96ea924f9987493d44efefeab9">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.config.js</strong><dd><code>Add JSON
reporter and configure HTML output</code>
</dd></summary>
<hr>
tests/ui-testing/playwright.config.js
<ul><li>Replace single HTML reporter with array.<br> <li> Configure HTML
output folder path.<br> <li> Add JSON reporter writing to
<code>playwright-results/report.json</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8771/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+4/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI: Upload Playwright
results to TestDino, scope to Alerts</code></dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Temporarily narrow matrix to <code>Alerts</code> tests.<br> <li>
Create <code>tests/ui-testing/playwright-results</code> directory.<br>
<li> Add TestDino upload step with token auth.<br> <li> Comment out
other suites and some Alert specs.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8771/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+101/-92</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
c2c0ccdf2e |
feat: Rate, Errors and Duration (RED) metrics on traces list page (#8757)
### **PR Type** Enhancement #8784 ___ ### **Description** - Add RED traces metrics dashboard - Replace scatter chart with metrics widgets - Support view-only mode in panel schemas - Improve traces loading and empty states ___ ### Diagram Walkthrough ```mermaid flowchart LR TracesPage["Traces Index.vue"] -- embeds --> SearchResult["SearchResult.vue"] SearchResult -- uses --> MetricsDashboard["TracesMetricsDashboard.vue"] MetricsDashboard -- loads --> MetricsJSON["metrics.json"] MetricsDashboard -- renders via --> RenderCharts["RenderDashboardCharts.vue"] PanelContainer["PanelContainer.vue"] -- passes --> viewOnlyProp["viewOnly prop"] PanelSchema["PanelSchemaRenderer.vue"] -- respects --> viewOnlyProp ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>PanelContainer.vue</strong><dd><code>Pass view-only flag and tidy tooltips</code> </dd></summary> <hr> web/src/components/dashboards/PanelContainer.vue <ul><li>Pass <code>viewOnly</code> prop to schema renderer<br> <li> Tooltip attribute wrapping for readability<br> <li> Minor i18n quote consistency changes<br> <li> Notification formatting improvements</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+32/-17</a> </td> </tr> <tr> <td> <details> <summary><strong>PanelSchemaRenderer.vue</strong><dd><code>Add view-only support to schema renderer</code> </dd></summary> <hr> web/src/components/dashboards/PanelSchemaRenderer.vue <ul><li>Add <code>viewOnly</code> prop to disable editing<br> <li> Gate annotation button when <code>viewOnly</code><br> <li> Minor formatting of icon tag<br> <li> Route/alert creation string refinements</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+20/-10</a> </td> </tr> <tr> <td> <details> <summary><strong>Index.vue</strong><dd><code>Simplify traces page and delegate states</code> </dd></summary> <hr> web/src/plugins/traces/Index.vue <ul><li>Remove inline loading/empty blocks from page<br> <li> Delegate result states to SearchResult<br> <li> Trigger metrics dashboard load on first page<br> <li> Simplify histogram date setter</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-952e26660e4d6aadd292ea2ef7b314e139a4f516d0b3931e20d42d6394700d07">+10/-46</a> </td> </tr> <tr> <td> <details> <summary><strong>SearchResult.vue</strong><dd><code>Integrate RED metrics and improve UX</code> </dd></summary> <hr> web/src/plugins/traces/SearchResult.vue <ul><li>Replace scatter chart with RED metrics dashboard<br> <li> Add loading and empty states within component<br> <li> Emit time-range on metric zoom selection<br> <li> Adjust layout heights and refs</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-7fc8153d64d38cf0945757bad8ab5e95ceae7e1c7daaeb300edbbfb484314e50">+76/-62</a> </td> </tr> <tr> <td> <details> <summary><strong>TracesMetricsDashboard.vue</strong><dd><code>New traces metrics dashboard component</code> </dd></summary> <hr> web/src/plugins/traces/metrics/TracesMetricsDashboard.vue <ul><li>New dashboard component rendering metrics<br> <li> Accepts stream, timeRange, filter, show<br> <li> Loads and customizes schema, handles zoom<br> <li> Exposes refresh/load methods, auto-refresh hooks</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-7b6f29a2737d9501b18dbd8622eba4965e4bc2b92115627ae7d2e70cc3382087">+217/-0</a> </td> </tr> <tr> <td> <details> <summary><strong>metrics.json</strong><dd><code>Add traces metrics schema (Rate/Errors/Duration)</code> </dd></summary> <hr> web/src/plugins/traces/metrics/metrics.json <ul><li>Add predefined dashboard with three panels<br> <li> Rate, Errors, Duration queries using histogram<br> <li> Uses <code>[WHERE_CLAUSE]</code> placeholder for filters<br> <li> Layout and visualization configs included</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-8bf43bcbba5150a185625f458adcb6756145e7bfcbbf632d87a9d487a937524e">+415/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
3e9c6203c5 |
test: updated page manager and logs page files (#8730)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Replace console logs with testLogger
- Improve logs page navigation robustness
- Add streaming response verification logging
- Comment out SDR page objects
___
### Diagram Walkthrough
```mermaid
flowchart LR
LogsPage["LogsPage"] -- "console.* -> testLogger.*" --> Logging["Centralized test logging"]
LogsPage -- "navigation retries, params" --> Navigation["More robust navigation"]
LogsPage -- "response checks" --> Streaming["Streaming/JSON response verification"]
PageManager["PageManager"] -- "comment out" --> SDR["SDR page objects"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Centralize logging and
harden LogsPage behavior</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Swap console.log/error to testLogger.debug/error<br> <li>
Enhance VRL editor detection and fallback reload<br> <li> Add detailed
network response checks for search/streaming<br> <li> Adjust messages
around errors and no data cases</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8730/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+75/-75</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>page-manager.js</strong><dd><code>Temporarily disable
SDR page objects</code>
</dd></summary>
<hr>
tests/ui-testing/pages/page-manager.js
<ul><li>Comment out SDR-related imports<br> <li> Comment out SDR page
object initializations</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8730/files#diff-565eab8b3c767ae50c9d05e591621d14f66b81af84d6b5ea6efe136c1c3933df">+8/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
89e6a180b6 |
fix: dashboard filter flaky testcases (#8732)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add robust nested group filter helpers
- Introduce E2E test for nested groups
- Stabilize selectors and waits in filters
- Limit CI to dashboard filter suite
___
### Diagram Walkthrough
```mermaid
flowchart LR
helper["DashboardFilter helper"] -- "add stability + nested group API" --> spec["dashboard-filter.spec.js"]
spec -- "adds nested group test" --> ci["playwright.yml matrix"]
ci -- "run only dashboard-filter suite" --> pipeline["CI run scope"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-filter.js</strong><dd><code>Stabilize filter
interactions and add nested group helper</code></dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/dashboard-filter.js
<ul><li>Add stable operator/value selection with waits<br> <li> Use
last() portal-aware locators<br> <li> Add addNestedGroupFilterCondition
helper<br> <li> Improve column selection via ArrowDown/Enter</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8732/files#diff-cc4b5c84fa9084ee18943e000284fe9fbdaed9605503109d90a00a95871940a2">+123/-49</a></td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-filter.spec.js</strong><dd><code>New E2E test
for nested filter groups</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-filter.spec.js
<ul><li>Add E2E test for group inside group<br> <li> Validate variable
rendering and SQL query<br> <li> Create dashboard, apply filters,
cleanup</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8732/files#diff-c48a796836a25b90a9f94af58273ea9fd1b36248ca8689075c3d48be77de1468">+120/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Narrow CI matrix to
dashboard filter suite</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Limit matrix to Dashboards-Settings<br> <li> Run only
dashboard-filter.spec.js<br> <li> Comment out other test groups</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8732/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+92/-92</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
244c9547a7 |
fix: new pipeline UI improvements (#8714)
### **User description** This PR covers the issues mentioned in #8692 ___ ### **PR Type** Bug fix ___ ### **Description** - Restore zoom controls in pipeline UI - Remove redundant back button in editor - Set default zoom level to 0.8 ___ ### Diagram Walkthrough ```mermaid flowchart LR Editor["PipelineEditor.vue header"] -- "remove back button, adjust padding" --> UI["Cleaner editor UI"] View["PipelineView.vue"] -- "add Controls & styles" --> ZoomControls["Zoom/Fit UI restored"] Flow["PipelineFlow.vue"] -- "default zoom 0.8" --> Viewport["Improved initial viewport"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>PipelineEditor.vue</strong><dd><code>Remove redundant back button from editor header</code> </dd></summary> <hr> web/src/components/pipeline/PipelineEditor.vue <ul><li>Remove left-side back button container<br> <li> Add left padding class to header container</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8714/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+1/-15</a> </td> </tr> <tr> <td> <details> <summary><strong>PipelineFlow.vue</strong><dd><code>Set pipeline default zoom to 0.8</code> </dd></summary> <hr> web/src/plugins/pipelines/PipelineFlow.vue - Adjust default viewport zoom from 1.5 to 0.8 </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8714/files#diff-9c7475a54f0c895dd49eb0c5b53fe0a76ceff0520f667a9cb065b364557ced50">+1/-1</a> </td> </tr> </table></td></tr><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>PipelineView.vue</strong><dd><code>Reintroduce Vue Flow controls for zoom/fit</code> </dd></summary> <hr> web/src/components/pipeline/PipelineView.vue <ul><li>Import Controls and ControlButton from @vue-flow/controls<br> <li> Import controls stylesheet<br> <li> Register Controls and ControlButton as components</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8714/files#diff-a71732cf7f8ee768e21f7eb2bf9eeed4ac67ba8221cca2e8d347d8acb27d4471">+3/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
ad34aaa420 |
fix: pipeline UI revamp (#8676)
### **User description** This PR enhances the pipelines UI ___ ### **PR Type** Enhancement ___ ### **Description** - Revamped pipeline node sidebar UI - Added inline function definition viewer - Improved node/edge interactions and deletion UX - Updated icons, styles, and dark mode ___ ### Diagram Walkthrough ```mermaid flowchart LR Sidebar["NodeSidebar.vue UI/UX revamp"] -- styled nodes & tooltips --> Editor["PipelineEditor.vue visuals"] Editor -- keyboard edge delete & headers --> Flow["PipelineFlow.vue interactions"] Flow -- edge click help notification --> Edges["CustomEdge/EdgeWithButton cleanup"] AssocFn["AssociateFunction.vue function preview"] -- RAF/RBF guidelines --> Users["Better user guidance"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>AssociateFunction.vue</strong><dd><code>Show selected function definition and RAF/RBF note</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-24a5b2df69327a6477227ea674939dea19dd6d393b4bfcf807089d71e6391152">+205/-1</a> </td> </tr> <tr> <td><strong>NodeSidebar.vue</strong><dd><code>Redesign draggable nodes with custom tooltips</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-01811ed187a4a8d0dc2cf301d145c6d236eae3d474b048b006986e755cc6d8bb">+285/-13</a></td> </tr> <tr> <td><strong>PipelineEditor.vue</strong><dd><code>Visual updates, new icons, and keyboard edge delete</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+185/-22</a></td> </tr> <tr> <td><strong>PipelineView.vue</strong><dd><code>Update assets and scoped styles for nodes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-a71732cf7f8ee768e21f7eb2bf9eeed4ac67ba8221cca2e8d347d8acb27d4471">+61/-50</a> </td> </tr> <tr> <td><strong>CustomEdge.vue</strong><dd><code>Remove on-edge delete button; style and cleanup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-d759dc0d507d5dfb3295fdb7dfd59e4a48ae32cdced0bb3471096f8691a99f58">+9/-47</a> </td> </tr> <tr> <td><strong>CustomNode.vue</strong><dd><code>Hover actions, handle styling, labels truncation, UX polish</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-b9d83cd503b6d3470b238accaaea0b4decf567add8ad4727c63c9e583725f408">+704/-342</a></td> </tr> <tr> <td><strong>EdgeWithButton.vue</strong><dd><code>Remove edge button UI; keep keyboard deletion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-838d98dd7119cb936a8971f3c631106cdda2c4113530999ff50bceb206acd375">+14/-29</a> </td> </tr> <tr> <td><strong>PipelineFlow.vue</strong><dd><code>Edge click help notification and event handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-9c7475a54f0c895dd49eb0c5b53fe0a76ceff0520f667a9cb065b364557ced50">+85/-3</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
d2a65f967f |
test: add dashboard override config test case (#8652)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add override config E2E test
- Introduce override config locators
- Implement robust sidebar scrolling
- Save override via UI flow
___
### Diagram Walkthrough
```mermaid
flowchart LR
Spec["Visualize spec: override test"] -- uses --> PageObj["DashboardPanelConfigs helpers"]
PageObj -- adds --> Locators["Override locators"]
PageObj -- adds --> Scroll["Robust sidebar scroll"]
Spec -- verifies --> Table["Colored table cells present"]
Spec -- persists --> Dashboard["Add panel to new dashboard"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-panel-configs.js</strong><dd><code>Add
override helpers and scrolling in panel configs</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/dashboard-panel-configs.js
<ul><li>Add override config locators.<br> <li> Add configureOverride
workflow with save.<br> <li> Implement scrolling to reveal override
control.<br> <li> Minor whitespace/cleanup.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8652/files#diff-f9ea2c35d253aa0c99b5c165f575a883ee898f981dc0a451502e230f03a0995c">+69/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Add E2E test
validating override color application</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Add test for override after histogram.<br> <li> Use new panel
config helpers.<br> <li> Assert colored cells and persist panel.<br>
<li> Log styles and cleanup dashboard.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8652/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+82/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
891d3f5d1a |
test: pytest tests sql (#8637)
### **PR Type**
Tests
___
### **Description**
- Add time-series window functions test
- Add advanced regex aggregation test
- Add complex nested aggregation test
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Add E2E test: array case-sensitive"] -- "validates substring match in arrays" --> T["tests/test_advanced_sql.py"]
B["Add E2E test: window functions"] -- "histogram + LAG growth" --> T
C["Add E2E test: regex + metrics"] -- "regexp_match, health status" --> T
D["Add E2E test: complex CTEs"] -- "env metrics, ranks" --> T
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_advanced_sql.py</strong><dd><code>Add multiple
advanced E2E SQL tests</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_advanced_sql.py
<ul><li>Add case-sensitive array extraction E2E test.<br> <li> Add
time-series window functions E2E test.<br> <li> Add advanced regex with
JSON-path metrics test.<br> <li> Add complex nested aggregation with
CTEs and ranking test.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8637/files#diff-190cc55e8b961580682e09403c997fda2e8288e5f210dec5ab41c9465c68538f">+451/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
9b971f0b7f |
test: add camelCase test scenarios (#8570)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add transpose custom SQL dashboard test
- Extend error checking return structure
- Validate no errors post-transpose
- Optimize test flow and assertions
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["Dashboards transpose test"] -- "enable transpose via config" --> Transpose["Apply transpose"]
Transpose -- "check errors" --> ErrorCheck["Enhanced error results"]
ErrorCheck -- "assert zero errors" --> Save["Save panel and cleanup"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualise.js</strong><dd><code>Enrich dashboard error
check return payload</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/visualise.js
<ul><li>Extend error result object.<br> <li> Include
<code>errorTextCount</code> and <code>errorListCount</code>.<br> <li>
Preserve existing no-error logic.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8570/files#diff-c14ac1db3e4aa86190d7525e8e38c410bcbbae7f46b01890e74937cc11be67e6">+2/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-transpose.spec.js</strong><dd><code>New E2E
test: transpose with custom SQL</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-transpose.spec.js
<ul><li>Add test for transpose with custom SQL.<br> <li> Configure
fields, time range, and transpose.<br> <li> Use enhanced error counts
for assertions.<br> <li> Save and cleanup created dashboard.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8570/files#diff-da631007cea76a4bc59e4acd1195b59ae4131cd5208d21a9c1f94d3913911dc4">+88/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
4fa43fdff7 |
fix: stream detail page (schema) layout changed (#8585)
### **User description**
1. This PR introduces a new tab called configuration where we moved all
the configuration settings to that tab
2. This PR introduces a compact table so that more columns are visible
and also all the stream stats above will stay at viewport always
___
### **PR Type**
Enhancement
___
### **Description**
- Redesigned schema page layout and header
- Added Configuration tab for settings
- New compact stats tiles and sticky table
- Added distinct values toggle and UX polish
___
### Diagram Walkthrough
```mermaid
flowchart LR
Header["Header: title + name + timeline"] -- "context" --> Tabs["Tabs: Schema Settings / Configuration / Extended Retention"]
Tabs -- "schema fields" --> SchemaTbl["Schema table: compact, sticky header, mini-select"]
Tabs -- "settings" --> Config["Configuration panel: retention, max range, flatten, toggles"]
Tabs -- "retention" --> ExtRet["Extended Retention: date selection + table"]
Stats["Stats tiles: Events, Storage, Compressed, Index"] -- "overview" --> Header
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>schema.vue</strong><dd><code>Schema page UI/UX overhaul
with new configuration</code>
</dd></summary>
<hr>
web/src/components/logstream/schema.vue
<ul><li>Revamped header with stream name badge and timeline.<br> <li>
Added stats tiles grid and compact layout.<br> <li> Introduced
'Configuration' tab with inputs and toggles.<br> <li> Improved schema
table: sticky header, mini-select, tooltips, <br>pagination.<br> <li>
Added 'Enable Distinct Values' setting wired to backend.<br> <li>
Updated date formatting and preserved original timestamps.<br> <li>
Adjusted per-page options and floating footer behavior.<br> <li> Added
new icons and theme-aware styling; extensive CSS updates.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8585/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46">+1068/-604</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
83b2951a23 |
test: add test cases for visualization using "Select *" queries (#8589)
### **User description**
… query
___
### **PR Type**
Tests
___
### **Description**
- Add E2E test for SELECT * visualization
- Verify default line chart selection
- Validate inspector shows transformed histogram query
- Save panel to dashboard and assert success
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Open Logs"] -- "Enter SELECT *" --> B["Apply Query"]
B -- "Open Visualise" --> C["Verify line chart rendered"]
C -- "Run & Add Panel" --> D["Save to new dashboard"]
D -- "Open Query Inspector" --> E["Assert histogram query present"]
E -- "Close & Cleanup" --> F["Delete dashboard"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Add E2E test for
SELECT * visualization and inspector</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Add test for SELECT * rendering as line chart<br> <li> Save
panel to new dashboard and assert toast<br> <li> Open query inspector
and validate generated histogram SQL<br> <li> Cleanup by navigating back
and deleting dashboard</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8589/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+55/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
3565d4a516 |
test: added advanced sql queries (#8573)
### **PR Type**
Tests
___
### **Description**
SQL Query Test Coverage
- COUNT, SUM, AVG, MIN, MAX
- approx_percentile_cont (P50, P75, P95, P99)
- histogram (time bucketing)
- str_match, str_match_ignore_case, COALESCE
- regexp_match, array_extract (regex groups)
- CASE WHEN (pattern matching)
- HAVING, LIKE, field comparisons
- GROUP BY (multi-field, time buckets)
- Kubernetes fields (kubernetes_container_name, etc.)
- Add advanced SQL E2E tests
- Validate fields and value constraints
- Cover percentiles and aggregations
- Exercise grouping, regex, and filters
___
### Diagram Walkthrough
```mermaid
flowchart LR
tests["New E2E SQL tests"] --> errorRate["Error rate analysis"]
tests --> percentiles["Time-bucket percentiles"]
tests --> volume["Log volume by bucket"]
tests --> source["Source grouping"]
tests --> hostPerf["Host performance stats"]
tests --> compPct["Component percentiles"]
tests --> apiLogs["API log analysis"]
tests --> metadata["Regex-based metadata extraction"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_advanced_sql.py</strong><dd><code>Add
comprehensive E2E advanced SQL query tests</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_advanced_sql.py
<ul><li>Add eight E2E tests posting SQL queries<br> <li> Assert HTTP 200
and presence of expected fields<br> <li> Validate rates, percentile
ordering, and counts<br> <li> Use time windows, grouping, regex
extraction</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8573/files#diff-190cc55e8b961580682e09403c997fda2e8288e5f210dec5ab41c9465c68538f">+514/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
3fedd93430 |
test: Reworked logs download tests, added 10 tests for json and sql w… (#8543)
### **User description**
…ith limit
___
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add JSON download verification helpers
- Consolidate downloads into one comprehensive test
- Cover CSV and JSON for custom ranges
- Add SQL mode CSV/JSON with LIMIT 2000
___
### Diagram Walkthrough
```mermaid
flowchart LR
LogsPage["LogsPage: add JSON verifiers"] -- used by --> Spec["logsDownloads.spec: comprehensive tests"]
Spec -- normal downloads --> CSV["CSV verification"]
Spec -- normal downloads --> JSON["JSON verification"]
Spec -- custom ranges (100-10000) --> CSV
Spec -- custom ranges (100-10000) --> JSON
Spec -- SQL mode LIMIT 2000 --> CSV
Spec -- SQL mode LIMIT 2000 --> JSON
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Add JSON download
verification helpers</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add verifyJsonDownload helper for generic JSON<br> <li> Add
verifyJsonDownloadWithCount with expected count<br> <li> Validate file
presence, size, JSON structure, _timestamp<br> <li> Return saved
download path for reuse</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8543/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+76/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>logsDownloads.spec.js</strong><dd><code>Consolidate and
expand logs download tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logsDownloads.spec.js
<ul><li>Replace multiple tests with one orchestrated suite<br> <li> Add
helpers to setup page and SQL mode<br> <li> Test CSV/JSON for normal,
custom ranges, SQL LIMIT<br> <li> Aggregate results with robust error
handling and summary</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8543/files#diff-90f04cfe53caddf683cc4466e9e97af96d7eb90d636bf6b0f5cdc4b76dc395ac">+198/-204</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
c77a559183 |
feat: add pipeline usage (#8295)
### **PR Type** Enhancement, Bug fix ___ ### **Description** - Add pipeline and remote usage tracking - Report usage for remote destination WAL writes - Switch pipeline channels to structured items - Fix size accounting across pipeline branches ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Ingestion (Logs/Metrics)"] -- "pre-pipeline size" --> B["Usage: Pipeline"] B -- "execute pipeline" --> C["Pipeline Nodes (Condition/Function/Destination)"] C -- "local dest" --> D["Size by stream (no double count)"] C -- "remote dest WAL write" --> E["Usage: RemotePipeline"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>usage.rs</strong><dd><code>Add Pipeline and RemotePipeline usage types and mapping</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+22/-0</a> </td> </tr> <tr> <td><strong>ingest.rs</strong><dd><code>Report size before pipeline; avoid double counting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-e62118e45be183266d39ffa08491f255017954235ff0f3d6937683e314da406f">+13/-7</a> </td> </tr> <tr> <td><strong>batch_execution.rs</strong><dd><code>Add usage reporting; introduce PipelineItem; report remote WAL usage</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-3f6824a6eddaf1603e5cb0f1a4311ac6a45e1ffb967266ccc1f0bba944625e69">+158/-29</a></td> </tr> </table></details></td></tr><tr><td><strong>Bug fix</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>handlers.rs</strong><dd><code>Avoid ownership by cloning stream params key</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-5eca8995a88fcecb6d6b8efd3c7c4496f4a96a4b060fb4ed85593574f7cf49eb">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>otlp.rs</strong><dd><code>Minor formatting and flow tidy in loop</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-183498d98b17ddf344cbab4da6b2d9fe89ac81112db51655c142a89023b46ef3">+1/-0</a> </td> </tr> <tr> <td><strong>json.rs</strong><dd><code>Minor formatting; prep for pipeline handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+1/-0</a> </td> </tr> <tr> <td><strong>prom.rs</strong><dd><code>Minor formatting; prep for pipeline handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-c4e9e1d49a2bd0fefe67684b3768c4792be63cebcf727d71a48141f5b5957b8c">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
e70455bfd9 |
test: add custom variable tests for dashboard (#8401)
### **PR Type**
Enhancement, Tests
___
### **Description**
- Add custom value search to variables
- Introduce streaming-aware dashboard tests
- Add streaming state management helper
- Update CI to run streaming tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
vars["DashboardVariables.addDashboardVariable(custom search)"]
mgmt["ManagementPage.setStreamingState()"]
filtSpec["dashboard-filter.spec: custom value search test"]
streamSpec["dashboard-streaming.spec: streaming search test"]
ci["Playwright workflow: Dashboards-Streaming job"]
vars -- "support custom value search" --> filtSpec
mgmt -- "toggle streaming on/off" --> streamSpec
streamSpec -- "verifies _values_stream calls" --> ci
filtSpec -- "validates _values calls" --> ci
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-variables.js</strong><dd><code>Support custom
value search for variables</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/dashboard-variables.js
<ul><li>Extend addDashboardVariable with custom search mode<br> <li>
Conditionally skip early save/close for custom search<br> <li> Implement
custom value entry flow in settings</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-67d38d39bb67f4a0cbfa473ee81ad50b1fffebc40c635417e58905f3c865a6e2">+48/-8</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>managementPage.js</strong><dd><code>Add streaming state
management utility</code>
</dd></summary>
<hr>
tests/ui-testing/pages/generalPages/managementPage.js
<ul><li>Add setStreamingState helper<br> <li> Navigate to settings and
toggle streaming<br> <li> Verify final toggle state with
aria-checked</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-2e67acc9ff9099e14792ddeb7d0160268727fb064b85e6712f6434130cc23fdd">+48/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-filter.spec.js</strong><dd><code>Add custom
value search e2e test</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-filter.spec.js
<ul><li>Add test for custom value dropdown search<br> <li> Capture and
assert /_values responses status<br> <li> Configure panel and filter
using variable<br> <li> Ensure dashboard cleanup</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-c48a796836a25b90a9f94af58273ea9fd1b36248ca8689075c3d48be77de1468">+110/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>dashboard-streaming.spec.js</strong><dd><code>Add
streaming-aware dashboard tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-streaming.spec.js
<ul><li>New serial test suite for streaming<br> <li> Enable/disable
streaming via page object<br> <li> Validate _values_stream requests and
200 status<br> <li> Full dashboard create, filter, save, cleanup</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-92f44296937f53cb448371d1c61510c8c910fbecab83b02b8e89490d5832be19">+152/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI: run streaming
dashboard tests</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add Dashboards-Streaming matrix entry<br> <li> Map folder to
Dashboards path<br> <li> Run dashboard-streaming.spec.js on Chrome</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+4/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
8ede92a58f |
ci: updated oss strapi notification to pusblish content (#8465)
### **User description**
updated oss strapi notification to pusblish content
___
### **PR Type**
Enhancement
___
### **Description**
- Improve changelog cleaning logic robustness
- Stop at 'New contributors' section
- Exclude binaries and links from notes
- Publish Strapi release entries by default
___
### Diagram Walkthrough
```mermaid
flowchart LR
GH["GitHub Release (tag)"] -- "Fetch & clean body" --> Clean["Enhanced changelog cleaner"]
Clean -- "Cleaned notes" --> Payload["Build payload for Strapi"]
Payload -- "POST status=published" --> Strapi["Strapi /api/github-releases"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>release.yml</strong><dd><code>Refine changelog cleaner
and publish status</code>
</dd></summary>
<hr>
.github/workflows/release.yml
<ul><li>Rewrote <code>cleanChangelog</code> to iterative parser.<br>
<li> Stops at 'New contributors'; removes links and binaries lines.<br>
<li> Preserves non-empty cleaned lines only.<br> <li> Changes Strapi API
call query to <code>status=published</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8465/files#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34">+13/-14</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
7f3ee74085 | fix: o2 ui improvements latest (#8391) | ||
|
|
5fc1944621 |
test: add camelCase tests for dashboard (#8423)
### **PR Type**
Tests, Bug fix
___
### **Description**
- Add camelCase custom SQL UI tests
- Fix table data validation logic
- Validate line and table chart rendering
___
### Diagram Walkthrough
```mermaid
flowchart LR
UI["Dashboard UI tests"] -- "add camelCase SQL cases" --> Tests["Playwright specs"]
Renderer["PanelSchemaRenderer table check"] -- "fix grouping logic" --> Validation["Accurate data validation"]
Tests -- "verify table & line charts" --> Charts["Rendered charts without no-data"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>PanelSchemaRenderer.vue</strong><dd><code>Fix table
data validation logical grouping</code>
</dd></summary>
<hr>
web/src/components/dashboards/PanelSchemaRenderer.vue
<ul><li>Correct parentheses in table branch<br> <li> Ensure x/y alias
checks grouped logically</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8423/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+2/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard.spec.js</strong><dd><code>Add camelCase
custom SQL UI tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard.spec.js
<ul><li>Add test for camelCase in table SQL<br> <li> Add test for
camelCase in line SQL<br> <li> Assert data presence and chart
rendering<br> <li> Cleanup dashboards after tests</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8423/files#diff-d0fa0042783dc109334b05266edce228bad97adcb568dd1e447920596238e9b4">+136/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
|
||
|
|
171bea35a6 |
fix: restrict select * query for visualization (#8302) (#8368)
### **User description** - #8338 Resolved Issues: - Implemented a check for `ZO_QUICK_MODE_ENABLED` before enabling quick mode on logs for visualization toggle. 1. If `ZO_QUICK_MODE_ENABLED=true`, quick mode is enabled when the query is `select *`. 2. Otherwise, `select *` query is always permitted in visualization mode. - Restricted the use of `SELECT *` queries in visualization mode. - As API call triggered on changing the chart type, such changes are now disallowed for `SELECT *` queries. ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Block SELECT * in visualization when quick mode on - Respect quick-mode config before auto-enabling - Centralize SELECT * detection in sqlUtils - Prevent chart-type changes for SELECT * queries ___ ### Diagram Walkthrough ```mermaid flowchart LR A["sqlUtils.ts: isSimpleSelectAllQuery()"] -- "imported by" --> B["logs/Index.vue"] A -- "imported by" --> C["VisualizeLogsQuery.vue"] B -- "auto-enable quick mode only if config true" --> D["handleQuickModeChange()"] B -- "block run for SELECT * when quick mode" --> E["handleRunQueryFn()"] C -- "validate on chart type change" --> F["handleChartTypeChange()"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>sqlUtils.ts</strong><dd><code>Add reusable SELECT * query detector</code> </dd></summary> <hr> web/src/utils/query/sqlUtils.ts <ul><li>Add <code>isSimpleSelectAllQuery</code> utility with normalization.<br> <li> Export function for reuse across components.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8368/files#diff-dde40e8fcb5c37b06c011ede08922c44a3c025682fbc341aee97ba046b73a0e3">+17/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>Index.vue</strong><dd><code>Enforce quick mode/config and block SELECT * runs</code> </dd></summary> <hr> web/src/plugins/logs/Index.vue <ul><li>Import shared <code>isSimpleSelectAllQuery</code>.<br> <li> Remove local duplicate detector.<br> <li> Auto-enable quick mode only if config enabled.<br> <li> Block visualize run for SELECT * when quick mode enabled.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8368/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+32/-16</a> </td> </tr> <tr> <td> <details> <summary><strong>VisualizeLogsQuery.vue</strong><dd><code>Validate chart type changes against SELECT * queries</code> </dd></summary> <hr> web/src/plugins/logs/VisualizeLogsQuery.vue <ul><li>Replace v-model with explicit <code>selectedChartType</code> prop handling.<br> <li> Add <code>handleChartTypeChange</code> validating against SELECT * when quick mode.<br> <li> Import shared <code>isSimpleSelectAllQuery</code> and logs context.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8368/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+38/-2</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
ab156bad8d |
fix: changed code-mirror to monaco-editor (#8047)
### **PR Type** Enhancement, Bug fix ___ ### **Description** - Replace CodeMirror with Monaco editor - Add Monaco autocomplete and markers - Update build to bundle Monaco - Remove re-render key from logs UI ___ ### Diagram Walkthrough ```mermaid flowchart LR CM["CodeMirror-based editor"] -- Replaced by --> ME["Monaco editor integration"] ME -- Autocomplete/Markers --> UX["Improved editor UX"] Build["Vite config"] -- Add monaco plugin/chunks --> Bundle["Optimized bundles"] UI["Logs and SearchBar"] -- Minor fixes/cleanup --> Stability["Reduced re-renders"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>CodeQueryEditor.vue</strong><dd><code>Replace CodeMirror with Monaco, add features</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-52a36bf2d64e590036ed1c1f89b07a4a6b971a84e4fae9b4272cbc69d63f9bef">+369/-980</a></td> </tr> <tr> <td><strong>Index.vue</strong><dd><code>Cleanups, visualization flow, formatting tweaks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+105/-78</a></td> </tr> <tr> <td><strong>SearchBar.vue</strong><dd><code>Editor placeholder, menus, toggle guards</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+148/-82</a></td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>CodeQueryEditorDarkTheme.ts</strong><dd><code>Remove legacy CodeMirror dark theme</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-4ee0166b549a9a7d6a91e72d546dffd2d031b0ad6015ef5f735b67742e13c66d">+0/-230</a> </td> </tr> <tr> <td><strong>CodeQueryEditorLightTheme.ts</strong><dd><code>Remove legacy CodeMirror light theme</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-4e80117fff859d80b9dde6898e8026f2c2514c43244e48e2b639527409d38682">+0/-246</a> </td> </tr> <tr> <td><strong>package.json</strong><dd><code>Remove CodeMirror deps; add Monaco and plugin</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+2/-16</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>vite.config.ts</strong><dd><code>Integrate Monaco plugin and chunking</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-9430906049744cbbfe5d0b382b2466843a42cfebf755ff86fec850b0712258ef">+25/-15</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: Bhargav <BJP232004@GMAIL.COM> |
||
|
|
52e11d3ee7 |
fix: o2 UI table improvements (#8033)
### **User description** This PR improves the following `Fix: checkboxes as per design for alert list Fix: general setting, platform settings modified as per design Fix: numeric input in general settings as per design Fix: introduced all variables according to design Fix: secondary button, primary button, tabs, search input added Fix: another major change related to tabs, sticky header and footer table Fix: light mode q-toggle redesign done for both lg and small Fix: pipeline list as per new design Fix: added removed padding at the child level for pipeline editor Fix: function list table as per design changed Fix: made filtering rows based upon filter query this is done to avoid the issue of the table showing some height when the filter is applied and there are no results Fix: enrichment table list updated with latest design Fix: added border to the last row when having less rows when filter is applied or not applied Fix: function list bottom header to take functions Fix: function list header as per design Fix: stream list table as per design Fix: report list table as per new design Fix: users list table changed as per design Fix: added filter check for height so to avoid the issue of the table showing some height when the filter is applied and there are no results Fix: service account list table changed as per design Fix: organization list table updated as per design Fix: user groups as per design with app table additional props Fix: app roles tables list updated as per design Fix: made group roles virtual scroll to false Fix: group users, roles, service accounts tables as per new design system Fix: search icon in IAM tables as per design Fix: search history table update as per new design Fix: search scheduler list table updated as per design Fix: space between app tabs and search in log stream page Fix: pagination logic modified due to pagination component introduced Fix: aggregation to streaming aggregation label change in management page Fix: change sub text for streaming aggregation in management page Fix: q-toggle for dark mode Fix: report list added additional checks Fix: alert destination table as per design Fix: destination list, template list tables updated as per design Fix: cipher keys table as per design Fix: regex pattern list updated as per design Fix: search input placeholder text fixed Fix: per page options consistent with streams page Fix: import and pipeline editor buttons changed as per design Fix: added primary and secondary buttons in all listing pages Fix: increased pipeline editor height Fix: add stream in pipeline should not have more space in x direction Fix: secondary, primary, and delete buttons modified in pipeline nodes Fix: IAM add pages in sync Fix: introduce toggle button in the entire application Fix: alert folder list made sticky top title and search input Fix: import alert primary and secondary button changed Fix: action scripts table modified as per design Fix: add action script file changed Fix: add enrichment table submit and cancel at start Fix: add stream submit and cancel buttons at start Fix: create report changed as per new design Fix: real user monitoring get started button Fix: data source page reset rum token, reset token to primary button Fix: add destination button position changed Fix: add cipher key UI modified according to add report Fix: organization settings toggle changed Fix: home view layout spacing fixed Fix: remove negative bg for delete button` ___ ### **PR Type** Enhancement ___ ### **Description** - Adopt new design system across tables - Introduce uniform sticky headers/footers - Replace filters with tabs and styled inputs - Improve pagination, per-page options ___ ### Diagram Walkthrough ```mermaid flowchart LR design["New design tokens/components"] tables["Tables (Lists across app)"] headers["Sticky headers/footers"] filters["Tabs + styled search"] pagination["Unified pagination options"] ux["Consistent UX across themes"] design -- applied to --> tables tables -- enable --> headers tables -- replace --> filters tables -- standardize --> pagination tables -- results in --> ux ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>19 files</summary><table> <tr> <td><strong>LogStream.vue</strong><dd><code>Header redesign, tabs, sticky table, pagination</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-56f4223b74568c10bc305741cc9fc3a8830184a251b4eaa6a2649033bc6200e3">+82/-95</a> </td> </tr> <tr> <td><strong>AlertList.vue</strong><dd><code>Header styling, search/toggle redesign, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+59/-62</a> </td> </tr> <tr> <td><strong>ActionScipts.vue</strong><dd><code>Styled header/search, computed filtering, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6cfeff0b8dbbaba52b13ba67d6f4f8fdc3c58996eccdfae2ad0db2e7aee20f08">+71/-65</a> </td> </tr> <tr> <td><strong>User.vue</strong><dd><code>New header/search, client filtering, footer pagination</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-e973c2a665f9b27b94673ba64cc5b23650300836a727a2e07673c8e26305aee5">+63/-53</a> </td> </tr> <tr> <td><strong>HomeView.vue</strong><dd><code>Card layout spacing and grouping tweaks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-9af441af191d3254ef5f9db603dca75486de7638cda41a3c050e7b3c33d68280">+110/-109</a></td> </tr> <tr> <td><strong>ServiceAccountsList.vue</strong><dd><code>New header/search, client filter, sticky table/footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-3afe835bcfbec3fda2e9550850c29581092ee0717e7dd8de8888e774a0048d24">+63/-59</a> </td> </tr> <tr> <td><strong>General.vue</strong><dd><code>Platform settings UX revamp with GroupHeader</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-a191d0eb2843df5efa7f18d411a216e86558b49f7b6cdfa9501d69414b933fc3">+144/-63</a></td> </tr> <tr> <td><strong>PipelinesList.vue</strong><dd><code>Header/tabs/search restyle, sticky table, export button</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-85e3ef322f3eea0fc6d74d89431ba338a1153cb82ee06bef0f7c5f439c04267d">+52/-31</a> </td> </tr> <tr> <td><strong>EnrichmentTableList.vue</strong><dd><code>Header/search restyle, client filtering, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6a29e253f59405d3c0f756dba36afd7483f10ad86927cbbc3348ede6372c3077">+45/-38</a> </td> </tr> <tr> <td><strong>TemplateList.vue</strong><dd><code>Header/search/buttons restyle, sticky table/footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7df66364d7d69a26cfa25cbc555d0e090c2f73e51c8386d9b0435bae4412564c">+43/-43</a> </td> </tr> <tr> <td><strong>FunctionList.vue</strong><dd><code>Header/search restyle, client filtering, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6ff9af50a1597504b7f0dca91e61cf30c800b4a17b4be2ed2c3a4f7a7b2d7068">+49/-39</a> </td> </tr> <tr> <td><strong>ReportList.vue</strong><dd><code>Header/tabs/search restyle, sticky table/footer, filters</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067">+38/-32</a> </td> </tr> <tr> <td><strong>ExternalDestination.vue</strong><dd><code>Form controls restyle, large toggles, delete node dialog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7ed6a9ef676d7d6db5440d4157512f731bad58716c351ca39015125a8a9d2df5">+74/-15</a> </td> </tr> <tr> <td><strong>AlertsDestinationList.vue</strong><dd><code>Header/search/buttons restyle, sticky table/footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+43/-41</a> </td> </tr> <tr> <td><strong>GroupHeader.vue</strong><dd><code>New shared section header component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-63133a31279f4f8d5631b5d33f5b12927f9dc6616b714e8c0ffc727696abbc2b">+64/-0</a> </td> </tr> <tr> <td><strong>_variables.scss</strong><dd><code>Introduce/adjust design tokens and variables</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-b3e37ee00c17b89ad1177c5592504277aa645b374095c065ea8b3782df5e89a2">+289/-0</a> </td> </tr> <tr> <td><strong>RegexPatternList.vue</strong><dd><code>Apply unified table/header/search styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-524927acd9f5bb07b71bfac489e747470108574e21a6dde63ea7c1f219cea853">+62/-56</a> </td> </tr> <tr> <td><strong>CipherKeys.vue</strong><dd><code>Apply unified table/header/search styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-950b715cff2c964d8542512692030c370733b57d698abf40e1dcb3cce2cfaf7a">+45/-45</a> </td> </tr> <tr> <td><strong>PipelinesDestinationList.vue</strong><dd><code>Apply unified table/header/search styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-088c66f5a34e73a5350a794a772e5d905262277337c937dd36f4295072203ebf">+41/-39</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>TemplateList.spec.ts</strong><dd><code>Update tests to match new UI structure</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-83d9701e7e491fb1ac667d1e1833ec58153c04ad844560778d06d50b85bd4bc6">+0/-20</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>54 files</summary><table> <tr> <td><strong>alertTemplatesPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-f4ebd248b2140051e74dbbbd1aabe344f01c80704ce5857e9c28a04350e018f3">+17/-17</a> </td> </tr> <tr> <td><strong>alertsPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-79ee01d6d7f145f19207b93b87143b545a1188cfc6a82bc8c45fecfbf68f8a1d">+5/-5</a> </td> </tr> <tr> <td><strong>dashboard-chart.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-573a312576fce62d8e14f2bbb5f9b7d9a552d746304dce3d79862edddd24de76">+3/-0</a> </td> </tr> <tr> <td><strong>AppTable.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-efcf66a9e913b5d3a7c2eea800b7f4e54d9e5268307131482fd40f32e2074d8e">+30/-13</a> </td> </tr> <tr> <td><strong>EditScript.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-bf406d8f31f66d50e11b2c41f5ec13daabb4bb2e4f4612c5ff44675817ed2eca">+37/-34</a> </td> </tr> <tr> <td><strong>AddAlert.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+12/-10</a> </td> </tr> <tr> <td><strong>AddDestination.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-61b295458e13049a538f5014124855d58dce664dfbd644b57a964a37a07b7a3f">+15/-12</a> </td> </tr> <tr> <td><strong>AddTemplate.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-2508a43827e6b35c07f3222deebd9945101ca6bc32b9dc592e6253ab99908bba">+11/-11</a> </td> </tr> <tr> <td><strong>ImportAlert.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-0f40dbf2757672e39ad16b86dddc59b568ca2e6ca36850420cd7be617da12d38">+6/-6</a> </td> </tr> <tr> <td><strong>ImportDestination.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-814b8ef1dbb4eebca9dfab72452d9a90d5f3fa5886dea8e82ac0bde44f66b445">+6/-6</a> </td> </tr> <tr> <td><strong>ImportTemplate.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-d22684c5142a49b8925a9dba1ef67631128caa95de66e71ba2a5b8120a0b91c6">+7/-6</a> </td> </tr> <tr> <td><strong>ScheduledAlert.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-5e143a17ab0fa5d7817f6d9301667fb5597236f27184248c7a71728e85b8d999">+6/-4</a> </td> </tr> <tr> <td><strong>VariablesInput.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-23a647aa1acfc95bc726629f0daa54005e3da1ed5b16482ceccef0649f680a74">+8/-11</a> </td> </tr> <tr> <td><strong>AddCipherKey.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-ff5ae3a9b070fe2b3650f177ced0d87e9449ae7375a0b117ee299238293df110">+27/-15</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-41d2f8fac44084c004d8386ea4cc32e9c5d3e33266c4009cc855e57fb00a41af">+12/-14</a> </td> </tr> <tr> <td><strong>FolderList.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-b97284b1720dfb524e425f49acd70f1a4e59da3d493eb2d4b3de8551b2da7141">+47/-22</a> </td> </tr> <tr> <td><strong>AddEnrichmentTable.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-9aad551dbc051edfdb3994a664506ed6d5e27dcb64f9c2fa917b02e51a35d86e">+12/-10</a> </td> </tr> <tr> <td><strong>FunctionsToolbar.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-8283d2ff9c4a66b4b59eac306672aca2d54655a462e2ddb88e14e039d79dcdaf">+18/-18</a> </td> </tr> <tr> <td><strong>AddGroup.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-dd49436305aadc01990cd6d9ea0abf97b964195920a1b49e64e8868fcc8afa6c">+19/-23</a> </td> </tr> <tr> <td><strong>AppGroups.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-402fb2a5338e60fdc3da489f4d50b5cf52f06b4e884a6fe7b82441c9fa5ea22c">+33/-22</a> </td> </tr> <tr> <td><strong>EditGroup.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6be040722d1492644adbf65250d44d28be37614d34600a73f74c816138727a40">+2/-2</a> </td> </tr> <tr> <td><strong>GroupRoles.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-d7d1d9ec26ff77175b0e961e3e53e7ced45c9211eae8a0c00f7ac1cdac88ae14">+21/-8</a> </td> </tr> <tr> <td><strong>GroupServiceAccounts.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-b7afafc6b850c2d6edc2b855e78ff51d95d101937ec001a5790d130f4fb60695">+18/-7</a> </td> </tr> <tr> <td><strong>GroupUsers.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-114c767db76d4a09278c765d8aba39a1936c861488f39e7f0f6b3883499a3c40">+17/-6</a> </td> </tr> <tr> <td><strong>AddUpdateOrganization.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-bca5bebfa6d5f435715dc5fa948876de02fef95a84e3e663e5c7922d601b4b9d">+19/-20</a> </td> </tr> <tr> <td><strong>ListOrganizations.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-572ed99323d3e36d126074eccc10b68f6eef983d92f89d06b205fef0925c93a3">+30/-37</a> </td> </tr> <tr> <td><strong>Quota.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-30293eb5cb924f95356d5abd4588ce0f03765ac9d4446cf5b8cbacba23c6f979">+13/-9</a> </td> </tr> <tr> <td><strong>AddRole.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-fca7dd7f91da83de52bfc40e82451a8756001af43974d592de2e03a815b21c9b">+14/-14</a> </td> </tr> <tr> <td><strong>AppRoles.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-191634ef09436199f91f442968110a01f54ae46b5ceee67476f52613ad796db4">+27/-17</a> </td> </tr> <tr> <td><strong>EditRole.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-263b6bc7d29fdf8358c8437cd637f1350aa3733cc2706eae8ff00028686cc0f5">+3/-3</a> </td> </tr> <tr> <td><strong>AddServiceAccount.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-4e6840978e90be9195797d1b73b6cd1545ddac45cef84aa08701a9d66013c61b">+26/-28</a> </td> </tr> <tr> <td><strong>AddUser.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-47543c0488c8cb5bcf77e2bb4af9d0a5dd249993cd9577c4852f7950c7aaec91">+18/-26</a> </td> </tr> <tr> <td><strong>AddStream.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-78b8c84a558e60d942bacffee365633d074042e464be465eb6984b0ee5df82b9">+11/-12</a> </td> </tr> <tr> <td><strong>ImportPipeline.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-d57fa41169daa44551a181f21ca33882004b29ab74e3040e4c56a8c849078670">+10/-12</a> </td> </tr> <tr> <td><strong>AssociateFunction.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-24a5b2df69327a6477227ea674939dea19dd6d393b4bfcf807089d71e6391152">+25/-18</a> </td> </tr> <tr> <td><strong>Condition.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-4c3e624233c9e0355c7ded3b26dc74971b867be63e24f92a5e639284f60639dd">+20/-17</a> </td> </tr> <tr> <td><strong>ScheduledPipeline.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-63d8f838bb880356e7804b4a57fd9223d4f2c189de7aadc7cf33cba723b29aaf">+21/-19</a> </td> </tr> <tr> <td><strong>Stream.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-1a17ced9dc89022502cab0a6f9b97b413c2a2c4f8219733d063fc0180d361739">+26/-21</a> </td> </tr> <tr> <td><strong>PipelineEditor.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+21/-19</a> </td> </tr> <tr> <td><strong>StreamSelection.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-461440be35cc15b6b78700c8a61747ea9fb601a750af5292fa2d04b6fc96d595">+10/-10</a> </td> </tr> <tr> <td><strong>CreateReport.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-cf2258c64249d4f28b2a103558bce3af1c87f0b2f23fe0652b458b8c20bb9c64">+28/-30</a> </td> </tr> <tr> <td><strong>AddRegexPattern.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-a3783cfbdd32609bfff45ecfa23542854cad7ae60c3d29fedb832312a4de03dc">+9/-12</a> </td> </tr> <tr> <td><strong>ImportRegexPattern.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-e8e1bcb5a02311504d7d571090eab27a270aaa71cae185ad2703023e2e70a31e">+6/-6</a> </td> </tr> <tr> <td><strong>OrganizationManagement.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-21e2431538cb6b76e5ef5b367c6df8fc02ad8f6c1294f438be9937c7481ea9ff">+16/-2</a> </td> </tr> <tr> <td><strong>OrganizationSettings.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-54860a5d84362fe3ade0c3a50d7bacb02af3d21e1012517a0140e21f9ddabfc1">+11/-13</a> </td> </tr> <tr> <td><strong>FilterCreatorPopup.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7fa80f0424ed3b2e60b0e3ba77493b0e5d3ef98ddcf40cd103fe433d326221d7">+16/-2</a> </td> </tr> <tr> <td><strong>en.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+5/-3</a> </td> </tr> <tr> <td><strong>SearchHistory.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-9dd167bd5e272b2057f53c16b905047eec00655a3552daad240a964d67a6f56d">+30/-18</a> </td> </tr> <tr> <td><strong>SearchSchedulersList.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-0c0a4097c53f07712d35562b1336602bf24faddedab77a9f5717f5582dcac2f1">+53/-27</a> </td> </tr> <tr> <td><strong>app.scss</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-5703d12504b0395cbfbbfad02a592bc391496026e5f03743102ce06c210ea05f">+414/-8</a> </td> </tr> <tr> <td><strong>Functions.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-ad825ec1b8d58aec9bf5d2553ea09394a30b22ac59d708bcf9e56168ca1daaf6">+1/-2</a> </td> </tr> <tr> <td><strong>IdentityAccessManagement.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-60b63024c98ee8927e12f9ebec93e99ba7ff419038cfe1cc57d49de1f6f342d6">+1/-1</a> </td> </tr> <tr> <td><strong>Ingestion.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-97b8e8ed2a1260a39442563c7447d4f6d4830a37d47258920d6f94a292cd2d77">+9/-9</a> </td> </tr> <tr> <td><strong>RealUserMonitoring.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-dd099485ccafdabc8f9e63bf1610e7044680f3b7ae19a9e9c5645b351c7a8701">+3/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
0730d5f7a4 |
fix: landing page / Home page revamp (#6729)
### **User description**
1. This PR implements the latest UI of landing page / Home page with 2
charts for showing alerts and pipelines
2.
___
### **PR Type**
Enhancement
___
### **Description**
- Redesigned Home page layout and tiles
- Added alerts and pipelines charts
- Implemented theme-aware icons and styles
- Added loading state for summary fetch
___
### Diagram Walkthrough
```mermaid
flowchart LR
HomeView["HomeView.vue"]
SummaryAPI["Summary fetch & parsing"]
Charts["CustomChartRenderer charts"]
Tiles["Responsive metric tiles"]
Theming["Dark/Light computed icons & styles"]
Loading["Loading spinner state"]
HomeView -- "fetches org summary" --> SummaryAPI
SummaryAPI -- "sets metrics & statuses" --> Tiles
SummaryAPI -- "feeds alert/pipeline data" --> Charts
HomeView -- "applies theme classes" --> Theming
HomeView -- "shows while fetching" --> Loading
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>HomeView.vue</strong><dd><code>Home page redesign with
charts and theme-aware UI</code>
</dd></summary>
<hr>
web/src/views/HomeView.vue
<ul><li>Rebuilt template with responsive sections and tiles.<br> <li>
Added alerts pie and pipelines bar charts via CustomChartRenderer.<br>
<li> Introduced loading state, improved summary parsing, and theme-aware
<br>icons.<br> <li> Added extensive SCSS for dark/light theming and
layout.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6729/files#diff-9af441af191d3254ef5f9db603dca75486de7638cda41a3c050e7b3c33d68280">+568/-229</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: ByteBaker <42913098+ByteBaker@users.noreply.github.com>
|
||
|
|
50490671db |
test: create org testcases (#8362)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add comprehensive org CRUD Playwright tests
- Implement org delete via API and UI
- Add helper to extract org identifier
- Fix verifyOrgNotExists usage and CI suite
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["New Playwright org tests"] -- "uses" --> CreateOrgPage["CreateOrgPage page object"]
CreateOrgPage -- "adds" --> DeleteAPI["deleteOrgViaAPI()"]
CreateOrgPage -- "adds" --> DeleteUI["deleteOrgViaUI()"]
CreateOrgPage -- "adds" --> GetIdentifier["getOrgIdentifierFromTable()"]
Workflow["GitHub Actions workflow"] -- "runs" --> Tests
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>createOrgPage.js</strong><dd><code>Enhance
CreateOrgPage with delete and identifier utilities</code></dd></summary>
<hr>
tests/ui-testing/pages/generalPages/createOrgPage.js
<ul><li>Import Playwright <code>expect</code>.<br> <li> Remove param
from <code>verifyOrgNotExists</code>.<br> <li> Add
<code>deleteOrgViaAPI</code> with Basic Auth DELETE call.<br> <li> Add
<code>deleteOrgViaUI</code> with fallback selectors and confirm
flow.<br> <li> Add <code>getOrgIdentifierFromTable</code> utility
parsing table cells.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-e3ff7268323b35f1798acb81fcd3541e0d2ee7c283124a064854ac9f6e67beb8">+113/-3</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>org.spec.js</strong><dd><code>New Playwright org
management E2E tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/GeneralTests/org.spec.js
<ul><li>Add full CRUD and validation test suite.<br> <li> Cover API/UI
creation, search, negatives, special chars.<br> <li> Implement cleanup
via API with UI fallback.<br> <li> Use test logger and base navigation
setup.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-ab00b9371adadcb16226e3afb422dcab9e6fb0b99a3b43766d4bdda6b12f4378">+556/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>usersOrg.spec.js</strong><dd><code>Fix
verifyOrgNotExists usage in user-org tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/GeneralTests/usersOrg.spec.js
<ul><li>Update <code>verifyOrgNotExists</code> call signature.<br> <li>
Remove redundant <code>expect</code> argument.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-0bf40521e88d2cf427617e49affa14d4ebe469b6da4ea4aeef4fe3e246eb24c7">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Run organization tests
in CI workflow</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add <code>org.spec.js</code> to CI run files.<br> <li> Ensure
org tests run in workflow.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+1/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
b863826d9f | fix: organization related issues (#8130) | ||
|
|
89cc402d64 |
test: add dashboard visualize test cases (#8303)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add visualize error message test
- Add quick mode toggle verification
- Use enhanced base fixtures for tests
- Enable visualize spec in CI workflow
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["Visualize tests updated"] -- "use" --> Fixtures["Enhanced base fixtures"]
Tests -- "verify" --> ErrorMsg["Aggregation alias error message"]
Tests -- "verify" --> QuickMode["Quick mode toggle true"]
CI["Playwright workflow"] -- "enable" --> VisualizeSpec["visualize.spec.js run"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualise.js</strong><dd><code>Add helper to verify
quick mode toggle</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/visualise.js
<ul><li>Add quick mode toggle verification helper<br> <li> Check
aria-checked and CSS class</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-c14ac1db3e4aa86190d7525e8e38c410bcbbae7f46b01890e74937cc11be67e6">+37/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>page-manager.js</strong><dd><code>Export PageManager
default for imports</code>
</dd></summary>
<hr>
tests/ui-testing/pages/page-manager.js
- Export PageManager as default
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-565eab8b3c767ae50c9d05e591621d14f66b81af84d6b5ea6efe136c1c3933df">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Extend visualize
e2e tests and base setup</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Switch to enhanced base fixtures<br> <li> Add test for
aggregation alias error<br> <li> Add test for quick mode toggle true<br>
<li> Improve navigation and waits</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+79/-8</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Enable visualize spec
in CI</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
- Enable visualize.spec.js in workflow run list
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+1/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
cabbacf970 |
test: e2e logs downloads test cases (#8001)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add comprehensive logs download E2E tests
- Implement download utilities in logs page
- Add ingestion via fetch with basic auth
- Update CI to run new tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["Playwright tests: logsDownloads.spec.js"]
Page["LogsPage: download + ingestion utilities"]
CI["CI workflow: include logsDownloads"]
App["Logs UI (existing)"]
Tests -- "uses" --> Page
CI -- "runs" --> Tests
Page -- "ingests data, verifies CSVs" --> App
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Add ingestion and CSV
download utility methods</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add ingestion via page-evaluated fetch with Basic auth.<br> <li>
Add download helpers: setup, cleanup, wait, verify.<br> <li> Add UI
actions for download menus and SQL editor clear.<br> <li> Import fs/path
and minor selector utilities.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8001/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+149/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsDownloads.spec.js</strong><dd><code>Add
comprehensive logs CSV download tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logsDownloads.spec.js
<ul><li>Add E2E tests for CSV downloads (normal/custom).<br> <li> Verify
row counts for multiple custom ranges.<br> <li> Add SQL mode LIMIT 2000
download test.<br> <li> Manage temp download directory per test
run.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8001/files#diff-90f04cfe53caddf683cc4466e9e97af96d7eb90d636bf6b0f5cdc4b76dc395ac">+265/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Update CI to run new
download tests</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Include logsDownloads.spec.js in Logs-Queries suite.<br> <li>
Re-enable visualize.spec.js in Dashboards-Charts.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8001/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+2/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
f183ee7b78 |
test: e2e-logs-table-testcases (#8309)
### **PR Type**
Tests
___
### **Description**
- Expand logs table e2e test suite
- Add multi-field add/remove scenarios
- Validate field search and quick mode
- Check persistence across refresh and reselection
___
### Diagram Walkthrough
```mermaid
flowchart LR
Suite["Logs Table Field Management Suite"] --> AddMulti["Add multiple fields test"]
Suite --> RemoveMulti["Remove multiple fields test"]
Suite --> Search["Field search behavior tests"]
Suite --> Data["Field data presence validation"]
Suite --> SearchClear["Add with cleared search"]
Suite --> CaseIns["Search case insensitivity"]
Suite --> QuickMode["Quick mode toggle operations"]
Suite --> Persistence["Field persistence on stream reselection"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logstable.spec.js</strong><dd><code>Enhance logs table
Playwright test coverage</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logstable.spec.js
<ul><li>Rename describe to indicate full suite<br> <li> Add multiple new
e2e tests (add/remove/search)<br> <li> Add quick mode toggle and
persistence scenarios<br> <li> Adjust afterEach signature and
logging</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8309/files#diff-4d69d08f317ffc4a26179c74da0418c4db4184ce5f4f96a8df70af7a5a02008c">+291/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
62d5f2d9e2 |
test: dashboard max query range limit (#6813)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add dashboard max query range UI test
- Introduce StreamSettingsPage page object
- Enhance ManagementPage with streaming toggles
- Include maxquery test in CI workflow
___
### Diagram Walkthrough
```mermaid
flowchart LR
spec["Add maxquery Playwright spec"] -- uses --> pm["PageManager utilities"]
spec -- updates --> streamPage["StreamSettingsPage (new)"]
spec -- verifies --> uiWarn["Max duration warning visible"]
pm -- ensures --> streamingDisabled["Streaming disabled via ManagementPage"]
ci["GitHub Actions workflow"] -- includes --> spec
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>streams.js</strong><dd><code>New StreamSettingsPage for
stream max query updates</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/streams.js
<ul><li>Add StreamSettingsPage class<br> <li> Implement max query range
update flow<br> <li> Add stable locators and waits<br> <li> Handle modal
close after save</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-2f4da2122993aa2151d167a8b60db3ebe382cf4d420a20d18c2b0bc6f38ecab5">+57/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>managementPage.js</strong><dd><code>ManagementPage
refactor and streaming toggle helpers</code>
</dd></summary>
<hr>
tests/ui-testing/pages/generalPages/managementPage.js
<ul><li>Refactor to modern style and quotes<br> <li> Add navigation
helpers with validation<br> <li> Add enable/disable streaming
utilities<br> <li> Improve selectors and waits</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-2e67acc9ff9099e14792ddeb7d0160268727fb064b85e6712f6434130cc23fdd">+162/-89</a></td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>maxquery.spec.js</strong><dd><code>Playwright spec for
dashboard max query warning</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/maxquery.spec.js
<ul><li>Add end-to-end test for max query limit<br> <li> Use PageManager
and StreamSettingsPage<br> <li> Validate warning visibility and API
response<br> <li> Restore stream setting after test</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-bfd34c3de558a41ff9397468dca4b855e2ee821b250087832f6f36fca8e2c36f">+107/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI includes max query
dashboard test</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add maxquery.spec.js to Dashboards-Core matrix<br> <li> Minor
YAML formatting adjustments<br> <li> Preserve existing test
matrices</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+75/-70</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
261aea6929 |
test: playwright upload artifact error fixes (#8190)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add conditional artifact upload guards
- Make report artifact names matrix-aware
- Preserve stream name test comment clarity
___
### Diagram Walkthrough
```mermaid
flowchart LR
tests["Playwright tests"] -- "produce reports/coverage" --> outputs["Reports & Coverage"]
outputs -- "conditional check" --> uploadPR["Upload Playwright Report"]
outputs -- "conditional check" --> uploadCov["Upload Coverage Report"]
matrix["Matrix folder name"] -- "used in name" --> uploadPR
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>streamname.spec.js</strong><dd><code>Comment clarity
for ingestion loop</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Streams/streamname.spec.js
- Fix comment wording to singular
- No functional code changes
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8190/files#diff-49828efdc034005c097422deadc8b892bb1e54942d024e40d640fd10c5aa2793">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Conditional artifact
uploads and better naming</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add hashFiles guard for report upload<br> <li> Rename report
artifact to include matrix folder<br> <li> Add guard for coverage report
upload<br> <li> Add explicit step name for report upload</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8190/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+5/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
182332a490 |
fix: enhance dashboard transpose validation in UI tests (#8167)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Strengthen transpose table validations
- Add waits for table render stability
- Handle missing/variant table structures
- Safeguard comparisons with conditional checks
___
### Diagram Walkthrough
```mermaid
flowchart LR
Start["Open config & apply transpose"] -- "capture headers & data" --> Initial["Initial table snapshot"]
Initial -- "click transpose" --> Action["Trigger transpose"]
Action -- "wait & detect table" --> Detect["Table presence check"]
Detect -- "tbody rows" --> Capture["Capture transposedData"]
Detect -- "fallback all rows" --> Capture
Capture -- "flatten headers vs values" --> Flatten["Flatten initial data"]
Flatten -- "sort & compare" --> Assert["Assert equality"]
Detect -- "no data" --> Error["Throw diagnostic error"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-transpose.spec.js</strong><dd><code>Make
transpose test resilient and diagnostic</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-transpose.spec.js
<ul><li>Wait for table load and render before reads<br> <li> Robust
transposed data capture with fallbacks<br> <li> Conditional compare with
safer data flattening<br> <li> Diagnostic error path when no data
captured</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8167/files#diff-da631007cea76a4bc59e4acd1195b59ae4131cd5208d21a9c1f94d3913911dc4">+79/-27</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
24fca0d8bd |
test: e2e-add-to-table-tests (#8257)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add logs table field management tests
- Extend LogsPage POM with field actions
- Integrate new test into Playwright workflow
- Include ingestion helper for test setup
___
### Diagram Walkthrough
```mermaid
flowchart LR
POM["LogsPage POM"]
Tests["logstable.spec.js"]
CI["playwright.yml matrix"]
Ingest["Ingestion helper"]
Tests -- "uses" --> POM
Tests -- "posts logs" --> Ingest
CI -- "runs" --> Tests
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>POM: field add/remove
helpers for logs table</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add hover, add, remove field helpers<br> <li> Add table header
visibility assertions<br> <li> Introduce negative assertion via source
column<br> <li> Minor waits for UI stability</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8257/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+25/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logstable.spec.js</strong><dd><code>Add logs table
field management E2E tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logstable.spec.js
<ul><li>New E2E tests for add/remove field<br> <li> Test for field
persistence after refresh<br> <li> Ingestion helper posts logs before
tests<br> <li> Setup ensures quick mode is off</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8257/files#diff-4d69d08f317ffc4a26179c74da0418c4db4184ce5f4f96a8df70af7a5a02008c">+149/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI: include logs table
tests in workflow</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add logstable.spec.js to Logs-Core matrix<br> <li> Ensure CI
runs new tests</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8257/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+2/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
|
||
|
|
b9548ec4ac |
ci: fixed o2 strapi workflow notfication issue (#8218)
### **User description**
fixed o2 strapi workflow notfication issue
___
### **PR Type**
Enhancement, Bug fix
___
### **Description**
- Inline Strapi release notification in main workflow
- Remove redundant public release webhook workflow
- Use self-hosted runner for release job
- Fix Strapi endpoint path and query
___
### Diagram Walkthrough
```mermaid
flowchart LR
build["Build artifacts"] -- "needs" --> release["Release job (self-hosted)"]
release -- "Publish GitHub release" --> gh["GH Release"]
gh -- "Fetch release by tag" --> script["Github Script"]
script -- "POST payload" --> strapi["Strapi webhook /api/github-releases?status=draft"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>github-release-public.yml</strong><dd><code>Delete
redundant public release webhook workflow</code>
</dd></summary>
<hr>
.github/workflows/github-release-public.yml
<ul><li>Remove standalone release webhook workflow<br> <li> Consolidate
Strapi notification into main pipeline</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8218/files#diff-be2459e6c9f39dcebd00322123da352105ab53279e8b1a67bcb84de22e1f2841">+0/-66</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>release.yml</strong><dd><code>Add Strapi notification
and update runner</code>
</dd></summary>
<hr>
.github/workflows/release.yml
<ul><li>Switch release job to self-hosted runner<br> <li> Add Strapi
notification step post-release<br> <li> Fetch release by tag and clean
changelog<br> <li> Update webhook URL path and include auth headers</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8218/files#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34">+60/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
46fa42a319 |
fix: dashboard unit tests (#8111)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add extensive dashboard utility unit tests - Introduce Sankey builder component tests - Export helper for PromQL series props - Temporarily skip flaky UI tests ___ ### Diagram Walkthrough ```mermaid flowchart LR utils["Dashboard utils tests"] -- add --> convertDataIntoUnitValue.spec component["Sankey builder tests"] -- add --> DashboardSankeyChartBuilder.spec promql["PromQL utils"] -- export helper --> getPropsByChartTypeForSeries ui_tests["UI specs"] -- skip flaky --> MenuLink.spec & AppSessions.spec ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>19 files</summary><table> <tr> <td><strong>convertDataIntoUnitValue.spec.ts</strong><dd><code>Expand coverage for formatting, colors, validation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e9d8a984ed78af13e4d4424c605a3a55fe6ad2a3f7e403fad156ce17ffdc3bdd">+1869/-1</a></td> </tr> <tr> <td><strong>DashboardSankeyChartBuilder.spec.ts</strong><dd><code>Add full test suite for Sankey builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-97b54e2aa2abc946d6ebf5624f8985260fe426cd508965408ee966d829e30872">+1279/-0</a></td> </tr> <tr> <td><strong>MenuLink.spec.ts</strong><dd><code>Skip unstable external-link test case</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bd04ff500fc31583a430993830eed36cdf6254c2ce1a52b8a58a07b89bb9f825">+1/-1</a> </td> </tr> <tr> <td><strong>AppSessions.spec.ts</strong><dd><code>Skip flaky mount-time data fetch test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-8729444f05a0c753cc1f6fbb229e0ab7fd2ac46bd6ea454131ff80314d57a888">+1/-1</a> </td> </tr> <tr> <td><strong>convertSQLData.spec.ts</strong><dd><code>Add SQL data conversion unit tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1dc85f7550b15820974ad93fa461de48d24bc5cbed621bffddb27250211fa88d">+8632/-0</a></td> </tr> <tr> <td><strong>useDashboardPanel.spec.ts</strong><dd><code>Add unit tests for dashboard panel composable</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5dbd79fdde0cbbb7db569095fa062931286463da0b5e72b1fbe99f56116fa5e2">+4723/-0</a></td> </tr> <tr> <td><strong>AddPanel.spec.ts</strong><dd><code>Add tests for add panel flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5565bef51b35f1e9c8167eab0a22dc61c1d697dca45fe31f46cc8e5e9020ca74">+3540/-0</a></td> </tr> <tr> <td><strong>convertPromQLData.spec.ts</strong><dd><code>Add unit tests for PromQL conversion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2769044ec488ef4070c2e1a28ce23ec36b945e46c903b870f8b340cbd6b05211">+2086/-0</a></td> </tr> <tr> <td><strong>DashboardQueryBuilder.spec.ts</strong><dd><code>Add tests for dashboard query builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f44793de54d6ac2d9c7b3dd504d8b1952cb6e6b2d984254a8466705387cb82ce">+1170/-0</a></td> </tr> <tr> <td><strong>VariableQueryValueSelector.spec.ts</strong><dd><code>Add tests for variable query selector</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7e096d825438fc75baab2ef87cb4a04ae7ac1206e5021b71ce42cedd0984e064">+1128/-0</a></td> </tr> <tr> <td><strong>VariablesValueSelector.spec.ts</strong><dd><code>Add tests for variables value selector</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-9f234d5a15777d62cf8cd6cc9f0d68fbc0419a87ef58fbdb11de8c46ed6d17cb">+1137/-0</a></td> </tr> <tr> <td><strong>DashboardMapsQueryBuilder.spec.ts</strong><dd><code>Add tests for maps query builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-08c9fd103348dc8adea1c343bdaa25c176378a91656cda7f336dd622d8598fef">+1112/-0</a></td> </tr> <tr> <td><strong>viewDashboard.spec.ts</strong><dd><code>Add tests for dashboard view flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0db87f5ba2d11ee942a8054598d18568ce7542e23c830fcf5d802c4338e64937">+1175/-0</a></td> </tr> <tr> <td><strong>DashboardGeoMapsQueryBuilder.spec.ts</strong><dd><code>Add tests for geomap query builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d9b9e150ca7ac48d81236c882b2aa1f188e26fc2c2d13d69936c3288f305d803">+1079/-0</a></td> </tr> <tr> <td><strong>FieldList.spec.ts</strong><dd><code>Add tests for field list interactions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7273ac40c01bb36400c5dd32f86cce6576dc034cbec0010f6e93e22348578ed4">+971/-0</a> </td> </tr> <tr> <td><strong>DashboardErrors.spec.ts</strong><dd><code>Add tests for dashboard errors display</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a5d738d4bafc19b5e324d0c1826f73503a8539d8900cb2f80ff1284780865ac4">+898/-0</a> </td> </tr> <tr> <td><strong>CustomMarkdownEditor.spec.ts</strong><dd><code>Add tests for custom markdown editor</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c706715d0bc3f6b3b5e067d1926b0bd1e01b5aba291072cd612de4f9fed25c4f">+916/-0</a> </td> </tr> <tr> <td><strong>convertGeoMapData.spec.ts</strong><dd><code>Add unit tests for geomap conversion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c75999bb5bc4dc27c5da1fad5d556614fa139b0b2cae7c2dc200c11133141937">+1061/-0</a></td> </tr> <tr> <td><strong>TabsSettings.spec.ts</strong><dd><code>Add tests for tabs settings component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-702a83e8e5bce6917f8cc2353dc224d37e667bdc39119f2176185cb4d2fe3b65">+820/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>convertPromQLData.ts</strong><dd><code>Export chart-type series props helper</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>83 files</summary><table> <tr> <td><strong>DateTimePickerDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-384ca377212c39553c97970a8b57888b7aea566e739ed498304360111c7884b8">+498/-0</a> </td> </tr> <tr> <td><strong>AddDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3f4eccc613c6abad9a1103fab41aa4f8eb66a74465aea5e3b077c7c31525e91e">+338/-0</a> </td> </tr> <tr> <td><strong>AddFolder.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3c70ca7fa32d6b2f499764c9bae0fcaf6d24a468eb71122865f79be4eed5bd45">+690/-0</a> </td> </tr> <tr> <td><strong>ExportDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5aba49ace28e114de7b4113ea725d4cabc6e343aa0bbc41fcb4250de0dfdb1b1">+409/-0</a> </td> </tr> <tr> <td><strong>MoveDashboardToAnotherFolder.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-05b3c990e345c5c11c1631547269b3644b652b78c4185b5123d3211218adb99d">+643/-0</a> </td> </tr> <tr> <td><strong>OverrideConfigPopup.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5c66103162fa701af8c78ba2bc62789ac8fa3f98f281309591ffd4da154fbc0e">+549/-0</a> </td> </tr> <tr> <td><strong>PanelContainer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d74ba5293a041ca029d5e9b8fec08d187e51a099451ab0372747d3ec175559a9">+497/-0</a> </td> </tr> <tr> <td><strong>PanelSchemaRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-897e6e12808163dfb85ea964ac97d45a8c50146672558b4d86de292daaf021ce">+827/-0</a> </td> </tr> <tr> <td><strong>QueryInspector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5db282f1e123d731ab4ed83d9500a87bbdd968f28c2c9f11179eaebed4f6bef6">+679/-0</a> </td> </tr> <tr> <td><strong>SelectDashboardDropdown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-9c9dd44be67486631521fa4e8238a6e782d659afb0d71a39d394f22d21fa2d1e">+717/-0</a> </td> </tr> <tr> <td><strong>SelectFolderDropdown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1ff4f3a09802e742b9cc26990c827d9331529a74bc6fc1678473821dc851e1b7">+658/-0</a> </td> </tr> <tr> <td><strong>SelectTabDropdown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3b923039e16f1a26cce563eaefcfe3405e551eaa12ac10c4382ac4d67d9564b2">+780/-0</a> </td> </tr> <tr> <td><strong>AddAnnotation.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c096dd81c6463d55ba96fed549d28d7c83191639ccfd5dccece303a663bfdf9b">+242/-0</a> </td> </tr> <tr> <td><strong>BackGroundColorConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e23c4dbce4cba3fd64ac480f21ab9dbdeba66bac46b2277874ee307597980707">+651/-0</a> </td> </tr> <tr> <td><strong>ChartSelection.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-88bf57e3c40ed695321a7366d2f770f6c22e5d8c1adbb057d2a805333ad57de9">+177/-0</a> </td> </tr> <tr> <td><strong>ColorBySeries.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-92afcb1fa6c34cde082443bde1c478d9e98c0074b69f9f8f2343bb0880f2c183">+224/-0</a> </td> </tr> <tr> <td><strong>ColorBySeriesPopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bd65ddc9813c2a5679b0aeb602afa55e8c15bb3b39dd48cd2489b2e6e9c51965">+224/-0</a> </td> </tr> <tr> <td><strong>ColorPaletteDropDown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-dbe43d77b398c5f6ede77ff1006a9b7d39b405842d6ca488061e1cbcde566117">+757/-0</a> </td> </tr> <tr> <td><strong>CommonAutoComplete.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f11b0763e1eea3c18bf2a69933d84a78df0f18b70a5b2fb3c50459c557ecc842">+588/-0</a> </td> </tr> <tr> <td><strong>ConfigPanel.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a4e717cd660ad6fa369629f8de524f4d57bf4f71b11d3244ce41b9ed9f0379d2">+617/-0</a> </td> </tr> <tr> <td><strong>CustomChartEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-00410898c60d1d7d4803eba301bf070d6b3765db0983c06b3d624c485dc1339e">+693/-0</a> </td> </tr> <tr> <td><strong>CustomHTMLEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b07faae78603a95d7cb54e4a6dde9381cad82952a76ad78e23a393fb12c635a2">+546/-0</a> </td> </tr> <tr> <td><strong>DashboardQueryEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-6a37b5f775011f4014399dcb3bae3b3d85403896533c008470b1c9712db96e82">+507/-0</a> </td> </tr> <tr> <td><strong>Drilldown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2ffe39b111c8981f0bbf7fcf19ff815fa97a24e007dcc17a23d0e7a2ed6388a1">+605/-0</a> </td> </tr> <tr> <td><strong>DrilldownPopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-73d704d414f3ea194970a4f079bc1d9fedfdf8547875758133bc1e6e335523e5">+723/-0</a> </td> </tr> <tr> <td><strong>DrilldownUserGuide.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0015f582294fe5a56347aea7c3ce42e12100dd4363176fd8013683356aaba74a">+603/-0</a> </td> </tr> <tr> <td><strong>HistogramIntervalDropDown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bc0fbf96ee3ce5f28b7896b3c8f55605f68cdc3386cae22b9adc8c806af9e514">+368/-0</a> </td> </tr> <tr> <td><strong>MarkLineConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f6e52e135ac6d21bd1d12226feee88ccaf24bad358890d17af3645ef7103d3a1">+503/-0</a> </td> </tr> <tr> <td><strong>OverrideConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e05709bd1fededda3d3ed90a47d9fddb8ae171e87c7f25d07ecca1e6a8ab33ee">+571/-0</a> </td> </tr> <tr> <td><strong>PanelSidebar.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4b5378e7a3c198d89d8de88fc9bb3ccb5829c7572d860c42d46b565fd37a2894">+622/-0</a> </td> </tr> <tr> <td><strong>QueryTypeSelector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3094340ad57af51f1bcbad3b63a8ab860a46905ab79997289b89b601553934fd">+777/-0</a> </td> </tr> <tr> <td><strong>SortByBtnGrp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7e52dbb6902695ae38e15e980407d761d528871631365a12726f9731efaccec2">+405/-0</a> </td> </tr> <tr> <td><strong>ValueMapping.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4920ea2ac96411628202d5350adae25ea97a1cd8eede8d8bf5252e5d468d82f8">+424/-0</a> </td> </tr> <tr> <td><strong>ValueMappingPopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-ef4bd7d95957a65c1efdba2d541a0242d249adc0381efcfd2e1c684c531fab6b">+553/-0</a> </td> </tr> <tr> <td><strong>ChartRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f005709a26e4b51de30457223129ce0ca84a29c5f69a8d7c84fa35b5f3376fd6">+464/-0</a> </td> </tr> <tr> <td><strong>CustomChartRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e5f37800aafd21baeda455df4656da5221369bb6d72880a28294b8a1a83b5f30">+679/-0</a> </td> </tr> <tr> <td><strong>GeoMapRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7bf374bb429eafe8b265c34e63fe99df1c05e102be38125bcf3234756f95f12c">+878/-0</a> </td> </tr> <tr> <td><strong>HTMLRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-128fd699e9ae1552077c27185db37871b57e0002558f89377ec64b4e29e1d7f7">+492/-0</a> </td> </tr> <tr> <td><strong>MapsRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-588141a6c90f09e4b39ea53d03c1334c0b5cc42c9f35272a9f2eeb6e2ddb852e">+490/-0</a> </td> </tr> <tr> <td><strong>MarkdownRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-63eed3fbb6882be90c70e833f9f64e9e8c6511e4c40162aa5c1a7662fc79469d">+600/-0</a> </td> </tr> <tr> <td><strong>TableRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-550a0a669838c47473442a7d37407fead8b7cb2a05121880dd2c0522022c8c3f">+555/-0</a> </td> </tr> <tr> <td><strong>AddSettingVariable.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3f3a2cea87e91a038695bdd8406d72680e4b665bea7a7186a84fbef91c8bdf81">+661/-0</a> </td> </tr> <tr> <td><strong>GeneralSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2b3e3d2794669f6b030b6752ef262b96d6504cb1bcd661a3cd248c21df412064">+767/-0</a> </td> </tr> <tr> <td><strong>SinglePanelMove.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-ba25253c9f76317afde347d4d6a0afbcc95bcf847640ab81a1b40fa0bd4b4bc5">+565/-0</a> </td> </tr> <tr> <td><strong>TabsDeletePopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-53eadbd58dae03e5fbf9db545d58a03d0d504725544b0500d7b16c5d041668d3">+611/-0</a> </td> </tr> <tr> <td><strong>VariableAdHocValueSelector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-82c2b639609e68e8601435e82ae21dcda2ff626853b3a5e310c69e237c34c38d">+422/-0</a> </td> </tr> <tr> <td><strong>VariableCustomValueSelector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-8ce1eb841c0ae350a6bb846705ff9d085d1ae2c97ab409b1ff533ef7bcebfa8f">+635/-0</a> </td> </tr> <tr> <td><strong>VariableSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-fb9c343df2d52c854489057d4a66a1b6c4052637ef12dca16c9b77c0a4e680f4">+696/-0</a> </td> </tr> <tr> <td><strong>VariablesDependenciesGraph.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-153d420e39a1fdf9b0918f8b765b21a5e9fe6fed4b142fd1c9e24af43c0bb525">+397/-0</a> </td> </tr> <tr> <td><strong>DashboardHeader.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7ec062f2fc27df156ca18a22557c1f80426e3fa82c3cfd6386f48efc9e73f757">+440/-0</a> </td> </tr> <tr> <td><strong>AddTab.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-25b77cc0d60a268fc0fbd413e53b1c0ace69164ffd58dc0b0081717e4773b365">+767/-0</a> </td> </tr> <tr> <td><strong>TabList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1c0ad8f6163d343eba185ac20d0fe84478afd5975242abc0a957d7ac74a8a5a9">+604/-0</a> </td> </tr> <tr> <td><strong>ViewPanel.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-177dbf7e92561bc76e13819fd7a1d681f77b845071a7c0901857a26660b3ba54">+744/-0</a> </td> </tr> <tr> <td><strong>ApiDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-53095dbafa0cb9c6eed90240cb8af9f89d118168f6af76bdf51267a667ccff2d">+550/-0</a> </td> </tr> <tr> <td><strong>ErrorsDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1330edb3964758b7c9cfbdfb077eac5fcce30b8b4d2f204d69ab71c4041d37c5">+178/-0</a> </td> </tr> <tr> <td><strong>WebVitalsDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-62eb2eceb30d2aa28e78d4ee898d09aae3d1f0fa176d4bca91055b50024e6c9f">+547/-0</a> </td> </tr> <tr> <td><strong>VisualizeLogsQuery.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-fdecf623f9a4bdfe679c6c2e4424f31cbce4a1234cb45e1de472189a46c9d4e2">+674/-0</a> </td> </tr> <tr> <td><strong>TraceBlock.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1406f52daa846db3febbb595e81c192166b9e69bc190c5039b6c4866412b877a">+1/-1</a> </td> </tr> <tr> <td><strong>alertChartData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5ab33266e226684ae77d259392edb382f71436edec442411a5500451ce316b31">+259/-0</a> </td> </tr> <tr> <td><strong>calculateGridForSubPlot.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f7067cef10cdf9d66fc91a46516c9f2bc0209489bc47fb3d1446666485269680">+374/-0</a> </td> </tr> <tr> <td><strong>colorPatette.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d266bf5ce0a458ec9fa8120ff85c252f7a671dd6df9aece83daf7c7b05b50ed1">+576/-0</a> </td> </tr> <tr> <td><strong>convertCustomChartData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-228c0f06dd35f43d80dc9f671803fba74ac7e218c1606247d1e44259a18b426e">+771/-0</a> </td> </tr> <tr> <td><strong>convertDashboardSchemaVersion.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d32a1607489b29014dd8ecad34358644be46d2735cf49dfa5151671e591d6360">+537/-0</a> </td> </tr> <tr> <td><strong>convertPanelData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d798f99807f72b07f58e09bfe8723fdcee3dcd747f328436ef6bbd7d8f5afa36">+889/-0</a> </td> </tr> <tr> <td><strong>convertSankeyData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e9dce93200dba86a0e13d22ec5a0b5e0f4c5fb8349c904c8780fdb6fe675f4ae">+588/-0</a> </td> </tr> <tr> <td><strong>convertTableData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b3b39fac4e8b48b3ee80827502ece784d8e52f56fd2f1d80acac353fd3a9fe3f">+599/-0</a> </td> </tr> <tr> <td><strong>datetimeStartPoint.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7c56f19e7b4c6f5738c814cb013f698fdfd065286ef4539e14a868e8e114a1c8">+214/-0</a> </td> </tr> <tr> <td><strong>getAnnotationsData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4b12626e491ea366087b3cdc2eb66012bf45555504313ca4664f3ae4d93b6e08">+351/-0</a> </td> </tr> <tr> <td><strong>useCustomDebouncer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f6c3bc11a1cdc66a9108245e3ec6080bf4f6f0b5a2eaea679546c0b1f00968c2">+307/-0</a> </td> </tr> <tr> <td><strong>variablesDependencyUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1a8fd83eb7a8b0c906e668e7e4120a40f7b9853d5bfb485a7c569ff980e4a780">+523/-0</a> </td> </tr> <tr> <td><strong>variablesUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-769aea99ac476a78b01cb3bb4221b0a0f0d5fa99f3dbc8c77022088ed8024f1b">+533/-0</a> </td> </tr> <tr> <td><strong>sqlUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f22df136a6cdfbacf2b637d4902002337620c8e981dbacfdd705455ff899f12d">+1283/-8</a></td> </tr> <tr> <td><strong>visualizationUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3312f2b98f34814e89192700cc856231923839bdcd3ea687f271242762b4b3bc">+55/-0</a> </td> </tr> <tr> <td><strong>DashboardJsonEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4dfda31e9159f979559afc36652350d155429b73336f014017b27ff96ad58dcc">+551/-0</a> </td> </tr> <tr> <td><strong>DashboardSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b29b3e95fd1dfffba34ec05ed6333941f07ee79585feb5e8203eb5958919338f">+640/-0</a> </td> </tr> <tr> <td><strong>Dashboards.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a8059d6830fa3c72dbe023f76ac813661d62871a379baa30c05204ad86c92699">+813/-0</a> </td> </tr> <tr> <td><strong>ImportDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b29b42b94a3219b4074b132168c0b5f5b93e737dc557ba7b930d14455b38b267">+827/-0</a> </td> </tr> <tr> <td><strong>PanelLayoutSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-34bcd5c5f9b7a2a682f4d4e9c10e3ab4f13a4cc54a6a20bb543f11ae8286d5a1">+423/-0</a> </td> </tr> <tr> <td><strong>RenderDashboardCharts.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f76e3b54dc7bfd768172c8faba707c7e31bf0516837cb9073bbdf04823f67602">+700/-0</a> </td> </tr> <tr> <td><strong>ScheduledDashboards.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f54afa04727c65f2050699e063d693d6fb1833c8e3f1f7b25002de89ab5bb2ff">+519/-0</a> </td> </tr> <tr> <td><strong>AddCondition.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0655e4082a18c9f229d04340341bb32474ae46b3d6e29b29009ef06dcc12e54c">+425/-0</a> </td> </tr> <tr> <td><strong>DashboardFiltersOption.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d3e73ec3d32f9068b22b3697ba8a23e3100285b7c92cc86f7d7e88477bb29bba">+878/-0</a> </td> </tr> <tr> <td><strong>Group.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-556364c74c348eba28f5d8bad6fb23b956008d3f6b9171316ea3ee12009201bd">+718/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
1e9761ba61 |
feat: logs page highlighting (#8059)
### **User description** This PR helps to highlight text in logs page and also adds a left border for each depending upon the status of the logs ___ ### **PR Type** Enhancement ___ ### **Description** Add LogsHighLighting component for semantic highlighting Highlight query terms across logs and JSON Visual status indicators via colored borders/lines FTS-aware coloring for selected columns ___ ### Diagram Walkthrough ```mermaid flowchart LR Highlighter["LogsHighLighting.vue (new)"] -- "used by" --> Detail["DetailTable.vue"] Highlighter -- "used by" --> JsonPrev["JsonPreview.vue"] Highlighter -- "used by" --> Table["TenstackTable.vue"] Status["statusParser.ts (new)"] -- "row/log status color" --> Detail Status -- "row status stripe" --> Table Colors["keyValueParser.ts (new)"] -- "theme colors" --> Highlighter Composable["useTextHighlighter.ts (new)"] -- "highlight + semantic color" --> Highlighter Search["SearchResult.vue"] -- "pass highlight + FTS keys" --> Table ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>LogsHighLighting.vue</strong><dd><code>New component for semantic JSON/log highlighting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-4ef4ac0444004add270de4da30fa39bafd95bd7f1c408d28cf6737655fc152eb">+324/-0</a> </td> </tr> <tr> <td><strong>DetailTable.vue</strong><dd><code>Add status top border and inline highlighting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+21/-6</a> </td> </tr> <tr> <td><strong>JsonPreview.vue</strong><dd><code>Use highlighter for key/value rendering</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+8/-14</a> </td> </tr> <tr> <td><strong>SearchResult.vue</strong><dd><code>Provide highlight query and FTS keys downstream</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+16/-0</a> </td> </tr> <tr> <td><strong>TenstackTable.vue</strong><dd><code>Integrate highlighter and add status stripe</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22">+34/-6</a> </td> </tr> <tr> <td><strong>useTextHighlighter.ts</strong><dd><code>New composable for text highlighting logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-b18d6e5b667ce7b485a0592cddcaf47cf68b10b6a1b75bd006f21917c4343147">+486/-0</a> </td> </tr> <tr> <td><strong>keyValueParser.ts</strong><dd><code>Theme-aware color palette utilities</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-efcf08bdfe13eeac90f7dadbdb5892ae614d49b16f4f75bfc6225700d0ba7b73">+53/-0</a> </td> </tr> <tr> <td><strong>statusParser.ts</strong><dd><code>Derive log severity and colors</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-c189f5de10234dccf5f5e5b332dbb41f54c21a366ed4817c963bbf2e954d620a">+246/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Bug fix</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>Index.vue</strong><dd><code>Fix column update timeout scoping</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+3/-3</a> </td> </tr> <tr> <td><strong>useLogs.ts</strong><dd><code>Correct FTS key detection logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+1/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
b04099aa0f |
test: add _timestamp test with qm (#8204)
### **PR Type**
Tests
___
### **Description**
- Add timestamp field UI test
- Extend Logs page selectors and actions
- Validate schema/infoschema navigation
- Ensure timestamp visibility after clear
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["LogsPage selectors/actions"] -- used by --> B["Logs quickmode spec"]
B -- tests --> C["Click _timestamp, schema, infoschema"]
C -- asserts --> D["_timestamp visible after clear"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Add timestamp and
schema-related UI helpers</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add selector <code>timestampFieldTable</code><br> <li> Add
actions: click timestamp, schema, infoschema, clear<br> <li> Add
assertion: expect timestamp field visible</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8204/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+21/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>logsquickmode.spec.js</strong><dd><code>Add UI test for
_timestamp quick mode flow</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logsquickmode.spec.js
<ul><li>Add new test covering _timestamp interaction<br> <li> Navigate
schema/infoschema and clear actions<br> <li> Validate kubernetes_pod_id
selection and cleanup<br> <li> Assert _timestamp remains visible</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8204/files#diff-81f2f36450c07435f1b0f3c33462c7dac98c0798250913ae5ed928f57ad82cdf">+32/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
e2ad15f0c0 |
test: Framework rework Playwright e2e tests (#8118)
### **PR Type** Tests, Enhancement ___ ### **Description** - Migrate sanity tests to enhanced framework - Add robust SanityPage page-object methods - Introduce logging and wait helpers - Refactor service account tests setup ___ ### Diagram Walkthrough ```mermaid flowchart LR Specs["Playwright specs (sanity, serviceAccount)"] Utils["Enhanced test utils (fixtures, logger, waits)"] Pages["New page objects (SanityPage, etc.)"] Archives["Old specs archived (_old)"] Specs -- "use" --> Utils Specs -- "call" --> Pages Legacy["Legacy inline flows"] -- "moved to" --> Archives Legacy -- "replaced by" --> Pages ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>sanityPage.js</strong><dd><code>New Sanity page object with robust flows</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-a0ac0217ef875311dc536edb97deda19927a64e73cede62123b97cbe7df113b8">+669/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>sanity.spec.js</strong><dd><code>Refactor to enhanced fixtures and page object</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-89290ca55858ff744863278ee9381e32276c37a6c0718fb3f9dcba71a6451d91">+159/-442</a></td> </tr> <tr> <td><strong>serviceAccount.spec.js</strong><dd><code>Migrate service account tests to enhanced setup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-270e1e217b97afe4d451df3a48a0bfb14db453241adf1b7388342292707d5bb1">+114/-36</a></td> </tr> </table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>sanity.spec_old.js</strong><dd><code>Archive legacy sanity spec implementation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-51cb8e6cd5047c3d1ace254fa770ae74a3c13aa97e93315132dede6c4a84739a">+498/-0</a> </td> </tr> <tr> <td><strong>sanity2.spec_old.js</strong><dd><code>Archive legacy sanity2 spec with helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-0e189adff26af46cfcc03f014d522c6a37ac268f7ad3e1a3ace1267bd64161e3">[link]</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>31 files</summary><table> <tr> <td><strong>playwright.yml</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+7/-8</a> </td> </tr> <tr> <td><strong>package.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-a41ba7975823b7b2dc071285391f835fbefd33bfffeb5aa2fba3ae15425cc64f">+2/-1</a> </td> </tr> <tr> <td><strong>changeOrgPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-1061a261a5b7ae8ffd6c4b48e382bb262289aacca97207aa15f00053b822038b">+224/-0</a> </td> </tr> <tr> <td><strong>enrichmentPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-98a7e60352ddf3be23cf70170559e637ef448c189cd9414448e9afff897c3019">+507/-0</a> </td> </tr> <tr> <td><strong>schemaLoadPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-6f0791c152c7a17e60e0167d52c4032edc6384553b69b9a94b81e380e98dd1d3">+265/-0</a> </td> </tr> <tr> <td><strong>schemaPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-1c0c0fc2fdbebae8c8aa7bef5ba92d31dee65238272581453e6f2b9a3f135468">+397/-0</a> </td> </tr> <tr> <td><strong>userPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-bba64431d6702ebcfd265dd690f81d8c06a285fb09016c4823ed3490403ed777">+26/-7</a> </td> </tr> <tr> <td><strong>iamPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-e537da3c3eaa929da94df90ba76b3b17f08792c9de268de899d310d13740efcf">+13/-5</a> </td> </tr> <tr> <td><strong>page-manager.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-565eab8b3c767ae50c9d05e591621d14f66b81af84d6b5ea6efe136c1c3933df">+11/-1</a> </td> </tr> <tr> <td><strong>pipelinesPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-d5f2771fd1139c174c46d09a9ab2da0ea4588b853e2b87e4728322d072542f49">+9/-0</a> </td> </tr> <tr> <td><strong>reportsPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-bc6b666f3862dce898d9ca68d036f317305b3f3d063d6eda423f2d864d36be0f">+8/-2</a> </td> </tr> <tr> <td><strong>changeOrg.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-d5557230e5f003c7c0129aab00855dc94501cc12a06b1f7814ff85d9fe389f47">+188/-149</a></td> </tr> <tr> <td><strong>enrichment.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-f52a06db75e7593aee95da4e0b255cb0001aa6c2b416d30358858e2f39b0cdcd">+106/-319</a></td> </tr> <tr> <td><strong>schema.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-72dd04280e3c77242b982bd7853ffa447428c0f9419c37a71d867ec7cd28d4b8">+121/-265</a></td> </tr> <tr> <td><strong>schemaload.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-5184069ec159ab301454535a5f45967635972e108095b82401ba96cb92856c5b">+114/-184</a></td> </tr> <tr> <td><strong>usersOrg.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-0bf40521e88d2cf427617e49affa14d4ebe469b6da4ea4aeef4fe3e246eb24c7">+177/-77</a></td> </tr> <tr> <td><strong>enhanced-baseFixtures.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-3657cfe42414b97b6676be58109d3c3f92e8ba2f52bb09840b65ac9f9c889997">+137/-0</a> </td> </tr> <tr> <td><strong>framework-test.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-d3d8309ee6bdfb8edd0e39b4f8d2008ffe07775f130882a60b0509b29ae1a15d">+33/-0</a> </td> </tr> <tr> <td><strong>global-setup.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-06323dad7214f86b41b62e121e716eeea0054bc4d950c6bcf4a0efe53894acc8">+147/-0</a> </td> </tr> <tr> <td><strong>global-teardown.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-f3a6f320a6dd08450cf34d96f07847b9324fff8415f768963252ce0e1e35315e">+30/-0</a> </td> </tr> <tr> <td><strong>slack-reporter.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-29fdf4df416fe8e9965be16bc0419787175c227c385ac37560da40dc935328f5">+162/-0</a> </td> </tr> <tr> <td><strong>test-logger.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-9ad67a2a3dbfce3994655b30eb07c0a1b795ce0dc10ae9785481f9472394ce5e">+202/-0</a> </td> </tr> <tr> <td><strong>wait-helpers.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-fdf1e3fd5f38875694acd5e3f0a140ed89326ce8a2910f07b18d1004fd5d2165">+331/-0</a> </td> </tr> <tr> <td><strong>playwright.config.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+19/-7</a> </td> </tr> <tr> <td><strong>changeOrg.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-1a658a67b111f3f391520406aed0a66793d0e91c3157dca683a6e3603ff37bc6">+239/-0</a> </td> </tr> <tr> <td><strong>enrichment.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-92bb2446bdc69b0b0a88ea39a9ae169f5266e6021df70ea50149f0c624f1b7f9">+325/-0</a> </td> </tr> <tr> <td><strong>sanity2_consolidated.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-59079f7e0748f2f8d484ea6537936f8bfc488793799fa118c5f92c710645e175">+76/-0</a> </td> </tr> <tr> <td><strong>schema.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-61f5d68bba432d1c3c14d155e24088dd5849e90df5f4e636bf79c6477947105e">+275/-0</a> </td> </tr> <tr> <td><strong>schemaload.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-f230c8cf8362435b93ca2346369054471f362221d4209308616eb256970f8c8e">+188/-0</a> </td> </tr> <tr> <td><strong>serviceAccount.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-fed6804e49039a3e8ad282d4db4ddf9da8afc954bdb4c4dbc0cdeccbe1f3f1c0">+138/-0</a> </td> </tr> <tr> <td><strong>usersOrg.spec_old.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8118/files#diff-e7b7c318f5ca80a33d8351d60134f6ff3983d89e76e517eb0d8e94ca9b30fac9">+211/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Neha P <144308844+neha00290@users.noreply.github.com> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
7218fa3439 |
test: e2e-cte-queries (#8070)
### **PR Type**
Tests
___
### **Description**
- Add advanced CTE logs query e2e tests
- Cover strings, NULLs, joins, unions
- Add error-rate and aggregation analysis
- Add complex multi-part query typing/validation
___
### Diagram Walkthrough
```mermaid
flowchart LR
CTEs["Add advanced CTE query tests"]
String["String ops & NULL handling"]
Joins["JOINs and UNIONs"]
Analytics["Error-rate and aggregations"]
Robust["Multi-part typing + validation"]
CTEs -- "new tests" --> String
CTEs -- "new tests" --> Joins
CTEs -- "new tests" --> Analytics
CTEs -- "new tests" --> Robust
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsqueries.cte.spec.js</strong><dd><code>Expand CTE
logs e2e coverage with advanced cases</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logsqueries.cte.spec.js
<ul><li>Add tests for string manipulation CTEs<br> <li> Add NULL
handling and LEFT JOIN CTE tests<br> <li> Add UNION and error-rate
analysis CTE tests<br> <li> Add complex multi-part CTE with typing and
validation</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8070/files#diff-153f79d86888d9e3a82f42a15242cacb3a126c263aee91cada88ae04dffacd36">+110/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
8fb78048ec |
test: add and improve visualization test cases (#8135)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add robust visualize E2E tests
- Introduce dashboard helpers and verifications
- Improve page object with new locators
- Enable visualize spec in CI workflow
___
### Diagram Walkthrough
```mermaid
flowchart LR
PO["Page Object: visualise.js"] -- "new helpers, locators" --> SPEC["Tests: visualize.spec.js"]
SPEC -- "uses helpers to validate charts & dashboards" --> DASH["Dashboard flows"]
WF["CI Workflow"] -- "enable" --> SPEC
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualise.js</strong><dd><code>Page object extended
with dashboard and chart helpers</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/visualise.js
<ul><li>Import expect from Playwright<br> <li> Add dashboard and query
editor locators<br> <li> Add helpers: fillLogsQueryEditor,
checkDashboardErrors, <br>verifyChartRenders, verifyChartTypeSelected,
addPanelToNewDashboard<br> <li> Update stream index toggle selector and
refine <br>runQueryAndWaitForCompletion</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8135/files#diff-c14ac1db3e4aa86190d7525e8e38c410bcbbae7f46b01890e74937cc11be67e6">+140/-7</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Comprehensive
visualize E2E tests and assertions</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Add randomized dashboard/panel naming<br> <li> Add reusable SQL
queries and stream constants<br> <li> Add new tests for large datasets,
stream persistence, chart defaults, <br>dashboard query persistence, and
error-free chart switching<br> <li> Skip flaky/legacy tests and adjust
flows to use new helpers</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8135/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+281/-459</a></td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Enable visualize E2E
spec in CI</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
- Enable dashboards/visualize.spec.js in Playwright matrix
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8135/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+1/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
c5bc2f97c2 |
fix: made fn editor by default false (#8000)
This PR fixes the issue #7960 |
||
|
|
cc2eb93b00 |
test: Updated schema file and config file (#8093)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Run schema tests in serial mode
- Stabilize selector for close dialog button
- Randomize schema field data type selection
- Simplify env loading via dotenv import
___
### Diagram Walkthrough
```mermaid
flowchart LR
schemaSpec["schema.spec.js"]
config["playwright.config.js"]
schemaSpec -- "parallel -> serial; selector fix; random data type" --> Tests["More stable E2E tests"]
config -- "dotenv import and config" --> Env["Unified env management"]
Tests -- "reduced flakiness" --> Outcome["Reliable test runs"]
Env -- "consistent variables" --> Outcome
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>schema.spec.js</strong><dd><code>Stabilize schema tests
and add random data type</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/GeneralTests/schema.spec.js
<ul><li>Switch test mode to serial<br> <li> Target specific dialog for
close action<br> <li> Add randomized data type selection for new
field<br> <li> Minor waits and interactions unchanged</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8093/files#diff-72dd04280e3c77242b982bd7853ffa447428c0f9419c37a71d867ec7cd28d4b8">+10/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.config.js</strong><dd><code>Simplify env
setup with direct dotenv usage</code>
</dd></summary>
<hr>
tests/ui-testing/playwright.config.js
<ul><li>Import and initialize dotenv at top<br> <li> Remove custom env
loading helper<br> <li> Minor formatting and EOF newline adjustment</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8093/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+6/-22</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Neha P <144308844+neha00290@users.noreply.github.com>
|
||
|
|
cc64d568a3 |
fix: Logs page field-list Interesting Fields improvements (#7705)
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Add toggle to show only interesting fields in quick mode
- Ensure timestamp default in interesting field list
- Implement field‐index mapping for correct ordering
- Refactor deep copies and optional chaining in schema
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Logs Page Field List"] -- "Quick mode toggle" --> B["Show Only Interesting Fields"]
B -- "Filter rows in UI" --> C["Display filtered fields"]
C -- "Update selected fields array" --> D["Adjust SQL query"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>Index.vue</strong><dd><code>Refactor schema copy and
default timestamp</code>
</dd></summary>
<hr>
web/src/plugins/logs/Index.vue
<ul><li>Use optional chaining and formatting consistency<br> <li> Deep
copy stream schema before mutation<br> <li> Push default timestamp and
all_fields_name columns<br> <li> Export new
<code>showOnlyInterestingFields</code> ref</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7705/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+22/-17</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>IndexList.vue</strong><dd><code>Add interesting fields
toggle and row filters</code>
</dd></summary>
<hr>
web/src/plugins/logs/IndexList.vue
<ul><li>Add <code>showOnlyInterestingFields</code> toggle button<br>
<li> Conditionally render rows based on interesting flag<br> <li> Insert
toggle in no-data slot for quick mode<br> <li> Update pagination and
reset icon formatting</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7705/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+183/-31</a></td>
</tr>
<tr>
<td>
<details>
<summary><strong>useLogs.ts</strong><dd><code>Support interesting fields
state and mapping</code>
</dd></summary>
<hr>
web/src/composables/useLogs.ts
<ul><li>Introduce reactive state for interesting streams<br> <li>
Populate and maintain <code>interestingFieldList</code><br> <li> Create
<code>streamSchemaFieldsIndexMapping</code> for ordering<br> <li> Deep
copy expand counts and init interesting counts</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7705/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+90/-8</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>en.json</strong><dd><code>Add translation for
interesting fields toggle</code>
</dd></summary>
<hr>
web/src/locales/languages/en.json
- Add i18n key `showOnlyInterestingFields`
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7705/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
6b04607c26 |
test: File cleanup for cypress files, removed websocket tests (#8027)
### **PR Type** Tests, Enhancement ___ ### **Description** - Remove Cypress config and helpers - Migrate fixtures path in tests - Add base URL prefix via env - Load env vars with .env fallback ___ ### Diagram Walkthrough ```mermaid flowchart LR CypressFiles["Cypress config and helpers"] -- removed --> PlaywrightOnly["Playwright-only test suite"] FixturesPath["Imports from cypress/fixtures"] -- updated --> NewPath["Imports from fixtures"] EnvHandling["Environment variables handling"] -- add .env fallback --> PlaywrightConfig["playwright.config.js"] URLs["Hardcoded relative URLs"] -- prefix with ZO_BASE_URL --> TestsNavigation["Playwright navigation calls"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>40 files</summary><table> <tr> <td><strong>cypress.config.js</strong><dd><code>Remove Cypress configuration file</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-a634df6fb5b43cb22d404d1e90131c76396bac6a8c1d0234c0d3b9d10d373352">+0/-27</a> </td> </tr> <tr> <td><strong>index.js</strong><dd><code>Remove unused Cypress test utils</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-c665accf0fc295498a054375a6f3bc81be35a8dcf303de04ef99064f69d31ba2">+0/-2</a> </td> </tr> <tr> <td><strong>commands.js</strong><dd><code>Delete custom Cypress commands</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-7ed08e69ca91e6bd5233bc45e862113207bfcac657b88d4d1e42e32605166433">+0/-88</a> </td> </tr> <tr> <td><strong>commons.js</strong><dd><code>Delete shared Cypress helper commands</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-2c39b75483b68b6ff4cd36820a01cc7bc59b5c56f67f64ce2cd7204be337071a">+0/-156</a> </td> </tr> <tr> <td><strong>e2e.js</strong><dd><code>Remove Cypress support bootstrap</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-9386a7eda1bd509aeb104db462f26116c8c09f47ef4ec433ac20325002445e41">+0/-22</a> </td> </tr> <tr> <td><strong>alerts-e2e-flow.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-32972e38c1fe0e8bb887f9f254b3130916a36f96ea924f9987493d44efefeab9">+1/-1</a> </td> </tr> <tr> <td><strong>alerts-import.spec.js</strong><dd><code>Update fixtures import and base URL usage</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-62b6ec4818685eacc0a934d68aaadfd73b512ef4f4be25fcd5135b97c2844912">+2/-2</a> </td> </tr> <tr> <td><strong>alerts-ui-operations.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-c9b523b5f5dea834b69abdf20f4acef361bdf37b1585c450e10238b1d1984f2e">+1/-1</a> </td> </tr> <tr> <td><strong>enrichment.spec.js</strong><dd><code>Use env base URL and fix fixtures path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-f52a06db75e7593aee95da4e0b255cb0001aa6c2b416d30358858e2f39b0cdcd">+2/-2</a> </td> </tr> <tr> <td><strong>sanity.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-89290ca55858ff744863278ee9381e32276c37a6c0718fb3f9dcba71a6451d91">+1/-1</a> </td> </tr> <tr> <td><strong>sanity2.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-23b929e901da8404e067ef228766740479bc4a1515b2243a1fb7f4c20c47a5b7">+1/-1</a> </td> </tr> <tr> <td><strong>schema.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-72dd04280e3c77242b982bd7853ffa447428c0f9419c37a71d867ec7cd28d4b8">+1/-1</a> </td> </tr> <tr> <td><strong>schemaload.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-5184069ec159ab301454535a5f45967635972e108095b82401ba96cb92856c5b">+1/-1</a> </td> </tr> <tr> <td><strong>indexquery.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-34747033f2191057e144ed1892b682d355e11788603a61aa98fbf991eed50c5a">+1/-1</a> </td> </tr> <tr> <td><strong>logshistogram.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-d01da1c5a03b1d1c1c74e11f6e4ebe879def1ce87e407aa9a1afc8473040f4bc">+1/-1</a> </td> </tr> <tr> <td><strong>logspage.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-b1a64252adae01c5e8f7e758e3c820f5476260f60c44a4a57b4f15a05a59a85a">+1/-1</a> </td> </tr> <tr> <td><strong>logsqueries.cte.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-153f79d86888d9e3a82f42a15242cacb3a126c263aee91cada88ae04dffacd36">+1/-1</a> </td> </tr> <tr> <td><strong>logsqueries.matchall.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-99c81de942a418ed93cb748d23740c18a68417844f033c94d6636685a4c3cc68">+1/-1</a> </td> </tr> <tr> <td><strong>logsqueries.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-c2055f6cef1580b15c5f94f5c8c2e496a6e921332b48bad943bb7c0630846a65">+1/-1</a> </td> </tr> <tr> <td><strong>logsquickmode.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-81f2f36450c07435f1b0f3c33462c7dac98c0798250913ae5ed928f57ad82cdf">+1/-1</a> </td> </tr> <tr> <td><strong>region.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-19ef2f7fe7e4063bd458370eca8951079965c22f91120d249dacf917c9b6da90">+1/-1</a> </td> </tr> <tr> <td><strong>searchpartition.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-967859311f28b32020e4c9cbb0fb7a290dbbe542fc125054afad9a712d299517">+1/-1</a> </td> </tr> <tr> <td><strong>unflattened.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-35703a04047bd3dc257e8e606360e196f9ead45fc44f3857a6e04023590f1a1e">+1/-1</a> </td> </tr> <tr> <td><strong>pipeline-core.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-3e57cb10518ffdfd480b0d5ec65db1fcee8419e9093ac0777ebabed4fccf2246">+1/-1</a> </td> </tr> <tr> <td><strong>pipelines.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-948dbdd764f739f3a4bcbb8c643ec4721e08695031bd9791040d68f7df842aee">+1/-1</a> </td> </tr> <tr> <td><strong>remotepipeline.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-71fb4f86d8846e6241222e82d0433fe0f948c27c841fa2050a13ce77c69edf3b">+1/-1</a> </td> </tr> <tr> <td><strong>multiselect-stream.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-057fce3dbfdd642ca63bece7ba136c34cb5e293de63bf895a6fb212b067d447a">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard-filter.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-c48a796836a25b90a9f94af58273ea9fd1b36248ca8689075c3d48be77de1468">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard-folder.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-bdb8f953e350e378f4196ea1b74fa60961dbe7e87ea34b77e551e77983ab0360">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard-html-chart.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-02c503aa87193168f5aa83c8105c376ea0c4dc45e6c7bd6f255b693bf7ebc462">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard-import.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-4d23d07530d81a854e1e5f91ffbdcbbf5ff33eecf73a1e13819e3194b324a930">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard-multi-y-axis.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-e90516a105c0b17c8e04c18e2b67ac10af213dbdd208fa4414cdcb7e377e6ee5">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-d0fa0042783dc109334b05266edce228bad97adcb568dd1e447920596238e9b4">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard2.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-8c9189e9e3950fff987c45ee8116d89f15f8fdec5baad209bef6f5858f3b3045">+1/-1</a> </td> </tr> <tr> <td><strong>dashboardtype.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-40ee9b1480e11efe6a8fcbdd9c28e2881ef564783b43e12aaa86f2b3cc7d8bc6">+1/-1</a> </td> </tr> <tr> <td><strong>dashCreation.js</strong><dd><code>Update fixtures import path in util</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-137f9f1fa23669cea684a9a98b42a9d04caaa18d75466b5605c717408e932122">+1/-1</a> </td> </tr> <tr> <td><strong>visualization-vrl.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-4bfe28b08994ca0333edbe51bc99d3ddf05525387e90932d88681028e1947db4">+1/-1</a> </td> </tr> <tr> <td><strong>visualize.spec.js</strong><dd><code>Update fixtures import path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+1/-1</a> </td> </tr> <tr> <td><strong>dashboard.json</strong><dd><code>Remove Cypress dashboard fixture</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-8a3efa732cf475a4a4f58a66d0f8dcc2d8e41b0821bebf18dcd14075899a1b3c">+0/-48</a> </td> </tr> <tr> <td><strong>logs.json</strong><dd><code>Remove Cypress logs fixture</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-438741113297d9c3f77a0a3cb7f277bd4591be3b2ae24400bdf6f76fcd9783ba">+0/-84</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>managementPage.js</strong><dd><code>Remove websocket toggle helper method</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-2e67acc9ff9099e14792ddeb7d0160268727fb064b85e6712f6434130cc23fdd">+0/-37</a> </td> </tr> <tr> <td><strong>playwright.config.js</strong><dd><code>Add env loader with .env fallback</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+20/-5</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>README.md</strong><dd><code>Replace Cypress docs with Playwright usage</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-949f41a08f99480267b84ae72cdf23bb92a88aa781904a25025b16fe61964bd3">+34/-6</a> </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>log.json</strong><dd><code>Trim trailing newline in fixture</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-6cef16cfa41adf1dc1e6284c25b015233d5cecbc1ce95f527e35fe85fde0535b">+0/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>package.json</strong><dd><code>Remove Cypress deps; pin Playwright versions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8027/files#diff-a41ba7975823b7b2dc071285391f835fbefd33bfffeb5aa2fba3ae15425cc64f">+6/-13</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
1d0490875b |
fix: is_multi_stream_search and enable_align_histogram (#8003)
### **User description** Fixes: - https://github.com/openobserve/openobserve/issues/7986 ### **PR Type** Enhancement, Bug fix ___ ### **Description** - Add multi-stream search histogram support - Gate histogram alignment via query flag - Remove unused search_type plumbing - Propagate multi-stream flag through services ___ ### Diagram Walkthrough ```mermaid flowchart LR HTTP["HTTP handlers"] GRPC["gRPC handlers"] Utils["HTTP query utils"] SQL["SQL utils: histogram eligibility"] Hist["SQL: histogram query builder"] Svc["Search service"] Cache["Search cache"] Stream["Streaming pipeline"] Utils -- "parse is_multi_stream_search / enable_align_histogram" --> HTTP Utils -- "parse flags" --> GRPC HTTP -- "pass flags" --> Svc GRPC -- "pass flags" --> Svc Svc -- "eligibility check (multi/unified)" --> SQL Svc -- "partitioning uses align flag" --> Svc Svc -- "search() with multi-stream flag" --> Cache Cache -- "eligibility(query, multi)" --> SQL HTTP -- "convert_to_histogram_query(..., multi)" --> Hist Stream -- "do_search(..., multi)" --> Cache Hist -- "build single/multi-stream histogram query" --> Svc ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>15 files</summary><table> <tr> <td><strong>http.rs</strong><dd><code>Parse multi-stream and align histogram flags</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-3b50a69c1ec2f63f8eebb5f9880e17826463a586768aed3e3e15242833609d6b">+20/-0</a> </td> </tr> <tr> <td><strong>search.rs</strong><dd><code>Remove SearchPartitionRequest.search_type field</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+0/-3</a> </td> </tr> <tr> <td><strong>sql.rs</strong><dd><code>Add multi-stream histogram eligibility (UNION ALL)</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-a0a09c66a20d878ec7683ae222c919fbe092b8001871ade7f455b89573ce0911">+134/-38</a></td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Pass multi-stream flag into search service</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-8dcdb10340635be8bb58d45a815569026877f6fdbb3b69a773a30698b91674b0">+3/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Wire flags; histogram conversion uses multi-stream</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+11/-7</a> </td> </tr> <tr> <td><strong>multi_streams.rs</strong><dd><code>Partition multi: add align flag; remove search_type</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+10/-9</a> </td> </tr> <tr> <td><strong>search_inspector.rs</strong><dd><code>Pass multi-stream flag in search profile</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-f818db4ca10b411c3559cc2a2659c49a59a45ecde0e4a22f9ef023da0bf4a009">+1/-0</a> </td> </tr> <tr> <td><strong>search_stream.rs</strong><dd><code>Stream API supports multi-stream histogram and flag</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-642de43ff6b19ae41087a9f1efc02d8b0b873809e0c92cbddfac1a30ef3f1184">+9/-3</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Propagate multi-stream flag in traces search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-64694c886c809b6efe449e6eba9fbb33d31ce5a3c49cea1a30006fc1d9522665">+2/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Cache search considers multi-stream eligibility</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-f07bfacc0501b9c234e64b16c1dd8eb0ae8fcbe231f90c81fed72bcc94946f74">+2/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Align partitions via flag; multi partition API updates</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+22/-12</a> </td> </tr> <tr> <td><strong>histogram.rs</strong><dd><code>Build histogram for multi-stream queries (UNION ALL)</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-a5fc4cd11b3ec569b4cedf278ef0b14f540504abfbb23e29eb896d5b2a6cc2b2">+64/-8</a> </td> </tr> <tr> <td><strong>cache.rs</strong><dd><code>Streaming cache handles multi-stream flag</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-55769b7cb67b550daf45363c6d7d569b39d4a6235f6a68c091beb40f16b6511e">+3/-0</a> </td> </tr> <tr> <td><strong>execution.rs</strong><dd><code>Execution path passes multi-stream flag to searches</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-75d432351865224f0b00d7cc819554c2ad5fa1f777e9c645d91a3fd5c1113bc0">+25/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Stream request processing threads multi-stream flag</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-f236c6c880ed80233fd264e657d5ab658c16c7368bdc70e20f123862b7214374">+4/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ ___ ### **PR Type** Enhancement, Bug fix ___ ### **Description** - Add multi-stream histogram query support - Align histogram via query flag - Remove search_type plumbing in partitions - Propagate multi-stream flag end-to-end ___ ### Diagram Walkthrough ```mermaid flowchart LR Http["HTTP handlers"] Grpc["gRPC handlers"] Utils["HTTP query utils"] Front["Web client"] Service["Search service"] Cache["Search cache"] SQLU["SQL utils: histogram eligibility"] Hist["Histogram query builder"] Front -- "is_multi_stream, align flag" --> Http Utils -- "parse is_multi_stream/align" --> Http Http -- "enable_align_histogram" --> Service Http -- "is_multi_stream_search" --> Cache Grpc -- "flags default false" --> Service Cache -- "eligibility(sql, multi)" --> SQLU Http -- "convert_to_histogram_query(..., multi)" --> Hist Service -- "partition(gen interval if enabled)" --> Service ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>19 files</summary><table> <tr> <td><strong>http.rs</strong><dd><code>Parse multi-stream and align-histogram flags</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-3b50a69c1ec2f63f8eebb5f9880e17826463a586768aed3e3e15242833609d6b">+20/-0</a> </td> </tr> <tr> <td><strong>search.rs</strong><dd><code>Remove search_type from partition request</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+0/-4</a> </td> </tr> <tr> <td><strong>sql.rs</strong><dd><code>Histogram eligibility with multi-stream UNION ALL</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-a0a09c66a20d878ec7683ae222c919fbe092b8001871ade7f455b89573ce0911">+134/-38</a></td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Pass default multi-stream flag to service</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-8dcdb10340635be8bb58d45a815569026877f6fdbb3b69a773a30698b91674b0">+3/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Add flags to HTTP search; align histogram handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+11/-7</a> </td> </tr> <tr> <td><strong>multi_streams.rs</strong><dd><code>Partition multi endpoint supports align flag</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+10/-9</a> </td> </tr> <tr> <td><strong>search_inspector.rs</strong><dd><code>Forward multi-stream flag in inspector search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-f818db4ca10b411c3559cc2a2659c49a59a45ecde0e4a22f9ef023da0bf4a009">+1/-0</a> </td> </tr> <tr> <td><strong>search_stream.rs</strong><dd><code>Streaming search supports multi-stream histogram</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-642de43ff6b19ae41087a9f1efc02d8b0b873809e0c92cbddfac1a30ef3f1184">+9/-3</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Forward multi-stream flag in traces helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-64694c886c809b6efe449e6eba9fbb33d31ce5a3c49cea1a30006fc1d9522665">+2/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Eligibility check aware of multi-stream</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-f07bfacc0501b9c234e64b16c1dd8eb0ae8fcbe231f90c81fed72bcc94946f74">+2/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Align histogram in partition; multi aggregate</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+22/-12</a> </td> </tr> <tr> <td><strong>histogram.rs</strong><dd><code>Build single/multi-stream histogram SQL</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-a5fc4cd11b3ec569b4cedf278ef0b14f540504abfbb23e29eb896d5b2a6cc2b2">+64/-8</a> </td> </tr> <tr> <td><strong>cache.rs</strong><dd><code>Propagate multi-stream flag in streaming cache</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-55769b7cb67b550daf45363c6d7d569b39d4a6235f6a68c091beb40f16b6511e">+3/-0</a> </td> </tr> <tr> <td><strong>execution.rs</strong><dd><code>Pass multi flag through streaming execution</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-75d432351865224f0b00d7cc819554c2ad5fa1f777e9c645d91a3fd5c1113bc0">+25/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Wire multi-stream flag across streaming path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-f236c6c880ed80233fd264e657d5ab658c16c7368bdc70e20f123862b7214374">+4/-0</a> </td> </tr> <tr> <td><strong>IndexList.vue</strong><dd><code>Use align flag in partition requests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+1/-1</a> </td> </tr> <tr> <td><strong>usePanelDataLoader.ts</strong><dd><code>Toggle align histogram for dashboards</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+3/-1</a> </td> </tr> <tr> <td><strong>useLogs.ts</strong><dd><code>Multi-stream histogram flow and params</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+3/-2</a> </td> </tr> <tr> <td><strong>search.ts</strong><dd><code>API params for is_multi_stream and align flag</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8003/files#diff-885ab872dbc6e7b20264df815e3ef4727f0abc86ce90d2fb47e4aff572814c75">+7/-5</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Bhargav <BJP232004@GMAIL.COM> Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: omkark06 <omkar@zinclabs.io> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
748cca3ecb |
feat: visualization enhancement (#7456)
### **User description**
### Which query will be used?
- If query is empty will use histogram query
- Else query will be available:
- If query has group by clause :- will use same query
- Else will use histogram query
___
### **PR Type**
Enhancement, Tests, Bug fix
___
### **Description**
- Add server API to extract result schema
- Implement DataFusion plan visitor for projections
- Integrate visualization flow with schema and histogram
- Numerous UI fixes and UX improvements
___
### Diagram Walkthrough
```mermaid
flowchart LR
DF["DataFusion Plan Visitor (Rust)"]
API["HTTP API /result_schema (Rust)"]
FE["Logs Visualize UI (Vue)"]
Loader["Panel Data Loader (TS)"]
Cache["Histogram Handler & Cache (Rust)"]
DF -- "extract projections/group_by/timeseries" --> API
API -- "JSON ResultSchemaResponse" --> FE
FE -- "build config, set fields, decide histogram" --> Loader
Loader -- "inject searchResponse / is_ui_histogram" --> FE
Cache -- "normalize histogram()" --> DF
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>14
files</summary><table>
<tr>
<td><strong>projections.rs</strong><dd><code>Add DataFusion logical plan
visitor to extract schema</code> </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-7a0420d3649da44b80be36d7f1043d6ff81d88395c961266882c3c700f7edff7">+651/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Add /result_schema endpoint and
wire parsing/security</code> </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+224/-2</a>
</td>
</tr>
<tr>
<td><strong>cacher.rs</strong><dd><code>Improve histogram() handling and
make public</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-8c387b22b2c0a282600ee41ca702b3db60f5a284d507c0feb7418608ff062c6c">+22/-11</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Export projections
module</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-70bb941c2eef1365e5ead1a59b65c5397457b9197a4e22596e18d17db7eaf922">+1/-0</a>
</td>
</tr>
<tr>
<td><strong>Index.vue</strong><dd><code>Integrate visualization with
schema API and histogram</code> </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+564/-154</a></td>
</tr>
<tr>
<td><strong>VisualizeLogsQuery.vue</strong><dd><code>Field list UX,
props for searchResponse/histogram</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+236/-174</a></td>
</tr>
<tr>
<td><strong>SearchBar.vue</strong><dd><code>Visualize toggle gating,
SQL/VRL disabled states</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+102/-52</a></td>
</tr>
<tr>
<td><strong>FieldList.vue</strong><dd><code>Readonly/visibility options
for logs visualize</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-a071c06e3e26629cb4ae4751450acc39c61fa49b07a1cc4be3711697829668d4">+13/-1</a>
</td>
</tr>
<tr>
<td><strong>TransformSelector.vue</strong><dd><code>Disable transform
controls in visualize mode</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-0037d8dd9cfbacc26309b26e98ae953e7ccbd0891ac2fd01c6314ebd7eed9d2c">+11/-4</a>
</td>
</tr>
<tr>
<td><strong>ChartSelection.vue</strong><dd><code>Allow restricting
selectable chart types</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-384ce178717731e2c85f1312f12a54b42ceabd0b86f7e2befb0e421ef568a6a3">+14/-11</a>
</td>
</tr>
<tr>
<td><strong>PanelSchemaRenderer.vue</strong><dd><code>Accept
searchResponse and is_ui_histogram props</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+13/-0</a>
</td>
</tr>
<tr>
<td><strong>usePanelDataLoader.ts</strong><dd><code>Support injected
searchResponse and ui histogram</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+30/-5</a>
</td>
</tr>
<tr>
<td><strong>visualizationUtils.ts</strong><dd><code>Add SQL alias
validator for visualization</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-c2c391afcaa0b44c33d3f4fa531a4f31f044ae036f0baa182c8c88e83de066c5">+80/-0</a>
</td>
</tr>
<tr>
<td><strong>query.ts</strong><dd><code>Extend response metadata for
visualization</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-12dd5b3bb9741bbeaa348c0efbbd745d0a582899678738159c6927d34a35191d">+2/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>mod.rs</strong><dd><code>Add test for compact delete value
check</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-b7e3bf7f0ac23dd084c0c817a310a4d5e7a64ff532746d182986ef940fa03fd0">+17/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>auth.rs</strong><dd><code>Allow auth bypass for
result_schema route</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+3/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Register result_schema HTTP
route</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+1/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>search.rs</strong><dd><code>Add ResultSchemaResponse
contract</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+7/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>TableRenderer.vue</strong><dd><code>Render null/undefined as
empty string</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-794706ea9da3a70012a0327c0464f9fd16802f78ece26055fe951716c2d73d59">+1/-1</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>sqlUtils.ts</strong><dd><code>Minor formatting
fix</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-dde40e8fcb5c37b06c011ede08922c44a3c025682fbc341aee97ba046b73a0e3">+1/-1</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>11 files</summary><table>
<tr>
<td><strong>playwright.yml</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>visualise.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-c14ac1db3e4aa86190d7525e8e38c410bcbbae7f46b01890e74937cc11be67e6">+1/-5</a>
</td>
</tr>
<tr>
<td><strong>logsPage.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>visualize.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+225/-183</a></td>
</tr>
<tr>
<td><strong>useDashboardPanel.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-fbba1700750053b9eaf38ddd30dab84531bc44131c795ebb713811e4930cd7cb">+420/-6</a>
</td>
</tr>
<tr>
<td><strong>useLogs.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+151/-19</a></td>
</tr>
<tr>
<td><strong>useNotifications.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-32ff5072df9badfebc0a72c401fe337de3324f76b186a52d202eb6cc2fa71e3a">+25/-0</a>
</td>
</tr>
<tr>
<td><strong>en.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>search.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-885ab872dbc6e7b20264df815e3ef4727f0abc86ce90d2fb47e4aff572814c75">+43/-0</a>
</td>
</tr>
<tr>
<td><strong>logs.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-637857fa918f47ffb02ebfc8a35b124001ef4f65fd180c467f0f153382d2dc76">+1/-0</a>
</td>
</tr>
<tr>
<td><strong>convertDataIntoUnitValue.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7456/files#diff-14c6fe442ef231566ec411f9e0262cdd24ec912fc67b9154eec743282ab7211a">+120/-29</a></td>
</tr>
</table></details></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: loaki07 <rustyloaki@gmail.com>
Co-authored-by: Loakesh Indiran <66478092+Loaki07@users.noreply.github.com>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com>
Co-authored-by: Yashodhan Joshi <yashodhan@openobserve.ai>
|
||
|
|
4b16b049c7 | test: Updated yml file (#7976) | ||
|
|
a11c3d80f1 | chore(deps): bump tmp from 0.2.1 to 0.2.4 in /tests/ui-testing (#7904) |