Commit Graph
1630 Commits
Author SHA1 Message Date
ktx-vaidehi 3c3a8d178a fix: dashboard cancel api on unmounted (#7405)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Extend cancelQuery with showNotification parameter

- Guard notifications by optional flag

- Inject cancelQuery into panel data loader cleanup

- Pass false to suppress notifications in loader


___

### **Changes diagram**

```mermaid
flowchart LR
  A["usePanelDataLoader"] -- "initializes" --> B["useCancelQuery"]
  B -- "searchRequestTraceIds" --> C["traceIdRef"]
  B -- "cancelQuery(showNotification)" --> D["delete_running_queries"]
  D -- "success" --> E["showPositiveNotification"]
  D -- "failure" --> F["showErrorNotification"]
```


___



### **Changes walkthrough** 📝
<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>useCancelQuery.ts</strong><dd><code>Support optional
notifications in cancelQuery</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/composables/dashboard/useCancelQuery.ts

<li>Added <code>showNotification</code> parameter to
<code>cancelQuery</code><br> <li> Wrapped notifications under the new
flag<br> <li> Updated JSDoc for <code>cancelQuery</code> parameter


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7405/files#diff-c8ecf4052412642d3a64203b2b5cdc2d35f2e2260b185b7927f9f357dba72b1d">+10/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>usePanelDataLoader.ts</strong><dd><code>Integrate
cancelQuery into panel data loader</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/composables/dashboard/usePanelDataLoader.ts

<li>Imported and initialized <code>useCancelQuery</code> composable<br>
<li> Integrated composable in cleanup logic<br> <li> Suppressed
notifications by passing <code>false</code>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7405/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+10/-0</a>&nbsp;
&nbsp; </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-01 14:10:43 +05:30
Sai Nikhil 61c23fb416 fix: o2 ai changes (#7397)
### **User description**
1. This PR added beta text to o2 ai
2. added search history functionality to the chat history 
3. added clearing of history functionality so here it will delete the
history that was stored in indexDB if it reaches 100 so it will delete
the old history
4. now we only show top 100 history to the users.


___

### **PR Type**
Enhancement


___

### **Description**
- Add "Beta" label to O2 AI chat header

- Introduce searchable chat history menu

- Limit history to latest 100 entries

- Auto-delete excess history from IndexedDB


___

### **Changes diagram**

```mermaid
flowchart LR
  A["User clicks history icon"] --> B["Load history from IndexedDB"]
  B --> C["Trim history to 100 entries"]
  C --> D["Delete older entries in DB"]
  D --> E["Assign to chatHistory.value"]
  E --> F["Show history menu"]
  F --> G["Filter via search input"]
  G --> H["Display filteredChatHistory"]
```


___



### **Changes walkthrough** 📝
<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>O2AIChat.vue</strong><dd><code>Chat component UI
enhancements</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/O2AIChat.vue

<li>Added "Beta" badge next to O2 AI title<br> <li> Replaced static
history list with search-enabled menu<br> <li> Limited history to top
100 items and auto-deletion<br> <li> Defined
<code>historySearchTerm</code> and <code>filteredChatHistory</code>
computed<br> <li> Added CSS classes for beta badge and history menu
layout


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7397/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+133/-25</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-06-30 15:11:17 +05:30
Omkar Kesarkhane b03245cd07 fix: http and http2 partition pagination fixes (#7241)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
Fix HTTP/HTTP2 streaming in Safari
Improve partition-based pagination logic
Add region and cluster query parameters
Refine aggregation and streaming pagination flows


___



### **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>ShortUrl.vue</strong><dd><code>Fix original URL
redirection for deeper paths</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/views/ShortUrl.vue

- Updated handleOriginalUrl to join URL segments dynamically


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7241/files#diff-b7ffcc5de24f9e1db5a3a8e78a686727360f9061ca6f9f8ae60456c3d603f9b7">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>useStreamingSearch.ts</strong><dd><code>Add
Safari-compatible HTTP2 streaming</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/composables/useStreamingSearch.ts

<li>Manually read streams with TextDecoder for Safari<br> <li> Post
decoded chunks to worker for processing<br> <li> Retain start and end
stream control messages


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7241/files#diff-8fce3e25a161cd458e734bd9b1f98aadefe3482da7b6529a5b1f4fa20ec115e2">+37/-4</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useLogs.ts</strong><dd><code>Enhance log pagination and
cluster support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/composables/useLogs.ts

<li>Inject regions and clusters into query and URL<br> <li> Fix
partition pagination for zero or multiple partitions<br> <li> Add
fetchAllParitions for complete partition fetch<br> <li> Apply dynamic
histogram_interval to SQL queries


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7241/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+116/-23</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>streamWorker.js</strong><dd><code>Refactor worker for
chunk-based streaming</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/workers/streamWorker.js

<li>Remove transferable ReadableStream handling<br> <li> Introduce
processChunk to buffer and parse SSE<br> <li> Consolidate message
parsing and error handling


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7241/files#diff-8534facfcca68c16701832f43a501abcdb92847115c46fced5d69792e5594dd9">+75/-94</a>&nbsp;
</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-06-29 14:18:25 +05:30
Abhay Padamani d7a040e0fd fix: dashboard tooltip error (#7387)
### **User description**
- Try to lower the frequency of the following error.
- Mainly, it's due to echarts.
 

![image](https://github.com/user-attachments/assets/acf90182-7453-41dd-9899-192a3f4f81cd)


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Enable lazyUpdate and notMerge in setOption

- Wrap formatter functions with try-catch

- Provide safe default returns on errors

- Improve chart lazy loading and error resilience


___



### **Changes walkthrough** 📝
<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>ChartRenderer.vue</strong><dd><code>Enable lazy chart
updates in ChartRenderer</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/panels/ChartRenderer.vue

<li>Added <code>lazyUpdate: true</code> and <code>notMerge: true</code>
options to <code>chart.setOption</code><br> <li> Enabled legend updates
with lazy loading<br> <li> Updated initial chart set up calls for
performance


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7387/files#diff-353fab39cd76197438814db862c4a506636ea7e15633ee92d9269adbd97fe67c">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Error
handling</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>convertSQLData.ts</strong><dd><code>Add exception
handling in formatters</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/utils/dashboard/convertSQLData.ts

<li>Wrapped tooltip and formatter functions in try-catch<br> <li> Added
safe default return values on errors<br> <li> Used optional chaining for
null-safe access


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7387/files#diff-88c0e865040a20b2c8bb7d77e7f6bd187a5b07c1645c120223bc9d59603752c3">+451/-368</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-06-27 17:11:24 +05:30
ktx-vaidehi d1eab9e387 fix: ensure minimum loading progress percentage is 5 (#7385)
### **PR Type**
Bug fix


___

### **Description**
- Enforce minimum loading progress percentage at 5%

- Update displayPercentage computed property


___



### **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>LoadingProgress.vue</strong><dd><code>Clamp minimum
loading progress to 5%</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/common/LoadingProgress.vue

<li>Introduce clamp for minimum progress of 5%<br> <li> Return 5% when
loadingProgressPercentage < 5


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7385/files#diff-0e124527ca2b1d19c4f098616e1cdeb8c405d4f89b68bf119a09b9a518eba23a">+3/-0</a>&nbsp;
&nbsp; &nbsp; </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-06-27 15:35:42 +05:30
dependabot[bot] 8f826c88bd chore(deps): bump pbkdf2 from 3.1.2 to 3.1.3 in /web (#7314) 2025-06-27 17:22:33 +08:00
Subhra264andsai nikhil kethe b0e9fde4b7 fix: return reports list data that ui needs to show (#7274)
### **User description**
Because of the report migration merged recently, there are some fields
that were not getting returned for the list reports api. Also, there was
a bug in the report migration logic where the report frequency stored in
the migrated table was not correct. This pr fixes both the issues.


___

### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Extend ListReports API with time and dashboard fields

- Update migration for align_time and JSON serialization

- Expand query to include dashboards and frequency

- Fix front-end snake_case field mappings


___



### **Changes walkthrough** 📝
<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>reports.rs</strong><dd><code>Expand
ListReportsResponseBodyItem with new fields</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/handler/http/models/reports.rs

<li>Imported <code>DateTime</code>, <code>ReportFrequency</code>,
<code>ReportTimerange</code><br> <li> Added <code>created_at</code>,
<code>dashboards</code>, <code>frequency</code>, <code>org_id</code>
fields<br> <li> Changed error type to <code>anyhow::Error</code><br>
<li> Introduced <code>ReportDashboard</code> struct and JSON parsing


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7274/files#diff-eddffe2b67f00de168167533f31cd12adbb541fa66af4c56e6a96a03469ec5fb">+38/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>m20250611_000002_populate_reports_table.rs</strong><dd><code>Add
align_time and simplify frequency serialization</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/infra/src/table/migration/m20250611_000002_populate_reports_table.rs

<li>Derived <code>Serialize</code> for <code>ReportFrequency</code>
types<br> <li> Added <code>align_time</code> default property<br> <li>
Removed custom <code>ReportFrequency</code> enum<br> <li> Simplified
JSON serialization calls


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7274/files#diff-8247af6d6f8ccb6a5a51daff4cb1e352585be2d1c785d86ae5ebfea1dbc1099c">+12/-55</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>queries.rs</strong><dd><code>Expand
ListReportsQueryResult for report dashboards</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/infra/src/table/reports/queries.rs

<li>Added <code>report_created_at</code>, <code>report_frequency</code>,
<code>org_id</code> fields<br> <li> Joined
<code>report_dashboards</code> and <code>dashboards</code> tables<br>
<li> Included dashboard IDs, tabs, and timerange in query<br> <li>
Updated tests to cover new columns and joins


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7274/files#diff-144c4572241c5b3f13abe628832674ad8cebb72e51acb1d1b14fae2a8307208a">+93/-22</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ReportList.vue</strong><dd><code>Fix ReportList
snake_case field mapping</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/reports/ReportList.vue

<li>Renamed <code>lastTriggeredAt</code> to
<code>last_triggered_at</code><br> <li> Updated data mapping for
<code>last_triggered_at</code>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7274/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>ScheduledDashboards.vue</strong><dd><code>Align
ScheduledDashboards with snake_case response</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/views/Dashboards/ScheduledDashboards.vue

<li>Aligned snake_case for <code>last_triggered_at</code>,
<code>created_at</code>, <code>org_id</code><br> <li> Updated column
labels to match new fields<br> <li> Adjusted data formatting conversions


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7274/files#diff-2aae6e201775bf68f6beb59704f131f7aca0da0fd9d8ba8ac4bdb5b9b289f41e">+6/-6</a>&nbsp;
&nbsp; &nbsp; </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>

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
2025-06-26 20:46:42 +05:30
ktx-vaidehi 3c5474c4a0 fix: simplify isPartialData logic on complete (#7373)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Always set `isPartialData` on event progress

- Clear `isPartialData` when loading completes

- Remove conditional checks on partial data

- Simplify flag handling in data loader


___



### **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>usePanelDataLoader.ts</strong><dd><code>Simplify
partial data flag logic</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/composables/dashboard/usePanelDataLoader.ts

<li>Always mark <code>isPartialData</code> true on event_progress<br>
<li> Unconditionally clear <code>isPartialData</code> on complete<br>
<li> Remove conditional partial data checks<br> <li> Simplify flag logic
in data loader


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7373/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+2/-11</a>&nbsp;
&nbsp; </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-06-26 15:28:54 +05:30
Abhay Padamani 925d3d04aa fix: dashboard hover issue (#7353)
### **PR Type**
Bug fix


___

### **Description**
- Use `mouseOutEffectFn` on globalout event

- Remove `mouseHoverEffectFn` reset call

- Flush pending throttled hover resets immediately


___



### **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>ChartRenderer.vue</strong><dd><code>Flush throttled
hover resets on globalout</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

web/src/components/dashboards/panels/ChartRenderer.vue

<li>Replaced <code>mouseHoverEffectFn({})</code> with
<code>mouseOutEffectFn()</code><br> <li> Added <code>.flush()</code> on
<code>throttledSetHoveredSeriesIndex</code> and
<br><code>throttledSetHoveredSeriesName</code><br> <li> Added comment
explaining flush behavior


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7353/files#diff-353fab39cd76197438814db862c4a506636ea7e15633ee92d9269adbd97fe67c">+4/-3</a>&nbsp;
&nbsp; &nbsp; </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-06-25 17:38:40 +05:30
ktx-vaidehi 1f58057129 feat: dashboard custom value from input for variables (#7341)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add custom value support in variable selectors

- Preserve custom entries when filtering multi-select

- Remove deprecated URL initial value logic

- Standardize popup behavior and label casing


___



### **Changes walkthrough** 📝
<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>VariablesValueSelector.vue</strong><dd><code>Custom
value filtering in VariablesValueSelector</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/VariablesValueSelector.vue

<li>Comment out URL-based initial value handling<br> <li> Merge custom
typed values into filtered selections<br> <li> Adjust multi-select
filter to include custom entries<br> <li> Minor formatting refactor for
SQL query call


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7341/files#diff-5c6e3bcb87cb64f25bf8157a541604b7a4904c1282acf662cab5d76a5be6bd56">+36/-26</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>VariableQueryValueSelector.vue</strong><dd><code>Custom
value support in VariableQueryValueSelector</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/settings/VariableQueryValueSelector.vue

<li>Always show custom value option when typing<br> <li> Append
<code>::CUSTOM_VALUE</code> to custom selections<br> <li> Update
<code>filteredOptions</code> and <code>displayValue</code> to label
customs<br> <li> Remove <code>SELECT_ALL_VALUE</code> and customs on
regular select<br> <li> Close popup after custom or regular value
selection


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7341/files#diff-2cca760c14e835bd1845485fb5517a60f71a6dc23626a6381c8559b82476f5f4">+62/-20</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>constants.ts</strong><dd><code>Add CUSTOM_VALUE
constant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/utils/dashboard/constants.ts

<li>Add <code>CUSTOM_VALUE</code> constant for custom entries<br> <li>
Keep <code>SELECT_ALL_VALUE</code> export unchanged


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7341/files#diff-a5e1b14a291a4b42368faa0160f555b19bdc1a542624d4f89ea6e3ed7c4a664d">+2/-1</a>&nbsp;
&nbsp; &nbsp; </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-06-25 14:02:13 +05:30
c4e5901abe fix: cherry-pick rc9 fixes (#7315)
Ref:
- fix: streaming_id in htttp2 streaming response #7257
- feat: histogram_interval in search api #7271
- fix: remove streaming_id on search error #7284
- fix: limit in sql & write partial results to cache #7296


### **User description**
- `histogram_interval` as search body param
- `aggregation_cache_enabled` support for settings `get` and `post` api

---------

Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: omkark06 <omkar@zinclabs.io>


___

### **PR Type**
Enhancement


___

### **Description**
- Add `histogram_interval` support throughout search API

- Propagate interval into Query, RPC, and optimizer

- Replace websocket search toggle with `aggregation_cache_enabled`

- Add UI toggle and localization for aggregation cache


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>organization.rs</strong><dd><code>Replace websocket with
aggregation cache setting</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-4f089715a7ac4f78b45039d773f2fccbb4fbc6a409e0ab9ceee1fcf7911bc44b">+13/-6</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>18
files</summary><table>
<tr>
<td><strong>search.rs</strong><dd><code>Add histogram_interval to Query
defaults</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>settings.rs</strong><dd><code>Handle
aggregation_cache_enabled in settings API</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-1e807254f2faf8fd09b802f71b23412f203eed289033f96bfc62b15dd997db8c">+4/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>around.rs</strong><dd><code>Initialize histogram_interval in
around requests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-93b3688de26f8f7c9dc0389763e9999a254bcded15b6ae8c8349f18aec83bd4f">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Expose aggregation_cache_enabled in
status API</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Initialize histogram_interval in
trace requests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-64694c886c809b6efe449e6eba9fbb33d31ce5a3c49cea1a30006fc1d9522665">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>request.rs</strong><dd><code>Add histogram_interval to
service Request</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-7f4d75d75758cf876ff1a3a450a9804caad031a91199d33dd066c88c0461800b">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sql.rs</strong><dd><code>Support custom histogram intervals
in SQL</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-d9ccf393c53794b0ef2816eef12742c26e23d2788cde27780af7570662aea446">+8/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Propagate histogram_interval in
search service</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Include histogram_interval in
optimizer rules</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-3b1c9f0a84041235ca3765361e8eadfd7e9309a52319da882dee0540c826eb3d">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>rewrite_histogram.rs</strong><dd><code>Use custom interval
in histogram rewrite</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-fa40d6f792f0ca212f799b0136f0f216c7f34cb3130738903a26c45749a81450">+14/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>flight.rs</strong><dd><code>Apply aggregation cache setting
in flight</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-dbffb1a03b65f6a9163b18c5bb1241ba2966735657be39bbe9f4d0e3260d8c1d">+8/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>node.rs</strong><dd><code>Forward histogram_interval in
distributed plan</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-6a811582bb8dc3a36152b94cb4984126ee4417532eed0554e042c55ea18011fb">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>leader.rs</strong><dd><code>Leverage org cache setting in
leader search</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-21a32af318adcd10e62fb0d45944993f623fb3d2d6df4bb70d882dfc8f677fdc">+13/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>follower.rs</strong><dd><code>Include histogram_interval in
follower requests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-59e0cc386582cf8baf201977475fd9a7e479fd8ed000bbaa6746a51ecb28632f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>General.vue</strong><dd><code>UI toggle for aggregation
cache</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-a191d0eb2843df5efa7f18d411a216e86558b49f7b6cdfa9501d69414b933fc3">+27/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>MainLayout.vue</strong><dd><code>Bind aggregation cache in
layout</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>usePanelDataLoader.ts</strong><dd><code>Fetch
histogram_interval in panel loader</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+24/-26</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useLogs.ts</strong><dd><code>Set histogram_interval in log
queries</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>en.json</strong><dd><code>Add enableAggregationCache
translation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>6 files</summary><table>
<tr>
  <td><strong>export.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-b9ca11eac019064e747b0c75157c280c8e8fa6d75edb83ca9ae46777e9668cc0">+1/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>plan.proto</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-4f1a05aba1b09b2db2ffae983dcdf4ed294ed3698204af80d50ae2d7b711551b">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>search.proto</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+13/-12</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>cluster.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-542d8f27a174c845740ca1c3fe0b697db89c3db666437c1c4dd8c9745510080c">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>mod.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-ba9b65130898444f7815fd6068bdb0dc590612f74cc893f79d91b0afc44cc851">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>wal.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7315/files#diff-f47892ffc5d3076d37a66f49f55db4e83cb6f42df517da68c001a42c04adac72">+1/-0</a>&nbsp;
&nbsp; &nbsp; </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: hengfei yang <hengfei.yang@gmail.com>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: omkark06 <omkar@zinclabs.io>
2025-06-24 13:47:42 +05:30
ktx-vaidehi 3dc4e21176 feat: add typeahead query builder for variable selection (#7306)
### **PR Type**
Enhancement


___

### **Description**
- Add dynamic SQL parser import for variable typeahead

- Implement buildVariablesTypeAheadQuery with base64 SQL

- Update query context builder to use typeahead

- Remove redundant inline LIKE filter logic


___



### **Changes walkthrough** 📝
<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>VariablesValueSelector.vue</strong><dd><code>Implement
variable typeahead SQL builder</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/VariablesValueSelector.vue

<li>Import and initialize <code>sqlParser</code> dynamically<br> <li>
Add <code>buildVariablesTypeAheadQuery</code> for typeahead SQL<br> <li>
Encode generated queries in base64 format<br> <li> Adjust query context
builder to use new function


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7306/files#diff-5c6e3bcb87cb64f25bf8157a541604b7a4904c1282acf662cab5d76a5be6bd56">+64/-9</a>&nbsp;
&nbsp; </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-06-23 14:07:15 +05:30
ktx-vaidehiandKirtan Thakkar 91495ffd9e fix: dashboards variables loading (#7293)
### **User description**
- #7288
- #7291 


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Auto-close dropdown on value selection  

- Fix filter parsing fallback for queries  

- Remove suppressLoadOnNextPopup logic  

- Clear search text on popup hide


___



### **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>VariablesValueSelector.vue</strong><dd><code>Improve
filter parsing fallback</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/VariablesValueSelector.vue

<li>Use optional chaining for filter parsing <br> <li> Default to empty
array if filter missing


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7293/files#diff-5c6e3bcb87cb64f25bf8157a541604b7a4904c1282acf662cab5d76a5be6bd56">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>VariableQueryValueSelector.vue</strong><dd><code>Auto-close
selector popup on selection</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/settings/VariableQueryValueSelector.vue

<li>Introduce closePopUpWhenValueIsSet helper <br> <li> Invoke popup
close after selectAll/custom <br> <li> Remove suppressLoadOnNextPopup
flag <br> <li> Reset filterText on popup hide/value set


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7293/files#diff-2cca760c14e835bd1845485fb5517a60f71a6dc23626a6381c8559b82476f5f4">+15/-15</a>&nbsp;
</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>

---------

Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-06-22 14:46:50 +05:30
ktx-vaidehiandKirtan Thakkar d03348582f feat: dashboard type ahead for variables (#7277)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add debounced typeahead search in variable selectors

- Implement unified cancellation to avoid race conditions

- Extend loader functions to accept `searchText` parameter

- Clean up controllers, timeouts and promises on unmount


___



### **Changes walkthrough** 📝
<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>VariablesValueSelector.vue</strong><dd><code>Add search
and cancellation support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/VariablesValueSelector.vue

<li>Pass <code>searchResults</code> and <code>onVariableSearch</code> to
child selector<br> <li> Clean up search controllers, debounce timeouts,
and promises on <br>unmount<br> <li> Check cancellation before
processing responses and loading<br> <li> Extend
<code>loadSingleVariableDataByName</code> and
<code>handleVariableType</code> to handle <br><code>searchText</code>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7277/files#diff-5c6e3bcb87cb64f25bf8157a541604b7a4904c1282acf662cab5d76a5be6bd56">+238/-10</a></td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>VariableQueryValueSelector.vue</strong><dd><code>Implement
debounced search in selector</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/settings/VariableQueryValueSelector.vue

<li>Add <code>searchResults</code> prop and emit <code>search</code>
event<br> <li> Debounce <code>filterText</code> watch for 1000ms before
search emit<br> <li> Show <code>searchResults</code> during filter and
track <code>searching</code> state<br> <li> Reset results and loading on
clear and popup hide


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7277/files#diff-2cca760c14e835bd1845485fb5517a60f71a6dc23626a6381c8559b82476f5f4">+61/-3</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Miscellaneous</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ViewDashboard.vue</strong><dd><code>Remove debug
logging</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/views/Dashboards/ViewDashboard.vue

- Remove `console.log` debugging on time update


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7277/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3">+0/-5</a>&nbsp;
&nbsp; &nbsp; </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>

---------

Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-06-21 20:20:32 +05:30
Sai Nikhil 19a37e5992 fix: org related changes (#7187)
### **User description**
1. This PR fixes 2 issues  
Fetching user roles for OSS is not supported
Introduce organization to oss


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Restrict fetchUserRoles to enterprise/cloud

- Add organizations tab in OSS IAM view

- Introduce organizations route for OSS

- Remove duplicate org route in enterprise


___



### **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>AddUser.vue</strong><dd><code>Conditional
fetchUserRoles for OSS</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/iam/users/AddUser.vue

<li>Wrapped fetchUserRoles under environment check<br> <li> Prevent
roles fetching in OSS mode


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7187/files#diff-47543c0488c8cb5bcf77e2bb4af9d0a5dd249993cd9577c4852f7950c7aaec91">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>IdentityAccessManagement.vue</strong><dd><code>Add
organizations tab for OSS</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/views/IdentityAccessManagement.vue

- Added "organizations" to OSS tabs list


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7187/files#diff-60b63024c98ee8927e12f9ebec93e99ba7ff419038cfe1cc57d49de1f6f342d6">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>useEnterpriseRoutes.ts</strong><dd><code>Add
organizations route for OSS</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

web/src/composables/shared/useEnterpriseRoutes.ts

<li>Added OSS "organizations" route entry<br> <li> Removed duplicate
enterprise org route


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7187/files#diff-962367ed3d329e73232da2c262cf10c60b14820dd43e95e94302cdcb2f080cbe">+10/-8</a>&nbsp;
&nbsp; </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-06-20 10:04:52 +05:30
Sai Nikhil 91a9a4b6ba fix: alerts module issues (#7186)
### **User description**
1. This PR fixes the following issues 
Search Bar issues on Alerts page
Pagination needs to be implemented on the Templates page (# 527)
When there are no results, number of records field should not display
1-0 of 0
#7129
This also provides one more improvement to the destinations dropdown 
1. so it adds typeahead and also when you select with a typeahead and
the typeahead should be get cleared because it is multiselect



___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Reapply local alert filter after deletion

- Extract local alert filtering function

- Add pagination to template list

- Fix zero-result display range


___



### **Changes walkthrough** 📝
<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>AlertList.vue</strong><dd><code>Extract and apply local
alert filtering</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

web/src/components/alerts/AlertList.vue

<li>Await getAlertsFn and reapply local search filter<br> <li> Replace
inline filtering with <code>filterAlertsByQuery</code><br> <li> Extract
<code>filterAlertsByQuery</code> for alerts


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7186/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+28/-19</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>TemplateList.vue</strong><dd><code>Add pagination
controls to templates</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/TemplateList.vue

<li>Rename q-table ref to <code>qTableRef</code><br> <li> Integrate
<code>QTablePagination</code> in top and bottom slots<br> <li> Add
perPageOptions, resultTotal, pagination state<br> <li> Implement
<code>changePagination</code> handler


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7186/files#diff-7df66364d7d69a26cfa25cbc555d0e090c2f73e51c8386d9b0435bae4412564c">+39/-4</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>Pagination.vue</strong><dd><code>Fix zero-result range
display</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/shared/grid/Pagination.vue

- Correct start index when no results


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7186/files#diff-b6efd6b9b819d4491cbe49faddf5134a0114567acb3197fbd2a0e60afb7fc44a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </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-06-20 08:47:54 +05:30
bf480bbe5e feat: dashboard variables add custom values from input (#7246)
### **PR Type**
Enhancement


___

### **Description**
- Added Enter key handling for custom values

- Appended new options dynamically from input

- Introduced suppressLoadOnNextPopup to skip reload

- Cleaned up debug comments in template


___



### **Changes walkthrough** 📝
<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>VariableQueryValueSelector.vue</strong><dd><code>Add
custom input option handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/settings/VariableQueryValueSelector.vue

<li>Added <code>handleKeydown</code> for Enter key support<br> <li>
Extended <code>filterOptions</code> to push new options<br> <li>
Introduced <code>suppressLoadOnNextPopup</code> flag<br> <li> Removed
commented debug template code


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7246/files#diff-2cca760c14e835bd1845485fb5517a60f71a6dc23626a6381c8559b82476f5f4">+54/-6</a>&nbsp;
&nbsp; </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>

---------

Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-06-19 19:31:21 +05:30
Abhay Padamani 8559eb9389 fix: cancel query issue with http streaming (#7252)
- #7249
2025-06-19 16:05:51 +05:30
ktx-vaidehi 34e9285270 fix: dashboard move to logs (#7238) 2025-06-19 08:05:25 +08:00
Abhay Padamani 9335e0a9dd fix: panel load issue on panel visible (#7232)
### **PR Type**
Bug fix


___

### **Description**
- Introduce early cache restore before visibility wait

- Prevent unnecessary waiting on initial load

- Ensure state reset and early return on cache hit

- Remove redundant cache check block later


___



### **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>usePanelDataLoader.ts</strong><dd><code>Early cache
restore before panel visibility</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/composables/dashboard/usePanelDataLoader.ts

<li>Added runCount==0 check before panel visibility wait<br> <li>
Invoked restoreFromCache and early return on hit<br> <li> Removed
duplicate cache-restore block later<br> <li> Updated log messages around
cache restoration


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7232/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+14/-14</a>&nbsp;
</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-06-18 22:10:26 +08:00
Abhay Padamani 4b7cc705ba feat: additional options to show value on chart (#7223)
Added options:
1. Left
2. Right
3. Bottom
4. InsideLeft
5. InsideRight
6. InsideTopLeft
7. InsideBottomLeft
8. InsideTopRight
9. InsideBottomRight
10. Outside

![image](https://github.com/user-attachments/assets/5393034e-43fa-482c-9422-98741868f94f)
2025-06-18 13:18:54 +05:30
ktx-vaidehiandKirtan Thakkar 2e60555740 feat: dashboard skip values api call if already loading (#7206)
### **PR Type**
Bug fix


___

### **Description**
- Prevent dropdown load when already loading

- Early return on pending variable loads

- Parenthesize arrow function in cleanup


___



### **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>VariablesValueSelector.vue</strong><dd><code>Prevent
duplicate variable load calls</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/VariablesValueSelector.vue

<li>Guard against duplicate variable loading<br> <li> Early return on
pending variable loads<br> <li> Parenthesize arrow function in cleanup


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7206/files#diff-5c6e3bcb87cb64f25bf8157a541604b7a4904c1282acf662cab5d76a5be6bd56">+5/-1</a>&nbsp;
&nbsp; &nbsp; </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>

---------

Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-06-17 21:35:19 +05:30
Abhay Padamani d2588f2d80 fix: logs page chart render issue on another page switch (#7207)
### **User description**
- Move away from the logs page and come back, histogram chart doesn't
load.

- on theme change, charts render issue on dashboard


___

### **PR Type**
Bug fix


___

### **Description**
- detach event listeners before chart disposal

- add repeated nextTick delays on activation

- reinitialize chart with correct theme and renderer

- wrap activation logic in error handler


___



### **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>ChartRenderer.vue</strong><dd><code>Enhance chart
cleanup and reinitialization</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/panels/ChartRenderer.vue

<li>added off calls before <code>chart.dispose</code><br> <li> removed
<code>chartRef.value</code> clearing<br> <li> enhanced
<code>onActivated</code> with nextTick loops and chart init<br> <li>
wrapped activation logic in try/catch emitting error event


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7207/files#diff-353fab39cd76197438814db862c4a506636ea7e15633ee92d9269adbd97fe67c">+40/-18</a>&nbsp;
</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-06-17 13:18:12 +05:30
ktx-vaidehi 3f5a9d59b6 fix: dashboard variables search (#7195)
### **PR Type**
Bug fix


___

### **Description**
Preserve dropdown input when `filterText.value` exists
Call `filterOptions` for non-empty `filterText.value`


___



### **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>VariableQueryValueSelector.vue</strong><dd><code>Conditional
input update or filtering</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/settings/VariableQueryValueSelector.vue

<li>Add <code>filterText.value</code> check before updating input<br>
<li> Update input only if <code>filterText.value</code> empty<br> <li>
Invoke <code>filterOptions</code> when <code>filterText.value</code>
exists


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7195/files#diff-2cca760c14e835bd1845485fb5517a60f71a6dc23626a6381c8559b82476f5f4">+5/-1</a>&nbsp;
&nbsp; &nbsp; </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-06-16 17:19:24 +05:30
Abhay Padamani 531ff43688 fix: check 2nd arg for approx percentile fn on visualization page (#7189)
### **PR Type**
Bug fix


___

### **Description**
- Check `approx_percentile_cont` second argument

- Map 0.5/0.50 to `p50` percentile

- Support `p90`, `p95`, and `p99` mappings

- Default fallback to `p50` percentile


___



### **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>sqlUtils.ts</strong><dd><code>Implement percentile
mapping for approx_percentile_cont</code>&nbsp; &nbsp; </dd></summary>
<hr>

web/src/utils/query/sqlUtils.ts

<li>Added check for <code>approx_percentile_cont</code> argument<br>
<li> Mapped second argument to p50, p90, p95, and p99<br> <li> Defaulted
unrecognized percentiles to <code>p50</code>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7189/files#diff-dde40e8fcb5c37b06c011ede08922c44a3c025682fbc341aee97ba046b73a0e3">+22/-0</a>&nbsp;
&nbsp; </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-06-16 12:25:34 +05:30
ktx-kirtanandktx-vaidehi 97b00ae6bf perf: update grid layout lib to improve performance and memory leaks (#7181)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Replace vue3-grid-layout with GridStack.js

- Optimize grid initialization and event handling

- Add cleanup hooks to prevent memory leaks

- Update dependencies for new grid library


___



### **Changes walkthrough** 📝
<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>RenderDashboardCharts.vue</strong><dd><code>Switch
dashboard grid to GridStack.js</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/views/Dashboards/RenderDashboardCharts.vue

<li>Removed <code>vue3-grid-layout</code> components and imports<br>
<li> Added <code>GridStack</code> import, initialization, and events<br>
<li> Refactored layout methods: init, refresh, update, reset<br> <li>
Implemented cleanup hooks in lifecycle to avoid leaks


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7181/files#diff-313f7c69102161242c893c863c50f1f1cd1fc19b68b5c99bf840b4b5c72f0f2e">+292/-153</a></td>

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update grid layout
dependencies</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/package.json

<li>Added <code>gridstack</code> dependency<br> <li> Removed
<code>vue3-grid-layout</code> dependency


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7181/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+1/-1</a>&nbsp;
&nbsp; &nbsp; </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>

---------

Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
2025-06-15 22:11:39 +05:30
ktx-kirtanandktx-abhay cd470855ec perf: dashboard performance improvements (#7166)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Clear component refs on unmount

- Dispose Monaco editors and providers

- Remove event listeners on teardown

- Disable dashboards route keepAlive


___



### **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>PanelSchemaRenderer.vue</strong><dd><code>Cleanup
dashboard panel refs on unmount</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/PanelSchemaRenderer.vue

<li>Added onUnmounted hook for cleanup<br> <li> Cleared chart,
drilldown, annotation, table refs


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7166/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+8/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>DashboardQueryEditor.vue</strong><dd><code>Cleanup
QueryEditor refs on unmount</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/addPanel/DashboardQueryEditor.vue

<li>Removed resize listener on unmount<br> <li> Cleared queryEditorRef
and vrlFnEditorRef


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7166/files#diff-68bf1b319223d103f1b99e0b681764e4eb76942399397779c81c2cd18f6485ff">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>MonacoHTMLEditor.vue</strong><dd><code>Dispose and
clear Monaco HTML editor refs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

web/src/components/dashboards/addPanel/MonacoHTMLEditor.vue

<li>Disposed editorObj and provider on unmount<br> <li> Reset editorObj,
provider, editorRef to null


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7166/files#diff-ceffb7bda954a9e66f97c1bf28b92ba4ce00bc650f1b24b50997f9745b3ddc5c">+12/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>MonacoMarkdownEditor.vue</strong><dd><code>Dispose and
clear Monaco Markdown editor refs</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/addPanel/MonacoMarkdownEditor.vue

<li>Disposed editorObj and provider on unmount<br> <li> Reset editorObj,
provider, editorRef to null


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7166/files#diff-387421c070b513acdb939e69b2ba73a47b990a0a10b00a937fa4dc06f984a3dc">+12/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>AddPanel.vue</strong><dd><code>Clear datePicker ref on
unmount</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/views/Dashboards/addPanel/AddPanel.vue

- Cleared dateTimePickerRef on unmount


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7166/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>router.ts</strong><dd><code>Disable keepAlive on
dashboards route</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/composables/shared/router.ts

- Disabled keepAlive for dashboards route


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7166/files#diff-a1827956e5a817edc7efb5f4516e7cc4d453e15ea9e9d970aafb8360b09fc78e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </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>

---------

Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2025-06-14 14:48:51 +05:30
ktx-kirtanandktx-abhay 905afff30b perf: dashboard memory leak prevention (#7157)
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2025-06-12 23:21:02 +05:30
89500c0b97 feat: dashboard values api using ws (#6752)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add WebSocket and HTTP2 streaming for variable fetching

- Introduce trace ID management and cancellation

- Refactor variable initialization and dependency loading

- Improve multiselect UI with select-all logic


___



### **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>6
files</summary><table>
<tr>
<td><strong>VariablesValueSelector.vue</strong><dd><code>Integrate
WebSocket/HTTP streaming variable fetching</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-5c6e3bcb87cb64f25bf8157a541604b7a4904c1282acf662cab5d76a5be6bd56">+1098/-196</a></td>

</tr>

<tr>
<td><strong>AddSettingVariable.vue</strong><dd><code>Always show
multiselect default toggle section</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-e622f54c1f7629ee67d29ed2fc87008d07eb9246767a05435cc42c3c17ce459a">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>VariableQueryValueSelector.vue</strong><dd><code>Improve
filter, select-all and value display logic</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-2cca760c14e835bd1845485fb5517a60f71a6dc23626a6381c8559b82476f5f4">+111/-72</a></td>

</tr>

<tr>
<td><strong>useValuesWebSocket.ts</strong><dd><code>Extract composable
for values WebSocket logic</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-e7269167023b1376efe6111c46a96e10fe3e10ff90840203b09f09311f24f90a">+321/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useDashboardPanel.ts</strong><dd><code>Integrate values
WebSocket composable in panel</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-fbba1700750053b9eaf38ddd30dab84531bc44131c795ebb713811e4930cd7cb">+46/-54</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useSearchWebSocket.ts</strong><dd><code>Extend WebSocket
payload types for values API</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-1b4f21615bf92118a6c0b6907e1d765a76425163b69d00a2c328a8e1b2ff81c5">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>4 files</summary><table>
<tr>
<td><strong>RenderDashboardCharts.vue</strong><dd><code>Render variables
selector only with valid global time</code>&nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-313f7c69102161242c893c863c50f1f1cd1fc19b68b5c99bf840b4b5c72f0f2e">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ViewDashboard.vue</strong><dd><code>Normalize variables
before change detection</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3">+23/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>AddPanel.vue</strong><dd><code>Normalize panel variables for
stale check</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+23/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>usePanelDataLoader.ts</strong><dd><code>Skip search calls
when variables are empty</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+47/-5</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>constants.ts</strong><dd><code>Add constant for select-all
multiselect option</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6752/files#diff-a5e1b14a291a4b42368faa0160f555b19bdc1a542624d4f89ea6e3ed7c4a664d">+2/-0</a>&nbsp;
&nbsp; &nbsp; </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: Kirtan Thakkar <kirtan@kiara.tech>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2025-06-12 16:56:17 +05:30
ktx-vaidehi ec963fb6b9 feat: dashboard warning icon for partial data (#7044)
### **PR Type**
Enhancement


___

### **Description**
- Add partial data flag to data loader

- Emit `is-partial-data-update` event upstream

- Display warning icon for incomplete data

- Persist partial data state to cache


___



### **Changes walkthrough** 📝
<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>Show partial data
warning icon</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/PanelContainer.vue

<li>Add <code><q-btn></code> for partial data warning<br> <li> Import
<code>symOutlinedClockLoader20</code> icon<br> <li> Track
<code>isPartialData</code> in setup return<br> <li> Handle
<code>is-partial-data-update</code> event


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7044/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+30/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>PanelSchemaRenderer.vue</strong><dd><code>Emit partial
data update event</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/PanelSchemaRenderer.vue

<li>Add <code>"is-partial-data-update"</code> to emits<br> <li> Watch
<code>isPartialData</code> and emit changes<br> <li> Reformat
<code><LoadingProgress></code> props formatting


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7044/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+12/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>usePanelDataLoader.ts</strong><dd><code>Manage loader
partial data state</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/composables/dashboard/usePanelDataLoader.ts

<li>Add <code>isPartialData</code> to loader state<br> <li> Set flag on
abort and incomplete loads<br> <li> Reset flag on complete events and
progress<br> <li> Persist and restore partial data in cache


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7044/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+108/-18</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-06-12 14:38:03 +05:30
Abhay Padamani 9da28f2e87 fix: replace variable with bracket as well (#7146)
### **User description**
- replace `$VARIABLE_NAME` OR `${VARIABLE_NAME}` with it's value.


___

### **PR Type**
Bug fix


___

### **Description**
- Support `${VAR}` bracketed variable syntax

- Escape single quotes in variable values

- Import and use `escapeSingleQuotes` utility

- Update metadata push for bracketed placeholders


___



### **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>PanelSchemaRenderer.vue</strong><dd><code>Support
bracketed placeholders and quote escaping</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/PanelSchemaRenderer.vue

<li>Imported <code>escapeSingleQuotes</code> from zincutils<br> <li>
Added handling for <code>${variable}</code> placeholders<br> <li>
Applied quote escaping on array and single values<br> <li> Adjusted
query replacement order


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7146/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+11/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>usePanelDataLoader.ts</strong><dd><code>Handle
bracketed variables and escape quotes</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/composables/dashboard/usePanelDataLoader.ts

<li>Added <code>${VARIABLE}</code> replacement alongside
<code>$VARIABLE</code><br> <li> Integrated
<code>escapeSingleQuotes</code> for value escaping<br> <li> Updated
metadata push conditions for brackets<br> <li> Ensured consistent
placeholder replacements


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7146/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+18/-9</a>&nbsp;
&nbsp; </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-06-12 13:20:53 +05:30
Abhay Padamani 9f86d3603e fix: store dashboard panel cache on indexDB instead of in memory (#7135) 2025-06-12 15:18:57 +08:00
ktx-kirtan 121e4608fe fix: add debounce to series value update (#7142)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Throttle series hover state updates at 350ms

- Clean up chart event listeners on deactivate

- Dispose chart and cancel throttles on unmount

- Disconnect intersection observer to avoid leaks


___



### **Changes walkthrough** 📝
<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>ChartRenderer.vue</strong><dd><code>Throttle hover
updates and resource cleanup</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/dashboards/panels/ChartRenderer.vue

<li>Imported <code>throttle</code> from lodash and
<code>onDeactivated</code> hook<br> <li> Added <code>cleanupChart</code>
function to remove all listeners<br> <li> Created throttled hover state
update functions<br> <li> Enhanced <code>onUnmounted</code> and
<code>onDeactivated</code> cleanup logic


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7142/files#diff-353fab39cd76197438814db862c4a506636ea7e15633ee92d9269adbd97fe67c">+57/-9</a>&nbsp;
&nbsp; </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-06-12 12:16:29 +05:30
Abhay Padamani 664a05e75e fix: escape quote for variable values (#7134)
### **User description**
- Config to enable escape quotes. 

![image](https://github.com/user-attachments/assets/ad8fb954-a50a-447c-9ee2-f0938c3dcd16)

- Needs to enable it if variable value contains single quote.
For example variable value is `EFhoAf&fugy=P'fG;LR;Hr=jTe3fr).p%"`
then will require to escape single quote from value.

![image](https://github.com/user-attachments/assets/a05d983e-940a-4e3c-83c2-f7fd5206c4af)

- For custom typed variables, added some validations:
1. At least one option must there.
2. At lease one option should be selected as default value.


___

### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add `escapeSingleQuotes` flag to variable config

- Provide UI toggle with explanatory tooltip

- Update query loader to escape quotes conditionally

- Prevent removing last option and enforce default selection


___



### **Changes walkthrough** 📝
<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>mod.rs</strong><dd><code>Add escape_single_quotes field
to config</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

src/config/src/meta/dashboards/v5/mod.rs

<li>Introduce <code>escape_single_quotes</code> boolean field<br> <li>
Mark field as optional in <code>VariableList</code> struct


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7134/files#diff-da49585bbcb02bf0f737bb68739ebc248edd15c7ad9427c0e68f7728bb4a8c17">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>AddSettingVariable.vue</strong><dd><code>Enhance
variable settings UI for quote escaping</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/dashboards/settings/AddSettingVariable.vue

<li>Add <code>escapeSingleQuotes</code> toggle with tooltip<br> <li>
Initialize default <code>escapeSingleQuotes</code> value to false<br>
<li> Disable remove button when only one option remains<br> <li>
Validate at least one default selection for custom variables


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7134/files#diff-e622f54c1f7629ee67d29ed2fc87008d07eb9246767a05435cc42c3c17ce459a">+53/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>usePanelDataLoader.ts</strong><dd><code>Implement
conditional quote escaping in loader</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/composables/dashboard/usePanelDataLoader.ts

<li>Import <code>escapeSingleQuotes</code> utility<br> <li>
Conditionally escape single quotes in variable values<br> <li> Apply
escaping for both array and scalar values


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7134/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+14/-2</a>&nbsp;
&nbsp; </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
escapeSingleQuotes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/locales/languages/en.json

- Add `"escapeSingleQuotes": "Escape Single Quotes"` entry


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7134/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+1/-0</a>&nbsp;
&nbsp; &nbsp; </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-06-11 22:21:55 +05:30
dependabot[bot] ceb7be6bb3 chore(deps): bump vue from 3.5.14 to 3.5.16 in /web (#7012) 2025-06-11 17:06:52 +08:00
Sai Nikhil 72b67a7128 fix: should throw error while validating sql query in add alert (#7120)
### **User description**
This PR will throws an error when there is an error
previously also we were not throwing an error but because now we dont
show the editor at the time of saving we should throw an error


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Notify user upon SQL validation error

- Include error details in console log

- Retain dismiss call and block save


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Error
handling</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>AddAlert.vue</strong><dd><code>Show notification on SQL
validation error</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/alerts/AddAlert.vue

<li>Added <code>this.q.notify</code> for SQL validation error<br> <li>
Updated console.log to include <code>error</code> object<br> <li>
Ensured <code>dismiss()</code> still called on error


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7120/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+7/-1</a>&nbsp;
&nbsp; &nbsp; </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-06-11 08:57:36 +08:00
Sai Nikhil 2d1a1bc841 fix: add alert redesign issues (#7097)
### **User description**
This PR fixes the issues in #7080


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Auto-scroll to first invalid alert form field

- Integrate AI chat panel in SQL/VRL editor

- Adjust alert grouping and condition inputs

- Improve real-time & scheduled alert validation


___



### **Changes walkthrough** 📝
<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>AddAlert.vue</strong><dd><code>Add alert form
validation & AI chat</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/AddAlert.vue

<li>Added <code>realTimeAlertRef</code>,
<code>validateFormAndNavigateToErrorField</code><br> <li> Updated
submission to scroll to first invalid field<br> <li> Imported
<code>O2AIChat</code>, added AI toggle button & panel<br> <li> Adjusted
dialog width and padding for AI mode


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7097/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+47/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>FilterCondition.vue</strong><dd><code>Wrap condition
inputs for AI mode</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/FilterCondition.vue

<li>Applied dynamic classes when AI chat enabled<br> <li> Wrapped
selects/inputs with tooltips in AI mode<br> <li> Adjusted input widths
via new CSS classes


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7097/files#diff-53916e2402d0ee094fcd63f0ec0c99ceffde4fa042f9001203d2e2e1b7709e10">+25/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>FilterGroup.vue</strong><dd><code>Update filter group
layout for AI</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/FilterGroup.vue

<li>Adjusted group container width/margin on AI mode<br> <li> Dynamic
padding for nested items when AI enabled


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7097/files#diff-8d5a73bea3aa0b5c86d48cda4a61ee3e30f27797ac2a5add1ee8bd66c75bef23">+5/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>RealTimeAlert.vue</strong><dd><code>Enhance real-time
alert validation UI</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/RealTimeAlert.vue

<li>Extended error condition for <code>silence</code> field<br> <li>
Added <code>q-field--error</code> class on validation error<br> <li>
Enforced <code>required</code> and custom rule on destinations


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7097/files#diff-c3ae6b47832eb33f9ca877cc7165d079de14850e5c5d43a227102ba40326b9d8">+6/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>ScheduledAlert.vue</strong><dd><code>Enhance scheduled
alert validation UI</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/ScheduledAlert.vue

<li>Updated error display for period and silence fields<br> <li> Added
<code>q-field--error</code> on cron validation<br> <li> Enforced
<code>required</code> rule on multi-select destinations


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7097/files#diff-5e143a17ab0fa5d7817f6d9301667fb5597236f27184248c7a71728e85b8d999">+80/-35</a>&nbsp;
</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-06-10 23:10:39 +05:30
Sai NikhilandTaiming Liu 2526059a24 fix: pipeline dynamic stream name issue (#7089)
1. now we have increased the stream name to 100 chars 
2. this PR should allow user to add 3 different types of stream names 
  1. example_stream_name
  2. {dynamic_stream_name_output}
  3. someprefix{stream_name}somesuffix

---------

Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-06-09 14:49:40 -07:00
Sai Nikhil 53fd6a439d fix: disable search job popup (#7050) (#7083)
1. This PR disables the search Job popup that comes after 2mins if the
search is still going on
2025-06-09 14:21:27 +05:30
Sai Nikhil 813ed37efd fix: add alert page redesign (#6730)
1. This PR implements the add alert page latest UI revamp
2. This changes the add alert page introducing new UI with expandable /
collapsable sections
3. This introduces the new condition and condition group so we now
support or condition as well as condition group so user can create
condition groups upto 3 level of depth
4. the functionality of add alert page is same just the UI and the
conditions has been changed with this PR
2025-06-09 10:21:24 +05:30
Sai Nikhil d604638476 fix: get roles api should be triggered in non enterprise versions (#7067)
1. This PR fixes the issue #7053
2025-06-09 10:14:18 +08:00
Abhay PadamaniandHengfei Yang e55bb71b76 fix: upgrade node sql parser npm package (#7069)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-06-09 00:18:35 +08:00
udevandomkark06 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
Omkar KesarkhaneandShyamOOAI 0af20fd283 fix: fixed http partition pagination (#6879)
Co-authored-by: ShyamOOAI <shyam@openobserve.ai>
2025-06-06 16:34:23 +05:30
Sai Nikhil 07cffcc5e5 fix: show output format when it is pipeline destinations (#7064)
1. This PR fixes the issue #7063
2025-06-06 14:24:13 +05:30
Sai Nikhil 8523069f9a fix: menu , list , item-label at global css should not have fixed width (#7009)
This PR fixes the fixed width to auto width before it was 150px which
makes some menu to be 150px only
2025-06-05 12:21:34 +08:00
Abhay Padamani 27e3fbf457 fix: allow to select and copy series name from tooltip (#7025)
![image](https://github.com/user-attachments/assets/759572bd-b471-4841-b105-c403a1854a88)
2025-06-04 18:08:21 +05:30
Abhay Padamani 951f5f1d15 fix: trellis group by config save issue (#7004)
- #6997
2025-06-02 18:43:00 +05:30
Sai Nikhilandoasisk 3c5ae41210 fix: add output format type for external destination(pipeline destination) (#6993)
1.This PR adds the output format to the external destination either json
/ ndjson , bydefault it is json

---------

Co-authored-by: oasisk <ashish.j.kolhe@gmail.com>
2025-06-02 11:59:49 +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