mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 00:09:35 +00:00
9f40388f45cc18b2686b41f2e23d0ecaf3bd697c
2137
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9f40388f45 |
chore: add unit tests (#7487)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add extensive unit tests across common meta modules - Refactor LokiError mapping and tag filtering logic - Simplify record_batch usage and string interpolation - Fix histogram interval functions and cache invalidation |
||
|
|
a613ab7698 |
fix: pipeline cache (#7488)
### **User description** fix: pipeline caching skipped in local mode |
||
|
|
e248d70d1c | fix: change some error to warn (#7481) | ||
|
|
3247fdb229 | fix: disck cache max metric (#7485) | ||
|
|
5921e27a6d |
fix: build issues (#7473)
### **User description** fixes the ent build failures ___ ### **PR Type** Bug fix ___ ### **Description** - Added `mut` to websocket message match arm - Removed unused enterprise imports ___ ### **Changes walkthrough** 📝 <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>handler.rs</strong><dd><code>Enable mutable message in WS handler</code> </dd></summary> <hr> src/router/http/ws/handler.rs <li>Added <code>mut</code> keyword to <code>message</code> in match arm<br> <li> Fixed compile error on message handling </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7473/files#diff-eadc17f110edfa7f870ce3b66b2e0d0bf301624c76f3b7ebeede043b073dd020">+1/-1</a> </td> </tr> </table></td></tr><tr><td><strong>Miscellaneous</strong></td><td><table> <tr> <td> <details> <summary><strong>utils.rs</strong><dd><code>Remove unused imports in utils module</code> </dd></summary> <hr> src/service/websocket_events/utils.rs <li>Removed unused <code>StreamType</code> and <code>meta</code> imports<br> <li> Cleaned up <code>enterprise_utils</code> module imports </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7473/files#diff-36caf9ef22ae6e1a217d51e023403ce24a1bd3d10b1bc6d5b86c982d6269bdbe">+0/-4</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> --------- Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com> |
||
|
|
ad21d033d3 |
fix: pass role to list_objects function to list only the resources the user has access to (#7417)
### **PR Type** Bug fix ___ ### **Description** - Added role parameter to object listing - Extended `list_objects` to accept role - Retrieved user role before listing - Passed role to OpenFGA authorizer ___ ### **Changes walkthrough** 📝 <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>validator.rs</strong><dd><code>Add role param to list_objects</code> </dd></summary> <hr> src/handler/http/auth/validator.rs <li>Added <code>role</code> parameter to <code>list_objects</code> signature<br> <li> Updated internal OpenFGA call with <code>role</code><br> <li> Retrieved user role before invoking listing<br> <li> Removed old call signature without role </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7417/files#diff-f4d4b51574b378a8c372345ea48875834a4eadacfac33fa4d0ceca1e0ef96b35">+8/-9</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
cd3bf2f160 | fix: improve stats from file_list_dump (#7471) | ||
|
|
25ce21cc3e | chore: clippy delints (#7446) | ||
|
|
f6351683d6 |
feat: add env to show dashboard symbol (#7444)
### **PR Type** Enhancement New Env: ```sh ZO_DASHBOARD_SHOW_SYMBOL_ENABLED=false # default ``` ___ ### **Description** - Introduce env var ZO_DASHBOARD_SHOW_SYMBOL_ENABLED - Add dashboard_show_symbol_enabled to Common config - Include flag in ConfigResponse struct - Return flag in /status HTTP endpoint ___ ### **Changes diagram** ```mermaid flowchart LR EC["EnvConfig: ZO_DASHBOARD_SHOW_SYMBOL_ENABLED"] CS["Common.dashboard_show_symbol_enabled"] CR["ConfigResponse.dashboard_show_symbol_enabled"] HR["/status HTTP response"] EC -- "load env var" --> CS CS -- "map to response" --> CR CR -- "included in JSON" --> HR ``` ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><table> <tr> <td> <details> <summary><strong>config.rs</strong><dd><code>Add dashboard_show_symbol_enabled env config</code> </dd></summary> <hr> src/config/src/config.rs <li>Added <code>ZO_DASHBOARD_SHOW_SYMBOL_ENABLED</code> env var<br> <li> Introduced <code>dashboard_show_symbol_enabled</code> boolean field </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7444/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+6/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>mod.rs</strong><dd><code>Expose flag in status response</code> </dd></summary> <hr> src/handler/http/request/status/mod.rs <li>Added <code>dashboard_show_symbol_enabled</code> to ConfigResponse<br> <li> Mapped config field to HTTP response in zo_config </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7444/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+2/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> --------- Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> |
||
|
|
bdb4338903 |
chore: add UT for CI (#7464)
### **PR Type** Tests ___ ### **Description** - Add unit tests for email validation - Add unit tests for OFGA unsupported check - Add tests for OFGA format conversion - Add tests to validate if a user is part of organization - Remove unused invite token stub ___ ### **Changes diagram** ```mermaid flowchart LR validTest["Test valid emails"] -- "calls" --> isValidEmail["is_valid_email"] ofgaTest["Test OFGA unsupported"] -- "calls" --> isOfgaUnsupported["is_ofga_unsupported"] formatTest["Test OFGA format"] -- "calls" --> intoFormat["into_ofga_supported_format"] userOrgTest["Test user from org"] -- "calls" --> isUserFromOrg["is_user_from_org"] ``` ___ ### **Changes walkthrough** 📝 <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>auth.rs</strong><dd><code>Add tests and cleanup in auth utils</code> </dd></summary> <hr> src/common/utils/auth.rs <li>Removed stub <code>generate_invite_token</code><br> <li> Added <code>test_valid_emails</code> unit tests<br> <li> Added <code>test_is_ofga_unsupported</code> unit tests<br> <li> Added <code>test_into_ofga_supported_format</code> unit tests<br> <li> Updated <code>println!</code> macros to use inline variables </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7464/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+36/-9</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
4ac160dadf |
ci: add more unit tests for tantivy (#7467)
✅ Functions coverage: 52.63% ✅ Lines coverage: 48.61% ✅ Regions coverage: 47.92% |
||
|
|
3102168008 |
ci: unit test (#7461)
### **PR Type** Tests, Enhancement ___ ### **Description** - Enable `ZO_RESULT_CACHE_ENABLED` by default - Add helper functions and tests for `generate_tantivy_index` - Add comprehensive Puffin module unit tests - Update coverage script to install `cargo nextest` ___ ### **Changes diagram** ```mermaid flowchart LR Config["Change default ZO_RESULT_CACHE_ENABLED"] TantivyMod["Add generate_tantivy_index tests"] PuffinMod["Add Puffin module tests"] Coverage["Update coverage.sh script"] Config --> TantivyMod TantivyMod --> PuffinMod PuffinMod --> Coverage ``` ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><table> <tr> <td> <details> <summary><strong>config.rs</strong><dd><code>Default result cache enabled</code> </dd></summary> <hr> src/config/src/config.rs - Changed default of `ZO_RESULT_CACHE_ENABLED` from false to true </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7461/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+1/-1</a> </td> </tr> <tr> <td> <details> <summary><strong>coverage.sh</strong><dd><code>Update coverage script</code> </dd></summary> <hr> coverage.sh - Added check/install for `cargo nextest` in coverage task </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7461/files#diff-2033e8e6b7ebfb5c3fe4039f2613d92e65315436b1fdcd3bbe27708370081383">+1/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>mod.rs</strong><dd><code>Add generate_tantivy_index tests</code> </dd></summary> <hr> src/service/tantivy/mod.rs <li>Added <code>create_test_batch</code> and <code>create_test_stream</code> helpers<br> <li> Added multiple async tests for <code>generate_tantivy_index</code> and <br><code>create_tantivy_index</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7461/files#diff-68837d2f393b453002ec2d95f6882cfcaf70d9ef6547be2c9a890e8b0fc3c559">+471/-0</a> </td> </tr> <tr> <td> <details> <summary><strong>mod.rs</strong><dd><code>Fix footer size and add puffin tests</code> </dd></summary> <hr> src/service/tantivy/puffin/mod.rs <li>Updated <code>FOOTER_SIZE</code> to include trailing magic<br> <li> Added unit tests for constants and serialization </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7461/files#diff-2f7f0bac01afc6e37908521d1d33d05fcd650b7a08792062976e1e7465b4a1f9">+278/-1</a> </td> </tr> <tr> <td> <details> <summary><strong>reader.rs</strong><dd><code>Add puffin reader tests</code> </dd></summary> <hr> src/service/tantivy/puffin/reader.rs <li>Added tests for <code>PuffinBytesReader</code> and <code>PuffinFooterBytesReader</code><br> <li> Covered parsing, validation, and error scenarios </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7461/files#diff-93d025368ac2b94462df57eb597f345d59967f0dbfb7745a5a7c60b008b85c16">+383/-0</a> </td> </tr> <tr> <td> <details> <summary><strong>writer.rs</strong><dd><code>Add puffin writer tests</code> </dd></summary> <hr> src/service/tantivy/puffin/writer.rs <li>Added tests for <code>PuffinBytesWriter</code> and <code>PuffinFooterWriter</code><br> <li> Verified blob writing, footer structure, and JSON serialization </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7461/files#diff-af51d55696b4d2b7e5f4c0ccd8af73e0b464db0c83114c3882548bee6ada5e1d">+306/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
ac5e56e66f | feat: remove parquet format inverted index (#7452) | ||
|
|
f88fcb6302 | feat: sync rc9 to main(BE) (#7447) | ||
|
|
ab5c296f50 |
fix: openfga migration for ai (#7434)
### **User description** This pr adds the migration needed for ai RBAC controls. ___ ### **PR Type** Enhancement ___ ### **Description** - Add AI chat permissions migration flow - Introduce version v0.0.17→v0.0.18 check - Populate AI ownership tuples per org - Require authentication for `/ai` endpoints ___ ### **Changes walkthrough** 📝 <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>Add AI chat permissions migration logic</code> </dd></summary> <hr> src/common/infra/ofga/mod.rs <li>Added <code>need_ai_chat_permissions_migration</code> flag<br> <li> Defined versions v0.0.17 and v0.0.18<br> <li> Checked meta vs existing model for AI migration<br> <li> Included AI ownership tuple during migration </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7434/files#diff-1b8694fad31c8249afeb419d92a9facbd170289db2c89100552883df876bb275">+10/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>auth.rs</strong><dd><code>Enforce authentication on AI endpoints</code> </dd></summary> <hr> src/common/utils/auth.rs <li>Removed skip-auth condition for AI paths<br> <li> Enforced authentication on <code>/ai</code> routes </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7434/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+0/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
143f9b44ad |
chore: remove bucket_num from histogram UDF (#7427)
### **User description** In signature of the UDF `histogram(field, v)`, when `v` was a number, it was treated as `bucket_num` and the interval was divided accordingly. This argument is now removed and `histogram` now has only two forms: - `histogram(field)` - `histogram(field, interval)` Additionally, the following changes have been made as part of this: - `generate_histogram_interval` no longer accepts `num: u16` - `intervals` inside the above function turned into a `const` - `macro_rules! intervals` to generate interval pairs for above Closes: #7406 |
||
|
|
5883edc5d3 | feat: upgrade datafusion to v47.0.0 (#7421) | ||
|
|
f5b2f18c98 |
fix: delete result cache to also delete aggregation cache (#7425)
### **PR Type** Bug fix ___ ### **Description** - Refactor result cache deletion pattern formatting - Add enterprise streaming aggregation cache deletion - Import `STREAMING_AGGS_CACHE_DIR` under enterprise feature - Improve error logging on aggregation deletion ___ ### **Changes diagram** ```mermaid flowchart LR A["delete_cache(path)"] -- "scan result files" --> B["Delete result caches"] B -- "scan aggs files (enterprise)" --> C["Delete aggregation caches"] ``` ___ ### **Changes walkthrough** 📝 <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>cacher.rs</strong><dd><code>Add aggregation cache deletion logic</code> </dd></summary> <hr> src/service/search/cache/cacher.rs <li>Added import of <code>STREAMING_AGGS_CACHE_DIR</code><br> <li> Refactored result cache pattern and prefix formatting<br> <li> Added enterprise aggregation cache deletion block<br> <li> Enhanced aggregation deletion error logging </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7425/files#diff-8c387b22b2c0a282600ee41ca702b3db60f5a284d507c0feb7418608ff062c6c">+30/-2</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
d04f11ff9f |
fix: chat_stream should be routed to queriers (#7413)
### **User description**
The router node should route the `/ai/chat_stream` api to the querier
nodes.
___
### **PR Type**
Bug fix
___
### **Description**
- Add ai/chat_stream to querier routes
- Update QUERIER_ROUTES array size
- Correct comment style for label route
- Add unit test for chat_stream routing
___
### **Changes diagram**
```mermaid
flowchart LR
A["Incoming /api/{org}/ai/chat_stream request"]
B["router.rs: is_querier_route matches chat_stream"]
C["Forward request to querier node"]
A -- "detect chat_stream path" --> B
B -- "matched in QUERIER_ROUTES" --> C
```
___
### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>router.rs</strong><dd><code>Add chat_stream to
QUERIER_ROUTES</code>
</dd></summary>
<hr>
src/config/src/router.rs
<li>Incremented QUERIER_ROUTES length to 24<br> <li> Inserted
("chat_stream", 3) route entry<br> <li> Updated comment for
ai/chat_stream path
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7413/files#diff-5227b263a6c37a040ee1e7482b6903ead2186dd71090ee70bdaf1c3b894487ad">+3/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Add unit test for
chat_stream</code>
</dd></summary>
<hr>
src/router/http/mod.rs
<li>Added test assertion for ai/chat_stream route<br> <li> Validates
is_querier_route("/api/default/ai/chat_stream")
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7413/files#diff-d7987e62dcc7b1ec1bd4aeabef94f85d8c41b2ea33de5ab78660794fa4d51a9e">+1/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
___
> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
|
||
|
|
b141504cf8 |
chore: upgrade rust to 2025-05-20 (#7316)
### **PR Type** Enhancement ___ ### **Description** - Use `if let ... && let ...` patterns - Inline named args in `format!` calls - Simplify visitor `visit` calls with `_ =` - Replace string interpolation in logging macros ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>5 files</summary><table> <tr> <td><strong>sql.rs</strong><dd><code>Refactor SQL visitor and limit logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-d9ccf393c53794b0ef2816eef12742c26e23d2788cde27780af7570662aea446">+249/-255</a></td> </tr> <tr> <td><strong>mysql.rs</strong><dd><code>Refactor time_range early-return patterns</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-06d02c738c6a4dc22ff022c16befef8d46aece6cfaa88bb4a5d3d5f92c2e50a1">+51/-51</a> </td> </tr> <tr> <td><strong>sql.rs</strong><dd><code>Expand UDF list and simplify visitors</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-a0a09c66a20d878ec7683ae222c919fbe092b8001871ade7f455b89573ce0911">+43/-39</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Refactor error mapping with `std::io::Error::other`</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-8ce79cea5617c3a661e5b64058ad3846abf8652bb44fbb88dfb9117ffcc577fd">+20/-36</a> </td> </tr> <tr> <td><strong>engine.rs</strong><dd><code>Simplify unary ops and format messages</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-a98ac5b55a4c9440c09c4e2dfa3b6f7f24f9e58fcb6bf8b10577a0b4f123ed41">+49/-63</a> </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>4 files</summary><table> <tr> <td><strong>mysql.rs</strong><dd><code>Inline format! and logging braces</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-412dc407af348f4b54b7d98de6a928876b0333ea501792498a0568850f83d7b7">+59/-76</a> </td> </tr> <tr> <td><strong>nats.rs</strong><dd><code>Simplify error mapping and formatting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2d6809ea34ea04477afb9a6f8287c93cef488b45ef8f0ebeec2241571b93994c">+49/-54</a> </td> </tr> <tr> <td><strong>sqlite.rs</strong><dd><code>Use brace shorthand in SQL strings</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-85f17b22460902614e5c28df8966ea3e7073325bd8dd43fa396ed9268b6b4b06">+45/-56</a> </td> </tr> <tr> <td><strong>action.rs</strong><dd><code>Use brace shorthand in Display impls</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-fc87c75a7df9539d7e7ee6184dfab02d4a8932323e81f95d57c05363aa44752d">+4/-4</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>101 files</summary><table> <tr> <td><strong>Cargo.toml</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542">+1/-1</a> </td> </tr> <tr> <td><strong>clippy.toml</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f3dbfb2563c3490394f44c26b51837018e79a79e75fd31e89b19e943a38317ea">+1/-0</a> </td> </tr> <tr> <td><strong>rust-toolchain.toml</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2b1bde2cf3a858b7bf7424cb8bcbf01f35b94dc80b925d9432cbab3319ca9b4e">+1/-1</a> </td> </tr> <tr> <td><strong>cli.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-cb1eb3e74723d891353ccf1e2e5e0d246d2e78a5e69dbe4c73006ea8412d65e0">+8/-8</a> </td> </tr> <tr> <td><strong>http.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-790b7780a51e8eecd4754b623af8d15ad87baaaf29455ba646e2e410f83f5498">+1/-1</a> </td> </tr> <tr> <td><strong>load.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-bfc7e9b23a8fa100bcad8490d697a3090f139440fcd2ce02fb539c1791100d50">+4/-4</a> </td> </tr> <tr> <td><strong>export.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-b9ca11eac019064e747b0c75157c280c8e8fa6d75edb83ca9ae46777e9668cc0">+2/-5</a> </td> </tr> <tr> <td><strong>import.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-e4415a147f0fe6e557c9fee2a5cad9058a46c30cfb79fe131d13802c0c8bb804">+2/-2</a> </td> </tr> <tr> <td><strong>etcd.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-37c2c2803d1c12ebb4ef9299bc79c9e6740fc5f19f7f4d84e7cfbb610b9561a9">+4/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-d15434a27e2b8406811f5a707b605203b603dad4a262c0642326be860bd2b568">+4/-4</a> </td> </tr> <tr> <td><strong>nats.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-901773980aa255942e7865b977fe63811f31511ac40bc512d6bbb14dbb54bece">+4/-4</a> </td> </tr> <tr> <td><strong>alert_folders.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-6ed0a38075313ced0916343ee6e6b86ab639f8ed59e4968df395aa30d72bd300">+3/-3</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-1b8694fad31c8249afeb419d92a9facbd170289db2c89100552883df876bb275">+4/-4</a> </td> </tr> <tr> <td><strong>wal.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-4928ae81597b28facdc3644f786ac14c60b0a406e1c7b8eac7232fbafbcbb6e3">+5/-5</a> </td> </tr> <tr> <td><strong>loki.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-121c166af5eab8b9cb83716afa7b65fa7856c006c809b3d910ced184c52ec587">+8/-8</a> </td> </tr> <tr> <td><strong>telemetry.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-3ff026b46d9431e0657828a3bde4ab118fec006b353c2abc80be4b74633c98b4">+2/-2</a> </td> </tr> <tr> <td><strong>auth.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+39/-43</a> </td> </tr> <tr> <td><strong>auth_tests.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2688cbdc0b009b3f0dd829c69ab86c6a7d0778ab3e65e916a410a76aa6ae6480">+1/-0</a> </td> </tr> <tr> <td><strong>functions.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f4df68dbcf485d6b98c0e673c12a19be2edab416e5fc22c7d08396d375cd9126">+1/-1</a> </td> </tr> <tr> <td><strong>http.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-3b50a69c1ec2f63f8eebb5f9880e17826463a586768aed3e3e15242833609d6b">+2/-3</a> </td> </tr> <tr> <td><strong>jwt.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-ad8a7b809caff90b4c49885a9b5d49ae03ca3fe00bef37a72d61b08b59df449c">+5/-5</a> </td> </tr> <tr> <td><strong>redirect_response.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f0415572330f30fceb16f230517e07f2c186e834cb8ca634795e5f92c1c57717">+3/-3</a> </td> </tr> <tr> <td><strong>stream.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2a60b2ae71e0a5c9dcceb588f262738f99df65fc2cb5b7002f2c37f87639e3b6">+2/-3</a> </td> </tr> <tr> <td><strong>websocket.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-6ff41099eded8eca4a0e579142d7af4429efb83350917780e0d3ae7dac13847a">+16/-17</a> </td> </tr> <tr> <td><strong>ider.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-6ea42b8eab8ba0708f93f9a8b44056d9a9e6ac42517ffba12f81420d6b0bd2b0">+1/-4</a> </td> </tr> <tr> <td><strong>alert.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-45c7eaf1a764ab52f3e014fe0555c03dc59d77c5ce974684cdee4ed90463a234">+2/-5</a> </td> </tr> <tr> <td><strong>destinations.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-e0ba33d95ef7f0eac13bdac7e750462907a0308f01c027ea206d058e282c977b">+1/-1</a> </td> </tr> <tr> <td><strong>inverted_index.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-8bf9d9403f05f53f0c6fd5e6a6dbf0204ea80465b233567552cb7395d08d1c3c">+1/-1</a> </td> </tr> <tr> <td><strong>components.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-e2d647c422ae05ac91abc683c7b11a3fb7da61ee30968ca6e84cdba40221bbb9">+2/-0</a> </td> </tr> <tr> <td><strong>promql.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-0893731b3f0345378627894e3ea4a9f8e8735b38622b2b96ab55e81760d188db">+1/-1</a> </td> </tr> <tr> <td><strong>ratelimit.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-fa7dc03fb526c09d5eb58021872d821fcd72eeb4d6a670224f5286012485bc3d">+1/-4</a> </td> </tr> <tr> <td><strong>search.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+22/-22</a> </td> </tr> <tr> <td><strong>sql.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-845dcf22be9d370a278c081df83a72bb8dc4b729f95c201839787088c82b57e7">+39/-39</a> </td> </tr> <tr> <td><strong>stream.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2438d04c3fe97bc5452e5b74a303163b8723d93455cda32c95f0525435ad46bd">+1/-1</a> </td> </tr> <tr> <td><strong>timed_annotations.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f94b4d6d12d68e7054ad33601e666b08e4594586013dc34384fa21b1df5fe6e8">+4/-4</a> </td> </tr> <tr> <td><strong>async_file.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-8275f369cab85b5e9a97ed11d236de3364850b6989698936f19e70a0144e6a0d">+19/-23</a> </td> </tr> <tr> <td><strong>download_utils.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-990aff76afde0d775c850302bf6399998aee73da05c76e719b5fbad6e7ed4b27">+3/-3</a> </td> </tr> <tr> <td><strong>file.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-405c4fb06d186c2423f78d42f3d195b12961877b091feff032f7df500450a72a">+6/-9</a> </td> </tr> <tr> <td><strong>flatten.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-d13aed536f8b484d0223d7158e45e3a51ea181846965f73be42dedae975afcc7">+1/-1</a> </td> </tr> <tr> <td><strong>md5.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f4d317c045b3df075e418dd6a7cd51f275befd1f2d15622afcb41c20024a8ee5">+1/-1</a> </td> </tr> <tr> <td><strong>prom_json_encoder.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-5c6b4c5bb9f3859855269fe2b06a05167469ebc2ac04b84fb45d8d92aba6b825">+1/-1</a> </td> </tr> <tr> <td><strong>query_select_utils.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2396baca05d001b681c6cc302c2acc901d4dc1e7acf32dd1be6fa9a759578a46">+30/-30</a> </td> </tr> <tr> <td><strong>record_batch_ext.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f84aa2842a164d6e85aa05a718159e87a325cac139c59e561f6f59313c6d7c5d">+1/-2</a> </td> </tr> <tr> <td><strong>schema.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2431bc157b9e51be2f16836a995b5ed52f41dded921a404bf2eebd506b49fdfb">+1/-2</a> </td> </tr> <tr> <td><strong>cgroup.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-167dbe688715e2a299b86aa662fd5170b68e54ec0f6a04e0ebfa0492b3ec6b00">+11/-9</a> </td> </tr> <tr> <td><strong>net.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f95051aabe608a9348aecbcc7f6866576f683f0e72cb4c84f7ed3e06c7e78b67">+7/-8</a> </td> </tr> <tr> <td><strong>time.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-7b7e5972c321c99c5147af56a71afc1136a7c75844b8442e207de60bc86b7ddf">+4/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-9a4dddd253d61f35b8d61d372477e24a4523f419aad2a63b226b19a584b8624f">+2/-5</a> </td> </tr> <tr> <td><strong>event.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-689769712cbd6bd02beba078c1e1dfc188e2be39ab19a0e232b8bd12bc7f1e78">+11/-11</a> </td> </tr> <tr> <td><strong>ingest.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-27ffe683f384ff836c6aac746240d755bdf17f3c6e0a65d8ec1a1ff82aaf7d5c">+7/-12</a> </td> </tr> <tr> <td><strong>jwt.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-232cab74f4cbf135af424744272e17732fbda8ac005d33c0acb4597e65479d02">+61/-62</a> </td> </tr> <tr> <td><strong>validator.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f4d4b51574b378a8c372345ea48875834a4eadacfac33fa4d0ceca1e0ef96b35">+17/-18</a> </td> </tr> <tr> <td><strong>dashboards.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-250eeebeec9d4ac0ac271466ed83cd33fea3f121080491b340dc95d9af287259">+4/-4</a> </td> </tr> <tr> <td><strong>action.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-616df3014c553f763ea57e925f1bff7bb47f9467c632940d93a45b7b1e4c3a07">+5/-6</a> </td> </tr> <tr> <td><strong>deprecated.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-3a5d80eac45bff881716e2cf099f90130659576eca017ad238a61781d3341b7e">+1/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-e67f49865e1cd36775282c55ba0c0579a52ce7542f9d8dde450033f0c66a9f4c">+2/-2</a> </td> </tr> <tr> <td><strong>ingest.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-24f250254ecfdbe004af9dc0ea23f8a2c0105ae0898690ed3e565089e5d8eef9">+2/-2</a> </td> </tr> <tr> <td><strong>loki.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-34691872632b619be8aadf255104f0e004fcf701dba98f88e231de5966eed099">+1/-1</a> </td> </tr> <tr> <td><strong>settings.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-1e807254f2faf8fd09b802f71b23412f203eed289033f96bfc62b15dd997db8c">+5/-5</a> </td> </tr> <tr> <td><strong>around.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-93b3688de26f8f7c9dc0389763e9999a254bcded15b6ae8c8349f18aec83bd4f">+9/-9</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+19/-20</a> </td> </tr> <tr> <td><strong>multi_streams.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+17/-18</a> </td> </tr> <tr> <td><strong>search_inspector.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f818db4ca10b411c3559cc2a2659c49a59a45ecde0e4a22f9ef023da0bf4a009">+27/-29</a> </td> </tr> <tr> <td><strong>search_job.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-d848b311eae318d198558c29a007c8973afb5f8867a31ec056f4e037dcd1b854">+4/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-095d70f65b6e69bf7de0180fcbcddcd7c89c4cf00095d7b06f039a07e73916bb">+2/-3</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-c10dd7b4ea20ffe5840c93a6ae4298aec0c32c8ba1b114192fda6c2bac1c41d1">+7/-7</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+10/-12</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-619eafba0f0509d905b021f4a16659010aca23c62cffd9cd3e6c2bbe204ce200">+14/-18</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-64694c886c809b6efe449e6eba9fbb33d31ce5a3c49cea1a30006fc1d9522665">+4/-7</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-56897e42f9436a640bc70fddc25686485ba8ae1223635b32d252a0333309f748">+4/-4</a> </td> </tr> <tr> <td><strong>session.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-6a1a862158668be26ad1575d7050eb9139bca3e469db56b32641b4c46d0f8144">+6/-7</a> </td> </tr> <tr> <td><strong>encoder.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-1825b00f221539b371b9fe8aa89f9cbc1cfb94f3b731f053e64c51fb5c5934cd">+1/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+2/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-66207bd699343342402f88cdd331f4c549783754e4921d0c8d43e026e2d8e575">+12/-12</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f8e74805561fa288a434e6e5ca8fb2c9068fb7f54a5a21f0a9bbba5f73249a5f">+21/-23</a> </td> </tr> <tr> <td><strong>etcd.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-33bb9257c1a1b9162c8679191b8d8b75c0b7395f72291ce73d77247ff924a66e">+20/-22</a> </td> </tr> <tr> <td><strong>postgres.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-1554e69f6d6c29812af88f0dcf093240b24ff85f9e292322c71cb19b0dda808d">+30/-45</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-90c725d0e77a6e7d4bcc130cf5783848a5cf0efdb304b351cd63cacf8775fc36">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-3df833bc826eb12e0819620d1fe316ef1ac352d293c11e57cc3df0da3c031e93">+10/-10</a> </td> </tr> <tr> <td><strong>postgres.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-bb24a30c9c3744eb31fb49e4271a9651d1f9a94a87455ac0074364b879af9651">+27/-24</a> </td> </tr> <tr> <td><strong>sqlite.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-85ff00530831fdaa4e13c05cb649f2e20479cce04a4b65ef78d131cdb89b6c71">+36/-35</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-bff7752b2aae0e9cef3ece1b9ddf17b9aa2f52f81fa777e6249039580aefbd69">+1/-1</a> </td> </tr> <tr> <td><strong>nats.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-b05729b03dff9a5e29eaf536d0f90e94a0c27a27d1a3a41b52f25dc6dc380138">+8/-23</a> </td> </tr> <tr> <td><strong>mysql.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-a275fb17137e6e7cd3dbc6432164136b20d1c2d4757eadaadd0b4a983473865a">+14/-35</a> </td> </tr> <tr> <td><strong>postgres.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-a281dfd3124defa76bf1100c7e4993def0cb3049cf1ad0b1c513ea0afe522d08">+2/-3</a> </td> </tr> <tr> <td><strong>sqlite.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-07751d2c8c454417335fa9dd06507099d8b1eaea9b04af99857db6d9c619e69f">+2/-3</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-386fd4fad1e48ab0a90516cab1947b1888b270b2fe912f30d2255cc38e6c519b">+15/-12</a> </td> </tr> <tr> <td><strong>accounts.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-7ff63b9d4046282262c347d3458395eae5b6853cb004e7349a37ec2274465fe0">+4/-4</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-71f24f3312c19e01c4eedcd6a720893e01e64d176d2afbe1e7c6171a23059716">+4/-6</a> </td> </tr> <tr> <td><strong>remote.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-fea1d32f99821f1913607362236bd9e5b65cb2a5f8ce2c11a9a4956ac646b3d1">+1/-1</a> </td> </tr> <tr> <td><strong>dashboards.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-edd90c6ec720f676311aa31a635f954d559e63582f0b4c39cb9206bfb095737b">+1/-1</a> </td> </tr> <tr> <td><strong>m20250109_092400_recreate_tables_with_ksuids.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-c16140f94722b17bff8753f09fa80ee0bbabc2b2f2f24b8800b459ced12fe0e4">+1/-1</a> </td> </tr> <tr> <td><strong>m20250113_144600_create_unique_folder_name_idx.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-1f6dc440bcd651434f5bd6a06a4ec7d3bd88760754edeeb8d38e861208a56cbd">+1/-1</a> </td> </tr> <tr> <td><strong>m20250125_132500_populate_templates_table.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-fa1e504b43669656f6fd652e221e954f3f3da7fd2892d524a0e8772b6d738107">+1/-1</a> </td> </tr> <tr> <td><strong>m20250320_000001_remove_alert_name_unique_constraint.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-f4094b2945a877db5709045deafdd2883ff31fd671d0782da058af40e522d559">+10/-17</a> </td> </tr> <tr> <td><strong>m20250611_000003_populate_reports_scheduled_jobs.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-6567d3d0361c1a184ba7877795a8c3c4f73ea9807b3d4c13efe621449dd3f80f">+8/-12</a> </td> </tr> <tr> <td><strong>search_jobs.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-b78a126c6e978d43e798fa2bcb56f7bb0132c107c716d4a9891c58b3c5a33ff9">+7/-8</a> </td> </tr> <tr> <td><strong>timed_annotations.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-4bc910d02f5ddc598e394d06172debe456c7db655cc16fef53eab55005880378">+14/-21</a> </td> </tr> <tr> <td><strong>partition.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-441e26dda30cadfa3cb1efbd9569aec96af8fdc779e4916814fb5f9477db3f6c">+1/-1</a> </td> </tr> <tr> <td><strong>writer.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-d1a9b1542cc2758afe4fa67abd454dd818718f4e1c7570303519af5a58d6301f">+5/-5</a> </td> </tr> <tr> <td><strong>Additional files not shown</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7316/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td> </tr> </table></details></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
5efc5e7a3a | fix: tantivy panic when the records mismatch (#7412) | ||
|
|
ebe4be0e61 |
feat: use StrinView to speed up query for main (#7400)
Tow new env ``` ZO_SEARCH_INSPECTOR_ENABLED = false ZO_UTF8_VIEW_ENABLED = true ``` |
||
|
|
8fb4b74b93 | fix: aws aurora do not support limit subquery (#7403) | ||
|
|
53fdf3d04b |
fix: disable write to cache in cache handler if req is streaming (#7379) & fix: histogram interval for http2 streaming (#7389) (#7392)
- fix: disable write to cache in cache handler if req is streaming (#7379) - fix: histogram interval for http2 streaming (#7389) ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Add `is_http2_streaming` flag to cache searches - Skip result caching for streaming requests - Update cache search signature and logic - Enhance cache miss logs with query info ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Bug fix</strong></td><td><details><summary>7 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Add streaming flag to gRPC search cache call</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-8dcdb10340635be8bb58d45a815569026877f6fdbb3b69a773a30698b91674b0">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Add streaming flag to HTTP search cache call</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+2/-0</a> </td> </tr> <tr> <td><strong>multi_streams.rs</strong><dd><code>Pass streaming flag to multi-stream search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+1/-0</a> </td> </tr> <tr> <td><strong>search_inspector.rs</strong><dd><code>Add streaming flag to inspector search calls</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-f818db4ca10b411c3559cc2a2659c49a59a45ecde0e4a22f9ef023da0bf4a009">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Add HTTP2 streaming check before caching</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-f07bfacc0501b9c234e64b16c1dd8eb0ae8fcbe231f90c81fed72bcc94946f74">+2/-0</a> </td> </tr> <tr> <td><strong>search_stream.rs</strong><dd><code>Pass streaming flag to streaming cache search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-b952a89375f2745a0daa273f1bdefc80c22997759a9b17a8fccbc70ae294e8e4">+1/-0</a> </td> </tr> <tr> <td><strong>search.rs</strong><dd><code>Pass streaming flag to websocket search cache</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-13476631e2e604b75e2dfdd8fb7b7a91c46dcd85faa50813afa0b87583bcdb26">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>multi.rs</strong><dd><code>Enhance cache miss logging details</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7392/files#diff-7eb49bf810eab33aedff3aa5af2f03dfef49c27d62dcaf85d182e8dad10b66d8">+6/-4</a> </td> </tr> </table></details></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
3aad96721d | chore: maintenance and cleanup (#7289) | ||
|
|
b0e9fde4b7 |
fix: return reports list data that ui needs to show (#7274)
### **User description** Because of the report migration merged recently, there are some fields that were not getting returned for the list reports api. Also, there was a bug in the report migration logic where the report frequency stored in the migrated table was not correct. This pr fixes both the issues. ___ ### **PR Type** Enhancement, Bug fix ___ ### **Description** - Extend ListReports API with time and dashboard fields - Update migration for align_time and JSON serialization - Expand query to include dashboards and frequency - Fix front-end snake_case field mappings ___ ### **Changes walkthrough** 📝 <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>reports.rs</strong><dd><code>Expand ListReportsResponseBodyItem with new fields</code> </dd></summary> <hr> src/handler/http/models/reports.rs <li>Imported <code>DateTime</code>, <code>ReportFrequency</code>, <code>ReportTimerange</code><br> <li> Added <code>created_at</code>, <code>dashboards</code>, <code>frequency</code>, <code>org_id</code> fields<br> <li> Changed error type to <code>anyhow::Error</code><br> <li> Introduced <code>ReportDashboard</code> struct and JSON parsing </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7274/files#diff-eddffe2b67f00de168167533f31cd12adbb541fa66af4c56e6a96a03469ec5fb">+38/-7</a> </td> </tr> <tr> <td> <details> <summary><strong>m20250611_000002_populate_reports_table.rs</strong><dd><code>Add align_time and simplify frequency serialization</code> </dd></summary> <hr> src/infra/src/table/migration/m20250611_000002_populate_reports_table.rs <li>Derived <code>Serialize</code> for <code>ReportFrequency</code> types<br> <li> Added <code>align_time</code> default property<br> <li> Removed custom <code>ReportFrequency</code> enum<br> <li> Simplified JSON serialization calls </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7274/files#diff-8247af6d6f8ccb6a5a51daff4cb1e352585be2d1c785d86ae5ebfea1dbc1099c">+12/-55</a> </td> </tr> <tr> <td> <details> <summary><strong>queries.rs</strong><dd><code>Expand ListReportsQueryResult for report dashboards</code> </dd></summary> <hr> src/infra/src/table/reports/queries.rs <li>Added <code>report_created_at</code>, <code>report_frequency</code>, <code>org_id</code> fields<br> <li> Joined <code>report_dashboards</code> and <code>dashboards</code> tables<br> <li> Included dashboard IDs, tabs, and timerange in query<br> <li> Updated tests to cover new columns and joins </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7274/files#diff-144c4572241c5b3f13abe628832674ad8cebb72e51acb1d1b14fae2a8307208a">+93/-22</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>ReportList.vue</strong><dd><code>Fix ReportList snake_case field mapping</code> </dd></summary> <hr> web/src/components/reports/ReportList.vue <li>Renamed <code>lastTriggeredAt</code> to <code>last_triggered_at</code><br> <li> Updated data mapping for <code>last_triggered_at</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7274/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067">+3/-3</a> </td> </tr> <tr> <td> <details> <summary><strong>ScheduledDashboards.vue</strong><dd><code>Align ScheduledDashboards with snake_case response</code> </dd></summary> <hr> web/src/views/Dashboards/ScheduledDashboards.vue <li>Aligned snake_case for <code>last_triggered_at</code>, <code>created_at</code>, <code>org_id</code><br> <li> Updated column labels to match new fields<br> <li> Adjusted data formatting conversions </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7274/files#diff-2aae6e201775bf68f6beb59704f131f7aca0da0fd9d8ba8ac4bdb5b9b289f41e">+6/-6</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> --------- Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> |
||
|
|
c21bbe77fc |
fix: scheduled pipeline should catch up when there is failures for a timerange (#7375)
### **User description** For a scheduled pipeline, we have a logic to catch up the delay whenever there is a delay. For example, say, at 10:00am, there are some errors while triggering scheduled pipeline, it will retry 3 times and then retry again after the given frequency (say 2 mins). Now when the error is resolved at 11:02am, the scheduled pipeline will again try to run the timerange of 10:00am - 10:02am first. But since there is a bug in the current code, this 1 hour delay will always be there. At, 11:04am it will run for 10:02-10:04, at 11:06, 10:04-10:06am etc. This pr fixes this bug. So, after the delay due to failures, the next time it runs successfully, it will be able to catch up the timerange by immediately retriggering the pipelines until it is in sync with the current time. ___ ### **PR Type** Bug fix ___ ### **Description** - Add debug logs for run-at time comparisons - Bound cron frequency with next cron evaluation - Refactor next_run_at calculation for catch-up - Reset retries count on successful runs ___ ### **Changes walkthrough** 📝 <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>handlers.rs</strong><dd><code>Improve trigger timing and catch-up behavior</code> </dd></summary> <hr> src/service/alerts/scheduler/handlers.rs <li>Insert debug log of <code>supposed_to_be_run_at</code> vs actual times<br> <li> Use <code>std::cmp::min</code> for cron trigger time selection<br> <li> Restructure <code>next_run_at</code> logic to enable catch-up </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7375/files#diff-5eca8995a88fcecb6d6b8efd3c7c4496f4a96a4b060fb4ed85593574f7cf49eb">+40/-11</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> Co-authored-by: Taiming Liu <liutaiming3@gmail.com> |
||
|
|
610bd1e367 |
fix: single node schedulable (#7376)
### **PR Type** Bug fix ___ ### **Description** - Make local node mutable for status update - Set `node.status` to Online - Enable scheduling by setting `node.scheduled` ___ ### **Changes walkthrough** 📝 <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>mod.rs</strong><dd><code>Enable local node scheduling and online status</code> </dd></summary> <hr> src/common/infra/cluster/mod.rs <li>Changed <code>load_local_node()</code> to return a mutable node<br> <li> Assigned <code>NodeStatus::Online</code> to <code>node.status</code><br> <li> Enabled scheduling by setting <code>node.scheduled = true</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7376/files#diff-d15434a27e2b8406811f5a707b605203b603dad4a262c0642326be860bd2b568">+3/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
f6b166788b |
fix: use random tmp directory for concurrent report server chromium instances (#7322)
### **User description** Ref: https://github.com/openobserve/o2_report_server/pull/19 concurrent chromium instances tries to create singletonock file in the `tmp/chromiumoxide-runner/SingletonLock` which throws error because only one instance can create that at a particular time. This pr fixes this by creating temporary user directories for chromium. ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Use `tempfile::tempdir` for isolated browser dirs - Change launcher options to return builder - Build browser config with `user_data_dir` - Ensure tempdir cleaned up with error logging ___ ### **Changes walkthrough** 📝 <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>report.rs</strong><dd><code>Add tempdir-based user_data_dir and builder config</code> </dd></summary> <hr> src/report_server/src/report.rs <li>Switch <code>CHROME_LAUNCHER_OPTIONS</code> to <code>BrowserConfigBuilder</code><br> <li> Modify <code>init_chrome_launch_options</code> to return builder<br> <li> Introduce <code>tempfile::tempdir()</code> for per-run user data<br> <li> Build browser config with <code>user_data_dir</code> and map errors<br> <li> Add tempdir cleanup in error and success paths </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7322/files#diff-a8d5d0e0fc56e67b38a20a46b91cc2e6bf76ade360a37ad29fce51cc4661a9a6">+24/-7</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
908e41fb57 | fix: set the node unscheduable before start http (#7364) | ||
|
|
48b19cc271 |
fix: cache delta start_time (#7367) (#7366)
### **User description** fix #7365 previous ref: #5872 ___ ### **PR Type** Bug fix, Tests ___ ### **Description** - Avoid duplicate end-gap query entries - Reset delta_start when exceeding end_time - Add unit test for delta intervals - Mark TODO in `check_cache` ___ ### **Changes walkthrough** 📝 <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>cacher.rs</strong><dd><code>Fix end-gap delta start calculation</code> </dd></summary> <hr> src/service/search/cache/cacher.rs <li>Wrap end-gap delta start computation<br> <li> Cap <code>expected_delta_start_time</code> to query start<br> <li> Add tests verifying delta interval validity<br> <li> Insert TODO in <code>check_cache</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7366/files#diff-8c387b22b2c0a282600ee41ca702b3db60f5a284d507c0feb7418608ff062c6c">+84/-3</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
b0f4bb5a5b | fix: node role should be already have value (#7358) | ||
|
|
f64e5e6576 |
fix: stream_type for join (#7348)
### **PR Type** Bug fix ___ ### **Description** - Add fallback for empty stream_type in joins - Use `sql.stream_type` when no type provided - Retain existing mapping for provided stream types ___ ### **Changes walkthrough** 📝 <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>http.rs</strong><dd><code>Implement stream_type fallback logic</code> </dd></summary> <hr> src/service/search/cluster/http.rs <li>Add conditional branch for empty stream_type<br> <li> Fallback to <code>sql.stream_type</code> when missing<br> <li> Retain original <code>StreamType::from</code> mapping otherwise </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7348/files#diff-fe0a1bbec7ef6418120544b589a531e5144b28cd2650f99135ed8a70ac17ac03">+5/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
665e207cd3 |
feat: allow pattern search in dropdown (#7339)
### **PR Type** Enhancement, Tests ___ ### **Description** - Add SQL pattern replacer for `::_o2_custom` suffix - Integrate replacer across search handlers and decode - Implement `StringMatchReplacer` visitor with tests - Cover multiple SQL scenarios in unit tests ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>10 files</summary><table> <tr> <td><strong>search.rs</strong><dd><code>Apply custom pattern replacement in decode</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+20/-2</a> </td> </tr> <tr> <td><strong>query_select_utils.rs</strong><dd><code>Add pattern replacer and visitor for SQL</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-2396baca05d001b681c6cc302c2acc901d4dc1e7acf32dd1be6fa9a759578a46">+521/-0</a> </td> </tr> <tr> <td><strong>around.rs</strong><dd><code>Integrate pattern replacement in around search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-93b3688de26f8f7c9dc0389763e9999a254bcded15b6ae8c8349f18aec83bd4f">+5/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Integrate replacer in main search endpoint</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-96630a0dbb6dd7b2b0248fa325c7c7041ce31340c32826675a4a70772e9d29f6">+15/-0</a> </td> </tr> <tr> <td><strong>values_v1.rs</strong><dd><code>Apply replacer in values_v1 handler</code> </dd></td> <td><a href=""></a></td> </tr> <tr> <td><strong>search_partition.rs</strong><dd><code>Integrate replacer in partition search</code> </dd></td> <td><a href=""></a></td> </tr> <tr> <td><strong>multi_streams.rs</strong><dd><code>Apply replacer in multi-streams search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-c3233cdf1e68cb2455f91457719b9c2f477e735ee16546fdfe111e76768bd054">+5/-0</a> </td> </tr> <tr> <td><strong>search_job.rs</strong><dd><code>Integrate replacer in job submission</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-d848b311eae318d198558c29a007c8973afb5f8867a31ec056f4e037dcd1b854">+6/-0</a> </td> </tr> <tr> <td><strong>search_stream.rs</strong><dd><code>Apply replacer in streaming search flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-b952a89375f2745a0daa273f1bdefc80c22997759a9b17a8fccbc70ae294e8e4">+4/-0</a> </td> </tr> <tr> <td><strong>sql.rs</strong><dd><code>Replace patterns before SQL processing</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-d9ccf393c53794b0ef2816eef12742c26e23d2788cde27780af7570662aea446">+10/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Expose `query_select_utils` module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7339/files#diff-f5df40ca59915d9d58ad04ea2440e6ebf29388afaeb8cb0d6c63d2a979df0c17">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
6379d0ea00 |
fix: histogram interval for http2 streaming (#7330)
### **PR Type** Bug fix ___ ### **Description** - Set `req.query.histogram_interval` directly - Remove manual SQL update and audit logging - Simplify imports in `search_stream.rs` ___ ### **Changes walkthrough** 📝 <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>search_stream.rs</strong><dd><code>Simplify histogram interval handling</code> </dd></summary> <hr> src/handler/http/request/search/search_stream.rs <li>Removed <code>update_histogram_interval_in_query</code> import <br> <li> Deleted manual SQL histogram update block <br> <li> Added direct <code>req.query.histogram_interval</code> assignment <br> <li> Streamlined HTTP utils imports grouping </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7330/files#diff-642de43ff6b19ae41087a9f1efc02d8b0b873809e0c92cbddfac1a30ef3f1184">+5/-40</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
0e7351af17 |
fix: stream_types for join (#7319) (#7320)
### **User description** fix #7319 ___ ### **PR Type** Bug fix ___ ### **Description** - Use TableReference stream_type in schema cache - Support join queries with prefixed stream names - Convert s.stream_type() to StreamType - Remove direct sql.stream_type usage ___ ### **Changes walkthrough** 📝 <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>http.rs</strong><dd><code>Update schema cache retrieval for join queries</code> </dd></summary> <hr> src/service/search/cluster/http.rs <li>Added comment explaining TableReference stream type<br> <li> Converted s.stream_type() to StreamType enum<br> <li> Replaced sql.stream_type with new stream_type value<br> <li> Removed old schema retrieval parameter </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7320/files#diff-fe0a1bbec7ef6418120544b589a531e5144b28cd2650f99135ed8a70ac17ac03">+5/-2</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
c4e5901abe |
fix: cherry-pick rc9 fixes (#7315)
Ref: - fix: streaming_id in htttp2 streaming response #7257 - feat: histogram_interval in search api #7271 - fix: remove streaming_id on search error #7284 - fix: limit in sql & write partial results to cache #7296 ### **User description** - `histogram_interval` as search body param - `aggregation_cache_enabled` support for settings `get` and `post` api --------- Co-authored-by: hengfei yang <hengfei.yang@gmail.com> Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: omkark06 <omkar@zinclabs.io> ___ ### **PR Type** Enhancement ___ ### **Description** - Add `histogram_interval` support throughout search API - Propagate interval into Query, RPC, and optimizer - Replace websocket search toggle with `aggregation_cache_enabled` - Add UI toggle and localization for aggregation cache ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>organization.rs</strong><dd><code>Replace websocket with aggregation cache setting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-4f089715a7ac4f78b45039d773f2fccbb4fbc6a409e0ab9ceee1fcf7911bc44b">+13/-6</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>18 files</summary><table> <tr> <td><strong>search.rs</strong><dd><code>Add histogram_interval to Query defaults</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+6/-0</a> </td> </tr> <tr> <td><strong>settings.rs</strong><dd><code>Handle aggregation_cache_enabled in settings API</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-1e807254f2faf8fd09b802f71b23412f203eed289033f96bfc62b15dd997db8c">+4/-5</a> </td> </tr> <tr> <td><strong>around.rs</strong><dd><code>Initialize histogram_interval in around requests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-93b3688de26f8f7c9dc0389763e9999a254bcded15b6ae8c8349f18aec83bd4f">+2/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Expose aggregation_cache_enabled in status API</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+4/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Initialize histogram_interval in trace requests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-64694c886c809b6efe449e6eba9fbb33d31ce5a3c49cea1a30006fc1d9522665">+1/-0</a> </td> </tr> <tr> <td><strong>request.rs</strong><dd><code>Add histogram_interval to service Request</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-7f4d75d75758cf876ff1a3a450a9804caad031a91199d33dd066c88c0461800b">+5/-0</a> </td> </tr> <tr> <td><strong>sql.rs</strong><dd><code>Support custom histogram intervals in SQL</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-d9ccf393c53794b0ef2816eef12742c26e23d2788cde27780af7570662aea446">+8/-3</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Propagate histogram_interval in search service</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Include histogram_interval in optimizer rules</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-3b1c9f0a84041235ca3765361e8eadfd7e9309a52319da882dee0540c826eb3d">+5/-1</a> </td> </tr> <tr> <td><strong>rewrite_histogram.rs</strong><dd><code>Use custom interval in histogram rewrite</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-fa40d6f792f0ca212f799b0136f0f216c7f34cb3130738903a26c45749a81450">+14/-6</a> </td> </tr> <tr> <td><strong>flight.rs</strong><dd><code>Apply aggregation cache setting in flight</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-dbffb1a03b65f6a9163b18c5bb1241ba2966735657be39bbe9f4d0e3260d8c1d">+8/-2</a> </td> </tr> <tr> <td><strong>node.rs</strong><dd><code>Forward histogram_interval in distributed plan</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-6a811582bb8dc3a36152b94cb4984126ee4417532eed0554e042c55ea18011fb">+3/-0</a> </td> </tr> <tr> <td><strong>leader.rs</strong><dd><code>Leverage org cache setting in leader search</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-21a32af318adcd10e62fb0d45944993f623fb3d2d6df4bb70d882dfc8f677fdc">+13/-2</a> </td> </tr> <tr> <td><strong>follower.rs</strong><dd><code>Include histogram_interval in follower requests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-59e0cc386582cf8baf201977475fd9a7e479fd8ed000bbaa6746a51ecb28632f">+1/-0</a> </td> </tr> <tr> <td><strong>General.vue</strong><dd><code>UI toggle for aggregation cache</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-a191d0eb2843df5efa7f18d411a216e86558b49f7b6cdfa9501d69414b933fc3">+27/-1</a> </td> </tr> <tr> <td><strong>MainLayout.vue</strong><dd><code>Bind aggregation cache in layout</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+2/-0</a> </td> </tr> <tr> <td><strong>usePanelDataLoader.ts</strong><dd><code>Fetch histogram_interval in panel loader</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+24/-26</a> </td> </tr> <tr> <td><strong>useLogs.ts</strong><dd><code>Set histogram_interval in log queries</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+5/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>en.json</strong><dd><code>Add enableAggregationCache translation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>6 files</summary><table> <tr> <td><strong>export.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-b9ca11eac019064e747b0c75157c280c8e8fa6d75edb83ca9ae46777e9668cc0">+1/-7</a> </td> </tr> <tr> <td><strong>plan.proto</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-4f1a05aba1b09b2db2ffae983dcdf4ed294ed3698204af80d50ae2d7b711551b">+1/-0</a> </td> </tr> <tr> <td><strong>search.proto</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+13/-12</a> </td> </tr> <tr> <td><strong>cluster.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-542d8f27a174c845740ca1c3fe0b697db89c3db666437c1c4dd8c9745510080c">+4/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-ba9b65130898444f7815fd6068bdb0dc590612f74cc893f79d91b0afc44cc851">+1/-0</a> </td> </tr> <tr> <td><strong>wal.rs</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/7315/files#diff-f47892ffc5d3076d37a66f49f55db4e83cb6f42df517da68c001a42c04adac72">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> --------- Co-authored-by: hengfei yang <hengfei.yang@gmail.com> Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: omkark06 <omkar@zinclabs.io> |
||
|
|
5aa1ab1820 |
feat: str_match placeholder and match_field alias (#7302)
cherry-pick - [x] https://github.com/openobserve/openobserve/pull/7285 - [x] https://github.com/openobserve/openobserve/pull/7298 |
||
|
|
06dfea9809 |
fix: improve Loki performance (#7301)
### **User description**
- [x] Change Loki API from `/api/{org}/loki/vi/push` to
`/api/{org}/loki/api/v1/push`
- [x] Improve Loki API performance
- [x] Correct usage report and metrics path for Loki API
___
### **PR Type**
Enhancement
___
### **Description**
- Add `Loki` ingestion variant to enums
- Update Loki API route to `/loki/api/v1/push`
- Extend ingest service for Loki and HEC
- Adjust HTTP handler and tests for new route
___
### **Changes walkthrough** 📝
<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>ingestion.rs</strong><dd><code>Add Loki request enum
variant</code>
</dd></summary>
<hr>
src/common/meta/ingestion.rs
<li>Added <code>Hec</code> and <code>Loki</code> variants to
<code>IngestionRequest</code><br> <li> Removed duplicate
<code>Hec</code> entry and reordered variants
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7301/files#diff-5effcbeb41f448c6f75b1f17baa683a02d668865eb09f898633797cd1327e3a2">+2/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>usage.rs</strong><dd><code>Support Loki in UsageType
enum</code>
</dd></summary>
<hr>
src/config/src/meta/self_reporting/usage.rs
<li>Inserted <code>Loki</code> variant with serde rename<br> <li>
Included <code>Loki</code> in <code>is_ingestion</code> checks<br> <li>
Added Display case for <code>Loki</code>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7301/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+5/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>loki.rs</strong><dd><code>Change Loki HTTP API path and
tests</code>
</dd></summary>
<hr>
src/handler/http/request/logs/loki.rs
- Changed HTTP route attribute path
- Updated test URIs to new route
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7301/files#diff-34691872632b619be8aadf255104f0e004fcf701dba98f88e231de5966eed099">+4/-4</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>ingest.rs</strong><dd><code>Extend ingest service for
Loki and HEC</code>
</dd></summary>
<hr>
src/service/logs/ingest.rs
<li>Added match arms for <code>Hec</code> and <code>Loki</code>
ingestion<br> <li> Removed duplicate <code>Hec</code> handling block
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7301/files#diff-e62118e45be183266d39ffa08491f255017954235ff0f3d6937683e314da406f">+10/-5</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>loki.rs</strong><dd><code>Use Loki variant in ingest
call</code>
</dd></summary>
<hr>
src/service/logs/loki.rs
<li>Switched to <code>IngestionRequest::Loki</code> usage<br> <li>
Removed intermediate JSON-to-Bytes conversion<br> <li> Simplified log
error messages formatting
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7301/files#diff-a970c8c4785d4e4d878218615b17eec0cf4b4976121766b002c2b2f76371bfe6">+3/-14</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>router.rs</strong><dd><code>Update Loki ingester route
path</code>
</dd></summary>
<hr>
src/config/src/router.rs
<li>Updated Loki route path in <code>INGESTER_ROUTES</code><br> <li>
Changed "/loki/v1/push" to "/loki/api/v1/push"
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7301/files#diff-5227b263a6c37a040ee1e7482b6903ead2186dd71090ee70bdaf1c3b894487ad">+1/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
___
> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
|
||
|
|
4e58c37786 | feat: secondary index str_match use tantivy index (#7273) | ||
|
|
dd25cd6f8f | fix: remove debug logs for Loki (#7278) | ||
|
|
78bc9204e8 |
fix: improve node status monitor (#7276)
### **User description** Add a separate task to update memory status every second. ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Use `std::cmp::max(1, …)` for node heartbeat TTL - Remove unused `min` imports from cluster modules - Spawn per-second node memory usage metric task - Minor formatting in `config.rs` ___ ### **Changes walkthrough** 📝 <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>etcd.rs</strong><dd><code>Use max for etcd heartbeat TTL</code> </dd></summary> <hr> src/common/infra/cluster/etcd.rs <li>Remove unused <code>cmp::min</code> import<br> <li> Replace TTL calculation with <code>std::cmp::max(1, ttl/4)</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7276/files#diff-37c2c2803d1c12ebb4ef9299bc79c9e6740fc5f19f7f4d84e7cfbb610b9561a9">+2/-2</a> </td> </tr> <tr> <td> <details> <summary><strong>mod.rs</strong><dd><code>Update cluster mod heartbeat TTL</code> </dd></summary> <hr> src/common/infra/cluster/mod.rs <li>Drop unused <code>min</code> import<br> <li> Compute TTL with <code>std::cmp::max(1, ttl/2)</code><br> <li> Simplify config retrieval in heartbeat task </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7276/files#diff-d15434a27e2b8406811f5a707b605203b603dad4a262c0642326be860bd2b568">+1/-3</a> </td> </tr> <tr> <td> <details> <summary><strong>nats.rs</strong><dd><code>Adjust NATS heartbeat TTL logic</code> </dd></summary> <hr> src/common/infra/cluster/nats.rs <li>Remove <code>core::cmp::min</code> import<br> <li> Switch TTL logic to <code>std::cmp::max(1, ttl/4)</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7276/files#diff-901773980aa255942e7865b977fe63811f31511ac40bc512d6bbb14dbb54bece">+1/-2</a> </td> </tr> </table></td></tr><tr><td><strong>Formatting</strong></td><td><table> <tr> <td> <details> <summary><strong>config.rs</strong><dd><code>Improve spacing in config definitions</code> </dd></summary> <hr> src/config/src/config.rs - Add blank line before `HealthCheck` definition </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7276/files#diff-9aeee4a74c0520daa40f9b81c7016f5b6b3254375b968dd7598e745630980d62">+1/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>stats.rs</strong><dd><code>Add node memory usage metrics task</code> </dd></summary> <hr> src/job/stats.rs <li>Spawn <code>update_node_memory_usage</code> in <code>run()</code><br> <li> Add <code>update_node_memory_usage</code> loop for metrics </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7276/files#diff-f3ca67d9d2c68beeafd6e5de947dbc9a648ac2d2699c5dc87458c369887d09b9">+12/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
102327e176 | feat: add TopN memory track for datafusion (#7262) | ||
|
|
a0b95b7cd3 |
fix: empty user session (#7162) (#7164)
### **PR Type** Bug fix ___ ### **Description** - Prevent panic on empty access tokens - Audit log and 400 on missing token - Skip empty session DB values - Handle JSON deserialization errors gracefully ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Error handling</strong></td><td><table> <tr> <td> <details> <summary><strong>mod.rs</strong><dd><code>Validate access token and add audit guard</code> </dd></summary> <hr> src/handler/http/request/status/mod.rs <li>Add empty access token check in redirect and refresh<br> <li> Log audit message and return 400 Unauthorized </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7164/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+29/-0</a> </td> </tr> <tr> <td> <details> <summary><strong>session.rs</strong><dd><code>Improve DB session error handling</code> </dd></summary> <hr> src/service/db/session.rs <li>Annotate and skip empty session values in watch<br> <li> Handle JSON errors and skip empties in cache </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7164/files#diff-64311ff8ef53118e7611a2a2a28c5380a0e8b8213139b2c2108c728b1d460a2b">+14/-2</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
ee2e759838 | fix: tantivy time range not match for main (#7247) | ||
|
|
95a84df295 |
fix: make ZO_CREATE_ORG_THROUGH_INGESTION true by default (#7245)
|
||
|
|
d9f92d6d9a | fix: match all doesn't work on ingester (#7237) | ||
|
|
33b06c0aa0 |
fix: don't require smtp for cached reports (#7231)
### **User description** Cached reports don't have a destination, they are primarily used for cache. Hence, no need to check for SMTP configs when saving cached reports ___ ### **PR Type** Bug fix ___ ### **Description** Relax SMTP requirement for cached reports Enforce SMTP only if destinations exist ___ ### **Changes walkthrough** 📝 <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>reports.rs</strong><dd><code>Relax SMTP validation for cached reports</code> </dd></summary> <hr> src/service/dashboards/reports.rs <li>Adjust SMTP error condition to consider destinations<br> <li> Permit cached reports without SMTP enabled </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7231/files#diff-07dd8993c92038fa1197f9a4b6fe141d310854fbc5859d76ee8723fb90871312">+1/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com> |
||
|
|
8feab009f8 |
feat: add metrics for agg cache (#7230)
### **User description** Add new metrics for aggregation cache: - zo_query_aggregation_cache_items - zo_query_aggregation_cache_bytes ___ ### **PR Type** Enhancement ___ ### **Description** - Add gauge metric for query aggregation cache items - Add gauge metric for query aggregation cache bytes - Register new aggregation cache metrics ___ ### **Changes walkthrough** 📝 <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>metrics.rs</strong><dd><code>Add aggregation cache metrics</code> </dd></summary> <hr> src/config/src/metrics.rs <li>Define <code>QUERY_AGGREGATION_CACHE_ITEMS</code> IntGaugeVec<br> <li> Define <code>QUERY_AGGREGATION_CACHE_BYTES</code> IntGaugeVec<br> <li> Register both new metrics in <code>register_metrics</code> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7230/files#diff-950d37bdd77aa533539acd818a3fcdebd90ccb1f09acb5490b9c0f9b51cb2090">+32/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |
||
|
|
89a2959869 |
fix: role and group names should be formatted using regex (#7224)
### **User description** Currently role names and groups names are getting lowercased when creating them (as part of the org revamp changes). This PR uses standard format_role_name function to follow a standard role and group name format. ___ ### **PR Type** Enhancement ___ ### **Description** - Introduce reusable name-formatting function - Enforce regex formatting for roles and groups - Update HTTP handlers to apply formatting - Standardize success responses for role/group ___ ### **Changes walkthrough** 📝 <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>jwt.rs</strong><dd><code>Extract and centralize name formatting</code> </dd></summary> <hr> src/handler/http/auth/jwt.rs <li>Extract regex-based formatting into helper<br> <li> Change <code>format_role_name</code> to accept <code>&str</code><br> <li> Add public <code>format_role_name_only</code> function<br> <li> Delegate formatting to new helper function </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7224/files#diff-232cab74f4cbf135af424744272e17732fbda8ac005d33c0acb4597e65479d02">+9/-3</a> </td> </tr> <tr> <td> <details> <summary><strong>fga.rs</strong><dd><code>Apply standardized formatting in handlers</code> </dd></summary> <hr> src/handler/http/request/authz/fga.rs <li>Import <code>format_role_name_only</code> helper<br> <li> Replace lowercase trim with regex formatting<br> <li> Update handler logic to use new helper<br> <li> Standardize response messages and payloads </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/7224/files#diff-e7c99f37f3abbb5e0507d2760bbf67df010d9218704b38dce84c5477acecd22e">+15/-17</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details> |