Commit Graph
5191 Commits
Author SHA1 Message Date
ByteBaker 4c080dfd5f fix: alert graph edges not rendering due to timestamp equality (#10347)
### **User description**
## Problem

Fixes openobserve/o2-enterprise#1229

Alert graphs were not rendering edges (arrows) when nodes had identical
timestamps, causing the topology graph to show nodes without
connections.

## Root Cause

The edge creation logic used strict timestamp inequality (`<`, `>`),
which failed when alerts fired at the exact same microsecond. This
commonly occurs with:
- High-frequency alerting
- Bulk alert ingestion
- Simulated/test data with fixed timestamps
- Clock resolution limitations

## Solution

Added timestamp tiebreaker logic using node index (insertion order) for
all three edge creation scenarios:

1. **Same-service temporal edges**: Connect to most recent previous
node, use index as tiebreaker
2. **Cross-service temporal edges**: Connect to chronologically closest
node, use index as tiebreaker
3. **Service dependency edges**: Connect related services, use index as
tiebreaker

## Changes

- `src/service/alerts/incidents.rs`: Updated 3 edge creation locations
with timestamp + index comparisons

## Impact

- ✅ Edges now created even when alerts have identical timestamps
- ✅ Deterministic behavior based on insertion order
- ✅ Graph visualization shows proper alert flow with arrows
- ✅ Root cause analysis now possible

## Testing

- Verified code compiles successfully
- Manual testing recommended with alerts at same timestamp


___

### **PR Type**
Bug fix


___

### **Description**
- Add tiebreaker for equal timestamps

- Ensure deterministic topology edge creation

- Fix missing incident graph arrows


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["New alert node added"] --> B["Find candidate prior/next nodes"]
  B --> C["Compare (first_fired_at, node_index)"]
  C --> D["Create temporal/dependency edges deterministically"]
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>incidents.rs</strong><dd><code>Deterministic edge
creation for equal timestamps</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/service/alerts/incidents.rs

<ul><li>Add index-based tiebreaker for same-service edges<br> <li> Allow
dependency edges when timestamps equal<br> <li> Refine cross-service
temporal matching with index<br> <li> Update ordering keys to include
node index</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10347/files#diff-2411d921fd8b8783c049deea11da06726ed986550d405477d486234892353ca9">+17/-5</a>&nbsp;
&nbsp; </td>

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

</details>

___
2026-02-03 20:39:52 +05:30
Abhay Padamani d7c0874084 fix: vrl warning message on visualization page (#10343)
### **User description**
- #10281


___

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


___

### **Description**
- Disable VRL editor for non-table visualizations

- Show inline warning instead of blocking switch

- Remove forced table chart on VRL usage


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["SearchBar VRL editor"] 
  B["isVrlEditorDisabled computed"]
  C["Read-only editor state"]
  D["Inline disabled warning"]
  E["Chart type switch validation"]
  F["Allow non-table without forcing table"]

  A -- "adds" --> B
  B -- "controls" --> C
  B -- "renders" --> D
  E -- "removes VRL blocking logic" --> F
```



<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>SearchBar.vue</strong><dd><code>Disable VRL editor and
show warning</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/plugins/logs/SearchBar.vue

<ul><li>Bind VRL editor <code>readOnly</code> to
<code>isVrlEditorDisabled</code><br> <li> Add warning banner when VRL is
disabled<br> <li> Compute disable state for visualize non-table<br> <li>
Export <code>isVrlEditorDisabled</code> to template</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10343/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+37/-1</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>VisualizeLogsQuery.vue</strong><dd><code>Remove
VRL-based chart type restriction</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/plugins/logs/VisualizeLogsQuery.vue

<ul><li>Delete blocking logic when switching from table<br> <li> Stop
forcing <code>dashboardPanelData.data.type = "table"</code><br> <li>
Keep only select-* validation before type change</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10343/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+0/-14</a>&nbsp;
&nbsp; </td>

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

</details>

___
2026-02-03 18:50:58 +05:30
Harsh Mahajan f23d22d9b7 fix: adds pass through headers for ai-agent (#10330)
### **User description**
refer https://github.com/openobserve/openobserve/pull/10069


___

### **PR Type**
- Enhancement
- Tests
- Bug fix



___

### **Description**
- Add configurable header passthrough extraction

- Prepare AI chat to forward headers

- Add unit tests for header matching

- Stop storing backfill ingestion errors


___

### Diagram Walkthrough


```mermaid
flowchart LR
  req["Incoming AI chat request"]
  cfg["Passthrough patterns (CSV)"]
  ext["extract_passthrough_headers()"]
  fwd["forward_headers merged"]
  agent["Agent client query (future headers)"]
  tests["Unit tests"]
  req -- "provides headers" --> ext
  cfg -- "patterns" --> ext
  ext -- "selected headers" --> fwd
  fwd -- "intended to forward" --> agent
  ext -- "verified by" --> tests
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>chat.rs</strong><dd><code>Add passthrough header
extraction for AI chat</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/handler/http/request/ai/chat.rs

<ul><li>Add <code>extract_passthrough_headers</code> helper with
wildcard support<br> <li> Collect passthrough headers in
<code>chat</code> and <code>chat_stream</code><br> <li> Merge
passthrough headers without overwriting existing ones<br> <li> Add unit
tests for matching behavior</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>handlers.rs</strong><dd><code>Disable persisting
ingestion error during backfill</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

src/service/alerts/scheduler/handlers.rs

- Comment out `ingestion_error` assignment on batch failure


</details>


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

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

</details>

___
2026-02-03 17:41:01 +05:30
Omkar Kesarkhane 2e4fb93291 fix: RUM session event details drawer UI improvements (#10329)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add tabbed RUM event details drawer

- Centralize RUM event formatting utilities

- Improve sidebar filtering and null safety

- Sync dashboard chart zoom to time range


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["RUM Session Viewer UI"] 
  B["Event detail drawer tabs (Overview/Network/Attributes)"]
  C["Shared formatter composable (`useEventFormatters`)"]
  D["Network resources list from related events"]
  E["Clipboard copy + JSON highlighting"]
  F["Dashboards emit `update:dateTime` on zoom"]
  G["Sidebar event type filter behavior"]
  H["Session email null-safety"]
  A -- "refactor + UX" --> B
  B -- "uses" --> C
  B -- "derives" --> D
  B -- "adds" --> E
  A -- "interactions" --> F
  A -- "filtering" --> G
  A -- "stability" --> H
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>14
files</summary><table>
<tr>
<td><strong>useEventFormatters.ts</strong><dd><code>Add shared
formatting helpers for RUM events</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/10329/files#diff-d301f514502d418578addfb8a9332f18193ec77414fe2de5f86584eaccf89a43">+88/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>LogsHighLighting.vue</strong><dd><code>Import highlighting
stylesheet via scoped SCSS</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10329/files#diff-4ef4ac0444004add270de4da30fa39bafd95bd7f1c408d28cf6737655fc152eb">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>EventDetailDrawerContent.vue</strong><dd><code>Redesign
drawer with tabs, copy, network</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/10329/files#diff-e31bfc4c2d218ac4beaa9110939974f0461a818a7d5d169279e2ff58dec8136c">+479/-353</a></td>

</tr>

<tr>
<td><strong>EventDetailsSection.vue</strong><dd><code>Add reusable
key-value section renderer</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/10329/files#diff-eb9d64194e4354ce8babdb843029087b4d0813100046f6de6fd2605816eede58">+67/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>EventTypeBadge.vue</strong><dd><code>Add reusable event type
badge component</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/10329/files#diff-78d3b36f54018d0cc31a0ed96800588bacb5b3f6e608803f32e704e576d89001">+49/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>KeyValueRow.vue</strong><dd><code>Add reusable labeled
key-value row component</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/10329/files#diff-978f05f4c50530f6d772579c54478e1aef10b7f7b066f2769e9d34c62c488895">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PerformanceMetrics.vue</strong><dd><code>Add wrapper
component for performance metrics</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10329/files#diff-7c9e28cabc9dd4189346dadc26dcb4def95a9265557144e99128a9f3b951c21e">+60/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ActionPerformanceMetrics.vue</strong><dd><code>Add action
performance metric cards and statuses</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10329/files#diff-cd6683a885104c9e5074ab1c2b97bed5275cffa688da905f539bef98efdb4ec8">+98/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ErrorPerformanceMetrics.vue</strong><dd><code>Add error
performance metric cards and statuses</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10329/files#diff-1fc102647ba527cfd553f4c0fd723f1b72fabbd85bad7518e0a826a09d858442">+76/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>MetricCard.vue</strong><dd><code>Add generic metric card
with formatting</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/10329/files#diff-3666ababe7e5a472c88da967ba6e5e632dfd907abb8555a6bb4baeabc0215e32">+168/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ResourcePerformanceMetrics.vue</strong><dd><code>Add
resource timing breakdown metric cards</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/10329/files#diff-9dfcf79c8b3c1b1c0e43bc8e65c90a6cd6b75c84b7de8250f18ba985ef36ad55">+128/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ViewPerformanceMetrics.vue</strong><dd><code>Add web vitals
and view metric cards</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/10329/files#diff-0ddb74b6ef8bdb8656c47fb4065e4add8ba853f5834fbf3e59087623b054aa2b">+172/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ErrorsDashboard.vue</strong><dd><code>Emit zoom events to
update time range</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/10329/files#diff-46138c05241c5e0911a0feba39a21dbb8452453c0e26a1d00c3493cc579f07b2">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>WebVitalsDashboard.vue</strong><dd><code>Emit zoom events
and support dateTime updates</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10329/files#diff-bbb15649f6ecf4b2968a8173091ef8b2a21bfe39bff8e08f91566bca189cca09">+9/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>zincutils.ts</strong><dd><code>Adjust formatting and utility
function style</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/10329/files#diff-d3d59688cccdcc6c84ebe88b698c6910030abecc3125f4c0ef81b0df023699ba">+26/-14</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>PlayerEventsSidebar.vue</strong><dd><code>Improve
multiselect UX and filtering logic</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/10329/files#diff-a7d04eb87cd7588ba4811d79c6d32696a58d737a24931258329be4f96cee7610">+39/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SessionViewer.vue</strong><dd><code>Guard session email
access with optional chaining</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10329/files#diff-9f7a183be1e2cfcb3c3c852c059f66003dd4f3f586421b012e1b835724929ca1">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2026-02-03 16:35:30 +05:30
ByteBaker 9853c61550 feat: optimize /_correlate API with scope dimension filtering
Reduces  API latency by filtering scope dimensions at SQL level before loading services into memory.

**Changes:**
- Add `list_with_scope_filter()` function in `service_streams.rs`
- Builds SQL with NOT clause to exclude scope dimension conflicts
- Supports PostgreSQL (`::jsonb` operators) and SQLite (`json_extract()`)
- Extracts k8s-cluster and k8s-namespace from input filters dynamically
- Reduces services loaded from DB before in-memory processing

**Impact:**
- Reduces dataset loaded by filtering scope dimensions (cluster, namespace)
- Preserves correctness - FQN discovery still works on filtered set
- No schema changes required - uses existing JSON columns

**Testing:**
- Unit tests added for SQL building logic (PostgreSQL, SQLite, edge cases)
- Validated with production data - output matches expected results
- All existing tests passing

Design at: ../designs/correlation/IMPLEMENTATION.md
2026-02-03 15:17:42 +05:30
Sai Nikhil a64fbcc397 fix: use created at as unique key (#10338)
### **PR Type**
Bug fix


___

### **Description**
- Fix table row identity using `created_at`


___

### Diagram Walkthrough


```mermaid
flowchart LR
  t1["IncidentAlertTriggersTable.vue"] 
  t2["QTable row-key uses `created_at`"] 
  t1 -- "sets row-key" --> t2
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>IncidentAlertTriggersTable.vue</strong><dd><code>Use
`created_at` as QTable row key</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/alerts/IncidentAlertTriggersTable.vue

- Update QTable `row-key` from `alert_id` to `created_at`


</details>


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

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

</details>

___
2026-02-03 14:24:51 +05:30
Shrinath Rao a1306602e6 fix: add missing detectPrebuiltType import in AddDestination.vue (#10341)
### **User description**
## Summary

- Fixes custom destination edit form failing to load
- Adds missing `detectPrebuiltType` import from
`usePrebuiltDestinations()` composable

## Problem

When editing a custom alert destination, the edit form gets stuck
showing a loading spinner indefinitely because:

1. `detectPrebuiltType` function is called at lines 833 and 855 in
`AddDestination.vue`
2. The function was never imported from the composable
3. This causes a ReferenceError, corrupting component state
4. `formData.destination_type` never gets set
5. The form renders a loading spinner instead of the edit fields

**Prebuilt destinations** (Slack, Discord, etc.) were unaffected because
they have `metadata.prebuilt_type` set and return early in the detection
logic before reaching the buggy code path.

## Fix

Added `detectPrebuiltType` to the destructured imports:

```diff
const {
  availableTypes,
  popularTypes,
  validateCredentials,
  testDestination,
  createDestination,
  updateDestination,
  generatePreview,
  isTestInProgress,
- lastTestResult
+ lastTestResult,
+ detectPrebuiltType
} = usePrebuiltDestinations();
```

## Test Plan

- [x] Ran `P1: Custom Destination - Create and Edit flow` test locally -
**PASSED**
- [x] Verified custom destination can be created
- [x] Verified custom destination can be edited (previously failing)
- [x] Verified custom destination can be deleted

Fixes #10340


___

### **PR Type**
Bug fix


___

### **Description**
- Import `detectPrebuiltType` from composable

- Fix custom destination edit loading spinner


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["AddDestination.vue"] 
  B["usePrebuiltDestinations() composable"]
  C["detectPrebuiltType import added"]
  D["Custom destination edit form loads"]
  A -- "destructure import" --> B
  B -- "exposes helper" --> C
  C -- "prevents ReferenceError" --> D
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>AddDestination.vue</strong><dd><code>Add missing
composable helper import</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/AddDestination.vue

<ul><li>Add <code>detectPrebuiltType</code> to destructured imports<br>
<li> Prevent runtime ReferenceError during type detection</ul>


</details>


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

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

</details>

___
2026-02-03 13:23:58 +05:30
Bhargav dfb84780a1 fix: issue 10319 values api for sql mode multi stream selection (#10323)
issue #10319 

### **PR Type**
Bug fix, Tests


___

### **Description**
- Add fallback for unparseable UNION queries

- Prevent empty `query_context` in sqlMode

- Add tests for UNION parse/unparse safety


___

### Diagram Walkthrough


```mermaid
flowchart LR
  UI["IndexList.vue openFilterCreator"] 
  Parser["fnParsedSQL(query)"]
  Unparser["fnUnparsedSQL(parsedSQL)"]
  DetectFail["Detect empty columns/from"]
  Fallback["Fallback: SELECT * FROM \"[INDEX_NAME]\""]
  ValuesAPI["Values API field query context"]
  UI -- "parse query" --> Parser
  Parser -- "parsedSQL" --> Unparser
  Unparser -- "query_context" --> DetectFail
  DetectFail -- "if unparseable" --> Fallback
  Fallback -- "safe query_context" --> ValuesAPI
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>logsUtils.spec.ts</strong><dd><code>Add UNION
parsing/unparsing regression tests</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/test/unit/composables/logsUtils.spec.ts

<ul><li>Add unit tests for UNION/UNION ALL parsing<br> <li> Cover
unsupported <code>UNION ALL BY NAME</code> cases<br> <li> Assert
<code>fnUnparsedSQL</code> returns empty on errors<br> <li> Simulate
openFilterCreator fallback flow behavior</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10323/files#diff-4492d9abd2bc95897c46f6ed177f3298bda9f1419dc91b07e2aa1409b598bb7f">+245/-0</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>IndexList.vue</strong><dd><code>Add fallback
query_context for UNION parse failures</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

web/src/plugins/logs/IndexList.vue

<ul><li>Detect SQL parser failures via empty
<code>columns</code>/<code>from</code><br> <li> Provide <code>SELECT *
FROM "[INDEX_NAME]"</code> fallback<br> <li> Ensure
<code>query_context</code> is non-empty for values flow</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10323/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+12/-0</a>&nbsp;
&nbsp; </td>

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

</details>

___
2026-02-03 12:15:59 +05:30
Omkar Kesarkhaneandgithub-actions[bot] 7d9da6d47f fix: Logs correlation traces list UI improvements (#10328)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Replace correlated traces table with `TraceBlock` list

- Add `View in Traces` navigation button

- Centralize trace metadata formatting in `useTraces`

- Add i18n strings for correlation actions


___

### Diagram Walkthrough


```mermaid
flowchart LR
  U["`useTraces`: `formatTracesMetaData` + service colors"]
  C["TelemetryCorrelationDashboard: correlated traces UI"]
  B["`TraceBlock` list rendering"]
  D["Open single trace: `traceDetails` route"]
  T["Open traces list: `traces` route"]
  I["Traces `Index.vue`: reuse formatter"]
  L["Locales: add `viewInTraces` strings"]

  C -- "formats API hits" --> U
  I -- "formats API hits" --> U
  C -- "renders traces" --> B
  C -- "open trace in new tab" --> D
  C -- "view all correlated traces" --> T
  C -- "button/tooltip text" --> L
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>useTraces.ts</strong><dd><code>Add reusable trace metadata
formatter</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/10328/files#diff-1cf652f1e074a135294702959cf09fd96a1ed13e661ee3bc85266dbb1909c1a7">+74/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>TelemetryCorrelationDashboard.vue</strong><dd><code>Replace
traces table with `TraceBlock` list</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/10328/files#diff-b77a766fa0094f641873071a8f13c73704933b941f387ed105e85a4e59efdb38">+98/-289</a></td>

</tr>

<tr>
<td><strong>Index.vue</strong><dd><code>Reuse `useTraces` trace
formatting logic</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/10328/files#diff-952e26660e4d6aadd292ea2ef7b314e139a4f516d0b3931e20d42d6394700d07">+8/-43</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>11
files</summary><table>
<tr>
<td><strong>de.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>en.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>es.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>fr.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>it.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ja.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ko.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>nl.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>pt.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tr.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>zh.json</strong><dd><code>Add correlation “View in Traces”
strings</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/10328/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-03 10:58:42 +05:30
Ashish Kolhe 571be3e746 fix: include functions validation in mcp (#10324)
### **PR Type**
Documentation, Enhancement


___

### **Description**
- Update function test endpoint docs

- Clarify VRL/JS validation behavior

- Add MCP extension metadata


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["/api/{org_id}/functions/test endpoint"] -- "updates OpenAPI summary/description" --> B["Clearer VRL/JS validation docs"]
  A["/api/{org_id}/functions/test endpoint"] -- "adds extension" --> C["x-o2-mcp category metadata"]
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Refine testFunction docs and
MCP metadata</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

src/handler/http/request/functions/mod.rs

<ul><li>Change OpenAPI summary to validation focus<br> <li> Rewrite
description to emphasize syntax validation<br> <li> Document
<code>trans_type</code> VRL/JS options<br> <li> Add
<code>x-o2-mcp</code> OpenAPI extension metadata</ul>


</details>


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

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

</details>

___
2026-02-03 06:27:19 +05:30
Ashish Kolhe 6e8426feb3 fix: pick up fqn based on lastest update (#10334) 2026-02-03 00:36:09 +08:00
Huaijin ea260e774d fix: select * from stream limit 10 not work sometime (#10333)
close #10278
2026-02-03 00:25:15 +08:00
ByteBakerandsai nikhil kethe 7df19cb00a fix: incident graphs and service graphs improvements (#10318)
### **User description**
## Changes

### 1. Reduce alert graph edge explosion
- Modified temporal edge logic to prevent O(n²) growth
- Changed same-service edges to only connect to most recent previous
alert
- Changed cross-service temporal edges to connect to chronologically
closest alert
- **Impact**: 88% reduction in edges (16 instead of 136 for 17 alerts)

### 2. Improve correlation error handling
- Added fallback mechanism when service registry is empty
- Better error messages for correlation failures
- Enhanced incident detail view with clearer feedback

**Files modified:**
- `src/service/alerts/incidents.rs`
- Incident correlation handling


___

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


___

### **Description**
- Prevent alert topology edge explosion

- Add frontend fallback incident correlation

- Improve correlation tab empty/error UX

- Share time/stream state across tabs


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Incident alerts ingested"] 
  B["Topology enrichment"]
  C["Same-service temporal chain"]
  D["Cross-service edges"]
  E["ServiceGraph tab shared state"]
  F["Incident detail correlation"]
  G["FQN-priority drift detection"]
  H["Frontend fallback correlation"]
  A -- "build graph" --> B
  B -- "temporal edges" --> C
  B -- "dependency edges" --> D
  E -- "share datetime/stream" --> B
  F -- "fetch correlated streams" --> G
  G -- "if not drift" --> H
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>convertTraceData.ts</strong><dd><code>Simplify
service-graph tree request metrics</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/utils/traces/convertTraceData.ts

<ul><li>Use incoming edge metrics for non-root<br> <li> Root sums
outgoing edge request counts<br> <li> Default root error rate to
zero<br> <li> Keep connection count as in+out</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>incidents.rs</strong><dd><code>Limit temporal topology
edges to nearest alerts</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/service/alerts/incidents.rs

<ul><li>Same-service temporal edge targets most recent prior<br> <li>
Keep full ServiceDependency edges when SG edge exists<br> <li> For
non-dependent services, link to closest later alert<br> <li> Avoid
duplicate edges with type-specific checks</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10318/files#diff-2411d921fd8b8783c049deea11da06726ed986550d405477d486234892353ca9">+80/-47</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>IncidentDetailDrawer.vue</strong><dd><code>Add fallback
correlation and improve tab states</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/IncidentDetailDrawer.vue

<ul><li>Show refresh header only when streams exist<br> <li> Unify
error/no-data states with clearer messaging<br> <li> Detect FQN priority
changes post-incident creation<br> <li> Build frontend fallback
correlation from schema mapping</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10318/files#diff-6973d58a5f49658b07d3533d4db5d32cc6430433b51732481e7497243dadb0b0">+217/-72</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>ServiceGraph.vue</strong><dd><code>Share Service Graph
time/stream with traces state</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/plugins/traces/ServiceGraph.vue

<ul><li>Bind datetime picker to <code>searchObj.data.datetime</code><br>
<li> Use shared <code>searchObj.data.stream.*</code> for stream
lists<br> <li> Remove local stream/time state and duplicate stream
loading<br> <li> Simplify empty-state guidance and code styling</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10318/files#diff-da1aabfbe74e57c02db16fc5d3e00cd76dc76bf0ad9b57f9dfda7d6d9da06129">+50/-181</a></td>

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

</details>

___

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
2026-02-02 20:01:34 +05:30
Subhra264 41d0c591a6 fix: if stream size is NaN, show 0 MB instead of showing NaN on UI (#10239) 2026-02-02 21:13:15 +08:00
Subhra264 ac44893e8b fix: rbac for alert generate sql api (#10325) 2026-02-02 21:07:43 +08:00
035bbea25d refactor: redesign the query inspector with the colorize query in query-inspector (#10249)
### **PR Type**
Enhancement


___

### **Description**
- Add Monaco-based query colorization utility

- Redesign QueryInspector component UI layout

- Implement search highlighting and copy notifications

- Make colorization reactive on mount and data changes


___



<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>colorizeQuery.ts</strong><dd><code>Add query
colorization utility</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/utils/query/colorizeQuery.ts

<ul><li>Register PromQL, VRL, and SQL languages<br> <li> Implement async
<code>colorizeQuery</code> function<br> <li> Prevent duplicate language
registrations<br> <li> Handle colorization errors gracefully</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10249/files#diff-58f1e967db31a700d3ad2387bd4c9330a14995f4e6f48bcaf0ee5074816c2c8f">+42/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>QueryInspector.vue</strong><dd><code>Redesign
QueryInspector UI and logic</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/dashboards/QueryInspector.vue

<ul><li>Revamp UI with styled layout and search input<br> <li> Integrate
<code>colorizeQuery</code> for syntax highlighting<br> <li> Add
search-term highlighting and copy notifications<br> <li> Reactively
update colorization on mount/watch<br> <li> Include custom scrollbar
styling</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10249/files#diff-ffe50532d3e00a45f4fd570bf0e852658b382fc05982f6c0afca2a7e8940316d">+318/-73</a></td>

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

</details>

___

---------

Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
2026-02-02 15:44:54 +05:30
Huaijin 19034ca3a4 feat: support memory profiling with jemalloc and cpu profiling (#10317) 2026-02-02 16:37:16 +08:00
Subhra264 6a0ebc505b fix: change domain management method from post to put (#10320) 2026-02-02 15:30:43 +08:00
Omkar Kesarkhaneandgithub-actions[bot] 054cf84e9b fix: Logs telemetry correlation traces improvements (#10316)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Embed `TraceDetails` into correlation traces

- Add standalone/embedded modes to `TraceDetails`

- Enable “Open in Traces” navigation

- Update i18n for new label


___

### Diagram Walkthrough


```mermaid
flowchart LR
  tcd["TelemetryCorrelationDashboard (correlation UI)"]
  td["TraceDetails (standalone/embedded)"]
  tds["TraceDetailsSidebar (mode-aware)"]
  rtr["Router: `traces` route"]
  i18n["Locales: `traces.openInTraces`"]
  tcd -- "passes trace id, spans, time range" --> td
  td -- "renders sidebar with `parentMode`" --> tds
  td -- "expand/open in traces" --> rtr
  td -- "uses label" --> i18n
```



<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>2
files</summary><table>
<tr>
<td><strong>TelemetryCorrelationDashboard.vue</strong><dd><code>Replace
spans table with embedded TraceDetails</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10316/files#diff-b77a766fa0094f641873071a8f13c73704933b941f387ed105e85a4e59efdb38">+99/-233</a></td>

</tr>

<tr>
<td><strong>TraceDetails.vue</strong><dd><code>Add embedded mode and
conditional 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/10316/files#diff-bc7fe6b6339ee2cde6494c0982d4b860847447e79f7431f07d598e0446df06f2">+391/-109</a></td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>TraceDetailsSidebar.vue</strong><dd><code>Hide
standalone-only actions in embedded mode</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10316/files#diff-0017bc08d8da96af6433770d0b274f825798d24401b33ce091b16a50fbaf4b57">+14/-3</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>11
files</summary><table>
<tr>
<td><strong>de.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>en.json</strong><dd><code>Add `traces.openInTraces` base
string</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/10316/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>es.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>fr.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>it.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ja.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ko.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>nl.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>pt.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tr.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>zh.json</strong><dd><code>Add `traces.openInTraces`
translation key</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/10316/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-02 12:39:27 +05:30
udev b23f6273b7 fix: o2 assistant issues (#10315) 2026-02-02 02:23:36 +05:30
dependabot[bot] af49782be6 chore(deps): bump lodash-es from 4.17.22 to 4.17.23 in /web (#10143) 2026-02-01 22:46:49 +08:00
dependabot[bot] 47d20352d5 chore(deps): bump lodash from 4.17.21 to 4.17.23 in /web (#10144) 2026-02-01 22:46:26 +08:00
dependabot[bot] cef79a7419 chore(deps): bump oneshot from 0.1.8 to 0.1.13 (#10191) 2026-02-01 22:46:03 +08:00
Hengfei Yang fac4b9eecc fix: result cache delta end time to fix duplicates during delta search (#10313) 2026-02-01 22:42:13 +08:00
Bhargav a621982d32 fix: 10310 tanstack table implementation on logs tab in traces detail page (#10311)
### **PR Type**
Enhancement


___

### **Description**
- Introduce `hideDimensionFilters` prop for correlated logs
  - Conditionally render dimension filters in tables

- Update UI layouts: container height and sidebar widths

- Replace `TelemetryCorrelationDashboard` with `CorrelatedLogsTable`

- Add span selection highlighting and reload logic on span change


___



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>useCorrelatedLogs.ts</strong><dd><code>Add
`hideDimensionFilters` to CorrelatedLogsProps</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10311/files#diff-310992fb4914c6eaffbbce225e0c0683c2edad2bb0ab0f8e43530fc38152ed2a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>CorrelatedLogsTable.vue</strong><dd><code>Conditionally
render dimension filters in table</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10311/files#diff-57e0ec3ac2762de21e67254edf83a4559490f717a8826762c0566fa3b70b6fb8">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>TelemetryCorrelationDashboard.vue</strong><dd><code>Add
filter toggle in TelemetryCorrelationDashboard props</code>&nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10311/files#diff-b77a766fa0094f641873071a8f13c73704933b941f387ed105e85a4e59efdb38">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DetailTable.vue</strong><dd><code>Pass
`hide-dimension-filters` to logs correlation table</code>&nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10311/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>TraceDetails.vue</strong><dd><code>Adjust sidebar widths and
pass `selectedSpanId`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10311/files#diff-bc7fe6b6339ee2cde6494c0982d4b860847447e79f7431f07d598e0446df06f2">+18/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>TraceDetailsSidebar.vue</strong><dd><code>Replace dashboard
with `CorrelatedLogsTable` in sidebar</code>&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10311/files#diff-0017bc08d8da96af6433770d0b274f825798d24401b33ce091b16a50fbaf4b57">+12/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>TraceTree.vue</strong><dd><code>Add span selection highlight
and hover logic</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/10311/files#diff-5d1fa8ba4d433439860b4bc036fb80e3e1b51948616dc04b1bfd1f9110a87091">+26/-1</a>&nbsp;
&nbsp; </td>

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

</details>

___
2026-02-01 18:14:55 +05:30
Ashish Kolheandgithub-actions[bot] c34988a3ea fix: insights traces changes (#10304)
### **PR Type**
Enhancement


___

### **Description**
- Introduce `timeStart`/`timeEnd` in filters

- Enable baseline-only and comparison modes

- Conditional single vs comparison query logic

- Always show Insights button and update translations


___

### Diagram Walkthrough


```mermaid
flowchart LR
  start["Open analysis"]
  start -- "Has time filters?" --> comp["Comparison mode"]
  start -- "No time filters" --> base["Baseline-only mode"]
  comp -- "Query both ranges" --> merge["Merge & score"]
  base -- "Use baseline only" --> sort["Sort by baseline percent"]
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>useLatencyInsightsAnalysis.ts</strong><dd><code>Support
time-based filters and baseline-only mode</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10304/files#diff-343474bc1f120f5ecebfc595bf0d3151b2db096d9226369c496b7a0cfaa33899">+87/-54</a>&nbsp;
</td>

</tr>

<tr>

<td><strong>useLatencyInsightsDashboard.ts</strong><dd><code>Conditional
single/comparison query generation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10304/files#diff-960dec4a653d7c079157499a2473d0e87bd8b61463e1c3f633e7682ba763a4b1">+58/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>TracesMetricsDashboard.vue</strong><dd><code>Always show
Insights button and update labels</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10304/files#diff-7b6f29a2737d9501b18dbd8622eba4965e4bc2b92115627ae7d2e70cc3382087">+68/-54</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>11
files</summary><table>
<tr>
<td><strong>de.json</strong><dd><code>Add
`volumeInsights.insightsButtonLabel` translation</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10304/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>en.json</strong><dd><code>Add insights translation keys to
English</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/10304/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>es.json</strong><dd><code>Add insights translation keys to
Spanish</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/10304/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>fr.json</strong><dd><code>Add insights translation keys to
French</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/10304/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>it.json</strong><dd><code>Add insights translation keys to
Italian</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/10304/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ja.json</strong><dd><code>Add insights translation keys to
Japanese</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/10304/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ko.json</strong><dd><code>Add insights translation keys to
Korean</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/10304/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>nl.json</strong><dd><code>Add insights translation keys to
Dutch</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/10304/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>pt.json</strong><dd><code>Add insights translation keys to
Portuguese</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/10304/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tr.json</strong><dd><code>Add insights translation keys to
Turkish</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/10304/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>zh.json</strong><dd><code>Add insights translation keys to
Chinese</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/10304/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-01 17:00:52 +05:30
Hengfei Yang 0a1d7196ce perf: add cache statistics functionality (#10306) 2026-02-01 10:07:32 +08:00
Bhargav afe7433938 fix: compress size fix (#10309)
### **PR Type**
Bug fix


___

### **Description**
- Corrected cloud configuration condition

- Display compressed size tile when not in cloud


___



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>HomeView.vue</strong><dd><code>Update cloud flag
condition for size tile</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/views/HomeView.vue

<ul><li>Changed v-if from <code>config.isCloud == 'true'</code> to
<code>config.isCloud == </code><br><code>'false'</code><br> <li> Ensures
compressed data size tile displays outside cloud environment</ul>


</details>


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

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

</details>

___
2026-01-31 17:30:44 +05:30
Bhargav da6fd92027 fix: missing language translation (#10165)
### **PR Type**
Enhancement


___

### **Description**
- Expanded Hindi locale with 140+ new UI keys

- Removed obsolete keys from Chinese locale

- Improved translation coverage for themes, alerts, pipelines


___



<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>2
files</summary><table>
<tr>
<td><strong>hi.json</strong><dd><code>Add extensive Hindi translation
keys</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/10165/files#diff-1e7b52b5c4e762db2c923d0d3efb6d693702825ed3a1a112d3069f26b0d5f605">+2038/-29</a></td>

</tr>

<tr>
<td><strong>zh.json</strong><dd><code>Remove obsolete Chinese
translation keys</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/10165/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+44/-35</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>9 files</summary><table>
<tr>
  <td><strong>de.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>es.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>fr.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>it.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ja.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+44/-32</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ko.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>nl.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>pt.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+44/-39</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>tr.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10165/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+44/-39</a>&nbsp;
</td>

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

</details>

___
2026-01-31 16:11:39 +05:30
Omkar Kesarkhane 0d19065b31 fix: Correlation settings UI issues (#10298)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add JSON import drawer for semantic groups

- Merge imported groups and validate IDs

- Set default `alert_dedup_enabled` to false

- Enforce scope-first order in FQN priority

- Generate group IDs on blur and prevent duplicates


___

### Diagram Walkthrough


```mermaid
flowchart LR
  File["Select JSON file"] -->|loadFile| Preview["Preview diff"]
  Preview -->|select additions/modifications| Selection["Selected items"]
  Selection -->|handleApply| Parent["Emit merged groups"]
```



<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>4
files</summary><table>
<tr>
<td><strong>ImportSemanticGroupsDrawer.vue</strong><dd><code>Add import
drawer for semantic groups</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/10298/files#diff-9e8166bba8b3b84cd98d44be5b85212f4c8b018cf370bdc69a279e290914fb7d">+640/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SemanticFieldGroupsConfig.vue</strong><dd><code>Integrate
import drawer and generate group IDs</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10298/files#diff-1c5890d42337715bb86ba5c025148e41cc72b9ab6fe19e10a4eb0411554162de">+98/-25</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SemanticGroupItem.vue</strong><dd><code>Generate ID on
display blur and validate</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/10298/files#diff-416d80d707542beaa5d710fa4f1e0e573e0abf81110a6b15558271a7b6f157ea">+28/-14</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ServiceIdentityConfig.vue</strong><dd><code>Improve FQN
priority UI and sorting</code>&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/10298/files#diff-25b25407f85be211af5760a897e5442beef913af6b031c351c50dbb70eed2bcd">+633/-359</a></td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>

<td><strong>OrganizationDeduplicationSettings.vue</strong><dd><code>Default
`alert_dedup_enabled` to false</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/10298/files#diff-f526d40b50f1e96f025973c6fc251f7a50f698c641c7749b32e6bb90b9ba032f">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>DiscoveredServices.vue</strong><dd><code>Adjust padding on
view mode toggle</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/10298/files#diff-b29e770c74e783552f21665d8e4e8c77abc7a51c6415101f16e2724061c57d9e">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>BasicValuesFilter.vue</strong><dd><code>Convert style widths
to rem units</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/10298/files#diff-3ec23f0cdf1bbf9075cfc995045d2597f9d9adb2a64ec55be7f3b9cf9da2e9ea">+11/-9</a>&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 duplicate and empty ID error
messages</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/10298/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2026-01-31 14:58:06 +05:30
Bhargav bfcf6f3b97 fix: show panel on unhide (#10302)
### **PR Type**
Enhancement


___

### **Description**
- Add panel data caching for hide/unhide optimization

- Enhance addMetricPanels: reuse cache and generate new panels

- Debounce stream changes to batch hide/unhide events

- Improve full reload fallback and cache logging


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Metric stream change"] --> B["Debounce (300ms)"]
  B --> C{"Panels to remove?"}
  C -- "Yes" --> D["Clear dashboard and full reload"]
  C -- "No" --> E{"New streams to add?"}
  E -- "Yes" --> F["addMetricPanels"]
  F --> G{"Cache hit?"}
  G -- "Yes" --> H["Reuse cached panels"]
  G -- "No" --> I["Fetch schemas and generate panels"]
  H --> J["Update layout & append panels"]
  I --> J
  J --> K["Refresh GridStack twice"]
```



<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>TelemetryCorrelationDashboard.vue</strong><dd><code>Caching
and debounce in metric panels</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/plugins/correlation/TelemetryCorrelationDashboard.vue

<ul><li>Introduce <code>panelDataCache</code>, caching and debounce
constants<br> <li> Update <code>addMetricPanels</code> to reuse cache
and generate panels<br> <li> Debounce hide/unhide in stream watcher with
batching logic<br> <li> Add cache logging and extra GridStack
refresh</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10302/files#diff-b77a766fa0094f641873071a8f13c73704933b941f387ed105e85a4e59efdb38">+161/-55</a></td>

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

</details>

___
2026-01-31 13:10:52 +05:30
Ashish Kolheandgithub-actions[bot] e52dacb4b2 fix: alert destinations (#10301)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Support backend-managed prebuilt templates  

- Cache and fetch templates with async preview  

- Rename templates prefix to `prebuilt_`, update tests  

- Add backend ensure_system_templates & template reuse


___

### Diagram Walkthrough


```mermaid
flowchart LR
  BL["Backend load_prebuilt_config & builtins"]
  Endpoint["GET /api/{org}/alerts/templates/system/prebuilt"]
  FE["Frontend fetchSystemTemplates()"]
  Cache["systemTemplatesCache in memory"]
  Generate["generatePreview/testDestination"]
  UI["UI preview/test buttons"]
  BL -- "provides templates" --> Endpoint
  Endpoint -- "called by" --> FE
  FE -- "stores in" --> Cache
  Cache -- "used by" --> Generate
  Generate -- "triggers" --> UI
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>14
files</summary><table>
<tr>
<td><strong>usePrebuiltDestinations.ts</strong><dd><code>Implement
fetchSystemTemplates and caching logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-2c90b706aae7486541bbee80d2c67c9de18504b90e1d9618ba130e017d0a5246">+195/-28</a></td>

</tr>

<tr>
<td><strong>slack.ts</strong><dd><code>Rename slack template to
`prebuilt_slack`</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/10301/files#diff-f7068d6fc979cc1fbc6e2bc562be53f5453fc874b367c1688adf70c0896aac62">+41/-45</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>email.ts</strong><dd><code>Rename email template and remove
CC/subject</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/10301/files#diff-3e756aefde39bd7c780066f6ee6e22df1f2846f5e0013fd6ec568a98dd54f64b">+18/-16</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>servicenow.ts</strong><dd><code>Rename ServiceNow template
to `prebuilt_servicenow`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-3790cdccf9f6221cf55c86664b4cbfb65d20f3da9db719167898b8b76b698a2f">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>alert_templates.ts</strong><dd><code>Add
`get_system_templates` API call</code>&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/10301/files#diff-fd8c4260abc3df601e4331d36b0c211eca568ee70139ad90c87247bc552fe4e2">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>prebuilt_loader.rs</strong><dd><code>Add
get_prebuilt_template and fallback loader</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-d75e85b239701cb3c9e85c15a8a5cd8d23120a4b5ba0a61003c0df1f4854b74d">+345/-10</a></td>

</tr>

<tr>
<td><strong>destinations.rs</strong><dd><code>Implement
ensure_prebuilt_template & reuse logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-c06292c108cc15b585a0e3318fd15d3e86c1f1a0f001ab84fff85facefd3c4d3">+420/-1</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>templates.rs</strong><dd><code>Add ensure_system_templates
initialization</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/10301/files#diff-975d7665f1439ca49810c28554f85e513ff3a4c8b849f2bb1966536230951464">+86/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>templates.rs</strong><dd><code>Expose GET system prebuilt
templates endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-b08e274a64cc935b0cec402a04271a872b1586027a77dc0ccb84c597c3960f61">+54/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>AddDestination.vue</strong><dd><code>Update form logic for
prebuilt vs custom</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/10301/files#diff-61b295458e13049a538f5014124855d58dce664dfbd644b57a964a37a07b7a3f">+123/-66</a></td>

</tr>

<tr>
<td><strong>DestinationTestResult.vue</strong><dd><code>Improve test
error message handling</code>&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/10301/files#diff-1fa17c0e52becd683dec1bbee12aab6823b28c1bbedca0d5039d688527f826e5">+29/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>AlertsDestinationList.vue</strong><dd><code>Add custom
destination label 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; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+15/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PrebuiltDestinationForm.vue</strong><dd><code>Comment out
unsupported email fields</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/10301/files#diff-606eb6f7e6e43518cc9b1f3194097c52acf3df0df9ab5945274196d7221035a0">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>pagerduty.ts</strong><dd><code>Rename PagerDuty template to
`prebuilt_pagerduty`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-a216d76143343db3aec8efe02596be53b438813aa2aa8af2fb1080e17f5540aa">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>templates.spec.ts</strong><dd><code>Update tests to use
`prebuilt_` prefix</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/10301/files#diff-262b3003a3045192e0aaccddebe76bdb29fcd68655e8bacfd486e50575a14801">+9/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>types.spec.ts</strong><dd><code>Adjust PrebuiltConfig tests
for new prefix</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/10301/files#diff-67fc167ebe4d6a433579ba9850a6d7ce3a83d97bebe410521f85775a948595fc">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>alertDestinationsPage.js</strong><dd><code>Update selector
for test result element</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/10301/files#diff-57e5c53b4ef998b3d8708149620ff94dcc46807927f1a3a9e9f28ed3ebe25b0a">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>alerts-destinations-prebuilt.spec.js</strong><dd><code>Add
random name for Slack destination test</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/10301/files#diff-0295825c868c1d1ed5cc194ba04843a7d5f4e58decff2593c7d9bd5b29ec33a4">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>discord.spec.ts</strong><dd><code>Update Discord tests for
new prefix</code>&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/10301/files#diff-21a02fd01b42452d1f13140715e5f81146b7a62d61d4b899deea4f30be06284e">+2/-2</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>Route for system prebuilt templates
API</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/10301/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+1/-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 custom destination translation
keys</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/10301/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>25 files</summary><table>
<tr>
  <td><strong>auth.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+20/-0</a>&nbsp;
&nbsp; </td>

</tr>

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

</tr>

<tr>
  <td><strong>mod.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+8/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>main.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-42cb6807ad74b3e201c5a7ca98b911c5fa08380e942be6e4ac5807f8377f87fc">+5/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>destinations.rs</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-4652ac6be3f7cf720faf5b9c4cb1d5dbab9e2fed608f3abbe295fb270dde54b5">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>de.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>es.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>fr.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>it.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ja.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ko.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>nl.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>pt.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>tr.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>zh.json</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>discord.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-e4703f8270d000f785a48aa220752f303d2330b6e123817310ecb8a60815fb0b">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>email.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-744915b43017fdc102b0e00d157d7deef4b1f23e0e8e5cb483c2f2c9d6af655c">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-9b9a6bc1e17f1874fda50428263ff607dca3ba94b01f95933f179ba544f6e11a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>msteams.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-6815fa747fe74c5cd6835f9fce8f037c15489fab95e399e15199a104c0c08061">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>msteams.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-efeec26ed5ec589000448466539dcdb0d7bb918e8a4f80c9df565eaa1e522b5c">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>opsgenie.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-2560842b70b2f74eb3ef2c940e0a55500b3bd5b89a9b5b34e3c0039c57fc1361">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>opsgenie.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-9412abdf9baf6b8c0cc87fa3ea0efec50928399c0112ad695c021040d24d7c3a">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>pagerduty.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-f62fcc0b648144816cef61b1f5512ba5e2bc573237158efbd896d33e779282f2">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>servicenow.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-ada67bb0bbeaf97a2e7c6a21a741d53df941306e6c694d1a1d89cf965403ce85">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>slack.spec.ts</strong></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-3fa8b2b7534ebec5c2cea1c76c54741c105b64819bb87e6a7f6d3b5a85969740">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-31 11:04:38 +05:30
Sai Nikhil 5ee50613fd fix: use error tooltip color for pipeline tooltip (#10217) 2026-01-31 10:38:25 +08:00
Bhargav 6925ac5659 fix: compress size tile (#10260) 2026-01-31 10:37:20 +08:00
Sai Nikhil 03315baae0 fix: incident detail page issues (#10294) 2026-01-31 10:36:51 +08:00
Loakesh Indiran 9f86567547 fix: search around honor size even if sql has limit (#10289) 2026-01-31 10:34:14 +08:00
Harsh Mahajan b139c012a1 fix: adding reporting in HTTP models enum (#10277)
### **User description**
OFGA and migration are already working


___

### **PR Type**
Enhancement


___

### **Description**
- Add `Reports` variant to `FolderType`

- Extend `From<FolderType>` conversion mapping


___



<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>folders.rs</strong><dd><code>Introduce Reports folder
variant and mapping</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/handler/http/models/folders.rs

<ul><li>Added <code>Reports</code> variant to <code>FolderType</code>
enum<br> <li> Updated <code>From<FolderType></code> mapping for
<code>Reports</code></ul>


</details>


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

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

</details>

___
2026-01-31 00:28:37 +05:30
Simran Kumari 14bcf9af7a fix: Simplify issue event logging and payload handling (#10265)
### **User description**
Reduced the types of GitHub issue events to log. Updated the step name
for sending events to OpenObserve and streamlined the payload creation
process.


___

### **PR Type**
Enhancement


___

### **Description**
- reduce logged GitHub issue event types

- streamline payload handling step

- send raw event JSON directly

- remove optional debug logging


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["GitHub issues events"]
  B["Filtered issue types trigger"]
  C["Prepare raw JSON payload"]
  D["OpenObserve ingest endpoint"]
  A --> B
  B --> C
  C -- "POST" --> D
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>log-issues-to-o2.yml</strong><dd><code>Simplify
workflow payload 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; </dd></summary>
<hr>

.github/workflows/log-issues-to-o2.yml

<ul><li>reduced issue event types in trigger<br> <li> renamed send step
to OpenObserve<br> <li> replaced jq JSON build with raw payload<br> <li>
removed debug logging step</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10265/files#diff-09437ebece075b9bf642638da74437927a6da99f27acdceb5e3f74406ab9e567">+5/-105</a>&nbsp;
</td>

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

</details>

___
2026-01-30 22:54:37 +05:30
Bhargav 3493d9d88c fix: Issue 1212 UI fixes (#10292)
### **User description**
Issue: ent 1212 correlation fixes


___

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


___

### **Description**
- Implement view-trace navigation in logs

- Add loading, error and empty states to dashboards

- Hide view trace button when config enabled

- Refine correlation metrics error handling


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["User clicks view trace button"] -- "handleViewTrace" --> B["handleViewTrace"]
  B -- "router.push traceDetails" --> C["Trace Details Page"]
```



<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>CorrelatedLogsTable.vue</strong><dd><code>Implement
view-trace navigation</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/plugins/correlation/CorrelatedLogsTable.vue

<ul><li>Added <code>@view-trace</code> event binding to
TenstackTable<br> <li> Imported <code>useRouter</code> and
<code>searchState</code> for navigation<br> <li> Implemented
<code>handleViewTrace</code> to build and push trace query</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10292/files#diff-57e0ec3ac2762de21e67254edf83a4559490f717a8826762c0566fa3b70b6fb8">+38/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>TelemetryCorrelationDashboard.vue</strong><dd><code>Add
dashboard loading/empty/error states</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/plugins/correlation/TelemetryCorrelationDashboard.vue

<ul><li>Added loading state for logs dashboard<br> <li> Added no-logs
and no-metrics empty states<br> <li> Added error and retry UI for
metrics tab</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>JsonPreview.vue</strong><dd><code>Hide view trace
button based on config</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/plugins/logs/JsonPreview.vue

<ul><li>Define <code>serviceStreamsEnabled</code> flag from
<code>zoConfig</code><br> <li> Hide view trace button when
<code>service_streams_enabled</code> is true</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10292/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>SearchResult.vue</strong><dd><code>Refine correlation
metrics handling</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/plugins/logs/SearchResult.vue

<ul><li>Removed early returns for empty metric streams<br> <li> Always
set <code>metricStreams</code> array and notify instead<br> <li> Cleared
<code>correlationError</code> on row navigation</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10292/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+19/-30</a>&nbsp;
</td>

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

</details>

___
2026-01-30 21:37:18 +05:30
Subhra264 f8921f9dbd fix: route multi search endpoints by body (#10286) 2026-01-30 23:13:43 +08:00
Hengfei Yang 6e18a14e6f fix: delete stream when data retention disabled (#10263) 2026-01-30 23:12:10 +08:00
Hengfei Yang 294118ecca fix: update routing for Kinesis and GCP requests (#10297) 2026-01-30 23:11:42 +08:00
Sai Nikhil ec2a9cc771 fix: o2 ai issues when enabled (#10291)
### **User description**
This PR fixes the issue in E: 1216 (1 & 3) , E: 1218 , along with append
the fields when sending to ai chat


___

### **PR Type**
Enhancement


___

### **Description**
- Add `appendMode` prop for AI Chat

- Auto-scroll input on append

- Propagate and clear chat context

- UI tweaks: widths, toggle styles, splitter


___

### Diagram Walkthrough


```mermaid
flowchart LR
  SP["ScheduledPipeline.vue"] -- "sendToAiChat(value,append)" --> O2AIChat
  ML["MainLayout.vue"] -- "sendToAiChat(value,append)" --> O2AIChat
  O2AIChat["O2AIChat.vue"] --> AM["appendMode prop"]
  AM -- "true" --> APPEND["append input with separator"]
  AM -- "false" --> REPLACE["replace input"]
  APPEND --> SCROLL["scrollInputToBottom()"]
```



<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>10
files</summary><table>
<tr>
<td><strong>O2AIChat.vue</strong><dd><code>Add `appendMode` prop and
scroll input enhancements</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+47/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ScheduledPipeline.vue</strong><dd><code>Propagate
`appendMode` and update sendToAiChat signature</code>&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-63d8f838bb880356e7804b4a57fd9223d4f2c189de7aadc7cf33cba723b29aaf">+10/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>MainLayout.vue</strong><dd><code>Bind `appendMode` and clear
context after send</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+13/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>DetailTable.vue</strong><dd><code>Update sendToAiChat to
accept `append` parameter</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Index.vue</strong><dd><code>Adjust splitter when AI chat
opens or closes</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/10291/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+21/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>JsonPreview.vue</strong><dd><code>Extend sendToAiChat
signature with `append`</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/10291/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>SearchBar.vue</strong><dd><code>Add toggle CSS class and
dynamic width style</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/10291/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+10/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SearchResult.vue</strong><dd><code>Add `append` flag to
sendToAiChat emit</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/10291/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>TenstackTable.vue</strong><dd><code>Tweak AI button position
and append flag support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22">+5/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Functions.vue</strong><dd><code>Modify sendToAiChat to
include `append` argument</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-ad825ec1b8d58aec9bf5d2553ea09394a30b22ac59d708bcf9e56168ca1daaf6">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2026-01-30 20:06:25 +05:30
udev 2c4ae4ea66 fix: actions routes and rename role (#10255)
### **User description**
- **fix action routes**
- **rename script server**


___

### **PR Type**
Enhancement


___

### **Description**
- Rename `ScriptServer` role to `ActionServer`

- Add `ActionServer` auth middleware and handlers

- Update init, routing, config checks for action server

- Enhance `list_actions` logging and error handling


___

### Diagram Walkthrough


```mermaid
flowchart LR
  Config["Load configuration"] --> Cluster["Cluster role check"]
  Cluster --> Main["Main init_action_server"]
  Main --> Router["ActionServer router setup"]
  Router --> AuthMw["Authentication middleware"]
  AuthMw --> Handlers["ActionServer request handlers"]
  Handlers --> Deployer["ACTION_DEPLOYER invocation"]
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>config.rs</strong><dd><code>Replace ScriptServer role check
with ActionServer</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10255/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Refactoring</strong></td><td><details><summary>6
files</summary><table>
<tr>
<td><strong>cluster.rs</strong><dd><code>Rename ScriptServer variants
and methods</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/10255/files#diff-a2667c1be522ce095796a7066e02631a7e01acc85a46573e1e3a157d2aefb7c3">+12/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Expose action_server auth
module</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/10255/files#diff-740e95d118f8498bbd4c8b3a56528c33ee98279036f723ed37975347b58600c8">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Register action_server request
module</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/10255/files#diff-a1cfd40da1ab6cd4db0181fd8664965034298047b3b7c3320c5385897a7c4aed">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Remove old script_server
handlers</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/10255/files#diff-2de1185a98f50a00cfe6d7d3984957e96d92e5f5df60290a6263e96fb73bc993">+0/-185</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>main.rs</strong><dd><code>Update init and router to action
server</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/10255/files#diff-42cb6807ad74b3e201c5a7ca98b911c5fa08380e942be6e4ac5807f8377f87fc">+21/-15</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>node.rs</strong><dd><code>Map ActionServer to
ProtoRole::ScriptServer</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/10255/files#diff-2f1dc99535ad93ff353f43538b436a01ee7c3d81c008db0f5dfaf45414f29ec6">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>action_server.rs</strong><dd><code>Add ActionServer
authentication middleware</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/10255/files#diff-0f69b5830bc733a31dfd0fc967302084bc0bc7d2f21e92fa32ae599f2216c479">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Implement ActionServer request
handlers</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/10255/files#diff-c125d4ccb837b4dbf987658592af12e0858a1269c2e5ef2b1d1587bbcdb99d47">+244/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>action.rs</strong><dd><code>Add logging and error details to
list_actions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10255/files#diff-616df3014c553f763ea57e925f1bff7bb47f9467c632940d93a45b7b1e4c3a07">+26/-11</a>&nbsp;
</td>

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

</details>

___
2026-01-30 18:57:29 +05:30
ByteBaker e0a2209ebe feat: add DateTime picker to service graph and rename tab (#10283)
### **User description**
## Summary
Adds DateTime picker to service graph allowing users to select custom
time ranges for visualization. Also rename the tab from `Service Maps`
to `Service Graphs`.

## Changes
- Add DateTime component to ServiceGraph.vue
- Update service graph service to pass start_time/end_time parameters
- Backend API already supports custom time range queries
- Rename tab name and address to service graphs (from service maps)
2026-01-30 17:58:30 +05:30
Yashodhan JoshiandYashodhan Joshi c0b6521458 fix: path for logo/text (#10275)
### **User description**
the path for text was incorrectly specified


___

### **PR Type**
Bug fix


___

### **Description**
- Correct logo text route path


___



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Update logo text route
path</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></summary>
<hr>

src/handler/http/router/mod.rs

<ul><li>Adjusted logo text endpoint path<br> <li> Changed route from
<code>/settings/logo_text</code> to
<code>/settings/logo/text</code></ul>


</details>


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

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

</details>

___

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2026-01-30 16:55:38 +05:30
Bhargav a0c7e73e9b fix: Issue 1212 correlation UI issues (#10279)
### **User description**
issue id: ent-1212


___

### **PR Type**
Enhancement


___

### **Description**
- Add select/deselect-all and drag-and-drop column reorder

- Persist visible columns and order to localStorage

- Preserve original/current filter values in dropdowns

- Remove legacy correlated-logs-v2 tab and console toggles

- Add `selectAll`/`deselectAll` locale keys, remove V2 keys


___

### Diagram Walkthrough


```mermaid
flowchart LR
  CT["CorrelatedLogsTable.vue"]
  CVD["Column Visibility Dropdown"]
  SA["Select/Deselect All Checkbox"]
  DD["Draggable Column Items"]
  LS["Persist to localStorage"]
  CT -- "renders" --> CVD
  CVD -- "adds" --> SA
  CVD -- "adds" --> DD
  SA -- "update state" --> LS
  DD -- "update order" --> LS
  CT -- "improve filters" --> FOP["Filter Options Enhancement"]
  DT["DetailTable.vue"] -- "remove old tab logic" --> CT
```



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

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>CorrelatedLogsTable.vue</strong><dd><code>Enhance column
visibility: select all & drag reorder</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10279/files#diff-57e0ec3ac2762de21e67254edf83a4559490f717a8826762c0566fa3b70b6fb8">+244/-12</a></td>

</tr>

<tr>

<td><strong>TelemetryCorrelationDashboard.vue</strong><dd><code>Preserve
original and current filter values</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/10279/files#diff-b77a766fa0094f641873071a8f13c73704933b941f387ed105e85a4e59efdb38">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>DetailTable.vue</strong><dd><code>Remove legacy correlated
logs tab and toggles</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10279/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+22/-65</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>11 files</summary><table>
<tr>
<td><strong>de.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>en.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>es.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>fr.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>it.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ja.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ko.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>nl.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>pt.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tr.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>zh.json</strong><dd><code>Add selectAll/deselectAll
translations</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/10279/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2026-01-30 16:00:26 +05:30
漂流 705eac7e75 fix: fix get with no default data (#10247) 2026-01-30 17:32:15 +08:00
漂流 09c7e1815b fix: fix the automatic increment of the auto_increment attribute in sea-orm (#10254) 2026-01-30 17:31:15 +08:00
ByteBaker 50e45e2ea7 fix: use triggers.length for incident alert count and sort Related Alerts
- Replace alert_count with triggers.length for accurate count display
- Rename 'Total Triggers' to 'Total Alerts' for consistency
- Show all unique alerts in Related Alerts (was showing only 2 from topology_context.nodes)
- Sort Related Alerts by trigger count (descending order)
2026-01-30 14:16:28 +05:30