Commit Graph
1987 Commits
Author SHA1 Message Date
42522e357a fix: skip download and early return if partial download after retries (#6847)
Previously we did a footer check even when after all retries the blob
download was partial. Now we skip and return error, as no sense in
checking footer when we know the blob size is incomplete.

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-05-20 14:26:09 +05:30
Huaijinandgreptile-apps[bot] f5cb6292a0 fix: match one join query with join key filter (#6845)
close #6843

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-05-20 15:38:47 +08:00
Taiming Liu c8f162eb5a fix: ent build and clippy (#6842) 2025-05-19 15:31:36 -07:00
udev da2a769762 feat: Add HTTP2 Streaming support (#6721) (#6827) 2025-05-20 00:06:05 +08:00
Hengfei Yang ca69ce0118 fix: alert can't query latest data for separate alert query (#6831)
- [x] fix: alert can't query latest data for separate alert query
- [x] feat: add size limit for download from other nodes
- [x] fix: use real time id generator
2025-05-19 19:29:12 +08:00
Yashodhan JoshiandYashodhan Joshi 1b3c993fc4 fix: validate downlaod size with blob store and validate file (#6822)
- get file size from db and download file from blob
- if mismatch in size between db and file downloaded then
- get content length of file from blob
- if content length != file downloaded -> we had a partial download from
blob -> retry download with exponential backoff
- if content length == file downloaded -> check footer of downloaded
file to see if parquet in blob is actually corrupt
- if file is corrupt -> log as info and mark deleted in db
- if file is good -> update size in db

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2025-05-19 14:39:49 +05:30
Ashish Kolheandhengfei yang 256f52ce50 fix: parquet not found ingester (#6820)
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
2025-05-19 14:56:01 +08:00
Loakesh Indiran 5edcbd6e02 fix: search partition order_by (#6817) 2025-05-15 14:52:02 +05:30
e1ab3da68f feat: add optional start date for scheduled pipeline (#6779)
- Adds a variable `start_at` in `DerivedStream`
- replaces `start_time` in `Trigger`

Closes #6758

Co-authored-by: Subhra264 <chakrabortysubhradeep556@gmail.com>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-05-13 09:40:08 -07:00
udev 3f793d9169 fix: Values API get partitions for no count (#6794)
Change the query type to do a dummy aggregation for no count query
2025-05-13 15:25:57 +05:30
Yashodhan JoshiandYashodhan Joshi ff9660fff0 fix: internal error audit (#6768)
This adds the error header to all cases of internal server error so they
show up properly in audit. This is done by one of two approaches -
1. preferably using the `map_error_to_http_response` function , so that
everything goes via the same function
2. directly adding the header where the above function cannot be used
because is is not an error per say like trying to ingest at
non-ingester.

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2025-05-12 18:32:36 +05:30
udev 9737dc1d20 feat: add condition list for OR operator support in alerts (#6607)
- use list of condition for legacy conditions
- add serde rename to operator struct.
2025-05-11 22:55:04 +05:30
Hengfei Yang 10cf4f2640 fix: s3 ListBucket error (#6777) 2025-05-09 23:09:29 +08:00
Taiming Liu 723b681a2e fix: pipeline panic due to empty input (#6776) 2025-05-09 07:22:14 -07:00
Subhra264andsai nikhil kethe 330cf14ec0 fix: ZO_DEFAULT_MAX_QUERY_RANGE_DAYS env should be returned by streams list api (#6762)
Fixes #6753

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
2025-05-09 14:22:58 +05:30
Yashodhan Joshi 63804e8680 fix: supercluster scan stats (#6763) 2025-05-09 16:20:18 +08:00
Hengfei Yang cb18d89e44 fix: is_querier error for super cluster (#6761) 2025-05-08 21:40:26 +08:00
Ashish Kolhe 9a44e688b8 fix: lowercase stream name as option (#6756) 2025-05-08 17:13:57 +05:30
Taiming Liu 371d055a14 feat: deployment type value in o2 telemetry (#6737) 2025-05-07 18:24:10 +08:00
Subhra264 c81b206338 fix: enrichment_table::get returns error when both meta and stream_stats table is empty (#6744) 2025-05-07 18:23:00 +08:00
Hengfei Yang 8dd1782bca fix: otlp ingestion attribute name (#6747) 2025-05-07 18:00:46 +08:00
Hengfei Yang 9c52b96a79 fix: metrics report duplicated (#6743) 2025-05-07 14:05:50 +08:00
Hengfei YangandTaiming Liu 0f4125b32d fix: multiple account with file_list_dump (#6739)
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-05-06 20:58:16 -07:00
Taiming LiuandHengfei Yang e567f7c3a1 fix: cache miss after NATs restarts (#6726)
Refreshing in-memory cache in such NATs event trigger by NATs client's
callback closure.

---------

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-05-06 19:33:31 -07:00
Taiming Liu 6ad1b6f400 fix: realtime pipeline for trace ingestion into wrong stream (#6738)
fix: #6736
2025-05-07 09:31:39 +08:00
Hengfei Yang b9048cff3e fix: delete whole month by mistake (#6734) 2025-05-06 22:40:57 +08:00
Subhra264 5b2b38685e fix: super cluster scheduler event processing fails for scheduled pipelines (#6733)
There is a bug in the handling of super cluster scheduler event messages
for derived streams. The `trigger_modify_module_key` function which was
supposed to be executed for alert messages only, also gets applied to
scheduled pipeline events containing a different module key format than
desired. Hence, it keeps throwing error in the compactor. This pr fixes
this issue.
2025-05-06 17:45:07 +05:30
Abhay Padamaniandloaki07 e9243ac4e6 fix: encode search query if ZO_UI_SQL_BASE64_ENABLED=true (#6556)
- #6515

---------

Co-authored-by: loaki07 <rustyloaki@gmail.com>
2025-05-06 13:03:31 +05:30
Hengfei Yang 9080833a31 fix: sort the nodes by id (#6693) 2025-05-06 14:31:35 +08:00
Subhra264 dbc86e119a fix: summary api should list all folder alerts (#6723)
Fixes #6648
2025-05-05 19:58:22 +05:30
Hengfei Yang 2a82d1dec2 fix: multiple object store for search_job & actions (#6716)
Always use first (default) object store account for search_job &
actions.
2025-05-04 19:58:02 +08:00
Hengfei Yang 30eeaf2bd9 feat: impl multiple storage accounts (#6667) 2025-05-04 19:09:25 +08:00
Abhishek Tripathi 7d76673aeb fix: promql parser adjust the cache_key (#6678) 2025-05-04 15:52:13 +08:00
Subhra264 352b03b5cf fix: update config::DB_SCHEMA_VERSION for alert table align time column (#6715) 2025-05-03 22:03:57 +08:00
Subhra264 404d34f50d feat: Make Align time optional for alerts/pipelines and reports (#6605) 2025-05-02 14:21:07 +05:30
Yashodhan JoshiandYashodhan Joshi a8309bc9b3 fix: always create db dir in infra::init (#6704)
In PR for separating ddl client from normal db client, a new function
was created which would do all db initialization. Consequently, fn call
to create the local db dir was also moved into that function. However,
this function is called only if version key in db is mismatch, so if the
version in db matches, this function would not be called, and thus db
dir creation will aalso not happen.

This works on stateful set, because most of the time db dir will already
be present. However, for non-stateful sets such as router or compactor,
this errors because of missing db dir.

This PR fixes this by always calling create_dir_all in infra::init. They
way things are setup, this will get called twice if f db_init also runs,
but that is ok. Tested the commit on dev3/dev4 for ~2 hours, container
init and restart work fine with this change.

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2025-05-01 23:10:48 +05:30
40f932198a feat: separate out ddl client and commands (#6675)
fixes https://github.com/openobserve/openobserve/issues/6621

This separates the functions which execute ddl statements, and only runs
them if certain entry in meta is mis-matching with what we have in our
code. Introduces a new env var `ZO_META_DDL_DSN` , which is optional and
falls back to the original DSN if not specified. Added a new client to
Postgres and Mysql both which uses this DDL DSN, and that is used only
for the ddl statements.

Also added another command to cli `upgrade-db` which runs the db
initialization functions.

For sqlite, there is no change, as it does not have concept of users.

Primarily tested on Postgres to validate that the behavior with
read-write and admin users is as expected.

`DB_SCHEMA_VERSION` is hardcoded in code, and devs are expected to
manually uptick it everytime we do any changes to db schema, similar to
how we maintain ofga.

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-05-01 16:56:37 +05:30
Subhra264andhengfei yang e06281cd17 fix: scheduler query trace_id should be searchable in traces page (#6694)
Currently, the scheduler trace_ids are not searchable in the traces
page, because they are only used in the logs and not in the
instrumentation. This pr fixes that - so, the scheduler query trace id
(which can be obtained from the `triggers` stream, field name -
`scheduler_trace_id`, the trace_id after the `/` is the scheduler query
trace_id), can be used as `trace_id` to search the trace in the traces
page.

Also, the `grpc::search` and `grpc::search_multi` does not use the
trace_id from the grpc "request" for instrumentation. This pr fixes that
as well.

---------

Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
2025-05-01 13:46:00 +05:30
Hengfei Yang 746e817632 fix: otlp logs ingestion (#6697) 2025-05-01 13:18:36 +08:00
Subhra264 dc975a08ba fix: duplicate usage reporting for alerts (#6691)
We recently started using grpc search for alerts inside alert manager.
Now, the grpc search uses `cache::search` (and `service::search` when no
data in cache). `service::search` already reports usage for alert search
event, and also the same is done by `cache::search` as well. Hence,
there are duplicate search usage reporting for alerts. In this pr, only
the `cache::search` reports usage in case of alerts.
2025-04-30 19:02:31 +05:30
Yashodhan JoshiandYashodhan Joshi 81b432941c fix: missing prom labels (#6683)
Recently a label was added to one of our metrics in main. In file dump
PR I had added couple of new DB functions which uses this metric,
however when testing the label changes were not merged in main yet.
Thus, I did not catch that the additional label needed to be added, and
now it panics because of incorrect labels. Fix is simple, add an empty
string for the missing label. No other change. Tested it on usertest for
~12 hours, didn't see any issues.

---------

Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
2025-04-30 10:47:31 +05:30
bff9364ac7 feat: add EventProgress server event (#6668)
- [x] add `percent` calc, based on the query duration

---------

Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-04-29 17:38:58 +05:30
ByteBaker 0d3e72b74d feat: Merge ingestion logic for logs using OTLP proto SDK (#6673) 2025-04-29 19:31:49 +08:00
Subhra264 2f0c16ec58 fix: remove cron if frequency changed to minutes (#6676)
- When in the alert, frequency is changed from cron to minutes, we don't
delete the old cron expression. This pr fixes that.
- Fixes false reporting of skipped alert events
2025-04-29 15:24:27 +05:30
Hengfei Yang 169b92ee41 feat: report cluster_coordinator (#6672) 2025-04-28 20:41:41 +08:00
Ashish Kolhe 1f47ac2614 fix: base64 encode cookies (#6596)
fixes : [6564](https://github.com/openobserve/openobserve/issues/6564)
2025-04-28 18:08:48 +05:30
Hengfei Yang a283d54632 fix: add retry if download file get size mismatch (#6659)
- [x] fix: add retry if download file get size mismatch
- [x] fix: delete from file_cache index if one file delete from disk
- [x] fix: remove trace_id for file_cache and download, it is noise
- [x] fix: download file other node, add file size mismatch check, and
skip the not found error
2025-04-28 19:51:36 +08:00
Hengfei Yang 8d29b1b324 fix: download multiple files (#6664)
We should extent slice not replace slice for download with streaming.

Testing this feature need to enable ENV:
```
ZO_CACHE_LATEST_FILES_ENABLED = true
ZO_CACHE_LATEST_FILES_DOWNLOAD_FROM_NODE=true
```
2025-04-28 18:02:18 +08:00
Loakesh Indiran e22798e587 fix: values event sql (#6663)
- [x] pass the original request sql to the `can_use_distinct_stream` fn
- [x] fix parsing json `Value` to string
- [x] fix `unwrap` when parsing sql
2025-04-28 14:38:30 +05:30
Zhao.wei b3c0bdd66e feat: impl grpc get files from other nodes (#6632) 2025-04-28 13:25:44 +08:00