Commit Graph
3305 Commits
Author SHA1 Message Date
Abhay Padamani cd25ffc8a1 fix: search type issue for reports (#6209)
- #6210
2025-03-07 14:24:40 +05:30
Subhra264andHengfei Yang 68c4d28713 fix: check for root user even if org_id is provided in db::user::get (#6207)
Fixes https://github.com/openobserve/openobserve/issues/6171 and
https://github.com/openobserve/openobserve/issues/6206.

In the `db::user::get` function we check for root user only if the
`org_id` is `Some`. This may lead to bugs in many places, if we don't
check for root user first and pass `None` as `org_id` for root user.

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-03-07 11:45:25 +05:30
ktx-akshayandHengfei Yang d7b90a48e0 test: dashboard timeout testcases (#6184)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-03-07 10:46:54 +05:30
Hengfei Yang 3e23fee8b7 fix: can't add field issue (#6203) 2025-03-06 23:58:43 +08:00
Hengfei Yang d13d0f1ec0 fix: optimize wal replay logic (#6196) 2025-03-06 19:32:12 +08:00
udev 443ee3165e feat: Global default max query range (#6192) 2025-03-05 21:16:33 +05:30
Ashish Kolhe f78e710add fix: add stream name org-id as context variable to to vrl runtime (#6187)
At times same function is used different pipelines , the function would
like to add stream name to current row, added `org_id` and `stream_name`

It can be used in vrl with below syntax:

`.stream_name_value = %stream_name`
2025-03-05 20:38:49 +05:30
Ashish Kolheandhengfei yang 149de5d30b fix: use established schema fields when setting up uds (#6180)
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
2025-03-05 18:41:36 +05:30
Abhay Padamani 5555785f76 feat: support multiple y axis for stacked chart (#6161) 2025-03-05 17:03:41 +05:30
Hengfei Yang cf5962cb30 fix: #6170 (#6182)
fixed #6170
2025-03-05 13:37:06 +08:00
Hengfei Yang 2a185ddc18 feat: remove stream level metrics (#6177)
We have over 10k streams, the stream level metrics caused the `/metrics`
page pretty large then it can't parse. so we want to reduce it.
v0.14.5-rc1
2025-03-05 00:06:31 +08:00
ktx-vaidehiandHengfei Yang 3a65177b9c fix: dashboard variable value replacement if no data is found in values (#6172)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-03-04 23:06:40 +08:00
Zhao.weiandHengfei Yang 7d74b95902 feat: improve remote pipeline (#6167)
remove useless clone code

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-03-04 23:06:00 +08:00
Patrick Sullivan d52fefc5d3 feat: Bulk move dashboards endpoint (#6165) 2025-03-04 09:04:05 -06:00
Subhra264 a5d4cf90ea fix: Individual level Fine grained RBAC permission for Dashboards (#6173)
Currently, individual level RBAC permission does not work for
dashboards. This pr fixes that. So a role permission like below
<img width="1399" alt="Screenshot 2025-03-04 at 5 27 11 PM"
src="https://github.com/user-attachments/assets/06c2030d-4227-4109-b73f-dc2337151362"
/>

will allow the user to access only the dashboards with `Get` and `All`
permission even if the `Get` permission for the folder is not specified.
2025-03-04 19:53:41 +05:30
6c44b19c7b fix: scheduled pipeline don't pause after retries (#6174)
Fixes three problems -
- [x] Pipeline pauses automatically after reaching max retries.
- [x] There could be some data loss if `(now - start_time)` is not a
multiple of `period_num_microseconds + 1`.
- [x] If derived stream fails, it should retry immediately in the next
batch until it reaches max retries. After reaching max retries, it
should retry at the next scheduled run.

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-03-04 05:10:11 -08:00
Yashodhan JoshiandYashodhan Joshi 55cd4e709a fix: limit parallel download thread number (#6082)
This uses background jobs in order to download files asynchronously, and
a mpsc queue in order to send file names to the jobs threads. This
limits the number of threads we spawn to a fixed number configurable via
config var.

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2025-03-04 16:08:15 +05:30
udevandhengfei yang 355976ce06 fix: handle incomplete files during download (#6156)
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
2025-03-04 11:28:37 +05:30
Loakesh Indiran 681acabd74 fix: ws open fds at router (#6164)
- Impl `WsProxySession` and `Drop`
2025-03-04 06:12:28 +05:30
Patrick Sullivan adbb99e7f0 fix: Fix query in V2 ListAlerts (#6162) 2025-03-03 09:43:24 -06:00
Hengfei Yang 8fd6f834b0 feat: improve router scheduler with weight 2/2 (#6160) 2025-03-03 21:14:57 +08:00
Loakesh Indiran 4bccf6cfb6 fix: ws malformed data (#6157) (#6159)
Ref: https://github.com/openobserve/openobserve/issues/5974

Issue: Close frame description field causes frame malformation in
Chrome/Brave
- Description field causes inconsistent frame encoding
- Firefox handles it fine, but Chrome/Brave show malformed data
- Workaround: Skip description field in close frames

Actions:
- Set `CloseFrame` description at both `router` & `querier` to `None`
2025-03-03 14:53:15 +05:30
Sai Nikhil d32d38af52 fix: reduce query time and silence column removal (#6148)
1. reduced query time for sql validation from 15mins to 5 seconds 
2. silence column is removed from the pipeline list as we are not
supporting in the UI
2025-03-03 11:56:39 +05:30
Hengfei Yang 29b5acd941 feat: update to datafusion 45 (#6146) 2025-03-02 21:34:19 +08:00
HuaijinandHengfei Yang 12a6d41c3c feat: upgrade datafusion to v44.0.0 (#6003)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-03-02 18:18:01 +08:00
Hengfei Yang 595490ea33 ci: update rust to nightly-2025-03-02 (#6145) 2025-03-02 17:27:10 +08:00
Subhra264 4a7784b409 feat: Scheduler redesign with mpsc channels (#6121)
Uses mpsc channels to process pulled scheduled jobs so that it does not
block the entire alert manager to pull other jobs when there is
capacity. Makes use of semaphores so that we pull the same number of
jobs as the number of available workers.

### The new design is -
- We spawn the same number of worker threads as the configured max concurreny env.
- After pulling jobs, it sends to each worker through the mpsc channel
- Each worker processes the received trigger
- After the scheduler interval, the puller job checks how many workers are still available i.e. how many workers are done with processing triggers.
- It only pulls the same number of jobs from db as the number of available workers at that particular time.
The cycle continues.

So, the scheduler pulls at max the "max concurrency" number of jobs at a time depending on the availability of worker threads.
v0.14.4
2025-03-01 23:25:46 +05:30
ktx-vaidehi 01d28cc6fa fix: dashboard invalid sql for custom sql regex change (#6144) 2025-03-01 21:01:02 +05:30
Hengfei Yang 1a45d4700c fix: Enhance compactor metrics (#6143) 2025-03-01 22:44:07 +08:00
Hengfei Yang f8c5f012bd feat: remove configure ZO_USAGE_ORG (#6142) 2025-03-01 21:41:39 +08:00
Ashish Kolhe e21a6ff4b1 fix: send trigger data to additional orgs (#6141) 2025-03-01 18:20:22 +05:30
hengfei yang d77d32eb17 fix: merge file on ingester 2025-03-01 19:44:27 +08:00
Hengfei Yang b4aef1c686 fix: fields missing issue (#6138)
fixed #5082 #5804
2025-03-01 19:39:58 +08:00
Patrick Sullivan 3f4074b8cf fix: Misc V2 alerts routes fixes (#6137)
Makes the following fixes to these routes:
- `ListAlerts`
  - adds `enabled` to the response body
  - adds `name_substring` to the request body
- `MoveAlerts`
- changes the method type to `PATCH` since this is a non-idempotent
update
- changing to `PATCH` coincidentally happens to fix a routing issue
where requests to `MoveAlerts` were being routed to the `UpdateAlerts`
handler
- `EnableAlert`
- changes the method type to `PATCH` since this is a non-idempotent
update
- `TriggerAlert`
- changes the method type to `PATCH` since this is a non-idempotent
update
2025-02-28 17:19:22 -06:00
ktx-vaidehi 65a8f2e151 fix: change in text from Move To Logs -> Go To Logs (#6134) 2025-02-28 20:59:57 +08:00
Bhargav 748349b94a fix: extractvalue query fix (#6125)
issue #6126
2025-02-28 13:33:07 +05:30
Loakesh Indiran 9db5d798e9 fix: add msg_in_flight flag and yield with retries before closing (#6131)
## Goal: 
- The goal is to not sleep/timeout but also wait a tiny bit before
sending close and at the same time not keeping the threads hanging which
could lead to resource exhaustion on the querier

## Changes: 

1. **Message In-Flight Control**:
```rust
message_in_flight: AtomicBool
```
- Uses atomic boolean for lightweight synchronization
- Ensures only one message is being sent at a time
- Prevents message overlap and potential race conditions

2. **Limited Retry Mechanism**:
```rust
let mut attempts = 0;
while attempts < 3 {
    match session.message_in_flight.compare_exchange(...) {
        // ...
        Err(_) => {
            attempts += 1;
            if attempts < 3 {
                tokio::task::yield_now().await;
            }
        }
    }
}
```
- Maximum 3 retries
- Uses `yield_now()` instead of sleep
- Quick failure path if message can't be sent

3. **Non-Blocking Cleanup Before Sending Close**:
```rust
while session.message_in_flight.load(Ordering::SeqCst) && retries < 3 {
    tokio::task::yield_now().await;
    retries += 1;
}
```
- Limited retries during cleanup
- Non-blocking approach to message completion
- Proceeds with close even if message is still in flight

**Why This Prevents Querier Resource Exhaustion**:
1. No thread blocking or sleeping
2. Limited retry attempts (max 3)
3. Quick failure paths
4. `yield_now()` only gives up CPU time slice, doesn't block
5. Resources are cleaned up even on failure
2025-02-28 11:10:06 +05:30
Subhra264 eeeb0935de fix: filter dashboard list based on dashboard:{dashboar_id} (#6128)
Apart from filtering dashboard list based on
`dashboard:{folder_id}/dashboard_id` and `dashboard:_all_{org_id}`,
filter with `dashboard:{dashboard_id}` as well.
2025-02-27 18:28:06 +05:30
Sai Nikhil 2bea89307c fix: search jobs UI (#5706)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
  - Introduced search job scheduling functionality.
- Added ability to create, list, cancel, retry, and delete scheduled
searches.
- Enhanced user interface for managing scheduled search jobs, including
a new component for displaying scheduled jobs.
- Implemented conditional rendering for search history and search
scheduler components.
- Added new methods for handling scheduled searches within the service
layer.

- **Improvements**
  - Refined search bar interface with new scheduling options.
  - Updated pagination handling for job-related data.
- Enhanced overall functionality related to job management and
pagination.
- Improved loading indicators and user experience during data retrieval.

- **Bug Fixes**
  - Corrected conditional rendering of search history components.
  - Optimized job data retrieval and pagination logic.
  - Simplified sorting logic within the search history component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-27 16:07:45 +05:30
Sai Nikhilandktx-abhay dd2cf4b7e8 fix: custom chart rerendering issues (#6114)
1. no data error before rendering
2. chart rerenders even after loading
3. all charts rererenders if we click on refresh of one chart

---------

Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
v0.14.3
2025-02-27 09:06:23 +05:30
Sai NikhilandTaiming Liu 85e8af977d fix: Pipeline improvements (#6078)
1. this PR introduces new design for query node 
2. dynamic stream name for destination node instead of create new stream
it allows user to input any non existing stream name as destination and
at the time of ingestion it will be created dynamically
3. Fixes issues of #5886

---------

Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-02-26 14:05:11 -08:00
Hengfei YangandTaiming Liu e5b6e507ab fix: ingester replay panic (#6117)
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-02-26 10:01:57 -08:00
ktx-vaidehiandktx-abhay 6c66fd923b fix: dashboard ws cancel query (#6107)
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2025-02-26 22:38:05 +08:00
Abhay PadamaniandYashodhan Joshi 571e8e1be1 fix: dashboard freeze issue with more than 100 series in single panel (#6093)
- #6015 


- Introduced new Env variable `ZO_MAX_DASHBOARD_SERIES`, to limit number
of series per panel.

![image](https://github.com/user-attachments/assets/dc034fe6-bade-4952-9ec1-13dfae600bad)

- Comparison against series will not be counted. 
- Additionally, for multiple Y-axes, there will be a limit per
individual Y-axis

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2025-02-26 17:42:21 +05:30
Loakesh Indiran dd06bb38f5 fix: re_matches udf (#6112) 2025-02-26 19:14:28 +08:00
udev c388a2a9da fix: Dedup UDS fields (#6108) 2025-02-26 18:38:02 +08:00
Bhargav a2d6f296cc fix: remove all RPP options which are more than 100 (#6111) 2025-02-26 16:06:20 +05:30
Shyam Panjiyar b897f5439e test: websocket- Undefined Partitions Error When Histogram is disabled and run query and enabled again (#6085) 2025-02-26 14:57:41 +05:30
Subhra264andhengfei yang be2348747c feat: add source_node to triggers stream (#6097)
This PR adds a `source_node` field to the `triggers` stream to indicate
which alert manager processed the particular trigger. This is the name
of the node.

---------

Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
2025-02-26 12:22:20 +05:30
Loakesh Indiran dccc130b3a fix: remove CloseFrame delay (#6106) 2025-02-26 10:05:51 +05:30