mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-06 16:09:41 +00:00
a8b22a2da242994db57ddce3280b434cc26fa12b
841
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a8b22a2da2 |
fix: show usage chart on license page (#10692)
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com> Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com> |
||
|
|
418ccaa01e |
fix: llm evaluations (#10612)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> |
||
|
|
d961b34f00 | refactor: standardize sort order handling in trace queries (#10725) | ||
|
|
de338650bb | chore: enhance search inspector API (#10720) | ||
|
|
90a279134b | feat: introduce rbac for logs patterns, logs insights and cache refresh (#10662) | ||
|
|
d8f219d85e | feat: add keyword field to values_stream API (#10690) | ||
|
|
fe7d9f12a9 | fix: Traces list UI improvements (#10670) | ||
|
|
b170136e4b | fix: profiling file path (#10681) | ||
|
|
a513d51eb4 | feat: support order by duration for traces (#10676) | ||
|
|
75a56bf496 |
feat: service graph edge latency trend & interaction overhaul
Backend:
- New enterprise-only endpoint: GET /{org_id}/traces/service_graph/edge/history
- Returns time-series P50/P95/P99 latency with request-count-weighted baselines
- OSS returns 403; empty result returned gracefully if stream doesn't exist
Frontend — Interaction Model:
- Click-to-panel replaced with hover tooltip for edge interactions
- Tooltip shows compact stats (request count, error rate, latencies) on hover
- "Show trend" button fetches and renders a live P50/P95/P99 sparkline inline
- Tooltip stays open when moused-over; results cached per edge key
- Edge panel component retained, now includes its own latency trend chart section
Frontend — Edge Coloring:
- Edges now colored relative to 24h weighted-average P95 baseline when available
- Falls back to absolute threshold coloring when no baseline data exists
Frontend — Chart Rendering:
- Switched to SVG render mode for sharper output
- devicePixelRatio passed to chart init to fix blurry Retina display rendering
- View type switch no longer recreates chart (no chartKey increment); prevents replay of expand animation
- Tooltip handlers re-registered after every view switch for both tree and graph modes
Tests:
- Updated to reflect removed edge panel flow
- chartKey stability on view switch now asserted (was: increment expected)
|
||
|
|
fd347c8e63 |
fix: export tracing to _meta org when ZO_SEARCH_INSPECTOR_ENABLED enable (#10650)
|
||
|
|
f196ac62e9 | fix: clippy & fmt | ||
|
|
50117dc279 |
fix(incidents): race conditions, input validation, and TitleChanged event
- Wrap append() and record_alert() in DB transactions to fix read-modify-write race conditions on concurrent alert correlation - Add length/blank validation on comment endpoint (max 10,000 chars) - Guard update_severity from emitting SeverityOverride on no-op changes - Add TitleChanged event type with from/to/user_id fields, wire into update_title, render in activity timeline |
||
|
|
fa402819a9 |
feat(incidents): add event timeline system with Activity tab
Incident Events:
- New `incident_events` table (JSONB array per incident, PK on `(org_id, incident_id)`)
- `IncidentEvent` struct with 12 typed variants: `Created`, `Alert`, `SeverityUpgrade`,
`SeverityOverride`, `Acknowledged`, `Resolved`, `Reopened`, `DimensionsUpgraded`,
`AssignmentChanged`, `Comment`, `AIAnalysisBegin`, `AIAnalysisComplete`
- Constructors on `IncidentEvent` (e.g. `::alert()`, `::resolved()`, `::comment()`)
- `increment_alert(&mut self)` for compaction: same alert only compacts if it's the
last event in the array, preserving interleaving (A x5, B x3, A x2)
- Severity fields use `IncidentSeverity` enum, not strings
Backend:
- Migration: `m20260214_000001_create_incident_events_table`
- DB ops: `init`, `get`, `append`, `record_alert` (with compaction), `delete`
- Emit events at all mutation points: incident creation, alert correlation,
dimensions upgrade, status change, severity change, auto-resolve
- `user_id` passed from HTTP auth headers through to all events
- `auto_resolve_stale()` now returns resolved IDs for event emission
- API: `GET /v2/{org_id}/alerts/incidents/{id}/events`
- API: `POST /v2/{org_id}/alerts/incidents/{id}/events/comment`
Frontend:
- `IncidentTimeline.vue`: vertical timeline with icon/color per event type,
alert compaction display, comment input, refresh button
- Activity tab added to `IncidentDetailDrawer.vue`
- `incidents.ts`: `getEvents()` and `postComment()` API methods
|
||
|
|
5503c0171d | fix(search): replace unwrap() panics with safe error handling in VRL apply-over-hits path (#10573) | ||
|
|
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) | ||
|
|
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> |
||
|
|
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> ___ |
||
|
|
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) | ||
|
|
b23f6273b7 | fix: o2 assistant issues (#10315) | ||
|
|
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) | ||
|
|
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> ___ |
||
|
|
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) | ||
|
|
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. |