mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 16:10:43 +00:00
25c0fe6382a43b4e47df93173b7e8df8a299e8a7
1065
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dff6494b47 | fix: ai config (#10589) | ||
|
|
7647247399 | fix: traces api to use streaming (#10593) | ||
|
|
f59382dea1 |
feat: navigation for o2 assistant (#10564)
- **improve dashbaord tool prompt** - **fix: pipeline create handler to return a pipeline ID and name** - **feat: navigation event handler, button rendering** |
||
|
|
13d193b4aa |
fix: alert destination test button should call destination test api (#10529)
Currently, on the UI when the test destination button is clicked for a prebuilt email destination, it does not do anything at all. Instead, it should call the test destination api. Also, this destination api does not handle email destination testing, this pr fixes this as well. |
||
|
|
e9785af1f0 | fix: ai chat telemetry (#10546) | ||
|
|
aaa544620a |
fix: support multiple custom roles in single org in sso claim parser (#10327)
### **PR Type**
Bug fix
- Support multiple custom roles in single org through the sso claim
parser vrl function.
- Do not allow passing organization name as the organization id in the
sso claim parser.
___
### **Description**
- Support multiple roles per organization
- Group custom roles by org reliably
- Fix tuple creation for multi-role orgs
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["SSO custom_roles claims"] --> B["Parse with split_once(\"/\")"]
B --> C["Group into HashMap<org, Vec<role>>"]
C -- "per org" --> D["Format roles as \"org/role\""]
D --> E["Create role-assignment tuples"]
```
<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>jwt.rs</strong><dd><code>Group custom roles per org for
tuples</code>
</dd></summary>
<hr>
src/handler/http/auth/jwt.rs
<ul><li>Replace <code>HashMap<String, String></code> with
<code>HashMap<String, Vec<String>></code><br> <li> Parse
<code>custom_roles</code> via <code>split_once('/')</code> into org-role
lists<br> <li> Reuse grouped roles to build <code>"org/role"</code>
tuples<br> <li> Apply same grouping for existing users flow</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10327/files#diff-232cab74f4cbf135af424744272e17732fbda8ac005d33c0acb4597e65479d02">+35/-31</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
dd8d3ffa14 |
fix: add alert revamp (#10470)
### **PR Type** Enhancement, Bug fix, Tests ___ ### **Description** - Add HAVING tree to `result_schema` responses - Add extractor logic and extensive tests - Revamp alert preview charts for SQL/PromQL - Show schema-driven threshold labels and context - Allow env override for preview time range ___ ### Diagram Walkthrough ```mermaid flowchart LR uiSettings["AlertSettings.vue threshold UI"] -->|"calls"| apiSchema["/result_schema API"] apiSchema -->|"returns group_by + having"| dfExtractor["DataFusion plan visitor"] dfExtractor -->|"builds"| havingTree["HavingNode logical tree"] uiPreview["PreviewAlert.vue chart + evaluation"] -->|"uses"| apiSchema uiPreview -->|"renders via"| panelRenderer["PanelSchemaRenderer"] panelRenderer -->|"options merged"| chartOptions["convertSQLData custom_chart_options"] envCfg["ZO_ALERT_PREVIEW_TIMERANGE_MINUTES"] -->|"drives"| uiPreview ``` <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>13 files</summary><table> <tr> <td><strong>alertSummaryGenerator.ts</strong><dd><code>Reorder summary, improve realtime wording</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-a4464ad7df3ac3afdca4e6fc583122d701bace10e3a2daf083cb6c902565b20f">+28/-12</a> </td> </tr> <tr> <td><strong>convertSQLData.ts</strong><dd><code>Merge per-panel custom chart options</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-88c0e865040a20b2c8bb7d77e7f6bd187a5b07c1645c120223bc9d59603752c3">+23/-0</a> </td> </tr> <tr> <td><strong>projections.rs</strong><dd><code>Extract top-level HAVING as structured tree</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-7a0420d3649da44b80be36d7f1043d6ff81d88395c961266882c3c700f7edff7">+570/-3</a> </td> </tr> <tr> <td><strong>search.rs</strong><dd><code>Add `HavingNode` and `LogicalOperator` schema</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+26/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Expose HAVING schema and preview config</code> </dd></td> <td><a href=""></a></td> </tr> <tr> <td><strong>AlertSettings.vue</strong><dd><code>Schema-aware threshold UI and i18n tooltips</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-1d5bfd6a1ea672884193649b1271d751d6f3b8ec84af759071c9bfd169a8ab28">+357/-405</a></td> </tr> <tr> <td><strong>PreviewAlert.vue</strong><dd><code>SQL/PromQL preview rendering and robust evaluation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-760f5f0a261910f17eb167f81802e8a52477b99a83d2d7fc1aeefc7185801795">+684/-53</a></td> </tr> <tr> <td><strong>AlertList.vue</strong><dd><code>Replace details drawer with history dialog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+39/-176</a></td> </tr> <tr> <td><strong>AddAlert.vue</strong><dd><code>Alert wizard integration updates for preview</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+148/-144</a></td> </tr> <tr> <td><strong>AlertHistoryDrawer.vue</strong><dd><code>New reusable alert details/history drawer logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-895e1bf3f8edac33d414f99c6c88bbae1098edbadf6d28e6f82a29033ed17ac0">+384/-298</a></td> </tr> <tr> <td><strong>AlertSummary.vue</strong><dd><code>Align UI summary rendering with generator output</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-c22aa1c5934b763f1d4a5a61a7e810b6bcb1d60b76b64c61cb3ce89dc0a04499">+5/-5</a> </td> </tr> <tr> <td><strong>AlertHistory.vue</strong><dd><code>Alert history view updates to new drawer flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-1efacbab3b15dacfc79063c799c30b04bf3b75415055f892203e8cf1cb414450">+1/-1</a> </td> </tr> <tr> <td><strong>FilterGroup.vue</strong><dd><code>Filter builder tweaks supporting alert wizard changes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-8d5a73bea3aa0b5c86d48cda4a61ee3e30f27797ac2a5add1ee8bd66c75bef23">+7/-5</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>config.rs</strong><dd><code>Add env override for preview time range</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+6/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Bug fix</strong></td><td><details><summary>4 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Fix PromQL evaluation using operator semantics</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-ba9b65130898444f7815fd6068bdb0dc590612f74cc893f79d91b0afc44cc851">+29/-23</a> </td> </tr> <tr> <td><strong>alert.rs</strong><dd><code>Remove custom aggregation auto-threshold override</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-574be3504bf4d855c65fd3d7a10797a970237ff552edac4962b474b3983e094e">+1/-7</a> </td> </tr> <tr> <td><strong>AlertWizardRightColumn.vue</strong><dd><code>Wizard right column rerender/placement adjustments</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-f599a1960d1ac37e352854ad368d23e080b3cec2b217df22f40d0e15a4db6986">+158/-19</a></td> </tr> <tr> <td><strong>{QueryConfig.vue,CompareWithPast.vue,Advanced.vue}</strong><dd><code>Wizard step wiring and preview refresh fixes</code> </dd></td> <td><a href=""></a></td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>*.json</strong><dd><code>Add/update alert revamp translation strings</code> </dd></td> <td><a href=""></a></td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>16 files</summary><table> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+2/-0</a> </td> </tr> <tr> <td><strong>Advanced.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-eae849f0bf6c8868f5640ce1d74862284d8e8a5330e5046c0c437e6672f4f676">+4/-5</a> </td> </tr> <tr> <td><strong>CompareWithPast.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-6606848e30caef2cda13d65cb30d6590205556259e7e6daf39cada825502d55b">+27/-27</a> </td> </tr> <tr> <td><strong>QueryConfig.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-7273c8de49b8ebf706d7bee5b275c75818c0493f41c73f00c55efe667cbd00d9">+432/-10</a></td> </tr> <tr> <td><strong>de.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+97/-2</a> </td> </tr> <tr> <td><strong>en.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+99/-2</a> </td> </tr> <tr> <td><strong>es.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+97/-2</a> </td> </tr> <tr> <td><strong>fr.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+97/-2</a> </td> </tr> <tr> <td><strong>it.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+97/-2</a> </td> </tr> <tr> <td><strong>ja.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+97/-2</a> </td> </tr> <tr> <td><strong>ko.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+97/-2</a> </td> </tr> <tr> <td><strong>nl.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+97/-2</a> </td> </tr> <tr> <td><strong>pt.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+97/-2</a> </td> </tr> <tr> <td><strong>tr.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+97/-2</a> </td> </tr> <tr> <td><strong>zh.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10470/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+97/-2</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ ### E2E Tests Added | # | Spec File | Test Name | |---|-----------|-----------| | 1 | `alerts-scheduled-features.spec.js` | Alert details dialog opens with history and action buttons work | | 2 | `alerts-scheduled-features.spec.js` | Create scheduled alert with aggregation via Builder | | 3 | `alerts-scheduled-features.spec.js` | Create scheduled alert with PromQL query | | 4 | `alerts-scheduled-features.spec.js` | SQL mode preview renders chart | | 5 | `alerts-scheduled-features.spec.js` | Would Trigger indicator displays for scheduled alerts | | 6 | `alerts-scheduled-features.spec.js` | Aggregation toggle off clears group-by fields | --------- Co-authored-by: Ashish Kolhe <ashish.j.kolhe@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
8508623444 | fix: route to accept org invite (#10517) | ||
|
|
f83f84d841 |
feat: remove mysql support (#10522)
impl #8276, Design at: #8276 |
||
|
|
b0eac49a3a | fix: [ITER 2] O2 Assistant improvements (#10473) | ||
|
|
cf98c39c81 |
fix: semantic groups, service graph, dedup, dashboard cleanup (#10502)
## Summary
- **Semantic Groups**: add JSON export button, fix broken JSON import
(`handleJsonUpdate` was a no-op), fix "Applied 0 changes" toast bug
- **Service Graph**: remove unused `availableStreams` from
`build_topology` return and API response, skip `_`-prefixed orgs in
processor
- **Dedup Config**: change `time_window_minutes` from `Option<i64>` to
`Option<i32>`, add `deserialize_optional_i32` for defense-in-depth,
sanitize empty/NaN values on frontend before sending
- **Dashboard**: remove dead `/export` endpoint (identical to GET,
unused by frontend)
## Test plan
- [x] Semantic groups: export downloads JSON, import with file upload
works, import shows correct change count
- [x] Service graph: topology loads, stream dropdown works (populated by
`loadTraceStreams`)
- [x] Dedup: clearing time window field and saving no longer returns 422
- [x] Dashboard: GET `/{dashboard_id}` still works, `/export` route
removed
- [x] `cargo check` clean, `cargo clippy` clean
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
||
|
|
9f98a593bf |
fix: print vrl errors once for the whole batch instead of every record (#10250)
### **User description**
Currently there are warning logs in the `apply_vrl_fn` function which
prints the warning for each and every record whenever there is vrl
error. If there are huge number of records, then the number of logs for
the error is also unnecessarily huge. This pr fixes this by logging the
error once for the whole batch.
___
### **PR Type**
Bug fix
___
### **Description**
- Consolidate VRL errors into batch-level logs
- Downgrade per-record warnings to debug logs
- Add info-level pipeline error logging
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["apply_vrl_fn returns (value, err)"]
B["err.is_some()?"]
C["log error once per batch"]
A -- returns --> B
B -- yes --> C
```
<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>multi_streams.rs</strong><dd><code>Batch error logging
in search_multi</code>
</dd></summary>
<hr>
src/handler/http/request/search/multi_streams.rs
<ul><li>Capture <code>err</code> from <code>apply_vrl_fn</code>
calls<br> <li> Log a single error per batch when present<br> <li> Apply
changes in both apply_over_hits branches</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10250/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+15/-4</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Cache VRL error batch
logging</code>
</dd></summary>
<hr>
src/service/search/cache/mod.rs
<ul><li>Capture <code>err</code> from <code>apply_vrl_fn</code> in cache
search<br> <li> Log VRL errors once per batch<br> <li> Update
apply_over_hits and non-apply logic</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10250/files#diff-f07bfacc0501b9c234e64b16c1dd8eb0ae8fcbe231f90c81fed72bcc94946f74">+15/-4</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>http.rs</strong><dd><code>Cluster HTTP VRL error
logging</code>
</dd></summary>
<hr>
src/service/search/cluster/http.rs
<ul><li>Extract <code>err</code> from <code>apply_vrl_fn</code> in
cluster HTTP search<br> <li> Log a single error per batch after
processing</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10250/files#diff-fe0a1bbec7ef6418120544b589a531e5144b28cd2650f99135ed8a70ac17ac03">+17/-4</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Core search VRL error
batching</code>
</dd></summary>
<hr>
src/service/search/mod.rs
<ul><li>Capture and accumulate <code>err</code> in core search logic<br>
<li> Log batch-level VRL errors in apply_over_hits and else</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10250/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+15/-4</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Error
handling</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Downgrade VRL failure logs to
debug</code>
</dd></summary>
<hr>
src/service/ingestion/mod.rs
<ul><li>Changed <code>log::warn!</code> to <code>log::debug!</code> for
VRL failures<br> <li> Preserve metrics increment on transform
failures</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10250/files#diff-7c7b5bca85f0ced652965cae66540c96f56dfcca4f4c16b77bf7b45aac203d1b">+2/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>batch_execution.rs</strong><dd><code>Info log for
pipeline error details</code>
</dd></summary>
<hr>
src/service/pipeline/batch_execution.rs
<ul><li>Added <code>log::info!</code> for pipeline error details<br>
<li> Log <code>pipeline_id</code>, <code>pipeline_name</code>, and
<code>node_errors</code></ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10250/files#diff-3f6824a6eddaf1603e5cb0f1a4311ac6a45e1ffb967266ccc1f0bba944625e69">+6/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
d3c217e28b |
refactor: simplify enterprise feature-flag handling in status handler
Introduce `enterprise_value!` macro to replace repetitive `#[cfg(feature = "enterprise")]` / `#[cfg(not(...))]` pairs. Also clean up `zo_config`, `schedulez`, `cache_status`, `config_runtime`, and related helpers: - Add `Rum::from_cfg()` constructor - Take `&mut` in `hide_sensitive_fields` to avoid cloning - Use `HashMap::with_capacity`, `fold`, and `itertools::Itertools::join` - Simplify `get_stream_schema_status` with iterator methods |
||
|
|
b26af8c2f5 |
fix: remove rca_enabled check in AI chat enabled
|
||
|
|
713fe2ef01 | feat: impl user view for llm (#10418) | ||
|
|
16afc7588c | feat: impl llm session view backend api (#10412) | ||
|
|
6a03a7675f |
feat(incidents): enrich alert dimensions from query conditions (#10399)
### **User description** ## Summary Adds dimension enrichment from alert conditions (SQL WHERE, GUI conditions, PromQL) to ensure consistent dimensions across alert firings, preventing duplicate incidents caused by incomplete result_row data. ## Problem Alert `result_row` has inconsistent fields depending on log entry completeness: - Same alert creates incidents with different dimensions - Production data shows 50% of incidents missing deployment dimension - Causes unnecessary duplicate incidents (e.g., "test_alert_1_might_break" creates 6 separate incidents for same namespaces) **Example:** ``` Alert fires 3 times: Firing #1: result_row = {namespace: "ziox"} → Incident #1 (68 alerts) Firing #2: result_row = {namespace: "ziox", deployment: "router"} → Incident #2 (23 alerts) ❌ Separate! Firing #3: result_row = {namespace: "ziox", deployment: "compactor"} → Incident #3 (19 alerts) ❌ Separate! Result: 3 incidents for same namespace ``` ## Solution Extract baseline dimensions from alert query conditions and enrich result_row: **Priority order:** 1. result_row (actual runtime data) - highest priority 2. Alert conditions (SQL/GUI/PromQL) - fills gaps with baseline 3. Service Discovery - fills remaining gaps **Supported condition types:** - ✅ SQL WHERE clauses: `WHERE namespace='prod' AND deployment='api'` - ✅ GUI conditions V1 (tree-based) and V2 (linear) - ✅ PromQL label matchers: `{namespace="prod",deployment="api"}` ## Changes - Make result_row labels mutable for enrichment - Call enterprise sql_parser to extract condition dimensions - Merge condition dimensions into labels using `.entry().or_insert()` - Add logging for dimension enrichment tracking - Update debug log message ## Impact - **Dimension consistency:** 50% → >95% - **Incident reduction:** Target -60% total (from -50% with hierarchical correlation) - **Works for:** Auto-fired and manually triggered alerts - **Performance:** <1ms overhead per alert ## Testing - Covered by enterprise integration tests (26 tests passing) - Requires enterprise PR (to be created) for sql_parser implementation - Full test suite: 92 tests passing ## Design Design at: `designs/incidents/hierarchical-correlation.md` ## Related - Depends on: Enterprise PR (creating next) - Builds on: #10XXX (hierarchical correlation) ___ ### **PR Type** Enhancement, Bug fix, Tests ___ ### **Description** - Add hierarchical incident correlation upgrades - Enrich alert labels from query conditions - Introduce upgrade window configuration defaults - Add key/dimension relationship unit tests |
||
|
|
b315f4ca08 | feat: dag graph for llm traces (#10388) | ||
|
|
e6d5b6eed5 | fix: ParserError on streams with : in name (#10394) | ||
|
|
ac57e491d6 |
fix: query usage stream for their org (#10139)
### **User description** resolve https://github.com/openobserve/o2-enterprise/issues/1168 ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Add `usage_stream_enabled` org setting flag - Provide `get_org_setting_usage_stream_enabled` function - Extend ingestion to route usage streams per org - Introduce `usage_schema` module for lazy schema init - Add `UsageData::init_for_reflection` for schema inference ___ ### Diagram Walkthrough ```mermaid flowchart LR UD["UsageData ingestion"] -- "serialize & filter" --> RD["report_data: Vec<Value>"] RD -- "ingest to meta org" --> META["ingest_reporting_data(META_ORG_ID)"] RD -- "split by org" --> PERORG["per_org_map"] PERORG -- "for each enabled org" --> INIT["ensure_usage_stream_initialized(org)"] INIT -- "then" --> INGORG["ingest_reporting_data(org)"] ``` <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>2 files</summary><table> <tr> <td><strong>organization.rs</strong><dd><code>Add default and config for usage_stream_enabled</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-4f089715a7ac4f78b45039d773f2fccbb4fbc6a409e0ab9ceee1fcf7911bc44b">+9/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Include usage_schema module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-c6255010f7a87d6acdb3ad04954fc9f2c27350ae319c53a1857b120aa06408a3">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>5 files</summary><table> <tr> <td><strong>usage.rs</strong><dd><code>Add UsageData init_for_reflection method</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+55/-0</a> </td> </tr> <tr> <td><strong>settings.rs</strong><dd><code>Handle usage_stream_enabled in HTTP settings</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-1e807254f2faf8fd09b802f71b23412f203eed289033f96bfc62b15dd997db8c">+5/-0</a> </td> </tr> <tr> <td><strong>organization.rs</strong><dd><code>Add get_org_setting_usage_stream_enabled API</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-ce65cea926a09721a8fea14d07fe188bc2b887218e95d74a8bffefb54001da50">+27/-0</a> </td> </tr> <tr> <td><strong>ingestion.rs</strong><dd><code>Route and serialize usage streams per org</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-3edd5f4ed1eed0f765b7b450ef0fbf587632e6b22302006a5e397049e297057f">+60/-5</a> </td> </tr> <tr> <td><strong>usage_schema.rs</strong><dd><code>Implement lazy schema init and unit tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10139/files#diff-20a9eccd303d49e271e64fb18c608b7ef135a710e9e057d32db9c0d13b15e1e3">+191/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
c05ae833b8 | fix: routes for billings (#10358) | ||
|
|
21155591fd | feat: map otel field to openobserve field (#10213) | ||
|
|
b11a50e4ff | fix: prevent incorrect incident correlation for alerts with empty stable dimensions (#10361) | ||
|
|
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> </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> </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> </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> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
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>
</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>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
6e8426feb3 | fix: pick up fqn based on lastest update (#10334) | ||
|
|
19034ca3a4 | feat: support memory profiling with jemalloc and cpu profiling (#10317) | ||
|
|
6a0ebc505b | fix: change domain management method from post to put (#10320) | ||
|
|
b23f6273b7 | fix: o2 assistant issues (#10315) | ||
|
|
fac4b9eecc | fix: result cache delta end time to fix duplicates during delta search (#10313) | ||
|
|
0a1d7196ce | perf: add cache statistics functionality (#10306) | ||
|
|
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>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-f7068d6fc979cc1fbc6e2bc562be53f5453fc874b367c1688adf70c0896aac62">+41/-45</a>
</td>
</tr>
<tr>
<td><strong>email.ts</strong><dd><code>Rename email template and remove
CC/subject</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-3e756aefde39bd7c780066f6ee6e22df1f2846f5e0013fd6ec568a98dd54f64b">+18/-16</a>
</td>
</tr>
<tr>
<td><strong>servicenow.ts</strong><dd><code>Rename ServiceNow template
to `prebuilt_servicenow`</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-3790cdccf9f6221cf55c86664b4cbfb65d20f3da9db719167898b8b76b698a2f">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>alert_templates.ts</strong><dd><code>Add
`get_system_templates` API call</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-fd8c4260abc3df601e4331d36b0c211eca568ee70139ad90c87247bc552fe4e2">+3/-0</a>
</td>
</tr>
<tr>
<td><strong>prebuilt_loader.rs</strong><dd><code>Add
get_prebuilt_template and fallback loader</code>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-c06292c108cc15b585a0e3318fd15d3e86c1f1a0f001ab84fff85facefd3c4d3">+420/-1</a>
</td>
</tr>
<tr>
<td><strong>templates.rs</strong><dd><code>Add ensure_system_templates
initialization</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-975d7665f1439ca49810c28554f85e513ff3a4c8b849f2bb1966536230951464">+86/-0</a>
</td>
</tr>
<tr>
<td><strong>templates.rs</strong><dd><code>Expose GET system prebuilt
templates endpoint</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-b08e274a64cc935b0cec402a04271a872b1586027a77dc0ccb84c597c3960f61">+54/-0</a>
</td>
</tr>
<tr>
<td><strong>AddDestination.vue</strong><dd><code>Update form logic for
prebuilt vs custom</code>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-1fa17c0e52becd683dec1bbee12aab6823b28c1bbedca0d5039d688527f826e5">+29/-2</a>
</td>
</tr>
<tr>
<td><strong>AlertsDestinationList.vue</strong><dd><code>Add custom
destination label logic</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+15/-2</a>
</td>
</tr>
<tr>
<td><strong>PrebuiltDestinationForm.vue</strong><dd><code>Comment out
unsupported email fields</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-606eb6f7e6e43518cc9b1f3194097c52acf3df0df9ab5945274196d7221035a0">+3/-2</a>
</td>
</tr>
<tr>
<td><strong>pagerduty.ts</strong><dd><code>Rename PagerDuty template to
`prebuilt_pagerduty`</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-a216d76143343db3aec8efe02596be53b438813aa2aa8af2fb1080e17f5540aa">+2/-2</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-262b3003a3045192e0aaccddebe76bdb29fcd68655e8bacfd486e50575a14801">+9/-9</a>
</td>
</tr>
<tr>
<td><strong>types.spec.ts</strong><dd><code>Adjust PrebuiltConfig tests
for new prefix</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-67fc167ebe4d6a433579ba9850a6d7ce3a83d97bebe410521f85775a948595fc">+4/-4</a>
</td>
</tr>
<tr>
<td><strong>alertDestinationsPage.js</strong><dd><code>Update selector
for test result element</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-57e5c53b4ef998b3d8708149620ff94dcc46807927f1a3a9e9f28ed3ebe25b0a">+3/-1</a>
</td>
</tr>
<tr>
<td><strong>alerts-destinations-prebuilt.spec.js</strong><dd><code>Add
random name for Slack destination test</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-0295825c868c1d1ed5cc194ba04843a7d5f4e58decff2593c7d9bd5b29ec33a4">+1/-0</a>
</td>
</tr>
<tr>
<td><strong>discord.spec.ts</strong><dd><code>Update Discord tests for
new prefix</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-21a02fd01b42452d1f13140715e5f81146b7a62d61d4b899deea4f30be06284e">+2/-2</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+1/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>en.json</strong><dd><code>Add custom destination translation
keys</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10301/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+5/-1</a>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</td>
</tr>
</table></details></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
||
|
|
9f86567547 | fix: search around honor size even if sql has limit (#10289) | ||
|
|
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>
</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>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
294118ecca | fix: update routing for Kinesis and GCP requests (#10297) | ||
|
|
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> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+2/-2</a> </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> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-a2667c1be522ce095796a7066e02631a7e01acc85a46573e1e3a157d2aefb7c3">+12/-10</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Expose action_server auth module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-740e95d118f8498bbd4c8b3a56528c33ee98279036f723ed37975347b58600c8">+1/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Register action_server request module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-a1cfd40da1ab6cd4db0181fd8664965034298047b3b7c3320c5385897a7c4aed">+2/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Remove old script_server handlers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-2de1185a98f50a00cfe6d7d3984957e96d92e5f5df60290a6263e96fb73bc993">+0/-185</a> </td> </tr> <tr> <td><strong>main.rs</strong><dd><code>Update init and router to action server</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-42cb6807ad74b3e201c5a7ca98b911c5fa08380e942be6e4ac5807f8377f87fc">+21/-15</a> </td> </tr> <tr> <td><strong>node.rs</strong><dd><code>Map ActionServer to ProtoRole::ScriptServer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-2f1dc99535ad93ff353f43538b436a01ee7c3d81c008db0f5dfaf45414f29ec6">+2/-2</a> </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> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-0f69b5830bc733a31dfd0fc967302084bc0bc7d2f21e92fa32ae599f2216c479">[link]</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Implement ActionServer request handlers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-c125d4ccb837b4dbf987658592af12e0858a1269c2e5ef2b1d1587bbcdb99d47">+244/-0</a> </td> </tr> <tr> <td><strong>action.rs</strong><dd><code>Add logging and error details to list_actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10255/files#diff-616df3014c553f763ea57e925f1bff7bb47f9467c632940d93a45b7b1e4c3a07">+26/-11</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
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>
</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>
</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>
|
||
|
|
9d96682470 |
refactor: remove unused incident service graph API endpoint
The service graph data is now embedded in the main incident details
response via topology_context field, eliminating the need for a
separate API endpoint and reducing HTTP round trips.
- Remove GET /incidents/{id}/service_graph route and handlers
- Remove get_service_graph service function
- Remove IncidentServiceGraph and IncidentGraphStats types
- Clean up frontend API client and tests
|
||
|
|
32e6ac9831 | fix: add session id and traceparent to ai calls (#10230) | ||
|
|
bc8aa46b4d |
fix: set dex_refresh method to get instead of POST (#10236)
### **User description**
cherry picked from v0.60.0 : the previous route for this was GET not
POST, accidentally changed in auxm migration
___
### **PR Type**
Bug fix
___
### **Description**
- Change dex_refresh route method to GET
- Revert accidental POST method change
___
### Diagram Walkthrough
```mermaid
flowchart LR
Client["Client"]
Handler["refresh_token_with_dex handler"]
Client -- "GET /dex_refresh" --> Handler
```
<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>Use GET for dex_refresh
route</code>
</dd></summary>
<hr>
src/handler/http/router/mod.rs
- Changed `/dex_refresh` route from POST to GET
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10236/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+1/-1</a>
</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>
|
||
|
|
f0ccfbe396 |
fix: use correct config flag on UI for incidents
Earlier, the UI code was using `service_graph_enabled` to show (or hide) the incidents screen, this was wrong. Now `incidents_enabled` is used and sent by the backend as part of `/config` API call. |
||
|
|
6b29f3cdc9 |
fix: sync saas changes (#10188)
### **User description** This sync the aws and azure saas related changes and cloud org related changes from v0.50.0 branch to main. Reviewers, please specifically take a look at [fix: auxm related changes](https://github.com/openobserve/openobserve/commit/1e278e9b5121d2df9757b3908ab27801bdc06383) commit, which does changes needed for auxm from actix web. Note that router changes have been done in the respective saas commit itself, as it caused conflicts. NOTE: This has not built locally to validate that everything at least compiles, as at the time of writing the main branch is not compiling with ent. ___ ### **PR Type** Enhancement ___ ### **Description** - AWS Marketplace onboarding: UI, API routes, services - Azure Marketplace onboarding: UI, API routes, services - Billing UI adapts to AWS/Azure providers - Add HttpResponse.created/found helpers - Add distributed metering lock and cloud jobs - Enforce free-tier org creation limits ___ <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>3 files</summary><table> <tr> <td><strong>router.ts</strong><dd><code>Add AWS/Azure marketplace setup routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-5cf8b2f94d45462f216d1b74cec6e139cbc94e6f5677bba1e7b55a30aaa95792">+31/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Expose aws and azure marketplace modules</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-01aa8706a5e31c9d66036669676b55c4f50e8acbbd3323a1979dc43b9611b9a2">+2/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Register marketplace webhook and API routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+23/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>16 files</summary><table> <tr> <td><strong>awsMarketplace.ts</strong><dd><code>Implement AWS Marketplace HTTP client</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-a84cf89c9eec197f49a3eafff23d45d539f711282b60175a80cb96255e877661">+64/-0</a> </td> </tr> <tr> <td><strong>azureMarketplace.ts</strong><dd><code>Implement Azure Marketplace HTTP client</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-45edda85f9d7b0e2ec5a750d112b0b52d22dce0c48aa8361e30d51cacfeee16c">+51/-0</a> </td> </tr> <tr> <td><strong>http.rs</strong><dd><code>Add HttpResponse.created and found helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-e1831572a854319ed0a69e803514466aea13a4924f4fa02f58dbf508c30a19fd">+18/-0</a> </td> </tr> <tr> <td><strong>billings.rs</strong><dd><code>Include provider field in subscription model</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-986786190d086283f70a66cc487eadc68784dd4200f8a32e6cf4c50a3d6603ca">+3/-0</a> </td> </tr> <tr> <td><strong>aws_marketplace.rs</strong><dd><code>Add AWS Marketplace registration and linking handlers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-03b179d714809fbccd4a85bbd783f2399540b515796f5afb0060ff886f872b87">+364/-0</a> </td> </tr> <tr> <td><strong>azure_marketplace.rs</strong><dd><code>Add Azure Marketplace linking handler</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-da9cf01b26c5f642ceebba9d4355bc45ccb518b4a191c38dbe3178f42884b153">+148/-0</a> </td> </tr> <tr> <td><strong>billings.rs</strong><dd><code>Enhance billing webhook and redirect logging</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-725936e3d6e955175e6100e8ca6f4437f334a2b554d6f11fa349ee9cbac70425">+64/-5</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Add distributed metering lock logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+67/-2</a> </td> </tr> <tr> <td><strong>organization.rs</strong><dd><code>Enforce free org limits in org workflow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-6b3c3c2b027c1158c0d41302cc69dfcd20ab68a6a4fa365cda403f838940bbb4">+40/-13</a> </td> </tr> <tr> <td><strong>Billing.vue</strong><dd><code>Conditional invoice tab based on provider</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-08d804667873a5d984027ad69438432a14973e0318cf78ad981bc7b9a31c1bf4">+30/-2</a> </td> </tr> <tr> <td><strong>TrialPeriod.vue</strong><dd><code>Hide trial message for AWS-billed orgs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-cc999442352001a0c7a756db0974f99ec3a21d566e9082d1b113c85ca897dafa">+25/-3</a> </td> </tr> <tr> <td><strong>plans.vue</strong><dd><code>Adapt plan view to billing providers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-a85ef89681b89f6ae045ed1c45bd3e4aa8c494a7784a8a56514def1af6eef896">+6/-1</a> </td> </tr> <tr> <td><strong>proPlan.vue</strong><dd><code>Display AWS/Azure billing chip in plan card</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-b5678b2763909484d6475adf5af690b3d382d8438520adcfc1428b66cf7ad7d5">+28/-2</a> </td> </tr> <tr> <td><strong>AwsMarketplaceSetup.vue</strong><dd><code>Add AWS Marketplace setup Vue view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-7345a61d1ba6216718c48067d9c010f069fb43222a15094b4644474eb9091cae">+445/-0</a> </td> </tr> <tr> <td><strong>AzureMarketplaceSetup.vue</strong><dd><code>Add Azure Marketplace setup Vue view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-5e29364b67f1e0a714d1d219bc4b619229068ef6e0b2312cedeabf720a0b25f1">+371/-0</a> </td> </tr> <tr> <td><strong>Login.vue</strong><dd><code>Support marketplace redirects in login flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-a135c379ef6ac8f92199ea5f7ff19a227971a9b0a87ccccf87c0268740522c2c">+21/-0</a> </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 AWS/Azure marketplace localization text</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10188/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+35/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com> Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com> Co-authored-by: udev <uddhav@openobserve.ai> Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> |
||
|
|
5426673cbd |
feat: RUM Traces correlation (#10149)
Design at: rum ### **PR Type** Enhancement, Bug fix, Tests ___ ### **Description** - Add `useTraceCorrelation` composable merging RUM and backend spans - Support `x-openobserve-trace-id`/`span-id` headers in backend - Fix span parent-child hierarchy in `setup_tracing_with_trace_id` - Add event/resource drawers for trace correlation UI - Configure CORS and `allowedTracingUrls` for tracing ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Browser RUM SDK"] -- "x-openobserve-trace-id/span-id" --> B["Backend HTTP server"] B -- "get_or_create_trace_id / setup_tracing" --> C["OpenTelemetry context"] C -- "spans in _traces stream" --> D["APM traces"] E["useTraceCorrelation"] -- "searchService queries" --> F["_rumdata / _traces"] E -- "compute performance breakdown" --> G["CorrelationData"] G -- "render in drawers" --> H["EventDetailDrawer / ResourceDetailDrawer"] ``` <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>9 files</summary><table> <tr> <td><strong>useTraceCorrelation.ts</strong><dd><code>Composable for fetching RUM-trace correlation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-12b26c2158a3ef524819fe592bbd31ad7eda4fa3775633317bdc98924fcbe500">+178/-0</a> </td> </tr> <tr> <td><strong>http.rs</strong><dd><code>Parse `x-openobserve-trace-id` and span propagation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-3b50a69c1ec2f63f8eebb5f9880e17826463a586768aed3e3e15242833609d6b">+135/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Maintain span hierarchy in trace setup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-1b15316505c31acccb26ba66d920fdb0894567d08d2bf1e3457716d128a67b83">+25/-0</a> </td> </tr> <tr> <td><strong>search_stream.rs</strong><dd><code>Enter HTTP span before child search span</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-642de43ff6b19ae41087a9f1efc02d8b0b873809e0c92cbddfac1a30ef3f1184">+18/-10</a> </td> </tr> <tr> <td><strong>multi_streams.rs</strong><dd><code>Enter HTTP span before multi-stream span</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+9/-5</a> </td> </tr> <tr> <td><strong>EventDetailDrawer.vue</strong><dd><code>Add EventDetailDrawer correlation UI</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-f168d8fad42a6fd39bd4e4b499de54953b7b420831df98b40402b662dfefa88e">+723/-0</a> </td> </tr> <tr> <td><strong>ResourceDetailDrawer.vue</strong><dd><code>Add ResourceDetailDrawer correlation UI</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-cec3736de55c8f0a415cdbe912d9c630cce6f91aaf92c694b64bf2f7e4989b5b">+317/-0</a> </td> </tr> <tr> <td><strong>TraceDetails.vue</strong><dd><code>Merge RUM events into trace details view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-bc7fe6b6339ee2cde6494c0982d4b860847447e79f7431f07d598e0446df06f2">+207/-22</a></td> </tr> <tr> <td><strong>TraceDetailsSidebar.vue</strong><dd><code>Improve trace sidebar formatting & correlation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-0017bc08d8da96af6433770d0b274f825798d24401b33ce091b16a50fbaf4b57">+159/-102</a></td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>main.ts</strong><dd><code>Configure RUM init and allowed tracing URLs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-37b29c5a3b76595194070205d9a0cdedcd717bf7c4367022d1e2667395962f2e">+53/-41</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Allow custom tracing headers in CORS</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+4/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>http.rs</strong><dd><code>Add tests for trace ID header validation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-3b50a69c1ec2f63f8eebb5f9880e17826463a586768aed3e3e15242833609d6b">+135/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>SearchResult.vue</strong><dd><code>Clean up formatting in log results</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+180/-78</a></td> </tr> <tr> <td><strong>PlayerEventsSidebar.vue</strong><dd><code>Tidy up player events sidebar formatting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-a7d04eb87cd7588ba4811d79c6d32696a58d737a24931258329be4f96cee7610">+28/-8</a> </td> </tr> <tr> <td><strong>FrustrationEventBadge.vue</strong><dd><code>Increase padding on frustration badges</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-092623e0f5b95471d97cd4f39f065d35ea154df9051a44908c1aec3ea84ca682">+7/-3</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>package.json</strong><dd><code>Bump `@openobserve/browser-*` to beta versions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+2/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>TraceCorrelationCard.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-e0d662d92758dec703db8d4d5be5a694f3454ee43512515488be24a2531a96a6">+291/-0</a> </td> </tr> <tr> <td><strong>SessionViewer.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/10149/files#diff-9f7a183be1e2cfcb3c3c852c059f66003dd4f3f586421b012e1b835724929ca1">+122/-6</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com> |
||
|
|
7ebb4c9940 |
fix: backfill icons and edit timerange (#10209)
- Use consistent styling for backfill UI. - The timerange picker on edit page should display the backfill timerange by default. |
||
|
|
484c4a953a |
feat: (Incidents) endpoint to update incident severity and title
- create endpoint `PATCH .../incident/{id}/update` to update incident
severity and title
- add MCP description for incident APIs
- consolidate the `/update_status` endpoint with this
- a few optimizations and code cleaning
- unit tests
|
||
|
|
471df611cc |
chore: remove redundant ai handlers (#10208)
### **PR Type** Other ___ ### **Description** - Remove legacy `agent` chat handlers - Remove AI `prompt` modules and endpoints - Cleanup router and OpenAPI docs entries - Drop `ai_prompts` job watch and cache ___ <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Miscellaneous</strong></td><td><details><summary>4 files</summary><table> <tr> <td><strong>chat.rs</strong><dd><code>Delete agent chat handler implementation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-a0e13f17674a3657690f9e5829da2f1c4a6a957fe8a95f9c44b854643b5fe9b7">+0/-400</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Remove agent submodule reference</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-f80e4a8dc1babfaf6eb98474ff7baff339efc6a8d0d5cc8042e028a6f218513e">+0/-16</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Drop ai prompt module import</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-5be832620ef4597524cd781e129bac956d8729132b076257e7d5ca71fbda1f33">+0/-1</a> </td> </tr> <tr> <td><strong>prompt.rs</strong><dd><code>Delete ai prompt handlers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-4435a6dbd41255db8c334941643b22ef4eb401004370566cc56394d2e74bab6b">+0/-220</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Remove agent module registration</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-a1cfd40da1ab6cd4db0181fd8664965034298047b3b7c3320c5385897a7c4aed">+0/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Remove agent and ai prompt routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+0/-7</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Drop ai_prompts watch and cache jobs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+0/-6</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>openapi.rs</strong><dd><code>Remove agent and prompt API docs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10208/files#diff-edb8ce232c0cd08366879f642788a75d99f6bab64b4c0e77391281fdb9241e90">+0/-4</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
3750d71444 | fix: add vectorscan feature and refactor enterprise dependencies (#10199) | ||
|
|
1b55a7f07e |
fix: backfill job UI should use pipeline id in the api endpoint (#10020) (#10106)
### **User description**
Frontend bug fixes for backfill jobs
- it should send the pipeline id in the api endpoint
- pause/unpause now works
- view details on backfill jobs now work
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Added cancel alias and pipeline ID in APIs
- Unified ConfirmDialog usage in job list
- Implemented timezone-aware date formatting
- Clarified UTC alignment warnings in dialogs
___
### Diagram Walkthrough
```mermaid
flowchart LR
subgraph Service
BS["backfill.ts"]
end
subgraph Utils
U["timestampToTimezoneDate"]
end
subgraph Components
JD["BackfillJobDetails.vue"]
JL["BackfillJobsList.vue"]
CB["CreateBackfillJobDialog.vue"]
EB["EditBackfillJobDialog.vue"]
CD["ConfirmDialog.vue"]
end
BS --> JD
BS --> JL
BS --> CA["cancelBackfillJob alias"]
JD --> U
JL --> U
CB --> U
EB --> U
JL --> CD
```
<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>backfill.ts</strong><dd><code>Add cancelBackfillJob API
alias</code>
</dd></summary>
<hr>
web/src/services/backfill.ts
- Added `cancelBackfillJob` alias for `enableBackfillJob`
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10106/files#diff-157d2d264744485c530ea8132fee4012a95a2c6a38ad084ac8dbac834a30edd1">+16/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>BackfillJobsList.vue</strong><dd><code>Unify confirm
dialogs and timezone formatting</code>
</dd></summary>
<hr>
web/src/components/pipelines/BackfillJobsList.vue
<ul><li>Added dynamic <code>confirmDialog</code> replacing multiple
dialogs<br> <li> Passed <code>pipelineId</code> to details view<br> <li>
Imported <code>timestampToTimezoneDate</code> and timezone-aware
ranges<br> <li> Updated action functions to include
<code>pipeline_id</code></ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10106/files#diff-db1a66743e977238714590c7537ae278070f396c6710f1bf94fd8859b87e6a65">+55/-36</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>EditBackfillJobDialog.vue</strong><dd><code>Enhanced
edit dialog UTC warning details</code>
</dd></summary>
<hr>
web/src/components/pipelines/EditBackfillJobDialog.vue
<ul><li>Adjusted warning layout with UTC alignment header<br> <li> Added
UTC specification in list items<br> <li> Minor styling tweaks for
warning icon</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10106/files#diff-2a07eaacb9ae9e3d8fa477d5142011fe5ac8eb5f176967405b59e7ec37be6d5a">+12/-5</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Error
handling</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>BackfillJobDetails.vue</strong><dd><code>Refactor job
details: pipeline ID and timezone dates</code>
</dd></summary>
<hr>
web/src/components/pipelines/BackfillJobDetails.vue
<ul><li>Imported <code>timestampToTimezoneDate</code> util<br> <li>
Added <code>pipelineId</code> prop and include in API calls<br> <li>
Added error notification when job info missing<br> <li> Replaced
<code>date-fns</code> formatting with timezone-aware util</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10106/files#diff-82c39386df707d78a3f6d34dcd07211728fc3bb03f79639045f4e36601053931">+20/-5</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>CreateBackfillJobDialog.vue</strong><dd><code>Clarify
UTC alignment in creation dialog</code>
</dd></summary>
<hr>
web/src/components/pipelines/CreateBackfillJobDialog.vue
<ul><li>Clarified warning title and list subtitle to include UTC<br>
<li> Updated time alignment requirements to mention UTC</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10106/files#diff-0f5545b0a3f981757160babdff6b33897a5d420d3f37b58499f4510595806cce">+3/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
37994fa5ac |
fix: service graph and incident updates (cherry-pick #10121) (#10175)
### **User description** Enhancement, Tests, Bug fix ___ - Introduce alert flow graph replacing service topology - Add `AlertNode`/`AlertEdge` types & serialization - Rewrite `enrich_with_topology` incremental node/edge logic - Update UI components and spec tests for new graph UI ___ ### **PR Type** Enhancement, Bug fix, Tests ___ ### **Description** - Introduce typed `AlertNode`/`AlertEdge` and serialization - Rewrite `enrich_with_topology` to build alert flow graph - Update UI with D3-force layout and ECharts rendering - Add DB get/update_topology helpers and tests --------- Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> |
||
|
|
25b1684516 |
fix: create incident for user-triggered alerts as well (#10170)
### **User description** Originally, incidents were created when an alert was triggered through alert manager evaluation, not when the same alert was triggered by a user on the UI. This is now taken care of. Additionally, a bug in incident API's response on the UI resulted in a discrepancy in the count of alert triggers. This is fixed now. + clippy fixes. ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Create incidents for user-triggered alerts - Support synthetic alert metadata for correlation - Update metadata only on dimension changes - Clippy and import cleanups across handlers |