Commit Graph
2461 Commits
Author SHA1 Message Date
Bhargav da20b53633 fix: applied debounce for absolute time range (#11465)
Fixes: https://github.com/openobserve/o2-enterprise/issues/1566
2026-04-26 07:30:32 +00:00
cc466132a7 chore: new home page (#11458)
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: Ashish Kolhe <undefined@users.noreply.github.com>
2026-04-25 19:18:21 +00:00
Sai NikhilandBhargav a7333fe546 fix: show include or exlcude fro timestamp field (#11460)
This pr fixes the issue #11450 

We observed that during auto UDF execution, the _timestamp field was
being included both in the schema and the user-defined schema. The UI
was not designed to handle this duplication. This issue does not occur
when users manually add fields through the Stream page, as _timestamp is
not added to the user-defined schema in that flow. We have now handled
this scenario.

---------

Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
2026-04-25 16:55:29 +00:00
Omkar Kesarkhane 87272a86f9 fix: In traced duration field added max option (#11464)
#11452 
#11453
2026-04-25 14:43:03 +00:00
Omkar Kesarkhane ea38de99a0 fix: Incorrect duration values were displayed in logs-details correlation traces tab (#11462)
#11446 
Traces in the Logs correlation panel were showing wrong durations
because they were read from /latest (cached summaries). Using
/latest_stream delivers the actual trace records with correct duration
data.

#11463 
Updated FlameGraphView.vue so that spans with a computed width below
0.1% of the total trace duration are rendered with a minimum 0.1% width
instead of being dropped — ensuring all spans remain visible regardless
of how short they are.
2026-04-25 14:19:01 +00:00
Hengfei YangandClaude Opus 4.7 f897aa2cb2 feat(o2ai): render CLI tool_result summary and command (#11449)
## Summary
- Render `summary.return_code`, `stdout_lines`, `stderr_lines`, and
`truncated` in the chat tool-call details panel so CLI tool results show
parsed info like MCP tools do.
- Whitelist `command` in `getToolCallDisplayData` and add a "Command"
row with a copy button so the actual CLI command the agent ran is
visible.

## Context
The o2-ai server already emits a uniform `tool_result` shape for CLI
tools (see openobserve/o2-ai#96 — wait for that to merge):
```json
{
  "type": "tool_result",
  "tool": "cli_kubectl",
  "success": true,
  "message": "Exited 0 (12 lines stdout)",
  "summary": { "return_code": 0, "stdout_lines": 12, "stderr_lines": 0 },
  "call_args": { "command": "get pods -n default" },
  "call_id": "call-uuid-v7"
}
```
`ContentBlock.summary` was already being captured from the event — the
template just had no conditionals for the CLI fields. This PR adds them.

## What this does NOT do
- Does not show raw `stdout`/`stderr` text (server currently only sends
line counts). If we want inline output, that's a separate backend
change.
- Does not add a custom header format for CLI — the default
`block.message` ("Exited 0 (12 lines stdout)") renders fine as plain
text.

## Test plan
- [x] `npm run type-check` — clean
- [ ] Manually verify in dev chat that a CLI tool call (`kubectl get
pods`) shows the Exit code / Stdout / Stderr rows and the Command row
with copy button
- [ ] MCP tools (SearchSQL, StreamList) still render the existing
Results / Duration rows unchanged

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 15:32:07 +00:00
Sai Nikhil abac6d95db fix: should convert non strings to strings for histogram stack (#11440) 2026-04-24 14:21:33 +00:00
Bhargav 15d695200e feat: Issue 11352 persist stream (#11445)
Design at: designs/ui

`ZO_PERSIST_STREAM_SELECTION`, default `false`
2026-04-24 14:06:26 +00:00
929f9d88a3 fix: split metrics into Node, Pod, Network, and Other tabs in Traces (#11399)
#11360

---------

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>
2026-04-24 08:55:24 +00:00
Sai Nikhil e1ea6f966b fix: show histogram y axis as unit numbers (#11435) 2026-04-24 05:25:55 +00:00
Harsh MahajanandShrinath Rao c535fe4402 fix: adding config to disable custom-llm-model-pricing (#11430)
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2026-04-24 11:01:28 +05:30
ktx-kirtan 8bdd333a0f Revert "feat: dashboard validation sync from BE" (#11437)
Reverts openobserve/openobserve#11034
2026-04-24 10:38:50 +05:30
Sai Nikhil 7b3bea4fc7 fix: remove labels from analze and inspect buttons (#11431) 2026-04-24 11:03:57 +08:00
Bhargav 74fea9cd8f fix: Issue 1538 autorun loading (#11428) 2026-04-23 17:23:28 +00:00
aec4a083d9 fix: stack histogram based on stream fields (#11390)
This PR fixes the issue in #11353 

 ## New Env
```sh
name = "ZO_HISTOGRAM_BREAKDOWN_FIELDS",
help = "Comma-separated ordered list of stream fields used for stacked histogram breakdown. First match wins."
default = "severity,log_level,level,status"
```

## Flow Chart

```
UI histogram request (is_ui_histogram = true)
                │
                ▼
    ┌───────────────────────┐
    │  is_multi_stream_search?│
    └───────────────────────┘
         │ yes          │ no
         ▼              ▼
  breakdown_field    stream_names.first()
      = None              │
         │                ▼
         │       infra::schema::get(org, stream, type)
         │                │
         │         ┌──────┴──────┐
         │       fails          ok
         │         │              │
         │         ▼              ▼
         │   breakdown_field   detect_histogram_breakdown_field(fields)
         │       = None              │
         │                   priority scan (case-insensitive):
         │                     1. severity?  ──yes──▶  breakdown_field = severity
         │                     2. log_level? ──yes──▶  breakdown_field = log_level
         │                     3. level?     ──yes──▶  breakdown_field = level
         │                     4. status?    ──yes──▶  breakdown_field = status
         │                     5. none match ──────▶  breakdown_field = None
         │                          │
         └──────────────────────────┘
                          │
                          ▼
          convert_to_histogram_query(sql, streams, multi, breakdown_field)
                          │
             ┌────────────┴────────────┐
          None                      Some(field)
             │                          │
             ▼                          ▼
   SELECT zo_sql_key,        SELECT zo_sql_key,
          zo_sql_num                "field" AS zo_sql_breakdown,
   FROM stream                      zo_sql_num
   WHERE ...              FROM stream
   GROUP BY zo_sql_key    WHERE ...
   ORDER BY zo_sql_key    GROUP BY zo_sql_key, zo_sql_breakdown
                          ORDER BY zo_sql_key
             │                          │
             └────────────┬─────────────┘
                          │
                          ▼
                    execute search
                          │
                          ▼
         Response {
           hits: [{ zo_sql_key, zo_sql_breakdown?, zo_sql_num }]
           histogram_breakdown_field: Option<String>
         }
                          │
             ┌────────────┴────────────┐
          None                      Some(field)
             │                          │
             ▼                          ▼
   generateHistogramData()    generateHistogramData()
   flat map:                  breakdown map:
   key → count                (key, category) → count
   xData / yData              breakdownSeries per category
             │                          │
             ▼                          ▼
     convertLogData()         convertStackedLogData()
     single-series            multi-series stacked
     ECharts options          ECharts options
                              + per-category color (palette)
                              + scrollable legend
             │                          │
             ▼                          ▼
     flat bar chart          stacked bar chart
      (unchanged)            (one color per category)
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bjp232004 <551527+bjp232004@users.noreply.github.com>
Co-authored-by: Loakesh Indiran <66478092+Loaki07@users.noreply.github.com>
Co-authored-by: Loakesh Indiran <rustyloaki@gmail.com>
2026-04-23 12:06:49 +00:00
Omkar Kesarkhane ab4cff4894 fix: updated trace spans size (#11420) 2026-04-23 17:42:11 +05:30
ktx-vaidehi 6c31d98ec0 fix: dashboard table chart render if no label (#11409) 2026-04-23 16:17:46 +05:30
Bhargav 749a56c6b1 fix: Histogram loading issue stream switch (#11414) 2026-04-23 17:39:41 +08:00
78b7b7b622 feat: dashboard validation sync from BE (#11034)
Design at:
https://github.com/openobserve/designs/blob/main/dashboards/dashboard-validation-sync

---------

Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: udev <uddhav@openobserve.ai>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Abhay Padamani <undefined@users.noreply.github.com>
2026-04-23 08:13:30 +00:00
Sai Nikhil bacdeab047 fix: show refresh button inline (#11405) 2026-04-23 13:34:35 +05:30
Bhargav 465c1f0188 fix: persist include/exclude selection after switching between them (#11402) 2026-04-23 13:34:14 +05:30
65666e4ed9 chore: last refreshed for logs and traces (#11398)
<img width="2658" height="420" alt="image"
src="https://github.com/user-attachments/assets/90d7bd1a-012d-4185-a832-35135d696baf"
/>
<img width="2640" height="486" alt="image"
src="https://github.com/user-attachments/assets/d9543813-1cca-4f83-8da6-a12b7514a986"
/>

---------

Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-23 11:30:00 +05:30
Bhargav 989dd4c22d fix: deadloop fix while error response (#11391) 2026-04-22 19:33:05 +00:00
Bhargav 16c542d4d1 fix: Auto run query feature (#11376) 2026-04-22 23:01:08 +08:00
Chaitanya Sistla f8a64ccfcb Feat: Add cloudformation stack-set support (#11268) 2026-04-22 23:00:38 +08:00
Sai Nikhil 78b32b88e3 fix: report folder issues (#11362)
1. search across folders is not working
2. when enabling search across or disabling it calling an api which is
not needed
3. while creating report the add folder is not there
4. while edigint the report user is able to change the folder which is
not consistent with alerts
5. when clicking on any folder if it still loading and user is moved
another folder it shoudl display that folder but it is redirecting user
to the previous folder that was clicked
2026-04-22 12:27:04 +00:00
Omkar Kesarkhane ed6e5086f5 fix: added tooltips for formatted span and error count (#11373)
1. Added tooltips displaying the actual counts for spans and formatted
error counts.
2. Removed unused code related to max spans in the trace tree.
2026-04-22 12:46:03 +00:00
Harsh Mahajan 3d52f4abd2 chore: LLM observability user-pricing (#10781) 2026-04-22 20:40:12 +08:00
dcfbbce906 fix: removed spans limit from trace details (#11333)
#11280

---------

Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
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>
2026-04-21 16:30:02 +00:00
ktx-vaidehi 79154bcbce fix: dashboard markline text overlap (#11355)
#11029
2026-04-21 12:53:23 +00:00
ktx-vaidehi 4a6bb5326b fix: dashboard table chart copy cell format (#11357) 2026-04-21 12:04:14 +00:00
Sai Nikhilandgithub-actions[bot] 350d3ad768 fix: eval templates UI update (#11356)
updates the UI of evaluation templates 
<img width="2992" height="1676" alt="image"
src="https://github.com/user-attachments/assets/36ed81c3-cb2a-41b5-a495-6f52d816fde0"
/>
<img width="1496" height="838" alt="image"
src="https://github.com/user-attachments/assets/21bb5ad7-a105-4519-a8e2-2336170aebd1"
/>
<img width="2992" height="1676" alt="image"
src="https://github.com/user-attachments/assets/e6dc9050-d185-4417-87b2-5d94c4cea6ad"
/>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-21 11:57:59 +00:00
32009bd2a5 feat: dashboard auto complete suggestion for sql (#11251)
Design at:
https://github.com/openobserve/designs/blob/main/dashboards/sql-autocomplete/design.md

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: undefined <undefined@users.noreply.github.com>
2026-04-21 09:36:06 +00:00
4ca1e3005d fix: corelation adaptive sampling (#11346)
Co-authored-by: Neha P <neha@openobserve.ai>
Co-authored-by: Claude <noreply@anthropic.com>
2026-04-21 09:12:29 +00:00
Sai Nikhilandgithub-actions[bot] cec668b271 fix: add alert v3 - more issues (#11347)
check all labels and static text to get camel case or first letter
capital
update static text to use from language file
when you click on view query arrow beside filter, the graph disappears
icons size to be consistent on alert list when checkboxes are selected
Add folder in alert import needs to be consistent with other Add folder
UI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-21 05:50:47 +00:00
b313248b55 fix: email mismtach cloud (#11340)
This fixes issues
1. on cloud FE would not do case insensitive comparison when checking
user's role
2. in invites flow BE would not do case insensitive comparison for
checking user's invites

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2026-04-20 15:31:51 +00:00
9433404e32 feat: dashboard refactor to table chart to tanstack table (#11036)
Design at:
https://github.com/openobserve/designs/blob/main/dashboards/tanstack-table-refactor/design.md

- #11191

---------

Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2026-04-20 10:40:20 +00:00
Copilotandbjp232004 a399737015 fix: Always show field-value search when values exist across field list panels (#11324)
Field-value search in expanded field panels was gated by page-size
thresholds, so it disappeared when returned values were fewer than the
requested size. This update makes search visibility data-driven: show it
whenever values exist; hide it only when there are no values.

- **Shared UI behavior update (logs/traces/pipeline/alerts)**
- Updated `FieldValuesPanel` search visibility logic to depend on value
presence rather than `defaultValuesCount` threshold.
- This applies everywhere the shared panel is used, including logs,
traces, pipeline, and alerts field lists.

- **Targeted spec updates**
  - Revised `FieldValuesPanel.spec.ts` to reflect intended behavior:
    - search hidden when no values exist
    - search visible when values exist even below default fetch size
- search remains visible when a search response is empty but cached
values still exist

- **Code snippet (behavior change)**
  ```ts
  const showValueSearch = computed(
    () =>
      cachedValues.value.length > 0 ||
      (props.fieldValues?.values?.length ?? 0) > 0,
  );
  ```

- **screenshot**
- No suitable UI screenshot is included: the available capture is a
login screen and does not demonstrate the field-values panel behavior.

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `download.cypress.io`
> - Triggering command:
`/home/REDACTED/work/_temp/ghcca-node/node/bin/node node dist/index.js
--exec install` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/openobserve/openobserve/settings/copilot/coding_agent)
(admins only)
>
> </details>

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bjp232004 <551527+bjp232004@users.noreply.github.com>
2026-04-20 10:38:01 +00:00
Copilotandbjp232004 6cf4f7f286 fix: header profile tooltip truncation for long user emails (#11329)
In cloud builds, the user identity tooltip in the header truncates/wraps
long email addresses, making the logged-in user hard to read on hover.
This change updates the tooltip to size to content and keep the value on
a single line.

- **Tooltip rendering update (`web/src/components/Header.vue`)**
- Applied a dedicated class to the profile tooltip
(`header-user-tooltip`).
- Moved sizing behavior into component styles (instead of inline styles)
for maintainability.
  - Ensured long identities are displayed fully with:
    - `width: auto`
    - `max-width: none`
    - `white-space: nowrap`

- **Targeted coverage (`web/src/components/Header.spec.ts`)**
- Added a focused assertion that the profile tooltip uses the new class,
locking in the intended styling hook.

- **Visual reference**
- Reported issue screenshot:
https://github.com/user-attachments/assets/c416a4e3-787c-43fe-af37-28723753f3e3

```vue
<q-tooltip
  anchor="top middle"
  self="bottom middle"
  class="header-user-tooltip"
>
  {{ user.given_name ? user.given_name + " " + user.family_name : user.email }}
</q-tooltip>

<style scoped lang="scss">
:deep(.header-user-tooltip) {
  width: auto;
  max-width: none;
  white-space: nowrap;
}
</style>
```

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `download.cypress.io`
> - Triggering command:
`/home/REDACTED/work/_temp/ghcca-node/node/bin/node node dist/index.js
--exec install` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/openobserve/openobserve/settings/copilot/coding_agent)
(admins only)
>
> </details>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bjp232004 <551527+bjp232004@users.noreply.github.com>
2026-04-20 10:30:40 +00:00
ByteBakerandAshish Kolhe 907a3c74db fix: simplify _correlate API (#11301)
Co-authored-by: Ashish Kolhe <ashish.j.kolhe@gmail.com>
2026-04-19 10:54:07 +05:30
Omkar Kesarkhane 805b07d524 fix: duration chart tooltip was hidden in Traces explore (#11319)
#11318
2026-04-17 18:04:33 +00:00
Sai Nikhil fbfa48367a fix: delete alert id while exporting and delete while importing (#11317)
This Pr fixes the issue #11315
2026-04-17 15:06:39 +00:00
Bhargav 7c8c6af802 fix: ui fixes (#11314) 2026-04-17 13:38:34 +00:00
ktx-vaidehi 38d132a248 fix: dashboard table chart time conversion in format (#11309) 2026-04-17 12:44:51 +00:00
Subhra264 f45da519f3 feat: introduce api for report folders (#11261)
Ref https://github.com/openobserve/openobserve/issues/11219

Design at: dashboards/REPORT_FOLDER_VIEW_UI.md
2026-04-17 12:00:09 +00:00
Abhay Padamani da75598b95 fix: render panel from left to right as well (#11297)
- #11296
2026-04-17 11:39:38 +00:00
Sai NikhilandBhargav 3d1d52269b fix: apply bg color to start button (#11306)
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
2026-04-16 16:43:15 +00:00
Sai Nikhil 7357931433 fix: issue #11167 (#11302)
1. When "Apply VRL" or "Run Query" is clicked, now calls _search
(normal) when no multi-time-range windows are configured, and
_search_multi only when multi-windows are present.
2. "Query Result" pane now shows a "results across all time windows"
badge only when multi-windows are configured, so users know the results
are aggregated across multiple time ranges.
2026-04-16 12:39:19 +00:00
Sai Nikhilandktx-vaidehi d0e2039bf4 fix: anamoly ui latest (#11293)
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
2026-04-16 15:26:49 +05:30
1337a04058 fix: alert revamp version 3 (#11253)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 13:15:39 +05:30