Commit Graph
3536 Commits
Author SHA1 Message Date
Sai Nikhil 5373f210dd fix: import dest , alert issues (#6612)
fixes the issue of #6611
2025-04-23 05:49:00 +05:30
Loakesh IndiranandSubhradeep Chakraborty 0ce33ad918 fix: if streaming_aggs allow entire query to be processed (#6615)
- [x] if `streaming_aggs` is `true`, allow entire partitions to be
processed for limit queries
- [x] fix: `took` in ws search responses for `search` &`values` events

fixes: https://github.com/openobserve/openobserve/issues/6610

---------

Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com>
2025-04-22 23:17:12 +05:30
ktx-vaidehiandKirtan Thakkar 965e43b365 feat: dashboard when data is loading show 0 as value for gauge (#6601)
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-04-22 22:19:48 +05:30
Omkar Kesarkhane 46932671b8 fix: Nan in histogram title for streaming_aggs search response (#6614)
#6610
2025-04-22 21:48:43 +05:30
Loakesh Indiran fb610accfb feat: tracing for ws v2 (#6602)
- [x] add tracing for `websocket_events` service: `search`, `cancel`,
`values`
2025-04-22 20:29:45 +05:30
Hengfei Yang 6f37e97b21 fix: file list delete by mistake (#6613) 2025-04-22 21:42:20 +08:00
Hengfei Yang 3f1e5b8d40 feat: support role group for super cluster (#6600) 2025-04-22 18:55:57 +05:30
udev afa7bbe332 fix: revert OR operator support (#6609)
Manually revert conditionlist pr till UI update
2025-04-22 18:23:32 +05:30
Omkar Kesarkhane 44edcbb817 fix: added timezone offset for pipeline cron (#6608) 2025-04-22 17:42:22 +05:30
Sai Nikhil 977c67270d fix: if pipeline node is function or condition skip org validation (#6598)
while importing the pipeline if the node is function or condition node
then we dont have org_id in the data object so we need to skip the
validation the node is fn or condition
2025-04-22 16:20:43 +05:30
Zhao.wei 6df1a52f00 feat: add ratelimit for websocket (#6604) 2025-04-22 17:44:40 +08:00
ktx-vaidehi ddb0525155 feat: dashboard remove raw filter conditions (#6603)
- Removed match_all_raw and match_all_raw_ignore_case
- As it can cause performance issues
2025-04-22 12:17:34 +05:30
Hengfei Yang a15a06ceea fix: add new file & delete merged file should be in one transcation (#6597)
This PR implement add new files & delete merged files into one
transaction then we can both succeed or failed.
v0.14.6-rc5
2025-04-22 11:29:56 +08:00
Neha P c64d04d099 test: alert-folder-testcases (#6592)
These tests include 
- Added a new alert
- Add a new folder
- Added a new alert in this folder
- Moved 1 alert in 1 folder
- Bulk move alerts from default folder to new created folder
- Deleted the alerts that were moved to new folder
- Deleted the folder
- Deleted the template and destination
2025-04-21 17:56:10 +05:30
udev e5dfcee2dc feat: add support for OR and NOT operators in alert conditions (#6540) 2025-04-21 16:26:47 +05:30
Subhra264 7e335c38fc fix: align time for alerts (#6588)
Adds aligntime feature for alerts periods. If the frequency and period
is 5 mins, current time is 11:53pm, it will use the period of 11:45pm to
11:50pm to evaluate the alert. The next time it will be triggered at at
11:55pm, and data evaluation timerange will be 11:50pm to 11:55pm
2025-04-21 15:04:20 +05:30
Hengfei Yang ab5ceb7f49 feat: support stream delete for object store (#6587) 2025-04-21 15:57:11 +08:00
haryoiro c97780780e fix: Add missing translation keys and improve Japanese (#6578) 2025-04-21 12:33:16 +08:00
Sai Nikhil 5316e4996c fix: expand row needs to have unique row id in search history (#6580)
1. some times due to same trace id for multiple rows when we expand it
will lead to expanding the same trace id rows (multiple) for that we had
a fix like combination of trace_id + sql which would be unique but due
to some times we might get same trace_id and sql as well
2. to fix this when we are receiving response we are dynamically
generating UUID for each hit and assigning it to each row so that we
will expand based on UUID
2025-04-19 10:13:28 +05:30
Hengfei Yang 0f5a31d0df fix: cache file for alert querier (#6573)
We already checked `ConsistentHash` on the source node, so we don't need
check again, just cache the file send to the node.
2025-04-18 19:51:04 +08:00
Sai Nikhil a766b8c1ae feat: pipeline import and export (#6243)
1. This PR implements the #6212
2025-04-18 13:07:35 +05:30
Sai Nikhil 0f2882d3dd fix: Enrichment table additional info added and schema page added (#6574)
1. additional info to the enrichment table added 
2. schema page introduced for enrichment tables
2025-04-18 11:52:12 +05:30
Zhao.weiandHengfei Yang 2031be662c fix: add supercluster inspector (#6566)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-04-18 09:59:07 +08:00
Hengfei YangandTaiming Liu 29d66ab19f feat: add option for index all (#6539)
This PR add two new options for stream setting:

```
index_original_data: false
index_all_values: false
```

## index_original_data
Enable it will create Full text index on the original data.
> This will force enable `store_original_data: true`

## index_all_values
Enable it will create Full text index on the field `_all_values` which
collect all the fields values.


## Todo

- [x] Add options for index all
- [x] Handle ingestion for the new options
- [x] Handle search for the new options
- [x] exclude the `_all_values` for usage report
- [x] exclude `_all_values` and `_original` from search response for
`select *`
- [x] Performance testing for `index_original_data`
- [x] Performance testing for `index_all_values`

## index_original_data

`4.6`GB real data from production. ingest 10 times.

cpu: 800% mem: 17GB, took: 19.62s, 21.37s, 17.89s, avg: 19.63s

size: 
```
9.1G data/openobserve/stream/files/default/index
 18G data/openobserve/stream/files/default/logs
```

search: 
```
SELECT count(*) FROM default where match_all('1724740197727131372') 
```
total: 296790

took: 279ms, 274ms, 266ms, avg: 273ms


## index_all_values

`4.6`GB real data from production. ingest 10 times.

cpu: 900% mem: 15GB, took: 18.99s, 21.21s, 24.74s, avg: 21.65s

size: 
```
8.9G data/openobserve/stream/files/default/index
 17G  data/openobserve/stream/files/default/logs
```

search: 
```
SELECT count(*) FROM default where match_all('1724740197727131372') 
```
total: 296790

took: 269ms, 275ms, 262ms, avg: 268.67ms

## Disable index all

`4.6`GB real data from production. ingest 10 times.

cpu: 600% mem: 12GB, took: 10.72s, 10.82s, 11.14s, avg: 10.89s

size: 
```
0 --- no index
7.8G data/openobserve/stream/files/default/logs
```

search: 
```
SELECT count(*) FROM default where match_all('1724740197727131372') 
```
total: 0

no index, can't run this query.

## Test result

`index_all_values` compare to `index_original_data`, will use `90%` MEM,
but `110%` CPU, reduce `5%` of storage. search speed almost same.

But `index_all` compare to `none-index` will increased `50%` CPU and
`25%` MEM, also `triple` the storage size: ( `9GB` index, log data
`doubled`, because of store original_data or a new field with all
values).

---------

Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-04-17 14:40:30 -07:00
Loakesh Indiran c2b14cc8d1 fix: refactor audit_msg (#6568)
- [x] unify `AuditMessage` across ws/http
2025-04-17 21:18:51 +05:30
dependabot[bot] 0607c0fc40 chore(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 in /web (#6567) 2025-04-17 17:18:54 +08:00
ktx-akshay 29699ed4cb test: multi y-axis stacked charts (#6549) 2025-04-17 13:44:32 +05:30
Sai NikhilandBhargav df1f5eba31 fix: Sql mode skip query validation (#6434)
1. this PR fixes the sql mode query validation when they are not parsed
by the parser we use
2. in this case we are using node-sql parser so we will simply skip the
validation and pass it to BE

---------

Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
2025-04-17 11:27:50 +05:30
Zhao.wei 7f804eb1b0 fix: log improve (#6562) 2025-04-17 12:25:18 +08:00
Sai NikhilandSubhradeep Chakraborty a5716d88e0 feat: bulk move and export dashboard (#6507)
1. this PR implements bulk move and export dashboards

---------

Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com>
v0.14.6-rc4
2025-04-16 22:21:05 +05:30
Loakesh Indiran 596007176e fix: ws locks debug (#6548) 2025-04-16 20:58:14 +05:30
Taiming Liu 29a88734b8 feat: enforce mandatory _timestamp field selection in scheduled pipeline (#6553)
API layer enforcement: scheduled pipeline queries must generate a
`_timestamp` filed in the result, use alias for functions.
recommended:
```sql
SELECT MAX(_timestamp) AS _timestamp, ... FROM ...
```

***This rule is not applied to any existing scheduled pipelines**
2025-04-16 07:55:30 -07:00
udevandomkark06 00972e293e feat: Implement WS for Values API (#6463)
Co-authored-by: omkark06 <omkar@zinclabs.io>
2025-04-16 19:45:38 +05:30
Loakesh Indiran 66a6a612f5 fix: any responses with function error will not be result cached (#6560)
- [x] search responses with any error will not be cached (result cache)
2025-04-16 18:42:36 +05:30
Hengfei Yang 0f864aab47 feat: add keepalive for scheduler_jobs (#6554) 2025-04-16 19:29:25 +08:00
Zhao.weiandhengfei yang 576125e9a6 feat: search inspector (#6508)
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
2025-04-16 18:51:00 +08:00
Ashish Kolhe 7cdb292de9 fix: get_enrichment_table_record with multiple condition (#6559)
```
.country_data =get_enrichment_table_record!("countries",
  {
  "region_code":"142",
  "country_code":"4"
  },
  case_sensitive: true)
```

Earlier it would consider only first condition , now it considers all
2025-04-16 15:19:46 +05:30
Subhra264 d37b486325 fix: pass trace id from alert manager to queries (#6492)
In this pr, the Alert Manager passes the trace id to query requests.
2025-04-16 13:09:33 +05:30
ktx-vaidehi 2edefdb0bf feat: dashboard when loading and no data is present show blank chart (#6550)
- If no data is present and the chart is loading, there's now an option
to show a blank chart
- #6557
2025-04-16 11:12:47 +05:30
Loakesh Indiran 4a0ecfe239 fix: mini partitions ordering (#6547)
- [x] fix mini partitions ordering
2025-04-16 06:21:49 +05:30
Omkar Kesarkhane 7e80909c96 fix: added validation for six * cron expression (#6534)
#6501
2025-04-15 17:27:35 +05:30
Abhay Padamani 9151246f10 fix: LIKE query parsing issue for visualization (#6552)
- #6473
2025-04-15 15:11:31 +05:30
Subhra264andgreptile-apps[bot] 806dd7171e feat: implement aligntime for alert manager alerts/pipelines (#6545)
This pr aligns the next_run_at of the alerts/pipelines according to the
timezone of the given alert/pipeline. For example, if the current time
is 11:03pm, and the frequency is 5 mins, the next run at should be
11:05pm, then 11:10pm, and so on. In future, we may want to make
aligntime an optional feature, by giving a toggle option in the
alert/pipeline itself.

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-04-15 14:11:01 +05:30
Abhay Padamani fcec414fea fix: show 4xx error message on UI (#6537)
- #6538
2025-04-15 12:34:12 +05:30
Sai Nikhil e271f2ea19 fix: base64 encode should be only in logs page (#6543)
encoding of sql to base64 from UI when specified only in logs page not
in alerts or pipelines page
2025-04-15 10:38:40 +05:30
Loakesh Indiran 9b8b75c5c7 feat: add mini search partitions (#6494)
# Mini Partitions for Faster Initial Search Results

## Summary of Changes
This PR introduces "mini partitions" to improve user experience for
search queries by providing faster initial results, especially for large
time range queries.

## Old Partition Logic
- Created partitions of roughly equal size based on time range and data
volume
- Optimized for balanced workload distribution across processing nodes
- Users had to wait until a full partition was processed before seeing
any results
- For large time ranges (e.g., 7 days), the first result could take long
time to appear

## New Partition Logic
- Creates small "mini partitions" at the beginning of the time range
- Followed by regular-sized partitions for the remaining time range
- Preserves all the original constraints and optimizations for regular
partitions
- Users see initial results within seconds, even for large time range
queries

## New Env
```sh
ZO_MINI_SEARCH_PARTITION_DURATION_SECS: Duration of each mini partition in seconds (default: 60)
```
2025-04-15 08:17:15 +05:30
Hengfei Yang 3ba66e5f0b feat: add ZO_INGEST_ALLOWED_IN_FUTURE (#6544)
Now we have two ENV for control ingestion time:

- ZO_INGEST_ALLOWED_UPTO: old than x hours will discard
- ZO_INGEST_ALLOWED_IN_FUTURE: future than x hours will discard

```
ZO_INGEST_ALLOWED_UPTO=5
ZO_INGEST_ALLOWED_IN_FUTURE=24
```
Default is `5` hours and `24` hours.
2025-04-14 10:59:42 -07:00
Hengfei Yang a2dfb20f9c fix: trace_id for search (#6533) 2025-04-14 22:56:25 +08:00
Subhra264 b24f99358b fix: return proper error when report cron is invalid and enrichment table payload condition (#6532)
- When the report cron expression is invalid, return a proper error
message saying the cron expression is invalid.
- When uploading Enrichment table check the payload size irrespective of
append=false/true.
2025-04-14 16:41:59 +05:30
Shyam Panjiyar 9eec05a6ee test: websocket version 2 connection pytest (#6476) 2025-04-14 15:51:04 +05:30