Commit Graph
5583 Commits
Author SHA1 Message Date
Bhargav ef385421ba fix: decouple AI mode from SQL mode toggle on logs page (#11075)
Clicking the AI button in the query editor was toggling SQL mode off,
and closing it was forcing SQL mode back on. Removed the mutual
exclusivity between nlpMode and sqlMode so they operate independently.
2026-03-30 15:28:21 +05:30
ByteBaker 881a6611c0 feat: simplify service discovery feature (#10946)
## Core changes

- **Schema**: `service_streams_dimensions` table dropped entirely.
Service rows gain `disambiguation JSONB`, `set_id`, and
`field_name_mapping JSONB`. Incidents: `correlation_key VARCHAR`
replaced with `group_values JSONB`.
- **Migrations**: 6 new sea-orm DSL migrations (raw SQL strings removed
for cross-backend consistency; GIN index creation remains raw SQL — no
native sea-orm support).
- **`ServiceIdentityConfig`**: `fqn_priority_dimensions` replaced with
`distinguish_by` list. `max_total_service_rows` renamed from
`max_total_services` (unit = rows, not logical services).
- **Meta types**: `CorrelationConfidence`, `ConfidenceLevel`,
`DimensionMatchDetail` removed from `correlation.rs`.
`SemanticFieldGroup` → `FieldAlias` (fields are aliases to group IDs,
not full group descriptors).
- **Handlers**: Authorization checks added to list, correlate, and
get-config endpoints. `_grouped` endpoint removed; `_recommendations`
endpoint added.
- **Cleanup job**: Leader election added (smallest UUID ingester wins);
hardcoded 1h interval + 30-day stale threshold replace the removed
configurable env vars.
- **Processing mode removed**: Compactor-mode path removed; single
ingester-only path remains.
- **UI**: FQN priority config replaced with `distinguish_by` field
selector. New `ServiceIdentitySetup.vue` guided setup flow.
`is_scope`/`is_stable`/`normalize` toggles removed from semantic group
editor. ~13-14 FQN-related i18n keys removed from each of 12 locale
files.

## Env var changes

Removed (15):
- `O2_SERVICE_STREAMS_SAMPLE_EVERY_NTH_STREAM` → renamed (see below)
- `O2_SERVICE_STREAMS_SAMPLE_EVERY_NTH_FILE`
- `O2_SERVICE_STREAMS_RECORD_SAMPLE_PERCENT`
- `O2_SERVICE_STREAMS_STABLE_DIMENSION_THRESHOLD`
- `O2_SERVICE_STREAMS_TRANSIENT_DIMENSION_THRESHOLD`
- `O2_SERVICE_STREAMS_MAX_STREAMS_PER_SERVICE`
- `O2_SERVICE_STREAMS_MIN_CORRELATION_CONFIDENCE`
- `O2_SERVICE_STREAMS_PROCESSING_MODE`
- `O2_SERVICE_STREAMS_BATCH_MAX_SERVICES`
- `O2_SERVICE_STREAMS_CLEANUP_INTERVAL_MINS`
- `O2_SERVICE_STREAMS_STALE_THRESHOLD_HOURS`
- `O2_SERVICE_STREAMS_MAX_TOTAL_DIMENSIONS`
- `O2_SERVICE_STREAMS_MAX_TOTAL_VALUES`
- `O2_SERVICE_STREAMS_CHANNEL_CAPACITY`
- `O2_SERVICE_STREAMS_MAX_FLUSH_RETRIES`

Renamed:
- `O2_SERVICE_STREAMS_SAMPLE_EVERY_NTH_STREAM` →
`O2_SERVICE_STREAMS_SAMPLE_RATE` (default: 10)

Kept:
- `O2_SERVICE_STREAMS_ENABLED` (default: false)
- `O2_SERVICE_STREAMS_SAMPLE_WINDOW_SECS` (default: 300)
- `O2_SERVICE_STREAMS_BATCH_FLUSH_INTERVAL_SECS` (default: 600)
- `O2_SERVICE_STREAMS_MAX_TOTAL_SERVICES` (default: 500,000)

Added:
- `O2_SERVICE_STREAMS_TRACKED_ALIAS_IDS` — comma-separated alias group
IDs tracked system-wide by default; "service" always implicit

Design at: designs/correlation/proposal-v2
2026-03-30 13:47:40 +05:30
Huaijin beaeaee55b fix: report to remote not blocking (#11053) 2026-03-30 14:30:34 +08:00
Sai prasanna sastry 863e9e4cc0 fix: validate prebuilt destination type before using it (#10963) 2026-03-30 13:07:18 +08:00
Sai Nikhil 1a9837bd12 fix: pass search inspect env via config (#11051) 2026-03-30 10:25:31 +05:30
udev bac462cd38 fix: return tls client config without arc (#11055) 2026-03-30 11:54:49 +08:00
b1fe77871a test: add E2E tests for RUM sourcemap feature (#11014)
## Summary
- Add comprehensive E2E test coverage for RUM sourcemap functionality
(26 total tests)
- API tests: 20 pytest tests (upload/list/delete/resolve operations +
RBAC)
- UI tests: 6 Playwright tests for error tracking UI
- Helper scripts for RUM data ingestion

## Implementation Details

### API Tests (pytest)
- **test_sourcemap_api.py**: 15 tests covering:
  - Sourcemap upload (multipart/form-data)
  - List sourcemaps
  - Delete sourcemaps
  - Stacktrace resolution with sourcemaps
- **test_sourcemap_rbac.py**: 5 tests for role-based access control
- **ingest_rum_errors.py**: Helper to inject synthetic RUM error data
for UI tests
- **ingest_rum_performance.py**: Helper to enable RUM feature in UI

### UI Tests (Playwright)
- **sourcemap-ui.spec.js**: 6 tests validating:
  - Error tracking page loads
  - Query execution
  - Error list display
  - Error detail navigation
  - Metadata display
  - Stack trace display
- **rumPage.js**: Updated page object with API response interception
- Workaround for Vue 3 @click handlers not responding to Playwright
clicks
  - Navigate via URL using error IDs extracted from API responses
- Tests run in **parallel mode** with proper assertions (no graceful
skips)

## Test Execution
```bash
# API tests (pytest)
cd tests/api-testing
pytest tests/test_sourcemap_api.py -v        # 15 tests
pytest tests/test_sourcemap_rbac.py -v       # 5 tests

# UI tests (Playwright)
cd tests/ui-testing
npx playwright test playwright-tests/RUM/sourcemap-ui.spec.js --workers=3  # 6 tests
```

## Technical Notes
- Vue 3 production builds don't respond to Playwright's synthetic click
events on @click handlers
- Solution: Intercept API responses to extract error IDs, then navigate
directly via URL
- All tests use hard assertions - tests fail if data doesn't exist (no
graceful skips)

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Shrinath Rao <undefined@users.noreply.github.com>
2026-03-28 20:57:48 +05:30
udev 1c7a3135de feat: add patch panel apis (#11025) 2026-03-28 03:15:34 +05:30
Subhra264 6a6914213d fix: Include the error field in alert/pipeline history query (#11050)
Currently the alert/pipeline history api does not include the error
field in the history query from the triggers stream. This pr fixes this.
2026-03-27 18:40:36 +05:30
a2db37e237 fix: check trigger again next week when pipeline is disabled similar to alerts (#11040)
Currently, when a pipeline is disabled, the scheduled job we don't
delete, but we check after 5mins. 5mins is too frequent to check this,
instead we should follow the same like alerts and reports that checks
again after a week.

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yashodhan@openobserve.ai>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2026-03-27 17:19:43 +05:30
Omkar Kesarkhaneandgithub-actions[bot] 70704a37b7 fix: filter from trace details (#11038)
1. Filter from Trace Details — Enable users to apply field filters
directly from within the Trace Details view (e.g., clicking a field
value adds it as a filter)
2. Removed Tags and Process tabs from Trace details sidebar.
3. Add JSON and table view support in Attributes tab

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-27 15:48:40 +05:30
Bhargavandgithub-actions[bot] 2e5eb78e6f fix: Anomaly UI changes (#11035)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-27 13:08:50 +05:30
258eecd447 test: add E2E tests for autocomplete value suggestions feature (#11027)
Add Playwright E2E tests for the new autocomplete value suggestions
feature that persists field values in IndexedDB and shows them when
typing `field =`.

Tests cover:
- IndexedDB capture from field expansion (Values API)
- IndexedDB capture from search results (marked as expected-to-fail due
to bug)
- Autocomplete suggestions for operators: =, !=, <>, >=, <=, IN, NOT IN,
LIKE
- Numeric value quoting (no quotes for numbers)
- TTL expiry filtering
- Stream/org isolation
- Traces page autocomplete

Note: One test marked as expected-to-fail due to BLOCKER BUG where
captureFromSearchHits() doesn't write to IndexedDB (schemaFields
filtering issue)

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Neha P <undefined@users.noreply.github.com>
2026-03-27 12:02:07 +05:30
Bhargav f8b2e5e9fa fix: persist up and down vote in o2ai (#11037) 2026-03-27 09:52:30 +05:30
Subhra264 86817e4626 fix: Add check all checkbox for permissions on role edit page (#11001)
<img width="1158" height="176" alt="Screenshot 2026-03-25 at 5 24 46 PM"
src="https://github.com/user-attachments/assets/1a296b19-6076-4be1-814b-7e5bf1232a2e"
/>
Add check all checkbox to select the column for all the rows in role
edit page.
2026-03-26 19:38:11 +05:30
Sai Nikhil 0e6eb66172 fix: when user on 2nd page of indexlist after run query should not reset (#11018) 2026-03-26 18:03:56 +05:30
ktx-akshayandAbhay Padamani 9abc043b0b test: add E2E tests for dashboard table chart core features (#11004)
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
2026-03-26 16:23:35 +05:30
Bhargav eb0d4ea737 fix: Issue 1345 UI screen fix (#11032) 2026-03-26 14:52:25 +05:30
ktx-akshay e3b096412d fix: visualisation api call issue with region (#11022) 2026-03-26 13:48:24 +05:30
a335cb96c6 test: skip pattern tests from PR #10969 temporarily (#11031)
## Summary
- Skip 4 pattern tests added in PR #10969 that are causing CI/CD issues
- Tests being skipped in this PR:
  - should not display duplicate patterns
  - should display tokenized wildcard chips in pattern cards
  - should render anomaly detection column with proper structure
  - should display pattern statistics in details dialog

Note: "should display wildcard chip tooltips with sample values on
hover" was already skipped prior to this PR.

## Test plan
- [ ] Verify CI/CD pipeline runs without failing on these tests
- [ ] Re-enable tests once the underlying issues are resolved

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

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Subhra264 <chakrabortysubhradeep556@gmail.com>
v0.80.0-rc1
2026-03-26 12:06:16 +05:30
Harsh Mahajan e548f69d18 chore: adding alert button and pre-filling data for log pattern (#10728) 2026-03-26 11:01:32 +05:30
Bhargav 11213a7f5d fix: ai icon style fix (#11028) 2026-03-26 00:44:19 +05:30
382fdddf14 fix: clear log search errors when switching to patterns tab (#11016)
Adds `resetSearchError()` to searchState and calls it at the start of
`extractPatternsForCurrentQuery` so stale error messages from a failed
logs search are cleared before patterns are fetched.

---------

Co-authored-by: Neha P <neha@openobserve.ai>
Co-authored-by: Claude <noreply@anthropic.com>
2026-03-25 20:25:26 +05:30
Abhay Padamaniandgithub-actions[bot] 74670ff1e4 perf: dashboard perf improvement (#10996)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-25 18:13:39 +05:30
Neha PandClaude 1473e50030 test: add tests for search patterns PR #10949 & #10965 (#10969)
Added comprehensive tests for:
- PR #10949: Duplicate patterns fix
- PR #10965: Tokenized wildcard chips & anomaly detection

New Tests Added (5):
1. should not display duplicate patterns (@P0 @smoke)
   - Verifies all patterns are unique (no duplicates)
   - Tests PR #10949 fix

2. should display tokenized wildcard chips (@P1 @functional)
   - Verifies wildcard tokenization (e.g., <:TIMESTAMP>, <*>)
   - Tests PR #10965 tokenization feature

3. should display wildcard chip tooltips (@P1 @functional)
   - Tests hover tooltips showing sample wildcard values
   - Tests PR #10965 tooltip feature

4. should display anomaly detection badges (@P1 @functional)
   - Verifies anomaly indicators for rare patterns
   - Tests PR #10965 anomaly detection

5. should display pattern statistics in details dialog (@P1 @functional)
   - Verifies z_score, frequency, percentage display
   - Tests PR #10965 statistics feature

Page Object Updates:
- Added 7 new methods to logsPage.js:
  * inspectPatternCardDOM() - DOM inspection
  * getWildcardChip() - Wildcard chip selector
  * getTooltip() - Tooltip selector
  * getAnomalyColumnData() - Anomaly data extraction
  * getPatternDetailsDialogContent() - Dialog content
  * expectPatternIncludeBtnActive() - Include button state
  * expectPatternExcludeBtnActive() - Exclude button state

Sentinel Audit Fixes:
- Moved all raw selectors to page object methods
- Added missing assertions to Include/Exclude button tests
- All tests now follow Page Object Model pattern

Cleanup:
- Added e2e_http_patterns stream to cleanup.spec.js

Test Results:
- All 5 new tests passing
- Include/Exclude button tests verified with assertions

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-25 17:20:18 +05:30
Sai Nikhil 2da2e1a231 fix: auto suggestion field value on query editor logs and traces (#10943)
Adds persistent, cross-session field value suggestions to the SQL query
editor. When a user types field = , field IN (, field LIKE ',
str_match(field, etc., the autocomplete popup now shows real values seen
in previous searches — not just keywords and field names.

Values are captured passively from search results and field expansions,
stored in IndexedDB, and served from an in-memory cache. Zero impact on
existing UI performance.

What's new
Value capture — two sources:

Run Query (useStreamFields.ts) — after each search, up to 100 result
rows are scanned and field values extracted into IndexedDB in a browser
idle callback
Field expansion (useFieldValuesStream.ts, IndexList.vue) — when a user
clicks > on a field in the left panel, the Values API response is also
captured
Persistence layer (fieldValueDB.ts — new):

IndexedDB database o2FieldValues, store fieldValues
Composite key: org|streamType|streamName|fieldName — fully isolated per
org, stream type, and stream
Merge strategy: new values are unioned with existing, capped at 50 per
field
7-day sliding TTL — fields from streams you stop using expire
automatically
Opportunistic housekeeping (5% chance per search) via by_expires and
by_updated indexes
Orchestration layer (useFieldValueStore.ts — new):

captureFromSearchHits — schedules extraction + batch IDB write via
requestIdleCallback
captureFromValuesApi — schedules single-field IDB write
getFieldValuesForSuggestion — reads with 60s in-memory cache (500-entry
cap) so keystrokes never hit IDB
Safari fallback: setTimeout(0) when requestIdleCallback is unavailable
All IDB errors caught silently — feature degrades gracefully in private
browsing
Suggestion engine (useSuggestions.ts):

New analyzeSqlWhereClause function detects when cursor is after an
operator expecting a value using a 4-alternative regex covering =, !=,
<>, >=, <=, >, <, IN (, NOT IN (, LIKE, NOT LIKE, str_match(,
fuzzy_match(
Cursor-sliced matching handles Monaco's auto-closing brackets correctly
Smart insertText quoting: numeric/boolean values unquoted, strings
wrapped in '...', open-quote detection avoids double-quoting
sortText prefixed with \x01 so value suggestions always sort above
keywords and functions
In-session values (current search) take precedence over stored values
(previous sessions)
Monaco popup fix (CodeQueryEditor.vue):

hideSuggestWidget → nextTick → triggerSuggest pattern ensures the popup
always refreshes, fixing cases where it was already in "Showing" state
(e.g. typing LIKE ')
Traces support (traces/SearchBar.vue):

Field expansion in traces was already writing to IDB (via
useFieldValuesStream with stream_type: "traces")
Added 3 lines to set org/streamType/streamName on autoCompleteData so
the read side works too
2026-03-25 16:20:38 +05:30
4f2a3ba622 fix(traces): service icons and flame graph improvements (#11005)
1. Flame graph parallel operations overlapping issue
2. Updated service icons in Traces Table and Trace Details

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <undefined@users.noreply.github.com>
2026-03-25 15:13:59 +05:30
ByteBaker 9c245882d2 fix: anomaly status verbiage + owner issue 2026-03-25 14:15:38 +05:30
cfe6fc7911 fix: import loader issue fix (#11008)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Bhargav <undefined@users.noreply.github.com>
2026-03-25 12:33:59 +05:30
Bhargav c0d9fc49de fix: Ai logo enhancement (#11006) 2026-03-25 11:37:48 +05:30
Bhargav c9734e6fd7 fix: histogram toggle moved out from menubar (#11002) 2026-03-25 10:38:42 +05:30
bf3b36fcf7 feat: traces table improvements (#10941)
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-25 07:53:12 +05:30
477ec39db2 feat: add support for sourcemaps for RUM (#10259)
This ads support for sourcemaps in RUM

Design at :
https://github.com/openobserve/designs/blob/main/application-monitoring/rum/sourcemap-be.md

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-24 21:18:06 +05:30
Harsh Mahajan efeaac2c0c fix: changing ubicloud-16 to ubicloud-30 (#11011)
fix: playwright build failure
2026-03-24 17:37:53 +05:30
Bhargav 6d143fe30d fix: Anomalies UI fixes (#10999) 2026-03-24 11:01:35 +05:30
2243ef5173 feat: dashboard config panel redesign (#10917)
Design at:
https://github.com/openobserve/designs/blob/main/dashboards/config-panel-redesign/design.md

---------

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: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
2026-03-23 20:33:18 +05:30
ktx-akshay 097c4af1e4 test: add E2E test coverage for pie and donut charts in dashboard (#10998) 2026-03-23 18:41:22 +05:30
ByteBaker 168bb5956d fix: alert history sidebar changes (#10950)
- Remove the highlighted part in the alert history sidebar. The phrase
was obvious and was consuming space.

<img width="1434" height="71" alt="image"
src="https://github.com/user-attachments/assets/b632d8d5-8f95-45f5-a65b-7c72abc38a53"
/>

Now it looks like this.


<img width="1029" height="56" alt="image"
src="https://github.com/user-attachments/assets/4dbe6320-0067-45f0-ac4e-d8e6b8310187"
/>

- add support to view VRL & SQL both in split-view
- add support for regular conditions as well
- display absolute timestamp in timezone-aware ISO format, not `X units
ago`
2026-03-23 16:59:49 +05:30
3fee73c6aa fix: composable unit test cases (#10977)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Bhargav <undefined@users.noreply.github.com>
2026-03-23 15:40:13 +05:30
Yongdae Hwang c3e34c92bc fix: improve Korean locale translations (#10980) 2026-03-23 10:06:05 +01:00
Bhargav 5bd7d17421 fix: cmd+enter issue fix (#10983) 2026-03-23 10:05:23 +01:00
Subhra264 11e16f47eb fix: don't do unnecessary lowercasing of user emails (#10938) (#10985) 2026-03-23 10:04:53 +01:00
Subhra264 c0c0f53fec fix: don't run gc if file cur_size is 0 (#10989) 2026-03-23 10:04:18 +01:00
Huaijin 2923938b95 chore: upgrade datafusion to 52.4.0 (#10995) 2026-03-23 16:47:21 +08:00
ByteBaker 4a6c9efdb1 chore: enable UI toggle for self-org usage reporting 2026-03-23 13:17:46 +05:30
ByteBaker f7b5bcdc91 chore: enable service graph by default, drop runtime config knobs
Remove O2_SERVICE_GRAPH_ENABLED and O2_SERVICE_GRAPH_QUERY_TIME_RANGE_MINUTES.
Service graph now runs unconditionally on enterprise ingester nodes.
Query window defaults to 60m constant; UI time range picker controls actual queries.

Also remove checks for this on the UI. Keep only enterprise level checks.
2026-03-23 12:17:53 +05:30
Huaijin 825a57eea8 fix: traces latest stream api (#10993)
- close #10986
2026-03-23 13:19:53 +08:00
vnghia 583e588fee fix: change log level from warn to debug for file deletion (#10991) 2026-03-23 12:08:34 +08:00
dependabot[bot] 56c3a45410 chore(deps): bump slackapi/slack-github-action from 2.1.1 to 3.0.1 (#10927) 2026-03-22 22:37:49 +01:00
dependabot[bot] 88679ca49f chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /web (#10982) 2026-03-22 22:36:11 +01:00