Commit Graph
15 Commits
Author SHA1 Message Date
dcbb49370d feat(dashboards): heatmap colour, axis, histogram and interaction improvements (#15784)
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com>
2026-10-26 16:00:18 +00:00
8df19e12d5 feat: default axis labels auto (#15039)
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-08 06:41:33 +00:00
Prabhat Sharmaandgithub-actions[bot] 4020426135 feat(metrics): metrics v2 — alerts from charts, compare, forecast, formulas, Used in, builder round-trip, staleness markers and Prometheus 3.x functions (#15150)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-08 04:50:02 +00:00
Loakesh Indiran 287b7a7c67 fix(dashboards): keep rows whose other y column is null (#14184) 2026-09-04 09:36:25 +00:00
Abhay Padamani 786f4f9f72 fix: dashboard label overlap issues (#13725)
1.
<img width="727" height="242" alt="image"
src="https://github.com/user-attachments/assets/2a84c1bf-2bc0-4fa7-aae5-e7801b99c93b"
/>

2.
<img width="167" height="380" alt="image"
src="https://github.com/user-attachments/assets/6d937583-eb51-458c-8dac-fcf668f1f145"
/>

3.
<img width="1072" height="150" alt="image"
src="https://github.com/user-attachments/assets/4f98ff15-06e4-45d2-a109-c84064cb644b"
/>

4.
<img width="32" height="289" alt="image"
src="https://github.com/user-attachments/assets/9e4ef37f-2e9a-4259-9c6e-041946e1e380"
/>

5.
<img width="500" height="622" alt="image"
src="https://github.com/user-attachments/assets/c4566094-6f58-4692-9ce8-bbcaf61026d7"
/>

6.
<img width="388" height="644" alt="image"
src="https://github.com/user-attachments/assets/03e14424-a59a-4738-b0aa-1f70c7d207f6"
/>

7.
<img width="388" height="564" alt="image"
src="https://github.com/user-attachments/assets/a1acded3-b2d6-4690-b2ba-47397f6a3fb4"
/>
2026-08-11 11:15:31 +00:00
Abhay PadamaniandClaude Opus 4.8 5ec9b89ff8 build: FE code format check for improved maintainability (#13351)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 07:11:39 +00:00
Abhay Padamani 717351254f fix: dashboard issues (#13050)
- #13004 
- support styling for HTML panel
<img width="1812" height="651" alt="image"
src="https://github.com/user-attachments/assets/bfa3d3ff-c54d-4deb-823b-c2be9ba6e49b"
/>
<img width="1820" height="720" alt="image"
src="https://github.com/user-attachments/assets/6d31a719-a0a0-4a8b-b7c8-28277a310687"
/>

- duplicate values on y axis.
<img width="464" height="193" alt="image"
src="https://github.com/user-attachments/assets/78e15896-2da8-47b4-9ab2-78287fe6db0a"
/>
<img width="523" height="166" alt="image"
src="https://github.com/user-attachments/assets/8d5d42a7-1a31-4b07-a19c-a8be2b33eda0"
/>

- axis value overlap
<img width="453" height="170" alt="image"
src="https://github.com/user-attachments/assets/e05133d2-adf2-4038-9e09-0b451feb71d1"
/>
<img width="443" height="160" alt="image"
src="https://github.com/user-attachments/assets/f594f3ee-6efc-4753-a7b0-15cd37349744"
/>



- metric chart type, font size auto adjust.
<img width="1022" height="181" alt="image"
src="https://github.com/user-attachments/assets/95bafd35-857d-444a-92cd-7f44b88714b1"
/>
<img width="1116" height="161" alt="image"
src="https://github.com/user-attachments/assets/424cd551-5dc1-4e1c-8c4d-c0d5d7338669"
/>


- promql chart gridline should be dashed.
<img width="1358" height="539" alt="image"
src="https://github.com/user-attachments/assets/4e64cca3-c153-49f0-9e79-86562f9200a7"
/>
<img width="1376" height="537" alt="image"
src="https://github.com/user-attachments/assets/8b5cc6e9-6d66-40ff-a09b-6d8d48a6e230"
/>


- horizontal chart spacing issue.
<img width="1826" height="337" alt="image"
src="https://github.com/user-attachments/assets/f3d7e6ef-a8ab-490c-afc8-ec7c7529fac0"
/>
<img width="1814" height="286" alt="image"
src="https://github.com/user-attachments/assets/faf03345-24e9-4a57-941e-b218ba2982a3"
/>


- legend and x axis value overlap and top spacing.
<img width="613" height="280" alt="image"
src="https://github.com/user-attachments/assets/0c5b89c1-2b6e-4c56-91dd-92c93d81d0d7"
/>
<img width="607" height="253" alt="image"
src="https://github.com/user-attachments/assets/414fb5d8-8e3e-4c31-b41b-8df2224f34eb"
/>

- promql chart typed chart tooltip overflow issue.
<img width="607" height="244" alt="image"
src="https://github.com/user-attachments/assets/5385cb82-9790-4b33-bbfd-c320cbdd51d9"
/>
<img width="606" height="381" alt="image"
src="https://github.com/user-attachments/assets/1f7b6007-fc3a-495a-8ae8-d4cb0178d259"
/>

- add query, left/right arrow issue on add/remove query.
<img width="211" height="95" alt="image"
src="https://github.com/user-attachments/assets/89d5ef0d-03d4-4fdf-822d-0d4a43c63152"
/>

- on x axis, timeseries chart value overlap
<img width="362" height="254" alt="image"
src="https://github.com/user-attachments/assets/127010d6-8a5c-441c-8fe4-9b9ee571e4c2"
/>
<img width="343" height="243" alt="image"
src="https://github.com/user-attachments/assets/369ead68-fd6b-4e16-a4d7-d93535fab7b5"
/>

- pie chart overlap issue
<img width="613" height="268" alt="image"
src="https://github.com/user-attachments/assets/1b06a56e-a863-4a63-9587-128ed2cfd0e8"
/>
<img width="608" height="270" alt="image"
src="https://github.com/user-attachments/assets/218f02ae-90ed-459f-99cb-103975bbe596"
/>

- plain legend spacing issue
<img width="910" height="269" alt="image"
src="https://github.com/user-attachments/assets/efd27d44-097f-4637-98ac-2e645b0f4dc7"
/>
<img width="916" height="267" alt="image"
src="https://github.com/user-attachments/assets/a5ecdc99-28cc-4552-a247-97a9ef05d6d1"
/>

- tooltip highlights all values
<img width="600" height="221" alt="image"
src="https://github.com/user-attachments/assets/8ab57fc1-27f7-410c-a279-56ff4cf2295b"
/>
<img width="610" height="305" alt="image"
src="https://github.com/user-attachments/assets/951334ea-9fb2-4249-880b-d564ba1c19c7"
/>
2026-07-07 15:03:13 +00:00
Abhay Padamani c96aec3ccd fix: dashboard tooltip issue and others (#12878)
- dashboard tooltip overflow issue
- variable loader issue
- panel chart dashed grid lines
- area and area stack chart gradient
2026-06-25 15:23:18 +00:00
Abhay Padamani 3cff28ce45 fix: dashboard shows no data while chart is in rendering state #11205 (#11332) 2026-04-27 11:23:05 +00:00
ByteBakerandHengfei Yang b948361769 chore: update copyright year to 2026 (#11166)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2026-04-07 09:57:53 +08:00
Abhay Padamaniandgithub-actions[bot] 74670ff1e4 perf: dashboard perf improvement (#10996)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-25 18:13:39 +05:30
ktx-vaidehi 108cc3b2e1 refactor: dashboard long files (#10680) 2026-03-05 19:37:14 +05:30
ktx-vaidehiandktx-riya 85a952f4eb feat: add dynamic axis label rotation and truncation support in dashboard charts (#9808)
### **User description**
Design at:
https://github.com/openobserve/designs/blob/main/dashboards/axis-label-rotation/design.md

### **PR Type**
Enhancement


___

### **Description**
- Add dynamic axis label rotation support

- Add label truncation with dynamic width handling

- Calculate dynamic nameGap and bottom spacing

- Provide UI fields for configuring rotation/truncation


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Panel Config\naxis_label_rotate\naxis_label_truncate_width"]
  B["calculateDynamicNameGap\ncalculateRotatedLabelBottomSpace"]
  C["Adjust grid.bottom spacing"]
  D["Set axisLabel.rotate/overflow/width/margin"]
  E["Set xAxis/yAxis nameGap\nand nameTextStyle"]
  A -- "pass config" --> B
  B -- "compute extra space" --> C
  B -- "compute gap/margins" --> D
  B -- "compute nameGap" --> E
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>convertPromQLData.ts</strong><dd><code>Add dynamic
label spacing and rotation logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/utils/dashboard/convertPromQLData.ts

<ul><li>Introduce <code>calculateDynamicNameGap</code> and
<code>calculateRotatedLabelBottomSpace</code><br> <li> Compute
<code>additionalBottomSpace</code> for grid.bottom<br> <li> Set xAxis
<code>name</code>, <code>nameGap</code>, <code>nameTextStyle</code><br>
<li> Apply <code>axisLabel.rotate</code>, <code>overflow</code>,
<code>width</code>, <code>margin</code></ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9808/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a">+125/-8</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>convertSQLData.ts</strong><dd><code>Implement dynamic
axis label rotation and spacing</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/utils/dashboard/convertSQLData.ts

<ul><li>Add <code>calculateDynamicNameGap</code> &
<code>calculateRotatedLabelBottomSpace</code><br> <li> Update
grid.bottom calculation with extra spacing<br> <li> Adjust axisLabel
properties (rotate, width, overflow, margin)<br> <li> Apply dynamic
<code>nameGap</code> across chart types</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9808/files#diff-88c0e865040a20b2c8bb7d77e7f6bd187a5b07c1645c120223bc9d59603752c3">+208/-25</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>ConfigPanel.vue</strong><dd><code>Add UI controls for
label rotation and truncation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

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

<ul><li>Add inputs for <code>axis_label_rotate</code> and
<code>axis_label_truncate_width</code><br> <li> Conditionally render
controls by chart type<br> <li> Bind new config fields to panel data
model</ul>


</details>


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

</tr>
</table></td></tr></tr></tbody></table>

</details>

___


___

### **PR Type**
Enhancement, Tests


___

### **Description**
- Add axis label rotation and truncate configs

- Compute dynamic nameGap and bottom spacing

- Integrate rotation/truncate in data converters

- Update ConfigPanel UI and unit tests


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Panel Config axis_label_rotate & axis_label_truncate_width"]
  B["calculateDynamicNameGap"]
  C["calculateRotatedLabelBottomSpace"]
  D["convertPromQLData / convertSQLData"]
  E["chart grid.bottom & xAxis nameGap settings"]
  A --> B
  A --> C
  B -- "nameGap" --> D
  C -- "bottom space" --> D
  D -- "apply spacing & truncation" --> E
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>useDashboardPanel.ts</strong><dd><code>Add new axis label
rotate/truncate defaults</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/9808/files#diff-fbba1700750053b9eaf38ddd30dab84531bc44131c795ebb713811e4930cd7cb">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>convertDataIntoUnitValue.ts</strong><dd><code>Introduce
dynamic nameGap and bottom space functions</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9808/files#diff-14c6fe442ef231566ec411f9e0262cdd24ec912fc67b9154eec743282ab7211a">+88/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>convertPromQLData.ts</strong><dd><code>Integrate
rotation/truncate logic into PromQL converter</code>&nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9808/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a">+57/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>convertSQLData.ts</strong><dd><code>Apply dynamic spacing
and truncation in SQL converter</code>&nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9808/files#diff-88c0e865040a20b2c8bb7d77e7f6bd187a5b07c1645c120223bc9d59603752c3">+180/-29</a></td>

</tr>

<tr>
<td><strong>ConfigPanel.vue</strong><dd><code>Add UI inputs and tooltips
for rotate/truncate</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9808/files#diff-c3a6e64dff02b58bb7cdc3f0668990b41ff41544b4c5e991bbcd989ad4bba3f8">+127/-0</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>convertPromQLData.spec.ts</strong><dd><code>Mock new spacing
utilities in PromQL tests</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/9808/files#diff-2769044ec488ef4070c2e1a28ce23ec36b945e46c903b870f8b340cbd6b05211">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>convertSQLData.spec.ts</strong><dd><code>Mock new spacing
utilities in SQL tests</code>&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/9808/files#diff-1dc85f7550b15820974ad93fa461de48d24bc5cbed621bffddb27250211fa88d">+2/-0</a>&nbsp;
&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>mod.rs</strong><dd><code>Add schema fields for axis
rotate/truncate</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/9808/files#diff-cbf3fe971525ba58892400391dfd7dac7e43d6049d6b4f5a9840ad104ebc5e08">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___

---------

Co-authored-by: ktx-riya <riya.kukadiya@kiara.tech>
2026-01-03 22:33:01 +05:30
ktx-vaidehiandktx-abhay caac6e6776 feat: add legends type configuration options and gridlines visibility to dashboard panels (#8291)
- #8801 


### **PR Type**
Enhancement, Tests


___

### **Description**
- Add legend type, height, alignment options

- Implement gridlines visibility configuration

- Introduce legend layout utility module

- Add comprehensive unit tests coverage


___

### Diagram Walkthrough


```mermaid
flowchart LR
  RustPanel["Rust PanelConfig schema"] -- "adds fields" --> FEConfig["Frontend default panel config"]
  FEConfig -- "used by" --> Renderer["PanelSchemaRenderer"]
  LegendUtil["legendConfiguration.ts"] -- "computes legend sizes/positions" --> Renderer
  ConfigUtils["configUtils.ts"] -- "controls UI visibility logic" --> ConfigPanel["ConfigPanel.vue/specs"]
  PromQLSpec["convertPromQLData.spec.ts"] -- "tests gridlines, legends" --> LegendUtil
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>mod.rs</strong><dd><code>Extend panel schema with legends
and gridlines</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-da49585bbcb02bf0f737bb68739ebc248edd15c7ad9427c0e68f7728bb4a8c17">+18/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>legendConfiguration.ts</strong><dd><code>New legend layout
and positioning utilities</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/8291/files#diff-048201ce8e1e704cdcd359b8d26f01a970a183c27c6a08fb08ea827a1e62b332">+1335/-0</a></td>

</tr>

<tr>
<td><strong>configUtils.ts</strong><dd><code>New config visibility
helpers for UI</code>&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/8291/files#diff-13c3af76b0006aa5579eaf62dcc96012d217ef17d9ee03ce70a3abdc904558bc">+160/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useDashboardPanel.ts</strong><dd><code>Set new default
legend and gridlines options</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-fbba1700750053b9eaf38ddd30dab84531bc44131c795ebb713811e4930cd7cb">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>PanelSchemaRenderer.vue</strong><dd><code>Observe layout
changes and re-render chart</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/8291/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+33/-1</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>convertPromQLData.spec.ts</strong><dd><code>Add tests for
gridlines, connect_nulls, legend sizing</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-2769044ec488ef4070c2e1a28ce23ec36b945e46c903b870f8b340cbd6b05211">+1814/-0</a></td>

</tr>

<tr>
<td><strong>convertDataIntoUnitValue.spec.ts</strong><dd><code>Minor
spec file fix newline</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; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-e9d8a984ed78af13e4d4424c605a3a55fe6ad2a3f7e403fad156ce17ffdc3bdd">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>8 files</summary><table>
<tr>
  <td><strong>PanelSchemaRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-897e6e12808163dfb85ea964ac97d45a8c50146672558b4d86de292daaf021ce">+1199/-0</a></td>

</tr>

<tr>
  <td><strong>ConfigPanel.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-a4e717cd660ad6fa369629f8de524f4d57bf4f71b11d3244ce41b9ed9f0379d2">+1310/-19</a></td>

</tr>

<tr>
  <td><strong>ConfigPanel.vue</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-c3a6e64dff02b58bb7cdc3f0668990b41ff41544b4c5e991bbcd989ad4bba3f8">+251/-42</a></td>

</tr>

<tr>
  <td><strong>configUtils.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-76ffd3924d32c033abf1863d50311fe5005740ac4c03072f5bb361c53bf9a305">+1127/-0</a></td>

</tr>

<tr>
  <td><strong>convertPromQLData.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a">+141/-23</a></td>

</tr>

<tr>
  <td><strong>convertSQLData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-1dc85f7550b15820974ad93fa461de48d24bc5cbed621bffddb27250211fa88d">+1268/-1</a></td>

</tr>

<tr>
  <td><strong>convertSQLData.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-88c0e865040a20b2c8bb7d77e7f6bd187a5b07c1645c120223bc9d59603752c3">+217/-148</a></td>

</tr>

<tr>
  <td><strong>legendConfiguration.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8291/files#diff-8fe65c64853f1d1a66b8fbc4ec0c567487438e84c9e03ed8ad63566b3d589a71">+1101/-0</a></td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___

---------

Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2025-10-14 12:25:36 +05:30
46fa42a319 fix: dashboard unit tests (#8111)
### **PR Type**
Tests, Enhancement


___

### **Description**
- Add extensive dashboard utility unit tests

- Introduce Sankey builder component tests

- Export helper for PromQL series props

- Temporarily skip flaky UI tests


___

### Diagram Walkthrough


```mermaid
flowchart LR
  utils["Dashboard utils tests"] -- add --> convertDataIntoUnitValue.spec
  component["Sankey builder tests"] -- add --> DashboardSankeyChartBuilder.spec
  promql["PromQL utils"] -- export helper --> getPropsByChartTypeForSeries
  ui_tests["UI specs"] -- skip flaky --> MenuLink.spec & AppSessions.spec
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>19
files</summary><table>
<tr>
<td><strong>convertDataIntoUnitValue.spec.ts</strong><dd><code>Expand
coverage for formatting, colors, validation</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e9d8a984ed78af13e4d4424c605a3a55fe6ad2a3f7e403fad156ce17ffdc3bdd">+1869/-1</a></td>

</tr>

<tr>
<td><strong>DashboardSankeyChartBuilder.spec.ts</strong><dd><code>Add
full test suite for Sankey builder</code>&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/8111/files#diff-97b54e2aa2abc946d6ebf5624f8985260fe426cd508965408ee966d829e30872">+1279/-0</a></td>

</tr>

<tr>
<td><strong>MenuLink.spec.ts</strong><dd><code>Skip unstable
external-link test case</code>&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/8111/files#diff-bd04ff500fc31583a430993830eed36cdf6254c2ce1a52b8a58a07b89bb9f825">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>AppSessions.spec.ts</strong><dd><code>Skip flaky mount-time
data fetch test</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/8111/files#diff-8729444f05a0c753cc1f6fbb229e0ab7fd2ac46bd6ea454131ff80314d57a888">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>convertSQLData.spec.ts</strong><dd><code>Add SQL data
conversion unit tests</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></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1dc85f7550b15820974ad93fa461de48d24bc5cbed621bffddb27250211fa88d">+8632/-0</a></td>

</tr>

<tr>
<td><strong>useDashboardPanel.spec.ts</strong><dd><code>Add unit tests
for dashboard panel composable</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5dbd79fdde0cbbb7db569095fa062931286463da0b5e72b1fbe99f56116fa5e2">+4723/-0</a></td>

</tr>

<tr>
<td><strong>AddPanel.spec.ts</strong><dd><code>Add tests for add panel
flow</code>&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></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5565bef51b35f1e9c8167eab0a22dc61c1d697dca45fe31f46cc8e5e9020ca74">+3540/-0</a></td>

</tr>

<tr>
<td><strong>convertPromQLData.spec.ts</strong><dd><code>Add unit tests
for PromQL conversion</code>&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/8111/files#diff-2769044ec488ef4070c2e1a28ce23ec36b945e46c903b870f8b340cbd6b05211">+2086/-0</a></td>

</tr>

<tr>
<td><strong>DashboardQueryBuilder.spec.ts</strong><dd><code>Add tests
for dashboard query builder</code>&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/8111/files#diff-f44793de54d6ac2d9c7b3dd504d8b1952cb6e6b2d984254a8466705387cb82ce">+1170/-0</a></td>

</tr>

<tr>
<td><strong>VariableQueryValueSelector.spec.ts</strong><dd><code>Add
tests for variable query selector</code>&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/8111/files#diff-7e096d825438fc75baab2ef87cb4a04ae7ac1206e5021b71ce42cedd0984e064">+1128/-0</a></td>

</tr>

<tr>
<td><strong>VariablesValueSelector.spec.ts</strong><dd><code>Add tests
for variables value selector</code>&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/8111/files#diff-9f234d5a15777d62cf8cd6cc9f0d68fbc0419a87ef58fbdb11de8c46ed6d17cb">+1137/-0</a></td>

</tr>

<tr>
<td><strong>DashboardMapsQueryBuilder.spec.ts</strong><dd><code>Add
tests for maps query builder</code>&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/8111/files#diff-08c9fd103348dc8adea1c343bdaa25c176378a91656cda7f336dd622d8598fef">+1112/-0</a></td>

</tr>

<tr>
<td><strong>viewDashboard.spec.ts</strong><dd><code>Add tests for
dashboard view flow</code>&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/8111/files#diff-0db87f5ba2d11ee942a8054598d18568ce7542e23c830fcf5d802c4338e64937">+1175/-0</a></td>

</tr>

<tr>
<td><strong>DashboardGeoMapsQueryBuilder.spec.ts</strong><dd><code>Add
tests for geomap query builder</code>&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/8111/files#diff-d9b9e150ca7ac48d81236c882b2aa1f188e26fc2c2d13d69936c3288f305d803">+1079/-0</a></td>

</tr>

<tr>
<td><strong>FieldList.spec.ts</strong><dd><code>Add tests for field list
interactions</code>&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/8111/files#diff-7273ac40c01bb36400c5dd32f86cce6576dc034cbec0010f6e93e22348578ed4">+971/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DashboardErrors.spec.ts</strong><dd><code>Add tests for
dashboard errors display</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/8111/files#diff-a5d738d4bafc19b5e324d0c1826f73503a8539d8900cb2f80ff1284780865ac4">+898/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>CustomMarkdownEditor.spec.ts</strong><dd><code>Add tests for
custom markdown editor</code>&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/8111/files#diff-c706715d0bc3f6b3b5e067d1926b0bd1e01b5aba291072cd612de4f9fed25c4f">+916/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>convertGeoMapData.spec.ts</strong><dd><code>Add unit tests
for geomap conversion</code>&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/8111/files#diff-c75999bb5bc4dc27c5da1fad5d556614fa139b0b2cae7c2dc200c11133141937">+1061/-0</a></td>

</tr>

<tr>
<td><strong>TabsSettings.spec.ts</strong><dd><code>Add tests for tabs
settings component</code>&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/8111/files#diff-702a83e8e5bce6917f8cc2353dc224d37e667bdc39119f2176185cb4d2fe3b65">+820/-0</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>convertPromQLData.ts</strong><dd><code>Export chart-type
series props helper</code>&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/8111/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>83 files</summary><table>
<tr>
  <td><strong>DateTimePickerDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-384ca377212c39553c97970a8b57888b7aea566e739ed498304360111c7884b8">+498/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AddDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3f4eccc613c6abad9a1103fab41aa4f8eb66a74465aea5e3b077c7c31525e91e">+338/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AddFolder.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3c70ca7fa32d6b2f499764c9bae0fcaf6d24a468eb71122865f79be4eed5bd45">+690/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ExportDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5aba49ace28e114de7b4113ea725d4cabc6e343aa0bbc41fcb4250de0dfdb1b1">+409/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>MoveDashboardToAnotherFolder.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-05b3c990e345c5c11c1631547269b3644b652b78c4185b5123d3211218adb99d">+643/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>OverrideConfigPopup.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5c66103162fa701af8c78ba2bc62789ac8fa3f98f281309591ffd4da154fbc0e">+549/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>PanelContainer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d74ba5293a041ca029d5e9b8fec08d187e51a099451ab0372747d3ec175559a9">+497/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>PanelSchemaRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-897e6e12808163dfb85ea964ac97d45a8c50146672558b4d86de292daaf021ce">+827/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>QueryInspector.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5db282f1e123d731ab4ed83d9500a87bbdd968f28c2c9f11179eaebed4f6bef6">+679/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>SelectDashboardDropdown.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-9c9dd44be67486631521fa4e8238a6e782d659afb0d71a39d394f22d21fa2d1e">+717/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>SelectFolderDropdown.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1ff4f3a09802e742b9cc26990c827d9331529a74bc6fc1678473821dc851e1b7">+658/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>SelectTabDropdown.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3b923039e16f1a26cce563eaefcfe3405e551eaa12ac10c4382ac4d67d9564b2">+780/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AddAnnotation.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c096dd81c6463d55ba96fed549d28d7c83191639ccfd5dccece303a663bfdf9b">+242/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>BackGroundColorConfig.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e23c4dbce4cba3fd64ac480f21ab9dbdeba66bac46b2277874ee307597980707">+651/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ChartSelection.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-88bf57e3c40ed695321a7366d2f770f6c22e5d8c1adbb057d2a805333ad57de9">+177/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ColorBySeries.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-92afcb1fa6c34cde082443bde1c478d9e98c0074b69f9f8f2343bb0880f2c183">+224/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ColorBySeriesPopUp.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bd65ddc9813c2a5679b0aeb602afa55e8c15bb3b39dd48cd2489b2e6e9c51965">+224/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ColorPaletteDropDown.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-dbe43d77b398c5f6ede77ff1006a9b7d39b405842d6ca488061e1cbcde566117">+757/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>CommonAutoComplete.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f11b0763e1eea3c18bf2a69933d84a78df0f18b70a5b2fb3c50459c557ecc842">+588/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ConfigPanel.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a4e717cd660ad6fa369629f8de524f4d57bf4f71b11d3244ce41b9ed9f0379d2">+617/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>CustomChartEditor.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-00410898c60d1d7d4803eba301bf070d6b3765db0983c06b3d624c485dc1339e">+693/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>CustomHTMLEditor.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b07faae78603a95d7cb54e4a6dde9381cad82952a76ad78e23a393fb12c635a2">+546/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DashboardQueryEditor.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-6a37b5f775011f4014399dcb3bae3b3d85403896533c008470b1c9712db96e82">+507/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>Drilldown.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2ffe39b111c8981f0bbf7fcf19ff815fa97a24e007dcc17a23d0e7a2ed6388a1">+605/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DrilldownPopUp.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-73d704d414f3ea194970a4f079bc1d9fedfdf8547875758133bc1e6e335523e5">+723/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DrilldownUserGuide.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0015f582294fe5a56347aea7c3ce42e12100dd4363176fd8013683356aaba74a">+603/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>HistogramIntervalDropDown.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bc0fbf96ee3ce5f28b7896b3c8f55605f68cdc3386cae22b9adc8c806af9e514">+368/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>MarkLineConfig.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f6e52e135ac6d21bd1d12226feee88ccaf24bad358890d17af3645ef7103d3a1">+503/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>OverrideConfig.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e05709bd1fededda3d3ed90a47d9fddb8ae171e87c7f25d07ecca1e6a8ab33ee">+571/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>PanelSidebar.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4b5378e7a3c198d89d8de88fc9bb3ccb5829c7572d860c42d46b565fd37a2894">+622/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>QueryTypeSelector.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3094340ad57af51f1bcbad3b63a8ab860a46905ab79997289b89b601553934fd">+777/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>SortByBtnGrp.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7e52dbb6902695ae38e15e980407d761d528871631365a12726f9731efaccec2">+405/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ValueMapping.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4920ea2ac96411628202d5350adae25ea97a1cd8eede8d8bf5252e5d468d82f8">+424/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ValueMappingPopUp.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-ef4bd7d95957a65c1efdba2d541a0242d249adc0381efcfd2e1c684c531fab6b">+553/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ChartRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f005709a26e4b51de30457223129ce0ca84a29c5f69a8d7c84fa35b5f3376fd6">+464/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>CustomChartRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e5f37800aafd21baeda455df4656da5221369bb6d72880a28294b8a1a83b5f30">+679/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>GeoMapRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7bf374bb429eafe8b265c34e63fe99df1c05e102be38125bcf3234756f95f12c">+878/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>HTMLRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-128fd699e9ae1552077c27185db37871b57e0002558f89377ec64b4e29e1d7f7">+492/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>MapsRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-588141a6c90f09e4b39ea53d03c1334c0b5cc42c9f35272a9f2eeb6e2ddb852e">+490/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>MarkdownRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-63eed3fbb6882be90c70e833f9f64e9e8c6511e4c40162aa5c1a7662fc79469d">+600/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>TableRenderer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-550a0a669838c47473442a7d37407fead8b7cb2a05121880dd2c0522022c8c3f">+555/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AddSettingVariable.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3f3a2cea87e91a038695bdd8406d72680e4b665bea7a7186a84fbef91c8bdf81">+661/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>GeneralSettings.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2b3e3d2794669f6b030b6752ef262b96d6504cb1bcd661a3cd248c21df412064">+767/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>SinglePanelMove.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-ba25253c9f76317afde347d4d6a0afbcc95bcf847640ab81a1b40fa0bd4b4bc5">+565/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>TabsDeletePopUp.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-53eadbd58dae03e5fbf9db545d58a03d0d504725544b0500d7b16c5d041668d3">+611/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>VariableAdHocValueSelector.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-82c2b639609e68e8601435e82ae21dcda2ff626853b3a5e310c69e237c34c38d">+422/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>VariableCustomValueSelector.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-8ce1eb841c0ae350a6bb846705ff9d085d1ae2c97ab409b1ff533ef7bcebfa8f">+635/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>VariableSettings.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-fb9c343df2d52c854489057d4a66a1b6c4052637ef12dca16c9b77c0a4e680f4">+696/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>VariablesDependenciesGraph.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-153d420e39a1fdf9b0918f8b765b21a5e9fe6fed4b142fd1c9e24af43c0bb525">+397/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DashboardHeader.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7ec062f2fc27df156ca18a22557c1f80426e3fa82c3cfd6386f48efc9e73f757">+440/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AddTab.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-25b77cc0d60a268fc0fbd413e53b1c0ace69164ffd58dc0b0081717e4773b365">+767/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>TabList.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1c0ad8f6163d343eba185ac20d0fe84478afd5975242abc0a957d7ac74a8a5a9">+604/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ViewPanel.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-177dbf7e92561bc76e13819fd7a1d681f77b845071a7c0901857a26660b3ba54">+744/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ApiDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-53095dbafa0cb9c6eed90240cb8af9f89d118168f6af76bdf51267a667ccff2d">+550/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ErrorsDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1330edb3964758b7c9cfbdfb077eac5fcce30b8b4d2f204d69ab71c4041d37c5">+178/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>WebVitalsDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-62eb2eceb30d2aa28e78d4ee898d09aae3d1f0fa176d4bca91055b50024e6c9f">+547/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>VisualizeLogsQuery.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-fdecf623f9a4bdfe679c6c2e4424f31cbce4a1234cb45e1de472189a46c9d4e2">+674/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>TraceBlock.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1406f52daa846db3febbb595e81c192166b9e69bc190c5039b6c4866412b877a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>alertChartData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5ab33266e226684ae77d259392edb382f71436edec442411a5500451ce316b31">+259/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>calculateGridForSubPlot.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f7067cef10cdf9d66fc91a46516c9f2bc0209489bc47fb3d1446666485269680">+374/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>colorPatette.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d266bf5ce0a458ec9fa8120ff85c252f7a671dd6df9aece83daf7c7b05b50ed1">+576/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>convertCustomChartData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-228c0f06dd35f43d80dc9f671803fba74ac7e218c1606247d1e44259a18b426e">+771/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>convertDashboardSchemaVersion.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d32a1607489b29014dd8ecad34358644be46d2735cf49dfa5151671e591d6360">+537/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>convertPanelData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d798f99807f72b07f58e09bfe8723fdcee3dcd747f328436ef6bbd7d8f5afa36">+889/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>convertSankeyData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e9dce93200dba86a0e13d22ec5a0b5e0f4c5fb8349c904c8780fdb6fe675f4ae">+588/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>convertTableData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b3b39fac4e8b48b3ee80827502ece784d8e52f56fd2f1d80acac353fd3a9fe3f">+599/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>datetimeStartPoint.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7c56f19e7b4c6f5738c814cb013f698fdfd065286ef4539e14a868e8e114a1c8">+214/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>getAnnotationsData.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4b12626e491ea366087b3cdc2eb66012bf45555504313ca4664f3ae4d93b6e08">+351/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>useCustomDebouncer.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f6c3bc11a1cdc66a9108245e3ec6080bf4f6f0b5a2eaea679546c0b1f00968c2">+307/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>variablesDependencyUtils.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1a8fd83eb7a8b0c906e668e7e4120a40f7b9853d5bfb485a7c569ff980e4a780">+523/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>variablesUtils.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-769aea99ac476a78b01cb3bb4221b0a0f0d5fa99f3dbc8c77022088ed8024f1b">+533/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>sqlUtils.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f22df136a6cdfbacf2b637d4902002337620c8e981dbacfdd705455ff899f12d">+1283/-8</a></td>

</tr>

<tr>
  <td><strong>visualizationUtils.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3312f2b98f34814e89192700cc856231923839bdcd3ea687f271242762b4b3bc">+55/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>DashboardJsonEditor.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4dfda31e9159f979559afc36652350d155429b73336f014017b27ff96ad58dcc">+551/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DashboardSettings.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b29b3e95fd1dfffba34ec05ed6333941f07ee79585feb5e8203eb5958919338f">+640/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>Dashboards.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a8059d6830fa3c72dbe023f76ac813661d62871a379baa30c05204ad86c92699">+813/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ImportDashboard.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b29b42b94a3219b4074b132168c0b5f5b93e737dc557ba7b930d14455b38b267">+827/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>PanelLayoutSettings.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-34bcd5c5f9b7a2a682f4d4e9c10e3ab4f13a4cc54a6a20bb543f11ae8286d5a1">+423/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>RenderDashboardCharts.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f76e3b54dc7bfd768172c8faba707c7e31bf0516837cb9073bbdf04823f67602">+700/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ScheduledDashboards.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f54afa04727c65f2050699e063d693d6fb1833c8e3f1f7b25002de89ab5bb2ff">+519/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AddCondition.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0655e4082a18c9f229d04340341bb32474ae46b3d6e29b29009ef06dcc12e54c">+425/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DashboardFiltersOption.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d3e73ec3d32f9068b22b3697ba8a23e3100285b7c92cc86f7d7e88477bb29bba">+878/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>Group.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8111/files#diff-556364c74c348eba28f5d8bad6fb23b956008d3f6b9171316ea3ee12009201bd">+718/-0</a>&nbsp;
</td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___

---------

Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2025-09-01 17:18:17 +05:30