Commit Graph
2350 Commits
Author SHA1 Message Date
Hengfei Yang ff29e0c9c0 fix: stream stats min_ts error (#8509) 2025-09-18 13:40:47 +08:00
Huaijin c2e8d73e65 feat: implement broadcast join (#8506) 2025-09-18 12:37:44 +08:00
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>&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8295/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+22/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ingest.rs</strong><dd><code>Report size before pipeline;
avoid double counting</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8295/files#diff-e62118e45be183266d39ffa08491f255017954235ff0f3d6937683e314da406f">+13/-7</a>&nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8295/files#diff-5eca8995a88fcecb6d6b8efd3c7c4496f4a96a4b060fb4ed85593574f7cf49eb">+1/-1</a>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8295/files#diff-183498d98b17ddf344cbab4da6b2d9fe89ac81112db51655c142a89023b46ef3">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>json.rs</strong><dd><code>Minor formatting; prep for
pipeline handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8295/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>prom.rs</strong><dd><code>Minor formatting; prep for
pipeline handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8295/files#diff-c4e9e1d49a2bd0fefe67684b3768c4792be63cebcf727d71a48141f5b5957b8c">+1/-0</a>&nbsp;
&nbsp; &nbsp; </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>
2025-09-17 19:02:41 +05:30
Hengfei Yang 4f79d76323 fix: improve match_all contains query (#8491) 2025-09-17 20:25:27 +08:00
udev 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-17 14:24:14 +05:30
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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Expose default field list in
status/config API</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>IndexList.vue</strong><dd><code>Use config to set Logs
UI default fields tab</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </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>
2025-09-17 10:45:02 +05:30
Hengfei Yang 3515e6c95d feat: support inverted index for metadata stream (#8483) 2025-09-17 07:31:49 +08:00
Hengfei Yang 3a1aaa0707 refactor: replace feature_per_thread_lock with mem_table_bucket_num (#8484) 2025-09-16 23:20:14 +08:00
Hengfei Yang 215cf796cd feat: remove etcd (#8466) 2025-09-16 19:02:47 +08:00
Hengfei Yang 97d09eff1e fix: support prefix star match_all (#8451) 2025-09-16 13:05:02 +08:00
Huaijin aa372b53bf feat: tantivy index for multi stream [phase 2] (#8229) 2025-09-15 22:56:47 +08:00
Hengfei Yang 237c757c7c fix: improve nats queue with limit policy (#8436) 2025-09-15 20:06:03 +08:00
Hengfei Yang 53d23c4e1f fix: improve stream stats reset (#8426) 2025-09-15 13:18:01 +08:00
Ashish Kolhe 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-cb1eb3e74723d891353ccf1e2e5e0d246d2e78a5e69dbe4c73006ea8412d65e0">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>http.rs</strong><dd><code>HTTP client helpers for refresh
endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-790b7780a51e8eecd4754b623af8d15ad87baaaf29455ba646e2e410f83f5498">+22/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Cache node list and update
consistent hash</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-d15434a27e2b8406811f5a707b605203b603dad4a262c0642326be860bd2b568">+33/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>config.rs</strong><dd><code>Replace retention flag with mode
string config</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>stream.rs</strong><dd><code>Add FileListBookKeepMode enum
and conversions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-2438d04c3fe97bc5452e5b74a303163b8723d93455cda32c95f0525435ad46bd">+29/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Add refresh nodes and user sessions
endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+20/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Wire refresh endpoints into basic
routes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>retention.rs</strong><dd><code>Use retention mode for
history/deleted behavior</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8200/files#diff-6abd048f5ef4e7163cffbb51cb4bee10c07fb88b871469d5b3724f7cd04743dc">+16/-6</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___
2025-09-15 09:52:42 +05:30
Subhra264 6f40d2ffc0 feat: use nats queue for cluster coordination (#8413) 2025-09-13 22:51:46 +08:00
Hengfei Yang 4f49af792f fix: shutting down DDL connection (#8398) 2025-09-13 11:58:58 +08:00
Subhra264 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Safer trigger deletion on
pipeline source change</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
</td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-12 14:18:22 +05:30
Huaijin e7b7fe5f03 fix: str_match with function panic[main] (#8396) 2025-09-12 15:41:35 +08:00
Yashodhan JoshiandYashodhan Joshi 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Register match_all_raw
rewriter module</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
</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>
2025-09-12 13:09:58 +05:30
Hengfei Yang b72e85e0fe feat: support nats ttl marker (#8377) 2025-09-12 11:56:19 +08:00
Ashish Kolhe 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>functions.rs</strong><dd><code>Guard VRL transform
flattening</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>ingest.rs</strong><dd><code>Robust null timestamp
handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>http.rs</strong><dd><code>Safe flattening in clustered
search</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
</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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </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>&nbsp;
</td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-11 20:21:33 +05:30
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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </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>
2025-09-11 17:13:26 +05:30
Simha G 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>alert.rs</strong><dd><code>Set alert_name in alert
evaluation context</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>RunningQueries.vue</strong><dd><code>Display alert name
as query source in UI</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>search.proto</strong><dd><code>Proto: add alert_name to
SearchEventContext</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-11 15:29:17 +05:30
Hengfei Yang 5d6700fa58 feat: add per-stream flatten level configuration (#8353) 2025-09-11 15:05:31 +08:00
Hengfei Yang 09c09659fd feat: add tokio runtime metrics collection (#8371) 2025-09-11 13:34:29 +08:00
Simha G 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>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-10 20:27:15 +08:00
Simha G 419d60ff4e chore: Move async scan_files_filtered() into appropriate async_file module (#8358) 2025-09-10 19:13:02 +08:00
Hengfei Yang 6e614f23e3 fix: user update mode for enterprise (#8363) 2025-09-10 19:08:09 +08:00
Hengfei Yang 55a0c62d3f fix: root user password reset (#8348) 2025-09-10 17:24:07 +08:00
Simha Gandktx-vaidehi 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>&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+31/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Enrich dashboard context in task
status retrieval</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-8dcdb10340635be8bb58d45a815569026877f6fdbb3b69a773a30698b91674b0">+19/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Thread search_event_context through
search and responses</code>&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>usePanelDataLoader.ts</strong><dd><code>Pass
dashboard/folder names in requests and meta</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+14/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useStreamingSearch.ts</strong><dd><code>Include
dashboard/folder names in stream URLs</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-8fce3e25a161cd458e734bd9b1f98aadefe3482da7b6529a5b1f4fa20ec115e2">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>search.ts</strong><dd><code>Add dashboard/folder names to
search and metrics URLs</code>&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-885ab872dbc6e7b20264df815e3ef4727f0abc86ce90d2fb47e4aff572814c75">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PanelContainer.vue</strong><dd><code>Forward
dashboard/folder names to renderer</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>PanelSchemaRenderer.vue</strong><dd><code>Accept and
propagate dashboard/folder name props</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>RunningQueries.vue</strong><dd><code>Show query source from
search_event_context</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>RunningQueriesList.vue</strong><dd><code>Add Query Source
column to table</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-eb568491630bd1b80935cc0b02498d40274ede0e5be78593a0b49ca17fbbe627">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>RenderDashboardCharts.vue</strong><dd><code>Provide
dashboard/folder names to panel containers</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-313f7c69102161242c893c863c50f1f1cd1fc19b68b5c99bf840b4b5c72f0f2e">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ViewDashboard.vue</strong><dd><code>Supply dashboard and
folder names to charts view</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>search.proto</strong><dd><code>Define SearchEventContext and
add to QueryStatus</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+11/-0</a>&nbsp;
&nbsp; </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>&nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-b1229a7a60180bf83bd9c81e1306941b8414522339566763c92b5d06c979ff38">+1/-1</a>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-bd5430ee7c51dc892a67b3f2829d1f5b6d223f0fd48b82322cfd45baf9f5e945">+19/-0</a>&nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8335/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___

---------

Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
2025-09-10 13:19:41 +05:30
Ashish Kolhe 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>postgres.rs</strong><dd><code>PostgreSQL DDL pool
shutdown helper</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Trigger DDL pool shutdown
post-migration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-10 11:57:18 +05:30
Huaijin 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
2025-09-10 13:05:34 +08:00
Sai Nikhil b863826d9f fix: organization related issues (#8130) 2025-09-09 22:20:22 +08:00
Huaijin 8307dfb237 perf: imporve string view gc (#8290) 2025-09-09 17:38:35 +08:00
Huaijin 5b907c1a9f fix: hash join behavior change after upgrade datafusion (#8325) 2025-09-09 17:37:08 +08:00
Hengfei Yang 890a8d4402 fix: add length filter for tantivy token (#8310) 2025-09-06 22:28:14 +08:00
Hengfei Yang 30babf9eab fix: default value for enable_distinct_fields (#8287) 2025-09-04 17:31:56 +08:00
Huaijin 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
2025-09-04 16:33:30 +08:00
Loakesh IndiranandHengfei Yang 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>flight.rs</strong><dd><code>Instrument search workflow
with detailed timing logs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-09-04 11:33:20 +05:30
Simha G af1b104da3 feat: A better "Improve scan file" for wal parquet search #7876 (#8242) 2025-09-04 13:12:58 +08:00
Ashish Kolhe 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>zincutils.ts</strong><dd><code>Frontend UUID v7 support
and trace context</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>Cargo.toml</strong><dd><code>Add uuid to config crate
dependencies</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-04 09:25:49 +05:30
sktrpathi 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
2025-09-02 21:30:20 +05:30
Huaijin 95439dc8ff fix: scan_stats for each node info (#8251) 2025-09-02 19:21:23 +08:00
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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-e13b3a981fd70182b9738a6b0ecfdee915c5b36757703a87741e1eddf3f6e786">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>auth.rs</strong><dd><code>Auth bypass and key handling for
invite routes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+36/-0</a>&nbsp;
&nbsp; </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>&nbsp;
&nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ingest.rs</strong><dd><code>Suppress logging for trial
expiry errors</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-24f250254ecfdbe004af9dc0ea23f8a2c0105ae0898690ed3e565089e5d8eef9">+30/-9</a>&nbsp;
&nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Include pending_invites flag in
login redirect</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>List pending invites and decline
invite endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-56897e42f9436a640bc70fddc25686485ba8ae1223635b32d252a0333309f748">+36/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Wire new invite endpoints into
router</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Add TrialPeriodExpired error
variant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-90c725d0e77a6e7d4bcc130cf5783848a5cf0efdb304b351cd63cacf8775fc36">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>organizations.rs</strong><dd><code>Add in-memory org cache
with invalidation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-4d87f9fe379a5d161a3e7c3c77f7f320be738e6a70c785aa5ce93cb0830c0147">+77/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Start cloud billing watcher on
cloud builds</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>organization.rs</strong><dd><code>Invalidate org cache on
watch and mutations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ce65cea926a09721a8fea14d07fe188bc2b887218e95d74a8bffefb54001da50">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>user.rs</strong><dd><code>Delete invites for user
helper</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-6ee6b0fc9ed03224d4ddf0b7b631c6f81ff7d1d579bdb98d2c5d4453852eb5d6">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Return trial expiry as dedicated
error</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-7c7b5bca85f0ced652965cae66540c96f56dfcca4f4c16b77bf7b45aac203d1b">+1/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>loki.rs</strong><dd><code>Silence trial expiry logs for Loki
ingestion</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a970c8c4785d4e4d878218615b17eec0cf4b4976121766b002c2b2f76371bfe6">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>json.rs</strong><dd><code>Map trial expiry to HTTP 429 in
JSON ingest</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+15/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>otlp.rs</strong><dd><code>Return 429 for trial expiry;
reduce noise</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a24391bef75a4678c50724e8b5f305ec0ee8c2c74c68be9d677765de68b5d8dd">+17/-7</a>&nbsp;
&nbsp; </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>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Handle trial expiry with 429;
logging tweaks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-66f3b4f5e7927092fd6e57738687a1091b6f316638f7c58f8d7be9addb72bc30">+34/-14</a>&nbsp;
</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>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>organizations.ts</strong><dd><code>Add decline subscription
API client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-2c3bad4c7a9fcedd7a653599381149b82f9c350b177de9d72431013807d4c36f">+10/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>users.ts</strong><dd><code>Add pending/accept/reject invite
APIs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a334d8d570d9bdcaa3d4c8c2a993eff009a1ec8eb499c8a3d1a292d9224159d0">+12/-4</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>InvitationList.vue</strong><dd><code>New UI to accept or
reject invites</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ee97546ff1aba36cc0b24cb20782502c7c88279850cc3d540ea5685209f10702">+409/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Login.vue</strong><dd><code>First-login invite handling and
logo tweaks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+18/-0</a>&nbsp;
&nbsp; </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>
2025-09-02 14:04:34 +05:30
sktrpathi 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
2025-09-01 23:34:30 +05:30
ByteBaker c5aab7b487 chore: add UTs, run fmt and clippy 2025-09-01 19:05:09 +05:30
Hengfei Yang c0897ae259 refactor: stream stats (#8163) 2025-09-01 18:38:17 +08:00
Subhra264 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>mod.rs</strong><dd><code>Add tests for self-reporting
queue and runner</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>usage.rs</strong><dd><code>Add serialization and model
tests for usage types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </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>&nbsp;
</td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-01 14:09:49 +05:30
Hengfei Yang 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-09-01 15:38:19 +08:00
Hengfei Yang 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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+3/-26</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Stop glob importing config; drop
syslog usage</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+1/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>meta.rs</strong><dd><code>Drop `/syslog` from metadata item
prefixes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-1797798cd07803457a6273ef793d56568d8c91e743f6c4649c6db733325fb0af">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>config.rs</strong><dd><code>Remove syslog-related
configuration options</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+0/-34</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>config.rs</strong><dd><code>Purge syslog feature flag and
defaults</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-cda0d9179ed982fa5f0989c9b26f21cfa49dd1de28195a98135650ffcc7c602a">+0/-25</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Clean references tied to syslog
ingestion</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-5061e662a8899b7e00e5744bd72f808b28ac479a8921ac519f7409bffdc4438a">+0/-60</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Delete syslog router
endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Detach syslog handler
wiring</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-99620cff6123acf0598ed2ec9d1c06f02cb0ddece1bef898047eb303d0b71fc2">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Remove syslog-specific log
ingestion paths</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-ce72aea3fa4c44904cbd9ec07bd844bec71b49c9676d667b14056aa5798f96b2">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Clean DB interactions for syslog
keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-b7e3bf7f0ac23dd084c0c817a310a4d5e7a64ff532746d182986ef940fa03fd0">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Adjust request handling without
syslog</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-a1cfd40da1ab6cd4db0181fd8664965034298047b3b7c3320c5385897a7c4aed">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Unexport syslog
services</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-1b15316505c31acccb26ba66d920fdb0894567d08d2bf1e3457716d128a67b83">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mod.rs</strong><dd><code>Remove syslog metadata
definitions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-fbf797574839e69491ea0429141c038c0ff96297bdf3d8c60d60cdc4acec74b1">+0/-2</a>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-7ff815b68943f08bef79f083c09e55ca8c18db8e25033034b12fa31f1d43dab4">+0/-57</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useIngestionRoutes.spec.ts</strong><dd><code>Update UI tests
to remove syslog routes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-3b7ebacf9481f4643a2b56ffe53ab161fc89d416e280d45b48568866a4dee40c">+0/-1</a>&nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-edb8ce232c0cd08366879f642788a75d99f6bab64b4c0e77391281fdb9241e90">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>config.cdx.xml</strong><dd><code>Update config component
index (remove syslog)</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-1e7b52b5c4e762db2c923d0d3efb6d693702825ed3a1a112d3069f26b0d5f605">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>fr.json</strong><dd><code>Remove syslog strings from French
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-db80e762b88ddf183820c050cdc6b215e6b02b365b5e73f5152af46b0d26f1a2">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>tr.json</strong><dd><code>Remove syslog strings from Turkish
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-6f0f131e9e2591480c4c5d1eaffc72d02dc31cbd8d3f90d8f012f08cabac8818">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>de.json</strong><dd><code>Remove syslog strings from German
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-78f24ecb2dbcfc38fdf3ec22b2559a5b40d236ea689d1c55f5d3e87168310264">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ko.json</strong><dd><code>Remove syslog strings from Korean
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-50e27ca1b4825a5026f3a251bfcf79c97cab07cfade2ebd512d332453d707c48">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>it.json</strong><dd><code>Remove syslog strings from Italian
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-2de78074a5f887afddce60d694ead9322e6ab223eb70251c13819f3028bdc70d">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>nl.json</strong><dd><code>Remove syslog strings from Dutch
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-a1706021687ae5d8a1c006c49eab3946174fecd895f9b70a89c2e76d97250906">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>es.json</strong><dd><code>Remove syslog strings from Spanish
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-ac2a2167b8b973e3f776f9fe3b43bef4576470d8ad33f3d7cfaff6edff0e5778">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>pt.json</strong><dd><code>Remove syslog strings from
Portuguese locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-38e804f64cb5e0e451849fc84e9b46e53c954a4a4263d51c18665ad45f4b4815">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>zh.json</strong><dd><code>Remove syslog strings from Chinese
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-8818055db58f83230aeea4ebfd4cec31d924e8c47b6f91298e356959ab25339e">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ja.json</strong><dd><code>Remove syslog strings from
Japanese locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-092e49c5f9fbc1b539ab9c2866d108d0ce1d314022b4c294eb4611b285e7bbd3">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>en.json</strong><dd><code>Remove syslog strings from English
locale</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+0/-13</a>&nbsp;
&nbsp; </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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8227/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542">+0/-3</a>&nbsp;
&nbsp; &nbsp; </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>&nbsp;
&nbsp; </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>&nbsp;
&nbsp; </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>&nbsp;
</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>&nbsp;
</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>&nbsp;
</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>&nbsp;
</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>&nbsp;
</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>&nbsp;
</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>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___
2025-09-01 14:47:47 +08:00