Commit Graph
1163 Commits
Author SHA1 Message Date
Shrinath Rao f9afa5e324 ci: rename regression workflow to Playwright Bug-Fix Regression Tests (#14201) 2026-09-04 13:48:08 +00:00
Shrinath RaoandShrinath-O2 7b0eee331b test(autoe2e): generated E2E tests for #14160 (genai-v5-parts) (#14183)
Co-authored-by: Shrinath-O2 <214651540+Shrinath-O2@users.noreply.github.com>
2026-09-04 13:43:25 +00:00
Shrinath RaoandShrinath-O2 f838d0264f test(autoe2e): generated E2E tests for #14181 (alerts-add-alert-org-identifier) (#14182)
Co-authored-by: Shrinath-O2 <214651540+Shrinath-O2@users.noreply.github.com>
2026-09-04 13:43:10 +00:00
Shrinath Rao 0d2d590865 test: deflake 6 new-entrant merge-queue flakes (Logs/Reports/Metrics/Dashboards/Alerts) (#14195) 2026-09-04 08:50:44 +00:00
dependabot[bot]andHengfei Yang 5f5a612109 chore(deps): bump qs from 6.15.2 to 6.16.0 in /tests/ui-testing (#14136)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2026-09-04 08:40:29 +00:00
Shrinath RaoandShrinath-O2 71f6702dee test(autoe2e): generated E2E tests for #13978 (condition-null-empty-operators) (#14008)
Co-authored-by: Shrinath-O2 <214651540+Shrinath-O2@users.noreply.github.com>
2026-09-04 04:36:25 +00:00
Shrinath RaoandShrinath-O2 cd0eff459d test(autoe2e): generated E2E tests for #14046 (alert-list-frequency-retries) (#14061)
Co-authored-by: Shrinath-O2 <214651540+Shrinath-O2@users.noreply.github.com>
2026-09-04 04:05:22 +00:00
Shrinath Rao 2dc7c4281e test: deflake dashboard color-by-series canvas color race (#14168) 2026-09-03 13:42:11 +00:00
Shrinath Rao fb79ee908a test: retry dashboard create on transient 5xx (cross-worker folder race) (#14162) 2026-09-03 11:46:54 +00:00
Shrinath Rao 9db5ba9bee test: deflake dashboard column filter-search value-list race (#14157) 2026-09-03 10:43:37 +00:00
Shrinath Rao 960f6f21b3 test(alerts): add Alert Library e2e suite (#14152) 2026-09-03 10:39:42 +00:00
4f02b20d4a fix: workflow ux improvements - 2 (#14027)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ashish Kolhe <ashish.j.kolhe@gmail.com>
2026-09-03 10:16:24 +00:00
Shrinath Rao 5624e04a26 test: fix residual query-inspector flake in visualize Table/Line tests (#14146) 2026-09-03 08:59:42 +00:00
Shrinath Rao d1235408bc test: deflake VRL table-chart warning + join-family siblings (batch 4) (#14144) 2026-09-03 08:33:59 +00:00
Shrinath Rao 7d1b648457 test: deflake visualize-vrl + SLO language-switch tests (batch 3, part 2) (#14142) 2026-09-03 05:42:30 +00:00
Shrinath Rao 6a41728290 test: deflake metrics promql-builder tests (batch 3, part 1) (#14141) 2026-09-03 04:49:15 +00:00
Shrinath Rao dbfdd12c7a test: deflake ingestion-token toggle (follow-up to #14124) (#14132) 2026-09-03 04:38:11 +00:00
Shrinath Rao 635382f4b3 test: deflake 5 UI tests (batch 2) (#14124) 2026-09-02 22:25:29 +00:00
Neha PandShrinath Rao 758793481e test(logs): cover multi-stream match_all pagination (#14108)
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2026-09-02 13:19:26 +00:00
Ashish KolheandShrinath Rao 226b401da8 ci: changed-path smoke selection for Playwright PR runs (#14107)
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2026-09-02 13:14:04 +00:00
Shrinath Raoandhengfeiyang ec0b08dcee fix: stop quick mode dropping the RUM identity fields, and deflake 5 UI tests (#14113)
Co-authored-by: hengfeiyang <hengfei.yang@gmail.com>
2026-09-02 12:11:26 +00:00
Prabhat Sharma 478824a41e feat(alerts): add curated alerts from the library in bulk (#14054) 2026-09-02 00:54:25 +00:00
1329d6a81a feat: pending period for alerts (#14009)
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
2026-09-01 17:51:47 +00:00
Shrinath Rao 770a4215c0 fix: dismiss nav flyout before folder hover in alerts deleteFolder (#14082) 2026-09-01 14:58:41 +00:00
ktx-akshay 1acaae9a65 test: dashboard panel time alpha stabilization (#14060) 2026-09-01 13:08:52 +00:00
Neha P d7468650b0 test(workflows): cover conditions, the incident trigger, and destination delivery (#14065) 2026-09-01 10:52:10 +00:00
Loakesh Indiran 8c9d38cc6c fix: paginate multi-stream logs with a single UNION ALL BY NAME query (#14057) 2026-09-01 07:23:09 +00:00
Neha P 5642284f4b test(workflows): un-skip the UI specs and fix the builder page object (#14048) 2026-09-01 05:51:54 +00:00
Hengfei Yang 00ae748ae8 ci: reuse one API binary and unify backend cache (#14030) 2026-09-01 04:58:41 +00:00
Sai Nikhilandgithub-actions[bot] 4a6f454cb7 fix: alert history / alert list issues (#14046)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-01 04:47:06 +00:00
Neha P 0fb66d4f26 test: fail-loud when WORKFLOWS_REQUIRED=1 instead of silent skip (#14040) 2026-08-31 12:06:53 +00:00
Ashish Kolheandgithub-actions[bot] 07807995e4 feat: public status pages built on synthetics checks (#13974)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-31 11:45:51 +00:00
dependabot[bot]andHengfei Yang cbbf36d65a chore(deps): bump fast-xml-parser and react-native in /tests/mobile-testing/apps/o2-rum-tester (#13897)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2026-08-31 10:33:58 +00:00
Shrinath Rao 3d4d779c17 test(sentinel): re-establish POM compliance for drifted specs (SLO/Infra/composite + Dashboards) (#14028) 2026-08-31 07:50:44 +00:00
Prabhat Sharmaandgithub-actions[bot] b90e61410e fix: repair false-success gates and the deterministic Playwright failures they masked (#14025)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-31 01:01:03 +00:00
Prabhat Sharma 9a77c6b878 feat: Slack destination setup via OAuth and app manifest (#14020) 2026-08-30 14:29:57 +00:00
Hengfei Yang eedc773cd7 chore: remove action scripts / action server (#14000) 2026-08-28 01:57:53 +00:00
Hengfei Yangandgithub-actions[bot] f0df035b49 feat(alerts): add is_null/is_not_null/is_empty/is_not_empty condition operators for alerts, pipelines and evaluator filters (#13978)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-27 14:32:47 +00:00
3e33b0e262 fix: workflow UX improvements (#13929)
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-27 12:29:14 +00:00
Neha P e74d5ea210 test(workflows): parametrized condition-eval matrix (17 cases) (#13999) 2026-08-27 11:55:36 +00:00
Abhay Padamani 1c629727f7 fix: metric prefix not visible initially and table chart icons alignment (#13996) 2026-08-27 10:50:11 +00:00
ktx-akshay 57da03f4af test(dashboards): stabilize 7 dashboard specs against the alpha environment (#13972) 2026-08-27 10:36:00 +00:00
5cee735c55 fix: database and alerts page UI improvement (#13963)
Co-authored-by: Huaijin <haohuaijin@gmail.com>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-27 06:12:14 +00:00
819dd668d9 fix(dashboards): large dashboards freeze the browser on open (#13970)
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: mmosarafO2 <mosraf@openobserve.ai>
2026-08-26 17:11:24 +00:00
ktx-akshay 33f0a23f96 test(dashboards): fix broken and false-green E2E specs on alpha (#13912) 2026-08-26 10:28:37 +00:00
b09b56e25a feat(llm): add Phase 3.0 experiment workflows (#13778)
## Summary

- allow dataset rows without an expected output across management APIs
and UI flows
- add immutable experiment preview, creation, listing, persistence,
RBAC, and super-cluster synchronization
- add Experiment as an evaluation target with slot hydration, scoring,
and result indexing
- harden idempotent creation, scorer-version pinning, score-index setup,
and upgrade migrations

## Tickets

- Related to
[openobserve/o2-enterprise#2398](https://github.com/openobserve/o2-enterprise/issues/2398)
- Related to
[openobserve/o2-enterprise#2399](https://github.com/openobserve/o2-enterprise/issues/2399)
- Related to
[openobserve/o2-enterprise#2400](https://github.com/openobserve/o2-enterprise/issues/2400)

## Paired Enterprise PR

-
[openobserve/o2-enterprise#2413](https://github.com/openobserve/o2-enterprise/pull/2413)

## Validation

- focused Rust and frontend tests for the affected dataset and
experiment seams
- experiment migration test passes
- upgraded local environment applies schema version 68 and returns 200
from GET /api/team3/experiments

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-26 05:47:37 +00:00
91e524ce2d feat(dashboards): interactive table cells with in-place Logs Explorer drawer (#13675)
Design At: designs/dashboards/interactive-table-cell-drilldown

What changed
New component: DashboardLogDrawer.vue

Clicking a cell in a dashboard table panel now opens a side drawer
scoped to that field/value filter. The drawer shows filtered log events
with a SQL editor (Ctrl+Enter to run, Reset to restore default),
server-side pagination with configurable page size (50/100/200/500), and
an event detail sub-drawer on row click.

Event detail has three tabs:

Insights — Field Anomaly Profile (rarity scoring vs current page), Event
Timeline (SVG histogram of event frequency across the selected time
range), Log Patterns (grouped by structure via /patterns/extract, each
with "Open in Logs" that prefills the log explorer), and Surrounding
Events (events from the same stream in a configurable ±1–10 min window,
paginated 20/page with per-row expand)
Details — key/value field list with copy buttons
JSON — raw event JSON
Modified: PanelSchemaRenderer.vue

Fixed type mismatch: route.query.cell_panel returns string; panel schema
IDs may be number — comparison now uses String() on both sides
Added cell_event_ts to the URL param cleanup list so it's cleared when
the outer log drawer closes
Modified: en-US.json — added complete panel.logExplorer key tree
including the new insights subsection

Modified: design-debt-baseline.json — updated baseline after audit (new
file's rawVarInComponent uses are all in sanctioned color-mix()
positions)

URL persistence
All drawer state is encoded in URL params (cell_panel, cell_field,
cell_value, cell_stream, cell_stype, cell_t0, cell_t1, cell_event_ts).
Sharing the URL reopens both drawers and restores the exact event — on
mount it does a WHERE _timestamp = {ts} targeted fetch (size 1) rather
than searching through paginated results.

Zero backend changes
Uses only existing endpoints: search (SQL), search (histogram via
histogram() function), and patterns/extract.

---------

Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-25 10:31:13 +00:00
Vamsi Karthik R 9a0a272103 test(mobile): P0 session-replay upload assertion (#13945)
## What

Adds a **P0 data-layer assertion** to the mobile RUM masking suite:
after driving the replay flow, it queries the **`_sessionreplay`**
stream and requires that segments actually landed. A rendered dashboard
is no longer accepted as proof that Session Replay works.

This is the check that catches **#13942** — on iOS the RN Session-Replay
bridge posts segments to Datadog's `/api/v2/replay` instead of
OpenObserve's `/replay`, so they're rejected (401, no error surfaced)
and **zero** segments reach `_sessionreplay`. RN iOS session replay
silently records nothing.

## RC

The masking suite verified Session Replay **only through the dashboard
UI** (does the player render + is PII masked). It had no data-layer
check that segments actually reached OpenObserve. So a broken upload
showed only as "the replay didn't render" — ambiguous (a benign
dashboard-render flake *or* a real non-upload) — and that non-render had
been scoped to a skip. The bug slipped through the ambiguity.

## The fix

- **P0 (data):** `maskingSuite` asserts `_sessionreplay` received
segments for the session (`> 0`). Non-upload → hard fail.
Platform-agnostic; catches this whole class of bug.
- **P1 (privacy):** the dashboard render + PII scan stays, run only when
the player paints (segments-landed-but-player-didn't = dashboard flake,
not an SDK bug).
- Removed the `requireReplay` skip hack. **`ios-native` masking
unskipped** → runs as hard P0 (native iOS SDK uses the correct `/replay`
endpoint).
- **`rn-ios` masking is a plain test that hard-FAILS until #13942 is
fixed** — **no skip, no expected-fail marker.** The P0 assertion sees 0
segments → red; it **passes on its own** the moment the SDK starts
uploading. The fix lives in `openobserve-react-native-rum`.

## Expected result per platform

| Platform | Masking (P0 upload + PII) | Why |
|---|:-:|---|
| rn-android | ✅ pass | RN replay works on Android |
| **rn-ios** | ❌ **fail** | **#13942** — 0 replay segments |
| android-native | ✅ pass | native SDK, correct endpoint |
| ios-native | ✅ pass | native SDK, correct endpoint |

So whenever iOS runs (the `mobile-e2e` label / an SDK dispatch), the iOS
job is **red until the SDK fix lands** — an intentional, self-healing
signal.

## Validation (local, real device/data runs)

- `android-native` + `ios-native` masking **pass** the new P0 (segments
present in `_sessionreplay`).
- A non-uploading session returns **0 segments → P0 correctly fails** —
the exact rn-ios symptom.

Scope: only `tests/mobile-testing/` — 3 files.
2026-08-25 04:36:18 +00:00
Shrinath Rao f5b17c98db test: stabilize logoManagement _meta org navigation on alpha1 (#13934)
Fixes intermittent alpha1 failure of
`GeneralTests/logoManagement.spec.js` ("Logo Upload on Management").

**Cause:** the `_meta` general-settings navigations raced the org-switch
redirect to `/web/`, failing three different ways across the 3 retries —
home-icon timeout, missing logo upload field, and `goto` interrupted by
nav to `/web/`. Not a regression (spec unchanged since #13391); ~50%
flake on alpha.

**Fix:** `openMetaGeneralSettings()` retries the goto until the URL
sticks on `_meta` settings and the page renders; dropped the redundant
`navigateToManagement()` menu click that competed with the goto.
2026-08-24 12:05:37 +00:00
Ashish Kolhe b2639c4f9f feat(dbm): Database Monitoring (#13918)
## What this is

Database Monitoring: an aggregation and presentation layer over
telemetry OpenObserve already ingests. It reads three vantages — client
spans, server-vantage logs, and collector metrics — and turns them into
per-statement, per-instance and per-database views.

No new storage engine and no new ingest path. Statements are normalized
and rolled up into a stats stream, and the read API queries that stream
through the existing search path.

## Shape of the change

| | |
|---|---|
| Read endpoints | 17 |
| UI pages | 8 (plus a shell) |
| Commits | 141 |

**Backend** — `src/core/src/db_monitoring/` holds the non-HTTP half
(normalization, rollup, server-vantage parsing). The read API lives in
`src/api/management/src/request/db_monitoring/` as a handler / models /
service trio; the service layer is split one file per feature.

**Frontend** — `web/src/views/DatabaseMonitoring/`, with shared logic in
`web/src/composables/dbm/`.

## Feature availability

Databases, queries, query detail and history, endpoints, samples,
activity, insights, plans, server metrics, server queries, server
samples, instances, instance metrics, badges — is available in OSS.

## Reviewing this

It is a large diff, and most of it is additive: 327 files, and the two
largest non-test files are the shared service module and the deadlocks
service. Suggested order:

1. `src/api/management/src/request/db_monitoring/handler.rs` — the 17
entry points and their gating
2. `src/api/management/src/request/db_monitoring/service/common.rs` —
auth, SQL building, the shared read path
3. `src/core/src/db_monitoring/rollup.rs` — how the stats stream is
produced
4. `web/src/views/DatabaseMonitoring/` — the pages

Time semantics are the subtlest part. Rollup rows are stamped at the
window **end**, so reads are exclusive at both edges; `stats_read_range`
carries the reasoning and a test pins it.

## Known follow-ups

- **The server-vantage stream named as `_o2_dbm_server`.** 

## Testing

- Rust: unit tests across the DBM core and read service, including
SQL-building, auth-gating and normalizer cases
- Web: unit tests across the DBM pages and composables
- Playwright: DBM suite covering the pages and cross-page navigation

Verified before opening: OSS and enterprise builds both compile
warning-free, `cargo fmt` clean, `vue-tsc` clean, and the full web unit
suite passes (44,704 tests).
2026-08-24 11:08:00 +00:00