mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 00:09:35 +00:00
ff29e0c9c09bc00a70cf5e678db9ebec1518ef7a
2350
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ff29e0c9c0 | fix: stream stats min_ts error (#8509) | ||
|
|
c2e8d73e65 | feat: implement broadcast join (#8506) | ||
|
|
c77a559183 |
feat: add pipeline usage (#8295)
### **PR Type** Enhancement, Bug fix ___ ### **Description** - Add pipeline and remote usage tracking - Report usage for remote destination WAL writes - Switch pipeline channels to structured items - Fix size accounting across pipeline branches ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Ingestion (Logs/Metrics)"] -- "pre-pipeline size" --> B["Usage: Pipeline"] B -- "execute pipeline" --> C["Pipeline Nodes (Condition/Function/Destination)"] C -- "local dest" --> D["Size by stream (no double count)"] C -- "remote dest WAL write" --> E["Usage: RemotePipeline"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>usage.rs</strong><dd><code>Add Pipeline and RemotePipeline usage types and mapping</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+22/-0</a> </td> </tr> <tr> <td><strong>ingest.rs</strong><dd><code>Report size before pipeline; avoid double counting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-e62118e45be183266d39ffa08491f255017954235ff0f3d6937683e314da406f">+13/-7</a> </td> </tr> <tr> <td><strong>batch_execution.rs</strong><dd><code>Add usage reporting; introduce PipelineItem; report remote WAL usage</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-3f6824a6eddaf1603e5cb0f1a4311ac6a45e1ffb967266ccc1f0bba944625e69">+158/-29</a></td> </tr> </table></details></td></tr><tr><td><strong>Bug fix</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>handlers.rs</strong><dd><code>Avoid ownership by cloning stream params key</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-5eca8995a88fcecb6d6b8efd3c7c4496f4a96a4b060fb4ed85593574f7cf49eb">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>otlp.rs</strong><dd><code>Minor formatting and flow tidy in loop</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-183498d98b17ddf344cbab4da6b2d9fe89ac81112db51655c142a89023b46ef3">+1/-0</a> </td> </tr> <tr> <td><strong>json.rs</strong><dd><code>Minor formatting; prep for pipeline handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+1/-0</a> </td> </tr> <tr> <td><strong>prom.rs</strong><dd><code>Minor formatting; prep for pipeline handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-c4e9e1d49a2bd0fefe67684b3768c4792be63cebcf727d71a48141f5b5957b8c">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
4f79d76323 | fix: improve match_all contains query (#8491) | ||
|
|
25c50d2e03 |
fix: update remote wal config (#8359)
### **PR Type**
Enhancement, Bug fix
___
### **Description**
- Add two new pipeline config options
- Set safe defaults when zero provided
- Improve WAL pipeline timing controls
___
### Diagram Walkthrough
```mermaid
flowchart LR
CFG["Config struct (Pipeline)"] -- "add fields" --> F1["pipeline_file_push_back_interval (secs)"]
CFG -- "add fields" --> F2["pipeline_sink_task_spawn_interval_ms (ms)"]
VALID["check_pipeline_config"] -- "apply defaults if 0" --> F1
VALID -- "apply defaults if 0" --> F2
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>config.rs</strong><dd><code>New pipeline timing fields
and defaulting logic</code>
</dd></summary>
<hr>
src/config/src/config.rs
<ul><li>Add <code>pipeline_file_push_back_interval</code> with env
config.<br> <li> Add <code>pipeline_sink_task_spawn_interval_ms</code>
with env config.<br> <li> Enforce non-zero defaults in
<code>check_pipeline_config</code>.<br> <li> Preserve existing WAL size
handling.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8359/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+20/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
1645873275 |
fix: interesting field config (#8480)
### **User description**
This provides the default tab for logs ui sidebar via config api and env
config
___
### **PR Type**
Enhancement
___
### **Description**
- Add env to set default fields tab
- Validate and expose config via status API
- Set frontend default tab based on config
- Add watcher to apply tab on toggle
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Env var ZO_LOG_PAGE_DEFAULT_FIELD_LIST"] --> B["Backend Config (Common.log_page_default_field_list)"]
B --> C["Config validation (uds|all|interesting)"]
C --> D["/api/config response (zo_config)"]
D --> E["Frontend store.state.zoConfig.log_page_default_field_list"]
E --> F["Logs UI sets default tab via setDefaultFieldTab()"]
F --> G["Watch toggle to re-apply default"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>config.rs</strong><dd><code>Introduce and validate
default field list config</code>
</dd></summary>
<hr>
src/config/src/config.rs
<ul><li>Add <code>log_page_default_field_list</code> env-config
option.<br> <li> Default to <code>uds</code>; document valid values.<br>
<li> Normalize to lowercase and validate allowed values.<br> <li>
Fallback to <code>uds</code> on invalid input.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8480/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+14/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Expose default field list in
status/config API</code>
</dd></summary>
<hr>
src/handler/http/request/status/mod.rs
<ul><li>Extend <code>ConfigResponse</code> with
<code>log_page_default_field_list</code>.<br> <li> Populate response
from common config.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8480/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+2/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>IndexList.vue</strong><dd><code>Use config to set Logs
UI default fields tab</code>
</dd></summary>
<hr>
web/src/plugins/logs/IndexList.vue
<ul><li>Add <code>setDefaultFieldTab()</code> to pick initial tab.<br>
<li> Use backend config to select UDS vs Interesting.<br> <li> Watch
user-defined schema toggle to re-apply default.<br> <li> Remove
hardcoded default to Interesting fields.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8480/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+24/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: omkark06 <omkar@zinclabs.io>
|
||
|
|
3515e6c95d | feat: support inverted index for metadata stream (#8483) | ||
|
|
3a1aaa0707 | refactor: replace feature_per_thread_lock with mem_table_bucket_num (#8484) | ||
|
|
215cf796cd | feat: remove etcd (#8466) | ||
|
|
97d09eff1e | fix: support prefix star match_all (#8451) | ||
|
|
aa372b53bf | feat: tantivy index for multi stream [phase 2] (#8229) | ||
|
|
237c757c7c | fix: improve nats queue with limit policy (#8436) | ||
|
|
53d23c4e1f | fix: improve stream stats reset (#8426) | ||
|
|
34a7341e87 |
chore: node list & user session refresh apis (#8198) (#8200)
### **PR Type** Enhancement ___ ### **Description** - Add CLI commands to refresh caches - Expose HTTP endpoints for refresh actions - Cache node list building in cluster module - Replace retention flag with mode enum ___ ### Diagram Walkthrough ```mermaid flowchart LR CLI["CLI subcommands"] -- triggers --> HTTP["HTTP endpoints"] HTTP -- calls --> Cluster["cluster::cache_node_list"] HTTP -- calls --> Sessions["db::session::cache()"] Config["Config: file_list_deleted_mode"] -- controls --> Retention["Compactor retention logic"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>cli.rs</strong><dd><code>New CLI subcommands for cache refresh</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-cb1eb3e74723d891353ccf1e2e5e0d246d2e78a5e69dbe4c73006ea8412d65e0">+6/-0</a> </td> </tr> <tr> <td><strong>http.rs</strong><dd><code>HTTP client helpers for refresh endpoints</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-790b7780a51e8eecd4754b623af8d15ad87baaaf29455ba646e2e410f83f5498">+22/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Cache node list and update consistent hash</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-d15434a27e2b8406811f5a707b605203b603dad4a262c0642326be860bd2b568">+33/-0</a> </td> </tr> <tr> <td><strong>config.rs</strong><dd><code>Replace retention flag with mode string config</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+3/-2</a> </td> </tr> <tr> <td><strong>stream.rs</strong><dd><code>Add FileListBookKeepMode enum and conversions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-2438d04c3fe97bc5452e5b74a303163b8723d93455cda32c95f0525435ad46bd">+29/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Add refresh nodes and user sessions endpoints</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+20/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Wire refresh endpoints into basic routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+3/-1</a> </td> </tr> <tr> <td><strong>retention.rs</strong><dd><code>Use retention mode for history/deleted behavior</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8200/files#diff-6abd048f5ef4e7163cffbb51cb4bee10c07fb88b871469d5b3724f7cd04743dc">+16/-6</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
6f40d2ffc0 | feat: use nats queue for cluster coordination (#8413) | ||
|
|
4f49af792f | fix: shutting down DDL connection (#8398) | ||
|
|
6c848afcab |
fix: skip when start time > end time for delayed derived stream (#8064)
### **User description**
- When delay is non-zero for derived stream, currently sometimes the
start time becomes greater than the end time. This pr fixes that by
moving to the next run where the end time eventually becomes greater
than the start time and also follows the given delay.
- Currently when updating a derived stream, it deletes the old scheduled
job, and hence the start time for the scheduled job changes. As a
result, there can be duplicate results in the derived stream because of
updates. This pr fixes this by just updating only the next_run_at field
of the scheduled_job.
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Prevent invalid time ranges with delay
- Align end/scheduled times consistently
- Respect free-trial by deferring runs a week
- Avoid deleting triggers on updates
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["DerivedStream trigger handling"] -- "align end time" --> B["aligned_end_time computed"]
B -- "start <= end ?" --> C["Proceed with eval"]
B -- "start > end" --> D["Skip to next run"]
D -- "set Skipped status" --> E["update trigger + usage"]
C -- "evaluate + set times" --> F["update trigger/next_run"]
G["Free trial check"] -- "expired" --> H["defer next_run_at by 7 days"]
I["Pipeline update"] -- "Scheduled -> Realtime" --> J["delete old trigger only on source change"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>components.rs</strong><dd><code>PipelineSource helpers
for source type checks</code>
</dd></summary>
<hr>
src/config/src/meta/pipeline/components.rs
<ul><li>Add helper methods <code>is_scheduled</code> and
<code>is_realtime</code><br> <li> Keep existing default
implementation</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8064/files#diff-e2d647c422ae05ac91abc683c7b11a3fb7da61ee30968ca6e84cdba40221bbb9">+10/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Safer trigger deletion on
pipeline source change</code>
</dd></summary>
<hr>
src/service/pipeline/mod.rs
<ul><li>Delete previous scheduled trigger only when source changes<br>
<li> Add use of <code>is_realtime</code> guard during updates</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8064/files#diff-c186c796a7bdfd9d1301b1429df11456430f1d0d4758783810b9e2e44384e3b2">+12/-9</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>handlers.rs</strong><dd><code>Robust delayed scheduling
and alignment fixes</code>
</dd></summary>
<hr>
src/service/alerts/scheduler/handlers.rs
<ul><li>Defer runs by 7 days for expired free-trial orgs<br> <li>
Compute aligned end and supposed run times<br> <li> Skip runs with
invalid start/end due to delay; set Skipped<br> <li> Reorder retry
handling; adjust next_run and logging<br> <li> Update trigger_data
start/end based on alignment<br> <li> Use aligned time for catch-up
logic</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8064/files#diff-5eca8995a88fcecb6d6b8efd3c7c4496f4a96a4b060fb4ed85593574f7cf49eb">+89/-39</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
e7b7fe5f03 | fix: str_match with function panic[main] (#8396) | ||
|
|
2bfde6bc0b |
fix: rewrite match_all_raw fns to match_all (#8399)
### **User description**
This adds a sql re-writer which re-writes `match_all_raw` and
`match_all_raw_ignore_case` to just `match_all` for backward
compatibility.
___
### **PR Type**
Bug fix, Tests
___
### **Description**
- Add SQL rewriter for `match_all_raw`
- Map ignore-case variant to `match_all`
- Integrate visitor into SQL pipeline
- Add unit tests for rewrites
___
### Diagram Walkthrough
```mermaid
flowchart LR
parser["Parse SQL statement"] --> removeDash["Remove DASHBOARD_ALL placeholders"]
removeDash --> matchAllRaw["Rewrite match_all_raw* -> match_all"]
matchAllRaw --> columns["Collect columns/limits"]
columns --> matchAll["Detect match_all usage"]
matchAll --> schema["Build used schema"]
schema --> rest["Index/optimizations pipeline"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Integrate match_all_raw
rewriter into SQL flow</code>
</dd></summary>
<hr>
src/service/search/sql/mod.rs
<ul><li>Import <code>MatchAllRawVisitor</code><br> <li> Visit AST to
rewrite <code>match_all_raw*</code><br> <li> Renumber subsequent
processing step comments</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8399/files#diff-dc0ab53d0ff551cf3cd12027c73d0da5e66680c0bf2d1830778639a33bac3464">+18/-13</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Register match_all_raw
rewriter module</code>
</dd></summary>
<hr>
src/service/search/sql/rewriter/mod.rs
- Export new `match_all_raw` module
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8399/files#diff-5e0199e85e9e2501ae1c5038ca5afb773dac8501a42f08b360fbaf9ab77c0440">+1/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>match_all_raw.rs</strong><dd><code>New visitor to
rewrite match_all_raw variants</code>
</dd></summary>
<hr>
src/service/search/sql/rewriter/match_all_raw.rs
<ul><li>Add <code>MatchAllRawVisitor</code> implementing
<code>VisitorMut</code><br> <li> Rewrite <code>match_all_raw*</code>
function names to <code>match_all</code><br> <li> Include comprehensive
unit tests</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8399/files#diff-933586a29412bf099e28da7c412feeb69d8eead2d69f3ebda1ba08abb2e6a2dc">+114/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
|
||
|
|
b72e85e0fe | feat: support nats ttl marker (#8377) | ||
|
|
49a6744266 |
fix: vrl panic issues (#8355) (#8366)
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Guard flattening for non-object JSON values
- Prevent panics by checking null/object types
- Improve timestamp handling on null values
- Tighten pipeline flattening conditions
___
### Diagram Walkthrough
```mermaid
flowchart LR
VRL["VRL result"] -- "may be null/non-object" --> Guard["Check is_object && not null"]
Guard -- "true" --> Flatten["Flatten JSON"]
Guard -- "false" --> Bypass["Use value as-is"]
Timestamp["Ingest timestamp"] -- "null" --> Now["Default to current time"]
Pipeline["Pipeline nodes"] -- "flatten only objects" --> Flatten
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>multi_streams.rs</strong><dd><code>Safe flattening in
multi-stream search</code>
</dd></summary>
<hr>
src/handler/http/request/search/multi_streams.rs
<ul><li>Flatten only when value is non-null object<br> <li> Preserve
non-object items in per-query responses<br> <li> Avoid unwrap panics by
using ok()/None</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8366/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+13/-5</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>functions.rs</strong><dd><code>Guard VRL transform
flattening</code>
</dd></summary>
<hr>
src/service/functions.rs
<ul><li>Only flatten VRL return if object<br> <li> Prevent empty-string
on non-object by-pass</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8366/files#diff-ed5611a9aa6b5c033e70d7631ba72fafad3cc842672077a7fcf965d11a4fef23">+1/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>ingest.rs</strong><dd><code>Robust null timestamp
handling</code>
</dd></summary>
<hr>
src/service/logs/ingest.rs
<ul><li>Default null timestamp to now<br> <li> Keep error on unparsable
non-null timestamps</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8366/files#diff-e62118e45be183266d39ffa08491f255017954235ff0f3d6937683e314da406f">+10/-4</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>http.rs</strong><dd><code>Safe flattening in clustered
search</code>
</dd></summary>
<hr>
src/service/search/cluster/http.rs
<ul><li>Flatten array items only if objects<br> <li> Guard VRL result
flattening<br> <li> Add conditional hit flattening in query_fn path</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8366/files#diff-fe0a1bbec7ef6418120544b589a531e5144b28cd2650f99135ed8a70ac17ac03">+17/-12</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>batch_execution.rs</strong><dd><code>Pipeline: guarded
flattening and timestamp checks</code>
</dd></summary>
<hr>
src/service/pipeline/batch_execution.rs
<ul><li>Flatten only non-null objects across nodes<br> <li> Apply guards
before condition/func/destination steps<br> <li> Conditional timestamp
handling only for objects<br> <li> Improve error logging and flow
control</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8366/files#diff-3f6824a6eddaf1603e5cb0f1a4311ac6a45e1ffb967266ccc1f0bba944625e69">+26/-18</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
0730d5f7a4 |
fix: landing page / Home page revamp (#6729)
### **User description**
1. This PR implements the latest UI of landing page / Home page with 2
charts for showing alerts and pipelines
2.
___
### **PR Type**
Enhancement
___
### **Description**
- Redesigned Home page layout and tiles
- Added alerts and pipelines charts
- Implemented theme-aware icons and styles
- Added loading state for summary fetch
___
### Diagram Walkthrough
```mermaid
flowchart LR
HomeView["HomeView.vue"]
SummaryAPI["Summary fetch & parsing"]
Charts["CustomChartRenderer charts"]
Tiles["Responsive metric tiles"]
Theming["Dark/Light computed icons & styles"]
Loading["Loading spinner state"]
HomeView -- "fetches org summary" --> SummaryAPI
SummaryAPI -- "sets metrics & statuses" --> Tiles
SummaryAPI -- "feeds alert/pipeline data" --> Charts
HomeView -- "applies theme classes" --> Theming
HomeView -- "shows while fetching" --> Loading
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>HomeView.vue</strong><dd><code>Home page redesign with
charts and theme-aware UI</code>
</dd></summary>
<hr>
web/src/views/HomeView.vue
<ul><li>Rebuilt template with responsive sections and tiles.<br> <li>
Added alerts pie and pipelines bar charts via CustomChartRenderer.<br>
<li> Introduced loading state, improved summary parsing, and theme-aware
<br>icons.<br> <li> Added extensive SCSS for dark/light theming and
layout.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6729/files#diff-9af441af191d3254ef5f9db603dca75486de7638cda41a3c050e7b3c33d68280">+568/-229</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: ByteBaker <42913098+ByteBaker@users.noreply.github.com>
|
||
|
|
15177ad58c |
feat: Display Alert name on the frontend - QueryManager View (#8378)
### **User description**
# PR Type
Fix / Enhancement
# Description
Similar to Dashboard names, we are also going to display the alert names
on the frontend. To do this we need to include the alert_name detail in
the SearchEventContext payload which will be tracked by the
QueryManager. The frontend update will make the alert name be displayed
as query_source - just like dashboard name.
___
### **PR Type**
Enhancement
___
### **Description**
- Add `alert_name` to search context
- Propagate field through proto and conversions
- Display alert source in RunningQueries
- Simplify test context init with defaults
___
### Diagram Walkthrough
```mermaid
flowchart LR
ProtoDef["cluster/search.proto adds 'alert_name'"] -- regenerates --> ProtoGen["generated cluster.rs includes alert_name"]
ProtoGen -- maps via From --> MetaModel["meta/search.rs SearchEventContext"]
AlertsEval["alerts/alert.rs evaluate()"] -- sets --> MetaModel
MetaModel -- exposed in usage --> Frontend["RunningQueries.vue shows alert name"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>search.rs</strong><dd><code>Add alert_name to
SearchEventContext and mappings</code>
</dd></summary>
<hr>
src/config/src/meta/search.rs
<ul><li>Add <code>alert_name</code> field to
<code>SearchEventContext</code>.<br> <li> Map <code>alert_name</code> in
From/Into proto conversions.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+4/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>alert.rs</strong><dd><code>Set alert_name in alert
evaluation context</code>
</dd></summary>
<hr>
src/service/alerts/alert.rs
<ul><li>Populate <code>search_event_ctx.alert_name</code> during alert
evaluation.<br> <li> Initialize mutable context then assign alert
name.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-574be3504bf4d855c65fd3d7a10797a970237ff552edac4962b474b3983e094e">+3/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>RunningQueries.vue</strong><dd><code>Display alert name
as query source in UI</code>
</dd></summary>
<hr>
web/src/components/queries/RunningQueries.vue
<ul><li>Compute <code>query_source</code> based on
<code>search_type</code>.<br> <li> Show <code>folder/dashboard</code>
for dashboards.<br> <li> Show <code>alert_name(alert_key)</code> for
alerts.<br> <li> Fallback to <code>-unknown-</code> when missing.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+10/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>search.proto</strong><dd><code>Proto: add alert_name to
SearchEventContext</code>
</dd></summary>
<hr>
src/proto/proto/cluster/search.proto
- Add `optional string alert_name = 8;` to `SearchEventContext`.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+1/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>cluster.rs</strong><dd><code>Regenerated proto includes
alert_name field</code>
</dd></summary>
<hr>
src/proto/src/generated/cluster.rs
- Include optional `alert_name` with tag 8 in generated struct.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-542d8f27a174c845740ca1c3fe0b697db89c3db666437c1c4dd8c9745510080c">+2/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>ingestion.rs</strong><dd><code>Simplify test context
with default struct update</code>
</dd></summary>
<hr>
src/service/self_reporting/ingestion.rs
<ul><li>Use <code>..Default::default()</code> to fill unused context
fields.<br> <li> Keep only <code>dashboard_id</code> explicitly set in
test.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-3edd5f4ed1eed0f765b7b450ef0fbf587632e6b22302006a5e397049e297057f">+1/-6</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
5d6700fa58 | feat: add per-stream flatten level configuration (#8353) | ||
|
|
09c09659fd | feat: add tokio runtime metrics collection (#8371) | ||
|
|
19574955fe |
chore: Update canonnicalization step for scan_files_filtered to be more async (#8364)
### **User description**
# PR type
Chore / Code improvement
# Description
We are addressing Greptile's complaint about Path::canonnicalize
negating the async benefits and suggested tokio::fs::cannonicalize. Now
all path canonnicalizations are performed asynchronously.
create_wal_dir_datetime_filter is now refactored into async_file.rs
where its companion function scan_file_filtered() exists.
___
### **PR Type**
Enhancement
___
### **Description**
- Switch to async canonicalization with Tokio
- Defer canonicalization after filtering files
- Batch resolve paths via join_all
- Preserve limit before async canonicalization
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Dir entries stream"] -- "filter files" --> B["PathBuf list (uncanonicalized)"]
B -- "apply limit (optional)" --> C["Bounded list"]
C -- "tokio::fs::canonicalize (join_all)" --> D["Canonical paths (String)"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>async_file.rs</strong><dd><code>Replace blocking
canonicalize with async batched canonicalize</code></dd></summary>
<hr>
src/config/src/utils/async_file.rs
<ul><li>Remove blocking <code>PathBuf::canonicalize</code> in
walker.<br> <li> Collect uncanonicalized files, then async
canonicalize.<br> <li> Use <code>futures::future::join_all</code> with
<code>tokio::fs::canonicalize</code>.<br> <li> Preserve string
conversion and error filtering.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8364/files#diff-8275f369cab85b5e9a97ed11d236de3364850b6989698936f19e70a0144e6a0d">+10/-8</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
419d60ff4e | chore: Move async scan_files_filtered() into appropriate async_file module (#8358) | ||
|
|
6e614f23e3 | fix: user update mode for enterprise (#8363) | ||
|
|
55a0c62d3f | fix: root user password reset (#8348) | ||
|
|
aff48e3a56 |
fix: Dashboards Names needed on the QueryManager (#8335)
### **User description** # PR Type Enhancement # Description On the Query Management view, the user must be able to see the Query generating sources like Dashboards and Alerts by their names. This PR addresses this by introducing an enhancement at the backend which responds with QueryStatus carrying search_event_context which has almost all the necessary details for this change. # !WIP + Need to validate the same for Alerts + QueryList.vue needs to be updated for the same changes. + A simple test on the backend for the responses guaranteeing that SearchEventContext is populated appropriately. ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Add search event context to statuses - Enrich dashboard names in task status - Propagate dashboard/folder names to frontend - Extend UI with Query Source column ___ ### Diagram Walkthrough ```mermaid flowchart LR BESEC["Backend SearchEventContext"] -- "added to proto + structs" --> QS["QueryStatus"] QS -- "get_task_status enriches names" --> Handler["gRPC handler"] Handler -- "QueryStatusResponse includes context" --> FEAPI["Frontend APIs"] FEAPI -- "pass dashboard/folder names" --> Panels["Panel Data Loader"] Panels -- "meta and URLs include names" --> Streams["Streaming/Search services"] Streams -- "display source" --> RunningQueries["Running Queries UI"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>13 files</summary><table> <tr> <td><strong>search.rs</strong><dd><code>Add SearchEventContext to QueryStatus and conversions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+31/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Enrich dashboard context in task status retrieval</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-8dcdb10340635be8bb58d45a815569026877f6fdbb3b69a773a30698b91674b0">+19/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Thread search_event_context through search and responses</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+2/-0</a> </td> </tr> <tr> <td><strong>usePanelDataLoader.ts</strong><dd><code>Pass dashboard/folder names in requests and meta</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+14/-0</a> </td> </tr> <tr> <td><strong>useStreamingSearch.ts</strong><dd><code>Include dashboard/folder names in stream URLs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-8fce3e25a161cd458e734bd9b1f98aadefe3482da7b6529a5b1f4fa20ec115e2">+4/-0</a> </td> </tr> <tr> <td><strong>search.ts</strong><dd><code>Add dashboard/folder names to search and metrics URLs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-885ab872dbc6e7b20264df815e3ef4727f0abc86ce90d2fb47e4aff572814c75">+17/-0</a> </td> </tr> <tr> <td><strong>PanelContainer.vue</strong><dd><code>Forward dashboard/folder names to renderer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+4/-0</a> </td> </tr> <tr> <td><strong>PanelSchemaRenderer.vue</strong><dd><code>Accept and propagate dashboard/folder name props</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+12/-0</a> </td> </tr> <tr> <td><strong>RunningQueries.vue</strong><dd><code>Show query source from search_event_context</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+1/-0</a> </td> </tr> <tr> <td><strong>RunningQueriesList.vue</strong><dd><code>Add Query Source column to table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-eb568491630bd1b80935cc0b02498d40274ede0e5be78593a0b49ca17fbbe627">+7/-0</a> </td> </tr> <tr> <td><strong>RenderDashboardCharts.vue</strong><dd><code>Provide dashboard/folder names to panel containers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-313f7c69102161242c893c863c50f1f1cd1fc19b68b5c99bf840b4b5c72f0f2e">+12/-0</a> </td> </tr> <tr> <td><strong>ViewDashboard.vue</strong><dd><code>Supply dashboard and folder names to charts view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3">+2/-0</a> </td> </tr> <tr> <td><strong>search.proto</strong><dd><code>Define SearchEventContext and add to QueryStatus</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+11/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>cluster.rs</strong><dd><code>Generate proto for SearchEventContext and QueryStatus field</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-542d8f27a174c845740ca1c3fe0b697db89c3db666437c1c4dd8c9745510080c">+20/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>RunningQueriesList.spec.ts</strong><dd><code>Update tests for new Query Source column</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-b1229a7a60180bf83bd9c81e1306941b8414522339566763c92b5d06c979ff38">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>launch.json</strong><dd><code>Add LLDB config for server debugging</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-bd5430ee7c51dc892a67b3f2829d1f5b6d223f0fd48b82322cfd45baf9f5e945">+19/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>en.json</strong><dd><code>Add i18n key for Query Source column</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech> |
||
|
|
1c2237d4a8 |
chore: shutdown ddl pool (#8330)
### **PR Type**
Enhancement
___
### **Description**
- Add DDL pool shutdown helpers
- Invoke shutdown after migrations complete
- Handle MySQL and PostgreSQL cases
- Log outcomes and warnings
___
### Diagram Walkthrough
```mermaid
flowchart LR
MIG["Migrations complete"] -- "meta_store=postgres" --> P["Call postgres::shutdown_ddl_pool()"]
MIG -- "meta_store=mysql" --> M["Call mysql::shutdown_ddl_pool()"]
MIG -- "meta_store=sqlite/other" --> S["No-op"]
P -- "close CLIENT_DDL" --> PDONE["Postgres DDL pool closed"]
M -- "close CLIENT_DDL" --> MDONE["MySQL DDL pool closed"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>mysql.rs</strong><dd><code>MySQL DDL pool shutdown
helper</code>
</dd></summary>
<hr>
src/infra/src/db/mysql.rs
<ul><li>Add <code>shutdown_ddl_pool()</code> async function.<br> <li>
Close <code>CLIENT_DDL</code> and return <code>Ok(())</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8330/files#diff-412dc407af348f4b54b7d98de6a928876b0333ea501792498a0568850f83d7b7">+4/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>postgres.rs</strong><dd><code>PostgreSQL DDL pool
shutdown helper</code>
</dd></summary>
<hr>
src/infra/src/db/postgres.rs
<ul><li>Add <code>shutdown_ddl_pool()</code> async function.<br> <li>
Close <code>CLIENT_DDL</code> and return <code>Ok(())</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8330/files#diff-1554e69f6d6c29812af88f0dcf093240b24ff85f9e292322c71cb19b0dda808d">+5/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Trigger DDL pool shutdown
post-migration</code>
</dd></summary>
<hr>
src/migration/mod.rs
<ul><li>Log intent to shutdown DDL pool.<br> <li> Conditionally call
MySQL/Postgres shutdown after migrations.<br> <li> Handle errors with
warnings; SQLite no-op.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8330/files#diff-eb855be0fa22d1a540379f6142cc4a473d49f89c3e0fe16cfd5078d5a69f9a3b">+17/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
b05ce76854 |
fix: correct union query with wildcard[main] (#8347)
for query ```sql select * from t1 union select * from t2 ``` if the column number and schema not match, we should return error |
||
|
|
b863826d9f | fix: organization related issues (#8130) | ||
|
|
8307dfb237 | perf: imporve string view gc (#8290) | ||
|
|
5b907c1a9f | fix: hash join behavior change after upgrade datafusion (#8325) | ||
|
|
890a8d4402 | fix: add length filter for tantivy token (#8310) | ||
|
|
30babf9eab | fix: default value for enable_distinct_fields (#8287) | ||
|
|
b392816a2b |
chore: default disable utf8view for main (#8283)
related to https://github.com/openobserve/openobserve/issues/8280 in some case, the utf8view will result in large memory usage, and slow down performance, so current make it default disable |
||
|
|
bb710d5373 |
chore: debug logs for gc and get_ctx_and_physical_plan (#8256)
### **PR Type**
Enhancement
___
### **Description**
- Add granular performance timing logs
- Log durations for GC and search phases
- Improve observability with structured inspector fields
- Minimal functional changes, diagnostics only
___
### Diagram Walkthrough
```mermaid
flowchart LR
GC["Disk cache GC"] -- "measure + log time" --> GCLog["GC completed log"]
Opt["Tantivy optimize"] -- "measure + log" --> OptLog["Optimize duration log"]
Sort["Sort file list"] -- "measure + log" --> SortLog["Sort duration log"]
Stor["Storage search"] -- "measure + log" --> StorLog["Storage search duration log"]
Union["Create union table"] -- "measure + log" --> UnionLog["Union creation log"]
Scan["Union table scan"] -- "measure + log" --> ScanLog["Scan duration log"]
Rewrite["Physical plan rewrite"] -- "measure + log" --> RewriteLog["Rewrite duration log"]
TantivyRew["Tantivy optimize rewrite"] -- "measure + log" --> TantivyRewLog["Tantivy rewrite duration log"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>disk.rs</strong><dd><code>Add timing to file disk cache
GC</code>
</dd></summary>
<hr>
src/infra/src/cache/file_data/disk.rs
<ul><li>Start timer at GC start<br> <li> Log GC completion with released
bytes and duration</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8256/files#diff-af63f2c5d85313779df0204c9689e50a6c3916e3aadc24e54e23ec640a584fcb">+4/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>flight.rs</strong><dd><code>Instrument search workflow
with detailed timing logs</code>
</dd></summary>
<hr>
src/service/search/grpc/flight.rs
<ul><li>Add timers for search pipeline stages<br> <li> Log durations via
search_inspector_fields<br> <li> Cover optimize, sort, storage search,
union, scan, rewrite<br> <li> Add logs for Tantivy optimize rewrite
timing</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8256/files#diff-8f9464a4df8af407ec61aef1ac4853c0474c99c8698fae38f9cfea344207fc2f">+94/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
|
||
|
|
af1b104da3 | feat: A better "Improve scan file" for wal parquet search #7876 (#8242) | ||
|
|
aaf06d2118 |
feat: use uuid v7 for internal trace ids (#8261)
### **PR Type**
Enhancement, Tests
___
### **Description**
- Switch trace IDs to UUID v7
- Add timestamp extraction from trace ID
- Improve HTTP header parsing robustness
- Add frontend UUID v7 utils and tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
RustGen["Rust: generate_trace_id uses UUID v7"] -- "u128 -> OTel TraceId" --> OTel["OpenTelemetry TraceId"]
RustExtract["Rust: get_start_time_from_trace_id"] -- "parse v7 timestamp" --> QueryTime["Adjust query time window"]
HTTP["HTTP traces handler"] -- "robust headers + trace_id param" --> RustExtract
WebUtil["Web utils: getUUIDv7 + generateTraceContext"] -- "v7 traceId, v4 spanId" --> BrowserTraces["Browser trace context"]
TestsRust["Rust tests"] -- "validate v7, ordering, parsing" --> RustGen
TestsWeb["Web tests"] -- "validate v7, ordering, context" --> WebUtil
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>ider.rs</strong><dd><code>Switch to UUID v7 and add
timestamp extraction</code>
</dd></summary>
<hr>
src/config/src/ider.rs
<ul><li>Generate trace IDs using <code>Uuid::now_v7()</code>.<br> <li>
Add <code>get_start_time_from_trace_id</code> to extract microsecond
timestamp.<br> <li> Expand tests for v7 validity, ordering, and
parsing.<br> <li> Strengthen span ID and snowflake generator tests.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8261/files#diff-6ea42b8eab8ba0708f93f9a8b44056d9a9e6ac42517ffba12f81420d6b0bd2b0">+279/-17</a></td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Robust headers and time-window
from trace_id</code>
</dd></summary>
<hr>
src/handler/http/request/traces/mod.rs
<ul><li>Make Content-Type/header parsing tolerant to errors.<br> <li>
Allow <code>trace_id</code> param or filter to set time window.<br> <li>
Derive query window from UUID v7 timestamp.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8261/files#diff-64694c886c809b6efe449e6eba9fbb33d31ce5a3c49cea1a30006fc1d9522665">+37/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>zincutils.ts</strong><dd><code>Frontend UUID v7 support
and trace context</code>
</dd></summary>
<hr>
web/src/utils/zincutils.ts
<ul><li>Import and expose <code>getUUIDv7</code>.<br> <li> Use UUID v7
for traceId in trace context.<br> <li> Keep spanId generation via UUID
v4.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8261/files#diff-d3d59688cccdcc6c84ebe88b698c6910030abecc3125f4c0ef81b0df023699ba">+8/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>zincutils.spec.ts</strong><dd><code>Tests for UUID v7
and trace context</code>
</dd></summary>
<hr>
web/src/utils/zincutils.spec.ts
<ul><li>Add tests for <code>getUUIDv7</code> validity, uniqueness,
ordering.<br> <li> Validate trace context uses v7 traceId.<br> <li>
Ensure uniqueness of trace and span IDs.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8261/files#diff-225d7ad1afe0a7e6f522c267bfd9ac4928cb5c23047fc6c02a287519a34aacb7">+45/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>Cargo.toml</strong><dd><code>Add uuid v7
dependency</code>
</dd></summary>
<hr>
Cargo.toml
- Add `uuid` crate with v7 feature.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8261/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542">+1/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>Cargo.toml</strong><dd><code>Add uuid to config crate
dependencies</code>
</dd></summary>
<hr>
src/config/Cargo.toml
- Wire `uuid` crate via workspace dependency.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8261/files#diff-a70836e42ee2ff2af5068df047dd443758a0edc910d8ec5a01780396a69c9a9e">+1/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
f8cc585408 |
feat: store ratelimit info in vendor extension (#8259)
### **PR Type** Enhancement, Documentation ___ ### **Description** - Replace ratelimit comments with OpenAPI extensions - Add `x-o2-ratelimit` metadata to endpoints - Import `serde_json::json` where needed - Clean up obsolete inline ratelimit markers |
||
|
|
95439dc8ff | fix: scan_stats for each node info (#8251) | ||
|
|
8af3495611 |
fix: cloud sync (#8222)
### **User description**
This is for syncing the changes done in cloud to main branch. No changes
for non-cloud code.
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Add invite listing and decline APIs
- Bypass auth for user-scoped invite routes
- Improve trial-expiry handling and logging
- Add org cache and invalidation hooks
___
### Diagram Walkthrough
```mermaid
flowchart LR
FE["Login & Invitations UI"] -- "list/accept/decline" --> API["/api/invites*, /{org}/member_subscription"]
API -- "auth bypass for user-scoped invites" --> Auth["AuthExtractor/TokenValidator"]
Auth -- "pending invites flag" --> LoginRedir["/config/redirect builds URL params"]
OrgSvc["Organization Service"] -- "generate/list/decline/delete" --> InvitesDB["Org Invites"]
OrgSvc -- "invalidate cache" --> OrgCache["Org table in-memory cache"]
Ingest["Ingestion services"] -- "trial expired -> 429" --> Clients["Ingestion Clients"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>25
files</summary><table>
<tr>
<td><strong>user.rs</strong><dd><code>Expand invite payload with org and
inviter</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-e13b3a981fd70182b9738a6b0ecfdee915c5b36757703a87741e1eddf3f6e786">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>auth.rs</strong><dd><code>Auth bypass and key handling for
invite routes</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+36/-0</a>
</td>
</tr>
<tr>
<td><strong>jwt.rs</strong><dd><code>Return new user and pending invite
flags; defer org creation</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-232cab74f4cbf135af424744272e17732fbda8ac005d33c0acb4597e65479d02">+22/-4</a>
</td>
</tr>
<tr>
<td><strong>token.rs</strong><dd><code>Allow invite/member routes
without org user; header injection</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-3339b4a964c121766ef87fcec0070f27a2b7085cf81281b53154e53d33cb28cf">+34/-0</a>
</td>
</tr>
<tr>
<td><strong>ingest.rs</strong><dd><code>Suppress logging for trial
expiry errors</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-24f250254ecfdbe004af9dc0ea23f8a2c0105ae0898690ed3e565089e5d8eef9">+30/-9</a>
</td>
</tr>
<tr>
<td><strong>org.rs</strong><dd><code>Pending-only invites; delete invite
API; trial extend cache poke</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-b47c0c1a8a78524196176430268eecdbfaf6f46d6b95873d3cbe70cfd67182b0">+40/-4</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Include pending_invites flag in
login redirect</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+4/-4</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>List pending invites and decline
invite endpoint</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-56897e42f9436a640bc70fddc25686485ba8ae1223635b32d252a0333309f748">+36/-1</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Wire new invite endpoints into
router</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Add TrialPeriodExpired error
variant</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-90c725d0e77a6e7d4bcc130cf5783848a5cf0efdb304b351cd63cacf8775fc36">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>organizations.rs</strong><dd><code>Add in-memory org cache
with invalidation</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-4d87f9fe379a5d161a3e7c3c77f7f320be738e6a70c785aa5ce93cb0830c0147">+77/-7</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Start cloud billing watcher on
cloud builds</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+3/-0</a>
</td>
</tr>
<tr>
<td><strong>organization.rs</strong><dd><code>Invalidate org cache on
watch and mutations</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ce65cea926a09721a8fea14d07fe188bc2b887218e95d74a8bffefb54001da50">+4/-0</a>
</td>
</tr>
<tr>
<td><strong>user.rs</strong><dd><code>Delete invites for user
helper</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-6ee6b0fc9ed03224d4ddf0b7b631c6f81ff7d1d579bdb98d2c5d4453852eb5d6">+4/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Return trial expiry as dedicated
error</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-7c7b5bca85f0ced652965cae66540c96f56dfcca4f4c16b77bf7b45aac203d1b">+1/-3</a>
</td>
</tr>
<tr>
<td><strong>loki.rs</strong><dd><code>Silence trial expiry logs for Loki
ingestion</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a970c8c4785d4e4d878218615b17eec0cf4b4976121766b002c2b2f76371bfe6">+4/-1</a>
</td>
</tr>
<tr>
<td><strong>json.rs</strong><dd><code>Map trial expiry to HTTP 429 in
JSON ingest</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+15/-6</a>
</td>
</tr>
<tr>
<td><strong>otlp.rs</strong><dd><code>Return 429 for trial expiry;
reduce noise</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a24391bef75a4678c50724e8b5f305ec0ee8c2c74c68be9d677765de68b5d8dd">+17/-7</a>
</td>
</tr>
<tr>
<td><strong>organization.rs</strong><dd><code>Invite generation
validation; delete/decline invite flows</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-6b3c3c2b027c1158c0d41302cc69dfcd20ab68a6a4fa365cda403f838940bbb4">+48/-1</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Handle trial expiry with 429;
logging tweaks</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-66f3b4f5e7927092fd6e57738687a1091b6f316638f7c58f8d7be9addb72bc30">+34/-14</a>
</td>
</tr>
<tr>
<td><strong>users.rs</strong><dd><code>Enrich invite list; optional
pending filter; cleanup on removal</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-98da2588a28d62bb2e301d989836125f89f89b76272cd7f75e08ec4deeea5f38">+50/-6</a>
</td>
</tr>
<tr>
<td><strong>organizations.ts</strong><dd><code>Add decline subscription
API client</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-2c3bad4c7a9fcedd7a653599381149b82f9c350b177de9d72431013807d4c36f">+10/-7</a>
</td>
</tr>
<tr>
<td><strong>users.ts</strong><dd><code>Add pending/accept/reject invite
APIs</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a334d8d570d9bdcaa3d4c8c2a993eff009a1ec8eb499c8a3d1a292d9224159d0">+12/-4</a>
</td>
</tr>
<tr>
<td><strong>InvitationList.vue</strong><dd><code>New UI to accept or
reject invites</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ee97546ff1aba36cc0b24cb20782502c7c88279850cc3d540ea5685209f10702">+409/-0</a>
</td>
</tr>
<tr>
<td><strong>Login.vue</strong><dd><code>First-login invite handling and
logo tweaks</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a135c379ef6ac8f92199ea5f7ff19a227971a9b0a87ccccf87c0268740522c2c">+178/-58</a></td>
</tr>
</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>en.json</strong><dd><code>Add invitation-related
translations</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+18/-0</a>
</td>
</tr>
</table></details></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Subhra264 <chakrabortysubhradeep556@gmail.com>
Co-authored-by: udev <uddhav@openobserve.ai>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: udev <uddhavdave1@gmail.com>
|
||
|
|
d87d346bba |
fix: OpenAPI descriptions for endpoints (#8231)
### **User description** So far the OpenAPI descriptions for endpoint handlers was directly derived from the doc comments, leaving little control. This also leaked any dev-specific information into API spec. Now the summary and description are explicitly populated for all the endpoints, detaching them from doc comments. Also update response body annotations wherever necessary Also bump - utoipa: 4.0.0 -> 5.0.0 - utoipa-swagger-ui: 4.0.0 -> 9.0.0 ___ ### **PR Type** Documentation, Enhancement ___ ### **Description** - Add explicit OpenAPI summaries/descriptions - Correct response body schemas to Object/() - Update params/types for accuracy - Improve endpoint examples and metadata |
||
|
|
c5aab7b487 | chore: add UTs, run fmt and clippy | ||
|
|
c0897ae259 | refactor: stream stats (#8163) | ||
|
|
c49df079c7 |
test: add unit tests for alerts and self reporting (#8228)
### **PR Type**
Tests
___
### **Description**
- Add comprehensive unit tests for alerts
- Add extensive self-reporting queue tests
- Add serialization and model tests for usage
- Validate batching and timing behaviors
___
### Diagram Walkthrough
```mermaid
flowchart LR
Alerts["Alert model"] -- "unit tests" --> AlertsTests["alerts::tests"]
Reporting["Self-reporting queue/runner"] -- "unit tests" --> ReportingTests["self_reporting::tests"]
Usage["Usage/Trigger types"] -- "serde, traits tests" --> UsageTests["usage::tests"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>alert.rs</strong><dd><code>Add comprehensive tests for
Alert and params</code>
</dd></summary>
<hr>
src/config/src/meta/alerts/alert.rs
<ul><li>Add tests for <code>Alert</code> defaults and equality<br> <li>
Validate unique key logic and timestamps getters/setters<br> <li> Test
<code>ListAlertsParams</code> builder methods and chaining<br> <li>
Cover ancillary fields: destinations, context, owner/editor, flags</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8228/files#diff-45c7eaf1a764ab52f3e014fe0555c03dc59d77c5ce974684cdee4ed90463a234">+415/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Add tests for self-reporting
queue and runner</code>
</dd></summary>
<hr>
src/config/src/meta/self_reporting/mod.rs
<ul><li>Add async tests for <code>ReportingQueue</code>
enqueue/start/shutdown<br> <li> Test batching logic in
<code>ReportingRunner</code><br> <li> Validate debug formatting and
mixed data handling<br> <li> Add ignored test for channel-full
behavior</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8228/files#diff-f4101fa8423f7a25f311dd82dab6796ed4ac8fef68449b5f018157dc33ca7de3">+674/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>usage.rs</strong><dd><code>Add serialization and model
tests for usage types</code>
</dd></summary>
<hr>
src/config/src/meta/self_reporting/usage.rs
<ul><li>Add serde tests for <code>UsageData</code>,
<code>TriggerData</code>, enums<br> <li> Test display helpers and
classification methods<br> <li> Validate <code>RequestStats</code> and
<code>Stats</code> defaults/from/serde<br> <li> Test hashing/equality
for grouping keys and enums</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8228/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+684/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
9fcfdadc38 |
fix: improve write flush logic (#8208)
### **User description**
The old logic will close write first then remove from WRITERS, but if
close got problem, it never remove from WRITERS, then check ttl will get
the writer and try to flush it, at the end, got error:
```
[INGESTER:MEM] writer queue rotate error: channel closed
```
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Replace writer close with safe flush
- Remove-before-flush to avoid stale WRITERS
- Add informative logging around flush lifecycle
- Maintain metrics on file count decrement
___
### Diagram Walkthrough
```mermaid
flowchart LR
checkTTL["check_ttl()"] -- "iter WRITERS" --> flushAll["flush_all()"]
flushAll -- "remove key" --> writerFlush["Writer::flush()"]
writerFlush -- "send Close; await closed" --> walSync["WAL sync"]
flushAll -- "dec metric" --> metrics["INGEST_MEMTABLE_FILES dec"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>writer.rs</strong><dd><code>Safer writer flush and map
removal ordering</code>
</dd></summary>
<hr>
src/ingester/src/writer.rs
<ul><li>Add start log for flushing all writers.<br> <li> Change
flush_all: remove writer entry, then flush and dec metric.<br> <li>
Rename Writer::close to Writer::flush and update behavior.<br> <li> Log
when writer queue fully closed before WAL sync.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8208/files#diff-d1a9b1542cc2758afe4fa67abd454dd818718f4e1c7570303519af5a58d6301f">+7/-6</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
1989432ba7 |
feat: remove syslog (#8227)
### **User description** close #8186 ___ ### **PR Type** Enhancement, Documentation ___ ### **Description** - Remove syslog feature across codebase - Clean config and routing references - Update metadata prefixes and SBOM files - Refresh i18n and OpenAPI assets ___ ### Diagram Walkthrough ```mermaid flowchart LR SYS["Syslog feature"] -- "deprecated & removed" --> CODE["Code paths"] CODE -- "delete flags/routes" --> CFG["Configuration"] CODE -- "remove storage keys" --> META["Metadata prefixes"] CODE -- "update specs" --> SBOM["SBOM/XML assets"] CODE -- "update docs/i18n" --> WEB["Web locales & OpenAPI"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>13 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Remove syslog config import from job module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+3/-26</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Stop glob importing config; drop syslog usage</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+1/-3</a> </td> </tr> <tr> <td><strong>meta.rs</strong><dd><code>Drop `/syslog` from metadata item prefixes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-1797798cd07803457a6273ef793d56568d8c91e743f6c4649c6db733325fb0af">+1/-2</a> </td> </tr> <tr> <td><strong>config.rs</strong><dd><code>Remove syslog-related configuration options</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+0/-34</a> </td> </tr> <tr> <td><strong>config.rs</strong><dd><code>Purge syslog feature flag and defaults</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-cda0d9179ed982fa5f0989c9b26f21cfa49dd1de28195a98135650ffcc7c602a">+0/-25</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Clean references tied to syslog ingestion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-5061e662a8899b7e00e5744bd72f808b28ac479a8921ac519f7409bffdc4438a">+0/-60</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Delete syslog router endpoints</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+0/-5</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Detach syslog handler wiring</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-99620cff6123acf0598ed2ec9d1c06f02cb0ddece1bef898047eb303d0b71fc2">+0/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Remove syslog-specific log ingestion paths</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-ce72aea3fa4c44904cbd9ec07bd844bec71b49c9676d667b14056aa5798f96b2">+0/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Clean DB interactions for syslog keys</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-b7e3bf7f0ac23dd084c0c817a310a4d5e7a64ff532746d182986ef940fa03fd0">+0/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Adjust request handling without syslog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-a1cfd40da1ab6cd4db0181fd8664965034298047b3b7c3320c5385897a7c4aed">+0/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Unexport syslog services</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-1b15316505c31acccb26ba66d920fdb0894567d08d2bf1e3457716d128a67b83">+0/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Remove syslog metadata definitions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-fbf797574839e69491ea0429141c038c0ff96297bdf3d8c60d60cdc4acec74b1">+0/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>integration_test.rs</strong><dd><code>Update tests to exclude syslog paths</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-7ff815b68943f08bef79f083c09e55ca8c18db8e25033034b12fa31f1d43dab4">+0/-57</a> </td> </tr> <tr> <td><strong>useIngestionRoutes.spec.ts</strong><dd><code>Update UI tests to remove syslog routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-3b7ebacf9481f4643a2b56ffe53ab161fc89d416e280d45b48568866a4dee40c">+0/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>20 files</summary><table> <tr> <td><strong>openapi.rs</strong><dd><code>Remove syslog routes from OpenAPI</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-edb8ce232c0cd08366879f642788a75d99f6bab64b4c0e77391281fdb9241e90">+0/-5</a> </td> </tr> <tr> <td><strong>config.cdx.xml</strong><dd><code>Update config component index (remove syslog)</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-41ee11320f37e20fc96f754d35a890df5068af5072fd5388169d1cf305a1ed3b">+15011/-4611</a></td> </tr> <tr> <td><strong>wal.cdx.xml</strong><dd><code>Update WAL component index references</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-3d72e8b949a91b0bd78e97aa3ebf69e2887e2851223ea3d10fedeb0125c35a19">+19476/-358</a></td> </tr> <tr> <td><strong>openobserve.cdx.xml</strong><dd><code>Refresh SBOM root; remove syslog entries</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-454f38f03cf69f6b5358f5a528be4214ec2d33081b9e98ebe5d92c8bef47dc48">+14015/-7932</a></td> </tr> <tr> <td><strong>infra.cdx.xml</strong><dd><code>Update infra component index, no syslog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-e51bf18198bc65a604b53ee18152ad9f2453ab7870d5be949022058e054ada73">+14127/-6086</a></td> </tr> <tr> <td><strong>proto.cdx.xml</strong><dd><code>Update proto index; purge syslog mentions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-a15fa99b53917ea85b4e268bb7612d43ee881dbe4ecf70a6682bb919b1f2f219">+8000/-1513</a></td> </tr> <tr> <td><strong>ingester.cdx.xml</strong><dd><code>Adjust ingester index excluding syslog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-e72a9be4ba2aaff1a6b837a7f7149489603f8fe720766757c4291082e98b5a65">+15845/-4615</a></td> </tr> <tr> <td><strong>flight.cdx.xml</strong><dd><code>Add/refresh flight component index</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-f41393a0191b0560da893a5e24b2e4529f7c9bb34fc71231a532b8790630cba2">+19900/-0</a></td> </tr> <tr> <td><strong>hi.json</strong><dd><code>Remove syslog strings from Hindi locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-1e7b52b5c4e762db2c923d0d3efb6d693702825ed3a1a112d3069f26b0d5f605">+0/-13</a> </td> </tr> <tr> <td><strong>fr.json</strong><dd><code>Remove syslog strings from French locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+0/-13</a> </td> </tr> <tr> <td><strong>tr.json</strong><dd><code>Remove syslog strings from Turkish locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+0/-13</a> </td> </tr> <tr> <td><strong>de.json</strong><dd><code>Remove syslog strings from German locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+0/-13</a> </td> </tr> <tr> <td><strong>ko.json</strong><dd><code>Remove syslog strings from Korean locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+0/-13</a> </td> </tr> <tr> <td><strong>it.json</strong><dd><code>Remove syslog strings from Italian locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+0/-13</a> </td> </tr> <tr> <td><strong>nl.json</strong><dd><code>Remove syslog strings from Dutch locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+0/-13</a> </td> </tr> <tr> <td><strong>es.json</strong><dd><code>Remove syslog strings from Spanish locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+0/-13</a> </td> </tr> <tr> <td><strong>pt.json</strong><dd><code>Remove syslog strings from Portuguese locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+0/-13</a> </td> </tr> <tr> <td><strong>zh.json</strong><dd><code>Remove syslog strings from Chinese locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+0/-13</a> </td> </tr> <tr> <td><strong>ja.json</strong><dd><code>Remove syslog strings from Japanese locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+0/-13</a> </td> </tr> <tr> <td><strong>en.json</strong><dd><code>Remove syslog strings from English locale</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+0/-13</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>Cargo.toml</strong><dd><code>Update dependencies/features after syslog removal</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542">+0/-3</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>10 files</summary><table> <tr> <td><strong>syslog.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-dc6813e31e32c23aae5760091460d2ec4023d37ae73e49d29052d9f4e9f2e1fa">+0/-43</a> </td> </tr> <tr> <td><strong>websocket.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-48f05dcd4b6f1d8345cb5707e1a3c34eedd76d94a3c3904eeabd799c7820789d">+0/-90</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-58010c6e78f69dc57c353890a807371cd43c2b4cceeeb1e9378130f26d898397">+0/-143</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-66207bd699343342402f88cdd331f4c549783754e4921d0c8d43e026e2d8e575">+0/-135</a> </td> </tr> <tr> <td><strong>syslog_server.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-cb7610142582b44885f673583ab16262c3b9ca6de1f59a9def65e503360665a0">+0/-137</a> </td> </tr> <tr> <td><strong>report_server.cdx.xml</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-d7a2fd1b635919119af9187ef44188c384bd01e444e74a9d15eaa21b0840b7ed">+20472/-0</a></td> </tr> <tr> <td><strong>syslog.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-4c0e9282e3d2352f9a382099901fe034bae2961eed01d764f16ad52f27f55db4">+0/-180</a> </td> </tr> <tr> <td><strong>syslog.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-4bc46f36fad79f5df8c42b8a8d5d8c4a70b1320b966bcff3421deeb96a1981fa">+0/-559</a> </td> </tr> <tr> <td><strong>syslogs_route.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-325df35568c993fc0727bfb0499b682e6bd30af781687706306b3bdb429c49e2">+0/-191</a> </td> </tr> <tr> <td><strong>syslog.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8227/files#diff-69ec0272ddac65f2cc96c79d84ca3933fc335a8d21ab5dd6909d71ea02a46486">+0/-37</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |