Bhargav
2f4f567304
fix: fix for list item not clickable outside text ( #7469 )
...
### **PR Type**
Bug fix
___
### **Description**
- Expand clickable area for list items
- Move include/exclude handlers to q-item
- Remove redundant label click directives
- Add click.stop to addFieldToTable item
___
### **Changes walkthrough** 📝
<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>JsonPreview.vue</strong><dd><code>Expand clickable area
on list items</code>
</dd></summary>
<hr>
web/src/plugins/logs/JsonPreview.vue
<li>Moved @click.stop handlers from q-item-label to q-item<br> <li>
Removed redundant v-close-popup and click directives on labels<br> <li>
Added @click.stop to q-item for addFieldToTable action
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7469/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16 ">+3/-8</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
___
> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/ ">documentation</a>
for more information.</li></details>
2025-07-07 13:55:59 +05:30
Sai Nikhil
72c1968e73
fix: O2 ai add info ( #7451 )
...
1. This adds additional info to the o2 ai chat
Add short cut at row to send the event to O2-ai
On inline expand of log row , add short cut at row to send the event to
O2-ai
On Side panel with details of logs line , add short cut at row to send
the event to O2-ai
On pipelines page send selected stream context
On functions creation page send the event to O2-ai
2025-07-07 06:45:23 +05:30
Bhargav
471f6ee7a0
fix: disable search around for aggregation query ( #7441 )
2025-07-03 16:48:01 +05:30
+1
79498b2c3e
fix: UI performance optimisation ( #7254 ) ( #7415 )
...
### **User description**
- Replaced Monaco Editor with CodeMirror v6 in
web/src/components/CodeQueryEditor.vue for a lighter-weight
implementation
- Migrated stream state management from local reactive objects to
centralized Vuex store modules in web/src/stores/streams.ts
- Enhanced memory management in QueryEditor with proper cleanup of
editor resources
- Simplified page container in web/src/layouts/MainLayout.vue by
removing conditional rendering and keep-alive functionality
- Added error handling to deepCopy function in
web/src/utils/zincutils.ts to prevent crashes from circular references
---------
___
### **PR Type**
Enhancement, Bug fix
___
### **Description**
- Refactor Quota.vue: async components, confirm dialogs
- Replace SqlQueryEditor with CodeQueryEditor
- Add SQL auto-complete suggestions in query editor
- Reset parser and logs init in PanelSchemaRenderer
___
### **Changes walkthrough** 📝
<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>Quota.vue</strong><dd><code>Refactor and enhance Quota
component</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-30293eb5cb924f95356d5abd4588ce0f03765ac9d4446cf5b8cbacba23c6f979 ">+1526/-1363</a></td>
</tr>
<tr>
<td><strong>DashboardQueryEditor.vue</strong><dd><code>Replace
SqlQueryEditor with CodeQueryEditor</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-68bf1b319223d103f1b99e0b681764e4eb76942399397779c81c2cd18f6485ff ">+98/-84</a>
</td>
</tr>
<tr>
<td><strong>TestFunction.vue</strong><dd><code>Async load
CodeQueryEditor, format JSON events</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-b9af9a2d1bf04d23422c26a13e6a763c6953c8713357a2f64ed8073ce6c926a3 ">+22/-12</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>PanelSchemaRenderer.vue</strong><dd><code>Reset parser and
log initialization on unmount</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6 ">+3/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>89 files</summary><table>
<tr>
<td><strong>commands.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-7ed08e69ca91e6bd5233bc45e862113207bfcac657b88d4d1e42e32605166433 ">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>alertsPage.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-c5fc79c6d2dcc83e20d69c46fdcf69449dade50c3e7cd5bf65d88369f5083cce ">+207/-0</a>
</td>
</tr>
<tr>
<td><strong>dashboardPage.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-05afd11e29f85654b337086bafd33ff6185ee44ad369f61bb8fa478821e6c472 ">+8/-4</a>
</td>
</tr>
<tr>
<td><strong>logsPage.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-6af0f73f0523e6fccd38532cb454dc58c4ef1fe4ef5bc5a135ef3f0ee5371ef6 ">+10/-15</a>
</td>
</tr>
<tr>
<td><strong>pipelinePage.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-324393930b7e946cbbd5a9babc217b50a379217ff3348eb8b76ab70817a492f0 ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>alerts.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-a51e6bab2ebb7ff9069a707fd7da5bb3e0948db8013765b4a934ba594c1bcf57 ">+224/-0</a>
</td>
</tr>
<tr>
<td><strong>alertsfolders.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-8fe0cba8c6c487d2a0cf8309769adaebddcfc1932080d4cbb4a448902d14123a ">+312/-0</a>
</td>
</tr>
<tr>
<td><strong>custom-charts.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-bb0672bd78ba9a59df96a08374f5fd77f52a47792ad409921fd25457bcf0a9e2 ">+3/-2</a>
</td>
</tr>
<tr>
<td><strong>dashboard-import.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-4d23d07530d81a854e1e5f91ffbdcbbf5ff33eecf73a1e13819e3194b324a930 ">+6/-5</a>
</td>
</tr>
<tr>
<td><strong>dashboard-transpose.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-da631007cea76a4bc59e4acd1195b59ae4131cd5208d21a9c1f94d3913911dc4 ">+10/-7</a>
</td>
</tr>
<tr>
<td><strong>dashboard.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d0fa0042783dc109334b05266edce228bad97adcb568dd1e447920596238e9b4 ">+12/-8</a>
</td>
</tr>
<tr>
<td><strong>visualization-vrl.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-4bfe28b08994ca0333edbe51bc99d3ddf05525387e90932d88681028e1947db4 ">+38/-11</a>
</td>
</tr>
<tr>
<td><strong>visualize.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec ">+6/-6</a>
</td>
</tr>
<tr>
<td><strong>enrichment.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-1c26b9ac51f49e25aa8fe1ad6ae5376da50d27be032579c4194b62e5e798a76b ">+3/-3</a>
</td>
</tr>
<tr>
<td><strong>indexquery.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-0fdb3410e34d127b97b20feda5f1c5f244f23af2d2d88c331ab753a1f434d3b1 ">+3/-1</a>
</td>
</tr>
<tr>
<td><strong>logspage.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-950a38f6d66dbcf4f7cb39dc366ab25f533044718edee8199d7f819c5b06efe3 ">+17/-17</a>
</td>
</tr>
<tr>
<td><strong>logsqueries.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-aee28776157572aac692a692c53f8d5aebfe8d01d1a7addf14f3a3f92c35b3a5 ">+5/-7</a>
</td>
</tr>
<tr>
<td><strong>logsquickmode.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-e9af1bd193f255ad6740e261d2d9ec1d9f3290a8eabe7e99818c702ef8d67277 ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>multiselect-stream.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-e2eb0d6de0ad04a42b73cce92a1c86e68213fed79bd7507ea00abfe18a2633c7 ">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>pipelines.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-9b48f5edc53f2413789549b189d4a80f134a320dd5beebf96d738069eb43033a ">+17/-12</a>
</td>
</tr>
<tr>
<td><strong>remotepipeline.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-3b5a97115bd312e7490580fa00af21077ea5050915995bd133a7f5fd913e5394 ">+4/-8</a>
</td>
</tr>
<tr>
<td><strong>sanity.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-53b3ede269fef5199fbaea935f79134b50ba4db51edc517e4b1701f2cbcc5130 ">+17/-16</a>
</td>
</tr>
<tr>
<td><strong>sanity2.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-f1ab4c6d536ebc3b8ea7ff17d2954d86ef56b660dcfaa1bb39f8213a5bf92e22 ">+1/-3</a>
</td>
</tr>
<tr>
<td><strong>schema.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-1212ad9c33ea14a5a660923b20c162380c9d8c27ffa64993ddfc827e4d82a208 ">+3/-2</a>
</td>
</tr>
<tr>
<td><strong>schemaload.spec.js</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-768d758450ec41815b1330503394239673698045f5c29e46fc05d7b475c037ea ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>package.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce ">+21/-4</a>
</td>
</tr>
<tr>
<td><strong>CodeQueryEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-52a36bf2d64e590036ed1c1f89b07a4a6b971a84e4fae9b4272cbc69d63f9bef ">+1188/-0</a></td>
</tr>
<tr>
<td><strong>CodeQueryEditorDarkTheme.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-4ee0166b549a9a7d6a91e72d546dffd2d031b0ad6015ef5f735b67742e13c66d ">+230/-0</a>
</td>
</tr>
<tr>
<td><strong>CodeQueryEditorLightTheme.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-4e80117fff859d80b9dde6898e8026f2c2514c43244e48e2b639527409d38682 ">+246/-0</a>
</td>
</tr>
<tr>
<td><strong>QueryEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-b949ab08f913cc89fb6db9d9929dab88b1ea6d671537ed95401b721b95d1a43c ">+0/-584</a>
</td>
</tr>
<tr>
<td><strong>ScriptEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-c870b03c943dcadde6f101c9bcf0032917a4a9be11fec1172ef4ba1dde3edf06 ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>AddAlert.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8 ">+0/-4</a>
</td>
</tr>
<tr>
<td><strong>AddTemplate.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-2508a43827e6b35c07f3222deebd9945101ca6bc32b9dc592e6253ab99908bba ">+10/-2</a>
</td>
</tr>
<tr>
<td><strong>ImportAlert.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-0f40dbf2757672e39ad16b86dddc59b568ca2e6ca36850420cd7be617da12d38 ">+212/-154</a></td>
</tr>
<tr>
<td><strong>ImportDestination.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-814b8ef1dbb4eebca9dfab72452d9a90d5f3fa5886dea8e82ac0bde44f66b445 ">+4/-3</a>
</td>
</tr>
<tr>
<td><strong>ImportTemplate.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d22684c5142a49b8925a9dba1ef67631128caa95de66e71ba2a5b8120a0b91c6 ">+35/-12</a>
</td>
</tr>
<tr>
<td><strong>ScheduledAlert.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-5e143a17ab0fa5d7817f6d9301667fb5597236f27184248c7a71728e85b8d999 ">+3/-3</a>
</td>
</tr>
<tr>
<td><strong>QueryEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-571498e285d4dfa487f980ce085fbac19b5045b0e201ed02f6eb45a4da5fba6e ">+0/-571</a>
</td>
</tr>
<tr>
<td><strong>CustomChartEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-489b6f52a8d12f28eefa2c1c1f396b61a5b17f00a5e1a51d0590e801c7cbc6ca ">+7/-22</a>
</td>
</tr>
<tr>
<td><strong>CustomHTMLEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-66cb3b43f79787a9b8d99b8c1d0f2f89aacd82055ff9ddbd4a4e5c96ec6b61ca ">+7/-5</a>
</td>
</tr>
<tr>
<td><strong>CustomMarkdownEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-6f1e425e1dc7a287070fbad1713679c729dc7ee61fa3b31781ed6b285ae3d279 ">+6/-5</a>
</td>
</tr>
<tr>
<td><strong>DrilldownPopUp.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-9fdb8c9d3953179dbd311c7e4d2250683af9b51e7706122a505c5c6a708c2a55 ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>MonacoHTMLEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-ceffb7bda954a9e66f97c1bf28b92ba4ce00bc650f1b24b50997f9745b3ddc5c ">+0/-186</a>
</td>
</tr>
<tr>
<td><strong>MonacoMarkdownEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-387421c070b513acdb939e69b2ba73a47b990a0a10b00a937fa4dc06f984a3dc ">+0/-186</a>
</td>
</tr>
<tr>
<td><strong>ViewPanel.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-e7b26fbbfe7ae57f50377c0f002155df17109ea54708b0f134dd2005356b2930 ">+1/-0</a>
</td>
</tr>
<tr>
<td><strong>AddFunction.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-ebfd6c538f3cd3ecb9ab17550fd76e2e89e7a1abccc83a7505077e4af3eee110 ">+4/-2</a>
</td>
</tr>
<tr>
<td><strong>EnrichmentTableList.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-6a29e253f59405d3c0f756dba36afd7483f10ad86927cbbc3348ede6372c3077 ">+21/-11</a>
</td>
</tr>
<tr>
<td><strong>EditRole.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-263b6bc7d29fdf8358c8437cd637f1350aa3733cc2706eae8ff00028686cc0f5 ">+15/-4</a>
</td>
</tr>
<tr>
<td><strong>SearchBar.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-2024fb4414454d05e6335ebbd54b067cf0af41bbc184d6652452d492a64cba31 ">+4/-4</a>
</td>
</tr>
<tr>
<td><strong>schema.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46 ">+7/-3</a>
</td>
</tr>
<tr>
<td><strong>ImportPipeline.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d57fa41169daa44551a181f21ca33882004b29ab74e3040e4c56a8c849078670 ">+1429/-1168</a></td>
</tr>
<tr>
<td><strong>ScheduledPipeline.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-63d8f838bb880356e7804b4a57fd9223d4f2c189de7aadc7cf33cba723b29aaf ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>ReportList.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067 ">+44/-34</a>
</td>
</tr>
<tr>
<td><strong>SearchBar.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d20c6ba53e6a9adfe67b2f83fe76357fb541b2764dd40cb16627599e0c80e63f ">+13/-3</a>
</td>
</tr>
<tr>
<td><strong>VideoPlayer.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-5cb7c9f5d73672eaaabf9214cfeb949f533772e87780829664fac444e3c6fa35 ">+8/-7</a>
</td>
</tr>
<tr>
<td><strong>router.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-a1827956e5a817edc7efb5f4516e7cc4d453e15ea9e9d970aafb8360b09fc78e ">+3/-3</a>
</td>
</tr>
<tr>
<td><strong>useDashboardPanel.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-fbba1700750053b9eaf38ddd30dab84531bc44131c795ebb713811e4930cd7cb ">+5/-1</a>
</td>
</tr>
<tr>
<td><strong>useLogs.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b ">+150/-66</a></td>
</tr>
<tr>
<td><strong>usePromqlSuggestions.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-250bf4b2d8cb3845005f72188d73ab954359f841e15c4f217708beac1493e83a ">+9/-13</a>
</td>
</tr>
<tr>
<td><strong>useQuery.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-fe0bf52b216893c6a31f2923aab979e0d817c742b0cfd75e524e60db75b1d3e8 ">+5/-1</a>
</td>
</tr>
<tr>
<td><strong>useStreamingSearch.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-8fce3e25a161cd458e734bd9b1f98aadefe3482da7b6529a5b1f4fa20ec115e2 ">+34/-4</a>
</td>
</tr>
<tr>
<td><strong>useStreams.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-a083369344f022cdf8d4f536719179b1d920369e33e2e26234e70dd36d151a7c ">+194/-97</a></td>
</tr>
<tr>
<td><strong>useSuggestions.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-6d2ecd5b90970ea8c8f5d35c5928a2cf8bf0ed14af700db0202759158bfbbf9d ">+142/-133</a></td>
</tr>
<tr>
<td><strong>MainLayout.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362 ">+6/-33</a>
</td>
</tr>
<tr>
<td><strong>main.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-37b29c5a3b76595194070205d9a0cdedcd717bf7c4367022d1e2667395962f2e ">+1/-2</a>
</td>
</tr>
<tr>
<td><strong>Index.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62 ">+122/-75</a></td>
</tr>
<tr>
<td><strong>IndexList.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09 ">+25/-29</a>
</td>
</tr>
<tr>
<td><strong>JsonPreview.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16 ">+74/-71</a>
</td>
</tr>
<tr>
<td><strong>QueryEditor.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-cb1820565e2f5b8dd976cc486cf62ab3b756b5ceb6f73d6b203407aa6e6e1721 ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>SearchBar.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf ">+85/-57</a>
</td>
</tr>
<tr>
<td><strong>SearchHistory.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-9dd167bd5e272b2057f53c16b905047eec00655a3552daad240a964d67a6f56d ">+609/-581</a></td>
</tr>
<tr>
<td><strong>SearchSchedulersList.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-0c0a4097c53f07712d35562b1336602bf24faddedab77a9f5717f5582dcac2f1 ">+125/-114</a></td>
</tr>
<tr>
<td><strong>TenstackTable.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22 ">+29/-16</a>
</td>
</tr>
<tr>
<td><strong>SearchBar.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-43405981dab6359bdfba1ef176d74d3c557fc349f98cf6b1662fd4a021448eb1 ">+3/-3</a>
</td>
</tr>
<tr>
<td><strong>TraceBlock.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-3ee60afe01a0ce46d117de0e158e14d24134d8a8b5c4496b3eb79ab0015e67a7 ">+5/-1</a>
</td>
</tr>
<tr>
<td><strong>index.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-955a15c7ee060f1545e82be22911dd0c14307dee5a70071a394e9fd583bd2c55 ">+6/-1</a>
</td>
</tr>
<tr>
<td><strong>logs.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-ad599dbc6a05f72f09340ca9417380cdb279110e7feae6ced910a5dad6408918 ">+38/-0</a>
</td>
</tr>
<tr>
<td><strong>streams.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-440c093277fd2be53228c096ef3a408c393754f10ae8ab275e6b0fe5eb063ad7 ">+105/-0</a>
</td>
</tr>
<tr>
<td><strong>commons.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-17cb74f8142984fc46bbfecdeaacccc118fd5d4ab7f040a55695caaa309d104f ">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>convertPromQLData.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a ">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>vrlLanguage.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d8baadeb1ccdabd0e424d3f335476417990ae5f680645db52ba03a94b75afd7a ">+147/-0</a>
</td>
</tr>
<tr>
<td><strong>zincutils.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-d3d59688cccdcc6c84ebe88b698c6910030abecc3125f4c0ef81b0df023699ba ">+11/-3</a>
</td>
</tr>
<tr>
<td><strong>DashboardJsonEditor.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-e3852754d3a888bea3d2ceb9433111d178119e3d86c82e103695ee1ffd3efbfa ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>ImportDashboard.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-660ac197e10735b4f08fc4b5a39744187d16c14156ced00eefde09dbaec323f0 ">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>LogStream.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-56f4223b74568c10bc305741cc9fc3a8830184a251b4eaa6a2649033bc6200e3 ">+71/-32</a>
</td>
</tr>
<tr>
<td><strong>AppErrors.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-edad7593714ebb348007aa179f10555b5185d45c9f5f80efee772d407a20b3d0 ">+4/-4</a>
</td>
</tr>
<tr>
<td><strong>AppSessions.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-08359708ae507d81dcdc60e3c05ba4f56a40f4a61718074cd6019bf2ceb87575 ">+7/-7</a>
</td>
</tr>
<tr>
<td><strong>StreamExplorer.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-2c90a38c4ff744a3824c1b112ac4522a7d55912b03aef6f280a5f338fe51e20a ">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>vite.config.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7415/files#diff-9430906049744cbbfe5d0b382b2466843a42cfebf755ff86fec850b0712258ef ">+24/-25</a>
</td>
</tr>
</table></details></td></tr></tr></tbody></table>
___
> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/ ">documentation</a>
for more information.</li></details>
---------
Co-authored-by: Omkar Kesarkhane <127078473+omkarK06@users.noreply.github.com >
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech >
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai >
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech >
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech >
Co-authored-by: ShyamOOAI <shyam@openobserve.ai >
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech >
Co-authored-by: omkark06 <omkar@zinclabs.io >
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com >
Co-authored-by: Shrinath Rao <shnath@openobserve.ai >
2025-07-03 11:48:58 +05:30
udev and omkark06
2bcae056ac
fix: redirect short url ( #7026 ) ( #7033 )
...
with this POC we will let FE handle all short url redirections. We keep
the old routes intact for backwards compatibility
---------
---------
Co-authored-by: omkark06 <omkar@zinclabs.io >
2025-06-06 17:33:16 +05:30
Sai Nikhil
2db1d49fc3
fix: log page download count issue , service account description field added ( #6892 )
...
1. This PR fixes the log page download count mismatch issue so when user
tries to get 1 to 100 records we are actually sending from as 1 which is
incorrect because BE expects from 0 so modified we now send -1 from user
input eg: user enters 1 we send it as 0 , user sends 50 send 49 this
will make sure that actual records are being downloaded
2. This PR also fixes the service account issue so we dont need first
name and last name for the service account so we removed that and added
description in place of that , removed them in the service account list
as well |
#6887
#6837
2025-06-02 11:27:52 +05:30
Omkar Kesarkhane
3441d5455f
feat: Support to pass context in O2 AI ( #6978 )
...
Support to pass context in O2 AI from logs, dashboard (add_panel) pages
2025-05-30 22:27:26 +05:30
Omkar Kesarkhane
0fb48ae80b
fix: Logs UI Issues ( #6796 )
2025-05-30 21:50:47 +08:00
Omkar Kesarkhane and Sai Nikhil
666dfcdb62
fix: Updated UI unit test setup ( #6520 )
...
Co-authored-by: Sai Nikhil <nikhil@openobserve.ai >
2025-05-30 13:21:40 +05:30
Omkar Kesarkhane
f499a9a9b8
fix: Added label for duration field in traces ( #6939 )
...
Duration field was getting added to query as `duration (us)`. Added
label key in field object for displaying label
2025-05-29 13:11:35 +05:30
Hengfei Yang
44f435028e
fix: if gRPC can't start we should stop the app ( #6925 )
...
- [x] fix: if gRPC can't start we should stop the app #6874
- [x] feat: remove match_all_raw #6935
- [x] feat: node list API will return by router
2025-05-28 08:42:49 +08:00
31703cc9d2
feat: o2 AI Agent ( #6899 )
...
this PR introduces o2 ai agent with this user able to ask o2 ai about
sql query , vrl query and logs
---------
Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com >
Co-authored-by: Taiming Liu <liutaiming3@gmail.com >
2025-05-27 15:09:19 +05:30
+2
0d9f47966b
feat: Organization revamp ( #5579 )
...
Fixes #5131
Addresses #5408
### Revamp
- Created a new table to store organizations in the `organizations`
table. Earlier, we never stored organizations in any table, rather we
used to store the organizations in the meta table as part of the `user`
json.
- The users and organization membership relations are now moved to its
own separate tables - `users` and `org_users`.
### New changes
**API changes** -
- `/organizations` - `POST` api to create an org and save it in the meta
table. In non-enterprise version, currently only the root user can
create the org. For enterprise version with rbac enabled, anyone with
`CREATE` access for organizations can create the organization and
becomes an admin. Root user can always create an organization.
- `/{org_id}/rename` - `PUT` api to rename the existing org. Only root
user and the admins of the org can access this API.
The payload for following APIs are changed -
- `POST api/{org_id}/roles` - `{"name":"new_role"}` is changed to
`{"role":"new_role"}
- `POST api/{org_id}/users/{user}` -
`{"role":"viewer","custom_role":["role_name"]}` is the new payload where
`custom_role` is optional and is array of custom roles (only works in
enterprise with rbac enabled) which will be assigned to the user. The
value of `role` can be standard role or as well as any custom role (when
it is custom role, the standard role assigned to the user is decided
based on the enterprise env variable - `O2_DEX_DEFAULT_ROLE`).
- `POST api/{org_id}/users`- the payload -
```
{"email":"user@user.com ","role":"viewer","custom_role":["create_org_permission"],"password":"12345678", "first_name": "", "last_name":""}
```
- `PUT api//{org_id}/users/{email_id}` the payload -
```
{"first_name":"Hello","last_name":"j","role":"viewer","isExternal":false,"change_password":false,"password":"","custom_role":["create_org_permission"]}
```
A new ENV variable is introduced - `ZO_CREATE_ORG_THROUGH_INGESTION`
(default `false`) which if true, an org will automatically created when
ingesting data to a new org. If false, user can not create org by
ingesting data to new org, they need to first call the `POST
/organizations` API.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
**New Features**
- Added a `cloud` feature for enhanced organizational management
capabilities.
- Introduced new methods for managing organizational users and
asynchronous message processing.
- Enhanced user invitation and membership features, including improved
role handling.
- Implemented configurable ingestion URL support across various
components.
- Added new functionality for user management and organization handling
in the super cluster architecture.
**Improvements**
- Refined user authentication and authorization processes, including
error handling.
- Updated database schema to support multi-organization architecture.
- Enhanced pagination settings and UI components for better user
experience.
- Improved handling of organization names and user roles in
notifications and alerts.
- Streamlined service account token management with visibility
enhancements.
- Enhanced the `AddUpdateOrganization` component with improved user
input handling and validation.
- Updated the `AppOrganizations` component to dynamically load the
appropriate organization management interface.
- Improved the `ServiceAccountsList` component with updated pagination
options and token handling logic.
**Bug Fixes**
- Resolved issues with user role assignments and organization management
inconsistencies.
- Corrected routing and navigation logic for login and logout processes.
- Addressed various error handling scenarios in user and organization
processes.
- Fixed issues with the visibility of service account options in the
`EditGroup` and `EditRole` components based on the cloud configuration.
**Breaking Changes**
- Significant restructuring of user and organization data models.
- Changes to authentication workflows and configuration handling.
- Removal of certain components related to user and organization
management.
- Updated the logic for determining the ingestion URL across various
components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com >
Co-authored-by: Bhargav <BJP232004@GMAIL.COM >
Co-authored-by: Taiming Liu <liutaiming3@gmail.com >
Co-authored-by: hengfei yang <hengfei.yang@gmail.com >
Co-authored-by: harshiv-7 <harshiv@openobserve.ai >
Co-authored-by: Huaijin <haohuaijin@gmail.com >
Co-authored-by: Zhao.wei <weizhao029@gmail.com >
Co-authored-by: ShyamOOAI <shyam@openobserve.ai >
Co-authored-by: oasisk <ashish.j.kolhe@gmail.com >
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai >
Co-authored-by: Yashodhan Joshi <yashodhan@openobserve.ai >
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com >
2025-05-25 21:53:55 -07:00
367ddcd821
feat: streaming aggr support for http ( #6854 )
...
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai >
Co-authored-by: omkark06 <omkar@zinclabs.io >
2025-05-22 11:49:54 +05:30
udev
da2a769762
feat: Add HTTP2 Streaming support ( #6721 ) ( #6827 )
2025-05-20 00:06:05 +08:00
Subhra264 and sai nikhil kethe
330cf14ec0
fix: ZO_DEFAULT_MAX_QUERY_RANGE_DAYS env should be returned by streams list api ( #6762 )
...
Fixes #6753
---------
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai >
2025-05-09 14:22:58 +05:30
Sai Nikhil
ea866c0475
fix: highlight syntax in logs page ( #6647 )
...
1. This PR reintroduces the highlighting the particular keywords that
are there in the match_all or fuzzy_match_all conditions
2025-05-08 10:00:52 +05:30
Bhargav
45e3014707
fix: added error message code for cancelled search query ( #6748 )
2025-05-07 17:04:43 +05:30
Abhay Padamani
84c506ef17
fix: cancel running queries on logs visualization toggle ( #6685 )
...
- #6686
2025-04-30 14:17:31 +05:30
e89423ca49
fix: cherry-pick rc7 fixes ( #6649 )
...
- [x] fix: `tokio_tungstenite` max msg limit config
- [x] honor user cancel in ui (logs, dashboards) if
`should_client_retry` is `true`, and is in loop.
- [x] fix: `values` event to send `cancel` response if search query
cancelled
- [x] handle `values` event error in ui
---------
Co-authored-by: omkark06 <omkar@zinclabs.io >
Co-authored-by: udev <uddhav@openobserve.ai >
2025-04-25 22:01:31 +05:30
Ashish Kolhe and Bhargav
c1172e10fc
fix: default histogram enabled ( #6636 )
...
Co-authored-by: Bhargav <BJP232004@GMAIL.COM >
2025-04-24 18:35:01 +05:30
Omkar Kesarkhane
6dcb24a4f3
fix: Traces UI Issues ( #6606 )
2025-04-23 08:59:08 +05:30
Sai Nikhil
5316e4996c
fix: expand row needs to have unique row id in search history ( #6580 )
...
1. some times due to same trace id for multiple rows when we expand it
will lead to expanding the same trace id rows (multiple) for that we had
a fix like combination of trace_id + sql which would be unique but due
to some times we might get same trace_id and sql as well
2. to fix this when we are receiving response we are dynamically
generating UUID for each hit and assigning it to each row so that we
will expand based on UUID
2025-04-19 10:13:28 +05:30
Sai Nikhil and Bhargav
df1f5eba31
fix: Sql mode skip query validation ( #6434 )
...
1. this PR fixes the sql mode query validation when they are not parsed
by the parser we use
2. in this case we are using node-sql parser so we will simply skip the
validation and pass it to BE
---------
Co-authored-by: Bhargav <BJP232004@GMAIL.COM >
2025-04-17 11:27:50 +05:30
udev and omkark06
00972e293e
feat: Implement WS for Values API ( #6463 )
...
Co-authored-by: omkark06 <omkar@zinclabs.io >
2025-04-16 19:45:38 +05:30
Abhay Padamani
fcec414fea
fix: show 4xx error message on UI ( #6537 )
...
- #6538
2025-04-15 12:34:12 +05:30
Sai Nikhil
0aa8969a77
fix: logs page issues ( #6518 )
...
this PR fixes
1. histogram loader should while both search and histogram request as
well as no data found should only show when there is no actual data not
at the time of loading
2. in the detail table when we add a field to the table it again shows
add a field to the table instead should show remove from the table
3. when user try to add fields using quick mode with sql mode off there
is one console error
2025-04-11 20:20:26 +05:30
Sai Nikhil
6a61a4e199
fix: dynamic stream name should be taken for search job ( #6482 )
...
1. This PR fixes the issue that for search jobs stream type should be
taken from the response not static stream type
2025-04-07 20:54:59 +05:30
Sai Nikhil
ab75eb800e
fix: histogram issue ( #6419 )
...
1. This PR fixes the histogram no data for histogram found only when
there is no data
2025-03-30 07:57:54 +05:30
+2
8cd0683a0b
feat: ws v2 ( #6404 )
...
# WebSocket v2 Architecture
## NOTE: Open Issues:
- [ ] `session_drain` from server is experimental and not ready for
prod. Instead, the client maintains ongoing `trace_id`'s and when cookie
expires it will retry search for all the ongoing searches.
## Overview
Implements websocket v2 with the main goal to establish `Client-Router`
connections `per tab` and `Router-Querier` `persistent` connections.
## New Env (Default):
```sh
ZO_WEBSOCKET_CHECK_COOKIE_EXPIRY=true
ZO_WEBSOCKET_HEALTH_CHECK_INTERVAL_SECS=60
ZO_WEBSOCKET_IS_SESSION_DRAIN_ENABLED=false # This is experimental, not meant for prod
```
## High-Level Flow
1. Client establishes WebSocket connection with the router.
2. Router creates a session.
3. Router maintains persistent connections to all queriers.
4. Client requests are routed to the appropriate querier using
consistent hashing.
5. Responses are routed back using `trace_id` mappings.
6. Health checks maintain connection validity.
7. Failed connections trigger automatic cleanup and reconnection.
8. **Internal Communication Validation Using:**
- **8a.** Internal gRPC tokens
- **8b.** IP validation
- **8c.** WebSocket upgrade headers
## Connection Lifecycle
```mermaid
sequenceDiagram
participant Client
participant Router
participant ConnectionPool
participant QuerierConn
participant Querier
participant Cluster
Client->>Router: WS Connection Request
Router->>SessionManager: register_client(client_id)
Note over Router,SessionManager: Creates channels:<br/>response_tx/rx<br/>disconnect_tx/rx
par Handle Incoming Messages
Router->>Router: spawn handle_incoming task
and Handle Outgoing Messages
Router->>Router: spawn handle_outgoing task
end
Client->>Router: WS Client Event
Router->>SessionManager: get_querier_for_trace(trace_id)
alt No Existing Mapping
Router->>Cluster: get_node_from_consistent_hash(trace_id)
Router->>ConnectionPool: get_or_create_connection(querier)
alt No Existing Connection
ConnectionPool->>QuerierConn: create_connection
QuerierConn->>Querier: WS Connection Request
par Connection Tasks
QuerierConn->>QuerierConn: spawn listen_to_querier_response
QuerierConn->>QuerierConn: spawn health_check
end
Querier-->>QuerierConn: Connection Established
end
Router->>SessionManager: set_querier_for_trace(trace_id, querier)
end
Router->>QuerierConn: register_request(trace_id)
Router->>QuerierConn: send_message(event)
Querier-->>QuerierConn: Response
QuerierConn->>Router: Route Response via response_tx
Router->>Client: Forward Response
Note over Router,Client: On Disconnect/Error:<br/>1. Send disconnect signal<br/>2. Clean up sessions<br/>3. Drain if needed
```
## Connections
```mermaid
graph TB
subgraph "Client Layer"
UI1[UI Client 1]
UI2[UI Client 2]
UI3[UI Client 3]
end
subgraph "Router Layer"
R1[Router 1]
R2[Router 2]
subgraph "Router 1 Connection Pool"
CP1[Connection Pool]
QC11[Querier1 Conn]
QC12[Querier2 Conn]
QC13[Querier3 Conn]
CP1 --- QC11
CP1 --- QC12
CP1 --- QC13
end
subgraph "Router 2 Connection Pool"
CP2[Connection Pool]
QC21[Querier1 Conn]
QC22[Querier2 Conn]
QC23[Querier3 Conn]
CP2 --- QC21
CP2 --- QC22
CP2 --- QC23
end
R1 --- CP1
R2 --- CP2
end
subgraph "Querier Layer"
Q1[Querier 1]
Q2[Querier 2]
Q3[Querier 3]
end
UI1 -.->|WS| R1
UI2 -.->|WS| R1
UI3 -.->|WS| R2
QC11 ===|Persistent WS| Q1
QC12 ===|Persistent WS| Q2
QC13 ===|Persistent WS| Q3
QC21 ===|Persistent WS| Q1
QC22 ===|Persistent WS| Q2
QC23 ===|Persistent WS| Q3
classDef client fill:#f9f,stroke:#333,stroke-width:2px
classDef router fill:#bbf,stroke:#333,stroke-width:2px
classDef querier fill:#bfb,stroke:#333,stroke-width:2px
classDef pool fill:#ffd,stroke:#333,stroke-width:2px
class UI1,UI2,UI3 client
class R1,R2 router
class Q1,Q2,Q3 querier
class CP1,CP2 pool
```
## Components
```mermaid
classDiagram
class WsHandler {
+session_manager: Arc<SessionManager>
+connection_pool: Arc<QuerierConnectionPool>
+handle_connection()
+remove_querier_connection()
+_shutdown()
}
class SessionManager {
+sessions: RwAHashMap<ClientId, SessionInfo>
+mapped_queriers: RwAHashMap<QuerierName, HashSet<TraceId>>
+register_client()
+update_session_activity()
+remove_trace_id()
+unregister_client()
+set_querier_for_trace()
+get_querier_for_trace()
}
class QuerierConnectionPool {
+connections: RwAHashMap<QuerierName, Arc<QuerierConnection>>
+get_or_create_connection()
+remove_querier_connection()
+maintain_connections()
+get_active_connection()
}
class QuerierConnection {
+querier_name: QuerierName
+write: Arc<Mutex<Option<SplitSink>>>
+response_router: Arc<ResponseRouter>
+is_connected: Arc<AtomicBool>
+connect()
+disconnect()
+send_message()
+register_request()
+unregister_request()
}
class ResponseRouter {
+routes: RwAHashMap<TraceId, Sender<WsServerEvents>>
+route_response()
+flush()
+spawn_cleanup_task()
}
WsHandler --> SessionManager
WsHandler --> QuerierConnectionPool
QuerierConnectionPool --> QuerierConnection
QuerierConnection --> ResponseRouter
```
Related Issues: #6396
---------
Co-authored-by: Taiming Liu <liutaiming3@gmail.com >
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com >
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com >
Co-authored-by: Ashish Kolhe <35160958+oasisk@users.noreply.github.com >
Co-authored-by: udev <uddhav@openobserve.ai >
Co-authored-by: omkark06 <omkar@zinclabs.io >
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech >
Co-authored-by: Omkar Kesarkhane <127078473+omkarK06@users.noreply.github.com >
Co-authored-by: udev <uddhavdave1@gmail.com >
Co-authored-by: Subhra264 <chakrabortysubhradeep556@gmail.com >
Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com >
2025-03-26 11:43:40 -07:00
Sai Nikhil
f7d3e5aee0
fix: added tooltip for all icons in icon bar ( #6371 )
...
1. added tooltip for every icons in icon bar
2025-03-24 12:32:27 +05:30
06920b203b
fix: previous histogram getting display even after there is no data ( #6346 )
...
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech >
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai >
2025-03-24 11:27:20 +05:30
Sai Nikhil
c5be09fbf4
fix: changes for icon bar in logs page ( #6362 )
...
This PR includes changes
1. introduced icons for histogram , sql mode, quickmode and moved search
history , download logs , search scheduled jobs options into menu that
will be there at right end
2. this will make the UI to accommodate upto 1200px with datetime as
relative , 1350 when it is absolute
3. introducing icons saved space of ~200px in total for both sides
2025-03-23 10:16:34 +05:30
Abhay Padamani
2c51f7fde3
fix: dashboard empty error issue ( #6348 )
...
- #3044
2025-03-21 17:01:57 +05:30
Omkar Kesarkhane
ab0b3a64f8
fix: added errors when actions are not enabled while creating destination ( #6342 )
...
1. If actions are disabled and user tries to import action in
destination, Unknown Error was shown instead of 'Action type not
supported'
2025-03-20 13:47:41 +05:30
Omkar Kesarkhane and udev
bb4f30f21d
feat: Actions in Logs and Alert Destinations ( #6129 )
...
Co-authored-by: udev <uddhavdave1@gmail.com >
2025-03-18 14:42:30 +05:30
Sai Nikhil
e2cfda47fb
fix: unflattened data expand in logs page fixed ( #6261 )
...
1. This PR fixes the issue in #5993
2025-03-14 14:19:39 +05:30
Sai Nikhil
ba1928ea81
fix: search history table revamp ( #6254 )
...
1. This PR fixes the #6223
2025-03-14 13:49:36 +05:30
77a70ef4fa
fix: search type to lowercase ( #6197 )
...
Co-authored-by: Taiming Liu <liutaiming3@gmail.com >
Co-authored-by: Bhargav <BJP232004@GMAIL.COM >
2025-03-13 21:43:05 +05:30
Bhargav
97ca4db1eb
fix: cluster info in values api. ( #6241 )
...
issue #6225
2025-03-12 11:24:39 +05:30
Sai Nikhil
72aaa8d67a
fix: pipeline query node improvements ( #6188 )
...
1. validate and close text instead of save button
2. when user selects stream name query wipes out if any previous query
is there
3.add the click event on whole expand bar
4. after opening the sidebar clicking on the SQL editor moves the focus
away from the SQL editor
5. remove the pipeline view on the row and introduce a eye icon in
actions section
6. when user clicks on edit the schema should auto populate respective
to the query
2025-03-10 12:29:26 +05:30
Hengfei Yang
19f078bcf2
feat: improve search around ( #6200 )
2025-03-07 19:33:04 +08:00
Sai Nikhil
2bea89307c
fix: search jobs UI ( #5706 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced search job scheduling functionality.
- Added ability to create, list, cancel, retry, and delete scheduled
searches.
- Enhanced user interface for managing scheduled search jobs, including
a new component for displaying scheduled jobs.
- Implemented conditional rendering for search history and search
scheduler components.
- Added new methods for handling scheduled searches within the service
layer.
- **Improvements**
- Refined search bar interface with new scheduling options.
- Updated pagination handling for job-related data.
- Enhanced overall functionality related to job management and
pagination.
- Improved loading indicators and user experience during data retrieval.
- **Bug Fixes**
- Corrected conditional rendering of search history components.
- Optimized job data retrieval and pagination logic.
- Simplified sorting logic within the search history component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-27 16:07:45 +05:30
Sai Nikhil and Taiming Liu
85e8af977d
fix: Pipeline improvements ( #6078 )
...
1. this PR introduces new design for query node
2. dynamic stream name for destination node instead of create new stream
it allows user to input any non existing stream name as destination and
at the time of ingestion it will be created dynamically
3. Fixes issues of #5886
---------
Co-authored-by: Taiming Liu <liutaiming3@gmail.com >
2025-02-26 14:05:11 -08:00
Bhargav
a2d6f296cc
fix: remove all RPP options which are more than 100 ( #6111 )
2025-02-26 16:06:20 +05:30
Omkar Kesarkhane
382a939f1e
fix: websocket frontend issues ( #6096 )
...
1. Fixed cancel query flow
2. Reset request trace_id's and cancel query operation before initiating
new search operation
3. Run query disabling histogram, later enable histogram. This was
throwing error
2025-02-25 15:52:59 +05:30
Bhargav
fc886763ac
fix: vrl toggle fix while applying saved view ( #6026 )
2025-02-20 19:50:47 +05:30
ktx-vaidehi
65994e5fb0
feat: metrics page added legend option ( #5911 )
2025-02-19 19:08:21 +05:30
Bhargav
e6ccaea91d
fix: 5891 rum issue v2 ( #6006 )
2025-02-18 16:42:13 +05:30
Sai Nikhil
efc9a431d1
fix: pipeline related changes ( #5999 )
...
1. this PR changes the node type of pipeline to curve
2. this PR changes the default zoom to 1 when there are less than or
equal to 4 nodes
2025-02-17 22:54:14 +05:30