36c2ef4418
feat: anamoly detection p2 ( #10940 )
...
Design at: anomaly-detection
---------
Signed-off-by: loaki07 <rustyloaki@gmail.com >
Co-authored-by: Bhargav <BJP232004@GMAIL.COM >
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Loakesh Indiran <undefined@users.noreply.github.com >
Co-authored-by: ByteBaker <42913098+ByteBaker@users.noreply.github.com >
Co-authored-by: Shrinath Rao <shnath@openobserve.ai >
2026-03-19 21:36:06 +05:30
Ashish Kolhe and github-actions[bot]
8a378cda5e
fix: patterns duplication issue ( #10949 ) ( #10965 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-19 08:27:44 +05:30
Omkar Kesarkhane and github-actions[bot]
912d02ea08
fix(traces): fixed trace explorer error spans text ( #10958 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-18 22:28:56 +05:30
Hengfei Yang
f53c858035
feat: add configuration option for field values in FST logs page ( #10951 )
2026-03-18 17:28:19 +08:00
Sai Nikhil
1a0873d2b9
fix: exclude include should persist after run query ( #10915 )
2026-03-17 09:05:17 +08:00
Neha P and Claude
8a3eee1d3b
fix: add data-test attribute to SQL query content in Search Job Inspector ( #10922 )
...
Add data-test="inspector-sql-query-content" attribute to the SQL query
pre element in the View Query dialog for reliable test automation.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-16 20:21:22 +05:30
ktx-vaidehi
6932a17b87
refactor: dashboard loading api files ( #10773 )
2026-03-16 18:32:35 +05:30
Sai Nikhil
e47d6a46d0
fix: show atleast 2 decimal value and some text change on service graph edge side panel ( #10912 )
...
This PR fixes the isssue in e - 1351
2026-03-15 18:24:01 +05:30
Sai Nikhil
b3c45b3279
fix: issue 10821 ( #10910 )
...
This PR fixes the issue in #10821
2026-03-15 12:55:15 +05:30
Omkar Kesarkhane
eacc5e8b2f
fix: resolve dashboard GridStack empty grid race condition ( #10904 )
...
Call loadDashboard before loading the SQL parser to prevent GridStack
from mounting when dashboardData is null.
2026-03-14 03:40:04 +05:30
Bhargav
4dd2f9adbb
fix: dedup field is there then enabled flag true else false ( #10886 )
2026-03-13 22:59:04 +08:00
Omkar Kesarkhane
663ab7bacc
fix: In traces prevent duplicate filter when same field condition is reapplied ( #10894 )
2026-03-13 21:38:06 +08:00
Sai Nikhil and Hengfei Yang
53150a2290
fix: search inspect issues ( #10888 )
...
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com >
2026-03-13 18:24:42 +08:00
Sai Nikhil
fdd3d91016
fix: service graph v2 UI ( #10889 )
2026-03-13 13:58:58 +05:30
Sai Nikhil
d2861433fa
fix: search inspector UI ( #10749 )
2026-03-13 09:57:29 +08:00
Bhargav
eff23e31b7
fix: added unit test cases for services layer ( #10867 )
2026-03-12 15:27:50 +05:30
Omkar Kesarkhane
54d00d5e78
fix: Traces span kind mapping ( #10838 )
2026-03-11 23:07:42 +05:30
Bhargav
ecd1cf9e90
fix: patterns ui fix ( #10865 )
2026-03-11 21:54:17 +05:30
ae988c7219
feat: Search on all spans in Traces ( #10826 )
...
Design at: Traces
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <undefined@users.noreply.github.com >
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai >
2026-03-10 22:34:50 +05:30
Bhargav
f8e8cc8dd3
fix: Logs datatype icon remove main ( #10827 )
2026-03-10 17:11:33 +05:30
7320831928
feat: Traces Duration field improvement ( #10814 )
...
Design at: traces
---------
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <undefined@users.noreply.github.com >
2026-03-10 15:42:40 +05:30
Bhargav and Shrinath Rao
856f9a74b7
fix: duration filter fix ( #10785 )
...
Co-authored-by: Shrinath Rao <shnath@openobserve.ai >
2026-03-09 15:37:54 +05:30
a5533226be
feat: Traces list UI improvements ( #10735 )
...
Design at : traces
1. Added Pagination
2. Add support to sort traces by duration and timestamp
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <undefined@users.noreply.github.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-09 11:46:52 +05:30
Omkar Kesarkhane
26bc1c4b13
fix: traces table llm keys formatting ( #10787 )
2026-03-07 17:42:06 +05:30
Bhargav
ff36340f91
fix: Field list values filter fix ( #10786 )
2026-03-07 12:01:20 +05:30
Bhargav
66d68ce9fb
fix: 10744 add metric grouping in metrics correlation tab infra network others ( #10767 )
2026-03-06 11:10:06 +05:30
Omkar Kesarkhane
866aa0c3f8
fix: streaming getting reset when returned to traces page ( #10760 )
2026-03-05 22:01:51 +05:30
e9c39a4295
feat: cross linking support for dashboards and logs page ( #10652 )
...
Design at:
https://github.com/openobserve/designs/tree/main/cross-linking
---------
Co-authored-by: loaki07 <rustyloaki@gmail.com >
Co-authored-by: Loakesh Indiran <66478092+Loaki07@users.noreply.github.com >
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-05 16:17:31 +05:30
Abhay Padamani
db92a92599
fix: build tab switch error msg issue ( #10758 )
2026-03-05 15:11:05 +05:30
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>
2026-03-04 17:55:01 +05:30
Bhargav
56d790825d
fix: Pipeline stream fields list improvements ( #10733 )
2026-03-04 16:01:13 +05:30
Bhargav
4c3b01c599
fix: traces datatype icon & values api implementation ( #10721 )
2026-03-03 13:19:23 +05:30
Bhargav
7cc41e7ffe
Logs page UI issues ( #10707 )
2026-03-02 11:53:41 +05:30
Subhra264
90a279134b
feat: introduce rbac for logs patterns, logs insights and cache refresh ( #10662 )
2026-03-01 16:20:10 +08:00
b2207c05e4
fix: added resource name in error message ( #10644 )
...
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Bhargav <undefined@users.noreply.github.com >
2026-02-28 23:20:39 +08:00
Bhargav and hengfeiyang
1eacfd6121
fix: added datatype icon on logs page field list ( #10697 )
...
Co-authored-by: hengfeiyang <hengfei.yang@gmail.com >
2026-02-28 16:19:55 +05:30
Bhargav
9497f99f84
fix: removed quotation mark from json keys ( #10698 )
2026-02-28 14:23:16 +05:30
Omkar Kesarkhane and Bhargav
d1190b1549
fix: traces color generation ( #10693 )
...
Co-authored-by: Bhargav <BJP232004@GMAIL.COM >
2026-02-28 05:31:56 +05:30
Bhargav and Hengfei Yang
eba3453d85
fix: 10682 logs page field values improvement ( #10689 )
...
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com >
2026-02-27 22:02:00 +08:00
Omkar Kesarkhane
fe7d9f12a9
fix: Traces list UI improvements ( #10670 )
2026-02-27 19:32:34 +08:00
Bhargav
72b90a93e3
fix: Feat nlp mode ( #10638 )
2026-02-27 18:26:36 +08:00
3ef82654a5
fix: logs field values caching issue ( #10616 )
...
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <undefined@users.noreply.github.com >
2026-02-27 09:40:01 +05:30
sai nikhil kethe
ff7625870a
fix: service graph trend chart
2026-02-26 17:07:34 +05:30
ByteBaker
57d8f58a41
feat(service-graph): prev-slot baseline latency for edge coloring
...
Backend:
- Add `baseline_p50/p95/p99_latency_ns: Option<u64>` to `ServiceEdge`; omitted when None
- `get_current_topology` queries the previous time slot (same duration, one slot older)
serially after the current-window query, aggregates per-edge weighted-average latency,
and attaches the result as baseline fields on each edge
- `aggregate_baselines` computes `SUM(pXX * requests) / SUM(requests)` per client→server pair
- `EdgeTrendResponse` drops `p50_avg/p95_avg/p99_avg`; history endpoint now returns raw data points only
- Update `build_topology` signature and all call sites (incidents.rs) to accept baselines map
- Reduce duplicate topology API calls on page load by adding a loading guard
Frontend:
- Populate `edgeBaselines` from topology response `baseline_p95_latency_ns` instead of from history endpoint
- Edge color in graph and tree modes uses baseline ratio (>2× = light red, >1.5× = orange, within = green),
falling back to absolute p95 thresholds when no baseline is available
- Edge color is now latency-only; error rate coloring is for nodes only
2026-02-26 17:07:34 +05:30
sai nikhil kethe
cb9bd12811
fix: cleanup
2026-02-26 17:07:34 +05:30
ByteBaker
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)
2026-02-26 17:07:34 +05:30
Bhargav
ae011ace69
fix: Issue 10602 main ( #10614 )
2026-02-24 12:11:32 +05:30
Abhay Padamani
02327edb79
fix: visualization select * query issue on load ( #10621 )
2026-02-23 18:32:52 +05:30
25c0fe6382
feat: query builder support on logs page ( #10305 )
...
- #10446
Design at :
https://github.com/openobserve/designs/tree/main/auto-query-builder-on-logs-page
# Logs Query Builder - Behavior Guide
What happens in different scenarios when using the Build tab.
---
## Switching to Build Tab - Scenarios
### Scenario 1: No Query, SQL Mode OFF
**Starting state:**
- Query editor is empty
- SQL Mode is OFF
- Stream "default" is selected
**What happens when you click Build:**
1. SQL Mode turns ON automatically
2. Query is generated: `SELECT * FROM "default"`
3. Quick Mode turns ON (if enabled in config)
4. Build tab opens in **Custom SQL Mode**
5. Chart type: **Table** (with dynamic columns = true)
---
### Scenario 2: No Query, SQL Mode ON
**Starting state:**
- Query editor is empty
- SQL Mode is ON
- Stream "default" is selected
**What happens when you click Build:**
1. Query is generated: `SELECT * FROM "default"`
2. Build tab opens in **Builder Mode**
3. Chart type: **Line** (default)
---
### Scenario 3: Simple SELECT * Query
**Starting state:**
- Query: `SELECT * FROM "logs"`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed but no explicit fields found (`*` = all columns)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
4. Quick Mode turns ON (SELECT * pattern detected)
5. Query editor is **editable**
---
### Scenario 4: Histogram Query (Time Series)
**Starting state:**
- Query: `SELECT histogram(_timestamp) as time, count(*) as count FROM
"logs" GROUP BY time`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully
2. Build tab opens in **Builder Mode**
3. Chart type: **Bar** (default chart type)
4. Fields populated: X-axis = histogram, Y-axis = count
---
### Scenario 5: Count Only Query (No Grouping)
**Starting state:**
- Query: `SELECT count(*) as total FROM "logs"`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully
2. Build tab opens in **Builder Mode**
3. Chart type: **Metric** (big number display - only Y-axis, no X-axis)
---
### Scenario 6: Query with 3+ GROUP BY Fields
**Starting state:**
- Query: `SELECT status, method, host, count(*) FROM "logs" GROUP BY
status, method, host`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully
2. Build tab opens in **Builder Mode**
3. Chart type: **Table** (too many grouping fields for chart)
---
### Scenario 7: Simple JOIN Query
**Starting state:**
- Query: `SELECT a.field, b.field FROM "stream1" a JOIN "stream2" b ON
a.id = b.id`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully
2. Build tab opens in **Builder Mode**
3. Chart type: **Bar** (default)
4. JOIN is recognized and shown in builder
---
### Scenario 8: Nested JOIN Query
**Starting state:**
- Query: `SELECT * FROM "a" JOIN ("b" JOIN "c" ON b.x = c.x) ON a.y =
b.y`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (nested JOIN with parentheses)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
4. Query editor is **editable**
5. Field selectors are **hidden**
---
### Scenario 9: CTE Query (WITH clause)
**Starting state:**
- Query: `WITH recent AS (SELECT * FROM "logs" WHERE _timestamp > now()
- interval '1 hour') SELECT * FROM recent`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (CTE)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
4. Query editor is **editable**
---
### Scenario 10: Subquery
**Starting state:**
- Query: `SELECT * FROM (SELECT status, count(*) FROM "logs" GROUP BY
status) subq`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (subquery)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
---
### Scenario 11: UNION Query
**Starting state:**
- Query: `SELECT * FROM "logs1" UNION SELECT * FROM "logs2"`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (UNION)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
---
### Scenario 12: Window Function Query
**Starting state:**
- Query: `SELECT *, ROW_NUMBER() OVER (PARTITION BY status ORDER BY
_timestamp) FROM "logs"`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (window function)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
---
### Scenario 13: Nested Function Query
**Starting state:**
- Query: `SELECT ceil(count(*)) as rounded_count FROM "logs"`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (nested function - function inside
function)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
---
### Scenario 14: JSON Operations Query
**Starting state:**
- Query: `SELECT data->>'name' as name FROM "logs"`
- SQL Mode is ON
**What happens when you click Build:**
1. **Complex pattern detected** (JSON operator)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
---
### Scenario 15: CASE/WHEN Query
**Starting state:**
- Query: `SELECT CASE WHEN status >= 500 THEN 'error' ELSE 'ok' END as
status_type, count(*) FROM "logs" GROUP BY status_type`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully (CASE/WHEN is supported)
2. Build tab opens in **Builder Mode**
3. Chart type: **Bar** (default)
4. CASE/WHEN shown as "raw" field type
---
### Scenario 16: Multiple JOINs (Flat)
**Starting state:**
- Query: `SELECT a.field as "field1", b.field as "field2" FROM "a" INNER
JOIN "b" AS stream_0 ON a.x = b.x INNER JOIN "c" AS stream_1 ON b.y =
c.y GROUP BY field1, field2 ORDER BY field1 ASC`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully (flat JOINs are supported)
2. Build tab opens in **Builder Mode**
3. Chart type: **Bar** (default)
---
### Scenario 17: Opening Shared Link (First Time)
**Starting state:**
- URL contains `build_data` parameter with chart type "bar"
- Query in URL: `SELECT status, count(*) FROM "logs" GROUP BY status`
**What happens:**
1. Build tab opens
2. Query is parsed successfully
3. Chart type: **Bar** (restored from URL - first toggle)
4. Build tab opens in **Builder Mode**
---
### Scenario 18: Switching Back to Build Tab (After First Time)
**Starting state:**
- Previously visited Build tab
- URL still has `build_data` with chart type "bar"
- Query: `SELECT count(*) FROM "logs"` (metric query)
**What happens:**
1. Build tab opens
2. Query is parsed successfully
3. Chart type: **Metric** (auto-selected, URL ignored on subsequent
toggles)
---
### Scenario 19: Invalid SQL Syntax
**Starting state:**
- Query: `SELEC * FORM "logs"` (typos)
- SQL Mode is ON
**What happens when you click Build:**
1. **Parse error** (invalid SQL)
2. Build tab opens in **Custom SQL Mode**
3. Chart type: **Table** (with dynamic columns)
4. Query editor is **editable** (so user can fix the query)
---
### Scenario 20: Query with WHERE Filters
**Starting state:**
- Query: `SELECT histogram(_timestamp), count(*) FROM "logs" WHERE
status = 500 AND method = 'GET' GROUP BY 1`
- SQL Mode is ON
**What happens when you click Build:**
1. Query is parsed successfully
2. Build tab opens in **Builder Mode**
3. Chart type: **Bar** (default)
4. Filters populated in filter section
---
## Summary Table
| Query Type | Mode | Chart Type |
|------------|------|------------|
| SELECT * | **Custom** | **Table** |
| Histogram + count | Builder | Bar |
| Count only (no GROUP BY) | Builder | Metric |
| 1-2 GROUP BY fields | Builder | Bar |
| 3+ GROUP BY fields | Builder | Table |
| Simple JOIN | Builder | Bar |
| CASE/WHEN | Builder | Bar |
| Multiple flat JOINs | Builder | Bar |
| CTE (WITH clause) | **Custom** | **Table** |
| Subquery | **Custom** | **Table** |
| Nested JOIN | **Custom** | **Table** |
| UNION/INTERSECT/EXCEPT | **Custom** | **Table** |
| Window functions | **Custom** | **Table** |
| Nested functions | **Custom** | **Table** |
| JSON operations | **Custom** | **Table** |
| Invalid SQL | **Custom** | **Table** |
---
## Quick Mode Auto-Enable
Quick Mode is automatically enabled when switching to Build tab if:
| Condition | Quick Mode |
|-----------|------------|
| SQL Mode was OFF | ✅ Enabled |
| Query is `SELECT * FROM ...` | ✅ Enabled |
| Complex aggregation query | ❌ Not changed |
**Requires:** `quick_mode_enabled = true` in config
---
## SQL Mode Auto-Enable
| Starting State | After Clicking Build |
|----------------|---------------------|
| SQL Mode OFF | SQL Mode **ON** |
| SQL Mode ON | SQL Mode ON (no change) |
**Build tab always requires SQL Mode to be ON.**
---
## Chart Type Priority
When auto-selecting chart type:
1. **Custom Mode?** → Table
2. **3+ GROUP BY fields?** → Table
3. **Only Y-axis (no X, no breakdown)?** → Metric
4. **Everything else** → Bar (default)
**Exception:** First visit with shared link uses chart type from URL.
---
## Builder Mode vs Custom Mode
| Aspect | Builder Mode | Custom Mode |
|--------|--------------|-------------|
| Query Editor | Read-only | Editable |
| Field Selectors | Visible | Hidden |
| When Used | Parseable queries | Complex/unparseable queries |
| Default Chart | Bar/Metric | Table |
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech >
2026-02-23 16:54:15 +05:30
Omkar Kesarkhane
0332a055d0
fix: Ignore external RUM errors ( #10489 )
2026-02-23 11:53:10 +08:00