Commit Graph
1971 Commits
Author SHA1 Message Date
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
Hengfei Yang b39bd467e5 fix: select star in wal maybe very slow for thousands fields (#6644) 2025-04-26 11:06:15 +08:00
e89423ca49 fix: cherry-pick rc7 fixes (#6649)
- [x] fix: `tokio_tungstenite` max msg limit config
- [x] honor user cancel in ui (logs, dashboards) if
`should_client_retry` is `true`, and is in loop.
- [x] fix: `values` event to send `cancel` response if search query
cancelled
- [x] handle `values` event error in ui

---------

Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: udev <uddhav@openobserve.ai>
2025-04-25 22:01:31 +05:30
Taiming Liuandsai nikhil kethe c19b649da1 feat: delay for scheduled pipelines (#6616)
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
2025-04-24 22:30:34 -07:00
14e014fe38 fix: enrichment table old data should not be used in vrls (#6639)
This pr uses the meta table to store the start_time and end_time of
enrichment table, instead of relying on the stream_stats table which
takes some time to update. When we cache enrichment table for vrls, we
use the above start_time and end_time instead of `BASE_TIMESTAMP`
(because when enrichment table is overridden, deletion of old data
happens in the background and is not realtime, so using `BASE_TIMESTAMP`
included old data)

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-04-25 09:57:02 +05:30
udev 16639038ed fix: do not use distinct stream if where clause contains match_all (#6637) 2025-04-24 09:50:52 -07:00
Ashish KolheandBhargav c1172e10fc fix: default histogram enabled (#6636)
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
2025-04-24 18:35:01 +05:30
1f575799fc feat: implement file list dump (#6467)
This implements the file list dump feature, where we dump the file list
by hour after compaction into parquet files and use those files while
searching through files lists. This also adds following variables -
- ZO_FILE_LIST_DUMP_ENABLED : if this dumping is enabled or not, default
is false
- ZO_FILE_LIST_DUMP_DUAL_WRITE : should the file list entries be kept in
the file list even after dumping. default is true, recommended is false.
Default can be changed after more verification.
- ZO_FILE_LIST_DUMP_MIN_HOUR : number of hours in past, only files older
than this will be considered for dumping, to avoid hot files issues.

The dump files entries themselves are stored in the file_list table as
was decided, so they also become a part of the normal compactor flow.
However, there is check to ensure these files are not dumped.

---------

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-04-24 11:42:43 +05:30
Hengfei Yang 072a8aa9cb fix: otel logs fields type is not correct (#6627) 2025-04-24 12:38:16 +08:00
Loakesh Indiran 5a695cc1f5 fix: lock handling (#6624)
- [x] better lock handling at router
- [x] send `CancelResponse` if search task errors out due to `search
query cancelled`
- [x] optimize `remove_querier_connection` at router `SessionManager`
2025-04-24 06:34:06 +05:30
Loakesh Indiran a2396e308f fix: ws remove locks from querier (#6623)
- [x] remove `WS_SEARCH_REGISTRY`
2025-04-23 18:17:28 +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
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
Zhao.wei 6df1a52f00 feat: add ratelimit for websocket (#6604) 2025-04-22 17:44:40 +08:00