Commit Graph
4586 Commits
Author SHA1 Message Date
Omkar Kesarkhane 91c52ea318 fix: Saved View preserves loadingHistogram State, leading to track total hits call on applying. (#9084)
#9079 
1. A view was saved while the histogram was being loaded, which
incorrectly hardcoded the loadingHistogram flag as true in the saved
view data.
2. When this saved view was later loaded, the true value of
loadingHistogram was retrieved.
3. This pre-existing true state bypassed the histogram loading logic and
resulted in an incorrect call to the get page count.
2025-11-17 23:45:08 +05:30
Loakesh Indiran ee3bc9c11c perf: cache aware partition generation for streaming aggs (#9009) 2025-11-17 22:32:05 +05:30
77aa943111 fix: creating shadow JSON, which will be responsible for validation (#8873)
### **User description**
resolves https://github.com/openobserve/openobserve/issues/8658


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Allow number placeholders in JSON templates

- Introduce shadow JSON validation logic

- Support quoted and bare placeholder replacements

- Improve import and create template validation


___

### Diagram Walkthrough


```mermaid
flowchart LR
  AddTemplate["AddTemplate.vue validation"] -- "build shadow JSON" --> JSONParse1["Parse testBody"]
  ImportTemplate["ImportTemplate.vue validation"] -- "build shadow JSON" --> JSONParse2["Parse testBody"]
  Placeholders["Placeholders {aaa}, {bbb}"] -- "quoted -> 'test'" --> AddTemplate
  Placeholders -- "bare value -> 0" --> ImportTemplate
```



<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>AddTemplate.vue</strong><dd><code>Shadow JSON
validation for template body</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/AddTemplate.vue

<ul><li>Validate template body using shadow JSON.<br> <li> Replace
quoted placeholders with "test".<br> <li> Replace bare value
placeholders with 0.<br> <li> Preserve JSON.parse on transformed
body.</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8873/files#diff-2508a43827e6b35c07f3222deebd9945101ca6bc32b9dc592e6253ab99908bba">+12/-1</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ImportTemplate.vue</strong><dd><code>Import validation
supports numeric placeholders</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/alerts/ImportTemplate.vue

<ul><li>Add shadow JSON logic during import validation.<br> <li> Replace
quoted placeholders with "test".<br> <li> Replace bare value
placeholders with 0.<br> <li> Provide clearer error on invalid
JSON.</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8873/files#diff-d22684c5142a49b8925a9dba1ef67631128caa95de66e71ba2a5b8120a0b91c6">+12/-1</a>&nbsp;
&nbsp; </td>

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

</details>

___

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2025-11-17 20:27:16 +05:30
Huaijin dc2cdcbf0b perf: improve data load and code clean up (#9150) 2025-11-17 21:47:59 +08:00
Simha G 6ca371ec99 fix: Concurrency control for file locking has multiple anti-concurrent design patterns in the way (#8523) 2025-11-17 20:35:43 +08:00
Sai Nikhil a818da85ea fix: data sources page breaking when no ingestion happened (#9127) (#9152)
This PR fixes the 4th issue in #9105
2025-11-17 13:14:28 +05:30
ByteBaker 187cdd72f4 fix: make WAL_DIR_DEFAULT_PREFIX pub
https://github.com/openobserve/openobserve/pull/8876 had made
this variable private, resulting in failed enterprise builds.

It also removed one of the imports causing build failure.

This commit reverts those specific changes.
2025-11-17 12:22:29 +05:30
Sai Nikhil c49d088099 Fix/theme customization issue (#9147) 2025-11-17 11:36:13 +05:30
Sai Nikhil ce70d6ad0d fix: remove pipe operator support fro non sqlmode (#9136)
This PR fixes the issue in #9117
2025-11-17 10:53:01 +05:30
ByteBaker d8e8e27661 fix: address code review feedback on graceful drain API
- Fix panic on path canonicalization in check_has_pending_files()
- Implement proper recursive directory checking for parquet files
- Add exponential backoff to draining loop (50ms -> 1s)
- Validate query parameter strictly in enable endpoint to prevent accidental node disablement

These changes address critical robustness issues identified in the code review:
1. Prevents potential panics during shutdown when WAL path is missing
2. Ensures correct pending file detection instead of assuming all subdirectories have files
3. Reduces CPU usage during drain with exponential backoff
4. Prevents unintentional node disablement from invalid/missing parameters
2025-11-17 05:45:44 +05:30
ByteBaker 2bbb915862 feat: add graceful drain API for Kubernetes autoscaling
Implements cloud-agnostic graceful shutdown mechanism to support
Kubernetes preStop hooks and other orchestration platforms.

Changes:
- Add IS_INGESTER_DRAINING global flag with atomic operations
- Enhance /enable?value=false to trigger flush and set draining mode
- Add /drain_status endpoint to monitor shutdown readiness
- Modify parquet upload job to prioritize draining mode
- Exit upload loop when all files are uploaded to S3

API Usage:
- PUT /node/enable?value=false - Initiates drain (flushes memory, sets flag)
- GET /node/drain_status - Returns readyForShutdown status

Benefits:
- Eliminates fixed 900s wait in Helm charts
- Cloud-agnostic (works with K8s, ECS, Docker Swarm, systemd)
- Data-safe: ensures all WAL files uploaded before shutdown
2025-11-17 05:45:44 +05:30
Hengfei Yang f597793de6 fix: deadlock of usage report (#9149)
There is a potential deadlock of usage report, it will resend to queue
when ingest failed. but if the queue is full, the resend will block and
waiting consume, but the consumer is itself, then it deadlock.
2025-11-16 16:56:13 +08:00
Hengfei Yang b950b1cec1 fix: debug metrics stream keep update (#9141)
I saw a lot of logs like this:

```
DEBUG openobserve::service::db::schema: [Schema:watch] Received event: Put(EventData { key: "/schema/default/metrics/http_server_duration", value: Some(b""), start_dt: None
```

This PR optimized the metadata check logic also try to debug this case.
2025-11-15 23:40:51 +08:00
Hengfei YangandHuaijin 7528b024e7 perf: drop the data early for ingestion (#9124)
Same test, reduce 1GB memory compare to before.

---------

Co-authored-by: Huaijin <haohuaijin@gmail.com>
2025-11-15 17:22:41 +08:00
Harsh Mahajan c84d7f52d6 chore: error handling for check_schema in metric and traces (#9130) 2025-11-15 15:50:02 +08:00
Harsh Mahajan 31a4206062 feat: adding alert worker group (#9055)
resolves https://github.com/openobserve/openobserve/issues/8991

### Summary

- Introduces `is_background()` method in `SearchEventType`.  
- Identifies **Alerts**, **Reports**, and **DerivedStreams** as
background tasks.
- Routes these tasks to a dedicated **`BACKGROUND`** work group.
2025-11-15 15:12:59 +08:00
Neha P 9f2e8c87d5 test: index-type-testcases (#9115)
1. Verify stream detail access and index type options - Test stream
navigation and available configuration options
2. Verify validation error when selecting both index types - Test
business rule enforcement for conflicting field configurations
3. Verify index type clearing mechanism works - Test ability to clear
field index selections after validation errors
2025-11-14 19:00:35 +05:30
ktx-akshay 83ce0cf0d4 test: add test coverage for dashboard camelCase zero value issue (#9119)
…L queries
2025-11-14 16:57:37 +05:30
ByteBaker bb37f8f1af feat: add comprehensive service graph visualization with tree/graph views
Backend:
- Add `stream_name` parameter to service graph query API for multi-stream filtering
- Pass `stream_name` through `handle_otlp_request` to service graph tracking
- Filter Prometheus metrics by both `org_id` and optional `stream_name`
- Update API documentation with stream filtering examples

Frontend:
- Add tree view and graph view visualization modes with toggle
- Implement tree layouts: horizontal, vertical, and radial
- Implement graph layouts: force-directed and circular
- Add stream selector dropdown to filter metrics by trace stream
- Add auto-refresh toggle with configurable interval (5-300 seconds)
- Refactor graph rendering to use `ChartRenderer` component with ECharts
- Implement D3-force physics simulation for force-directed layout
- Add `convertServiceGraphToTree` and `convertServiceGraphToNetwork` utilities
- Preserve node positions during graph updates to prevent re-layout jitter
- Use incremental updates (`notMerge: false`) for stable graph view
- Store user preferences (visualization type, layout, stream filter) in localStorage
- Update `ChartRenderer` to respect `notMerge` and `lazyUpdate` flags from props

Dependencies:
- Add `d3-force` for force-directed graph layout calculations
- Add `@types/d3-force` for TypeScript support
- Add `d3-quadtree` for spatial indexing in force simulation
2025-11-14 16:19:04 +05:30
Huaijin 602eb6a7c3 fix: tantivy for metrics (#9123) 2025-11-14 16:15:39 +08:00
Sai Nikhil 4727e5f6d1 fix: show delete for extended retention dates as well (#9104) 2025-11-14 13:38:40 +05:30
Sai Nikhil 803434bd30 fix: theme customization (#9077) 2025-11-14 11:55:50 +05:30
Omkar KesarkhaneandShrinath Rao 47e97c6b50 fix: RUM UI improvements (#9108)
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2025-11-13 22:15:09 +05:30
udev bc26231c12 fix: stream stats sleep after job done (#9018) 2025-11-13 21:19:40 +08:00
Huaijin a634b91aed perf: improve promql topk, bottomk, count_values and some code cleanup (#9096) 2025-11-13 20:52:50 +08:00
Zhao.wei 46c2f6afe3 feat: improve ingestion (#9069) 2025-11-13 20:20:04 +08:00
Shrinath Rao 12a8568bd1 test: test dino issue fix (#9095) 2025-11-13 17:41:48 +05:30
Abhay Padamani ea1a5784e7 fix: add panel repositoin issue (#9103) 2025-11-13 15:22:03 +05:30
Neha PandShrinath Rao 4901605a2c test: e2e-cmd+enter tests (#9098)
1. Blank SQL Query Error - Verifies proper error message when cmd+enter
pressed with empty SQL query
2. Include/Exclude Terms Persistence - Ensures search terms remain
visible in log details after query execution
3. API Call Optimization - Validates cmd+enter makes exactly 1 search +
1 histogram call (no duplicates)
4. Editor Cursor Integrity - Confirms cmd+enter doesn't add unwanted
characters to Monaco editor

---------

Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2025-11-13 14:49:59 +05:30
Subhra264 5004be110c fix: put a limit on the keep alive timeout for scheduled jobs (#9092)
Currently in the alert manager, we run a keep alive thread for every
scheduled job pulled, so that if the timeout for the job is near and the
job is still in progress, we can increase the timeout a bit so that the
job can complete. But in edge cases, if the job itself is complete, but
the keep-alive thread is still not stopped, it will keep running the
keep alive thread forever.

Hence, a limit is added to the keep alive thread, so that it stops after
the timeout.
2025-11-13 10:11:52 +05:30
Shrinath Rao a4dd576df4 test: unskipped 2 pipeline-core tests (#9085) 2025-11-13 07:30:32 +05:30
ktx-akshay f665228a1b test: stabilize flaky dashboard test cases (#9048)
…ging
2025-11-12 22:21:53 +05:30
Hengfei Yang 561ddd3b4d fix: add some debug logs for query slow (#9072) 2025-11-12 22:34:18 +08:00
Simha Gandsai nikhil kethe e92f385751 feat: Alert and Pipeline History columns are now sortable (#9052)
# PR Type
Enhancement

# Description
The columns in the Alerts and Pipelines History are augmented to be
sortable. The backend endpoint is updated accordingly too.

---------

Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
2025-11-12 19:03:47 +05:30
dd92d33ac0 test: fix sdr patterns locator (#9076)
Co-authored-by: Priyabrata Das <pryabrata@altimate.ai>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
Co-authored-by: Neha P <neha@openobserve.ai>
2025-11-12 18:22:22 +05:30
Subhra264andShrinath Rao 683bf89c7b test: Add tests for alerts and pipelines history (#9064)
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2025-11-12 17:48:12 +05:30
Hengfei Yang df43cf0d66 perf: improve load data for metrics (#9070) 2025-11-12 19:08:54 +08:00
Shrinath Raoandpriyabrata-stack 8ea3c3240f test: updated sharding logic for test dino reporting (#9073)
Co-authored-by: priyabrata-stack <pryabrata@openobserve.ai>
2025-11-12 16:04:10 +05:30
ktx-vaidehiandKirtan Thakkar 6ab3e14d70 fix: dashboard camelCase issue with zero value (#9061)
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
2025-11-12 15:25:21 +05:30
ByteBaker d0cf8d3fc3 chore: utilize with_capacity in collections + cleanup 2025-11-12 14:18:01 +05:30
Abhay Padamaniandktx-akshay a603429941 fix: dashboard pie chart layout issue (#9065)
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
2025-11-12 13:41:48 +05:30
Omkar Kesarkhane ade016bf29 fix: Log field-list issues (#9074)
1. Field List schema tabs were getting disabled due to warning message
when searching for non-existing fields.
2. Reset scroll position on changing field-list schema tab.
3. Parse decimal values to whole numbers that are added in the Date Time
custom value input.
2025-11-12 13:11:00 +05:30
Sai Nikhil 39bcaad8f6 fix: import module refactored (#8962)
1. Here we have refactored import module 
the structure will be 
```

BaseImport will be main serving component for Import UI 
import(module).vue will be used to serve core business logic and functionality 
```
2025-11-12 09:29:04 +05:30
Prabhat Sharma 3a04808e81 docs: add wechat (#9068) 2025-11-12 08:26:21 +05:30
Hengfei Yang b48a72dbc2 fix: search wal on windows (#9054) 2025-11-12 09:25:10 +08:00
udev a5b9facdc8 fix: migration issue (#9067)
fixes migration issue where older format pipeline would fail to load if
the pipeline contains a `condition` node.
2025-11-11 23:20:23 +05:30
Shrinath Rao 6b11b81d06 test: updated testDino workflow order (#9059) 2025-11-11 19:28:53 +05:30
Sai Nikhil ef1edeac90 fix: saved views apply consider max query range (#9062)
This PR fixes the issue in #9042
2025-11-11 18:52:22 +05:30
Sai Nikhil 77c74a4af3 fix: pagination sync issue in list page (#9041)
1. This PR fixed the sync issue on all listing pages alerts , piplines ,
actions , reports , iam pages , destinations , templates , sensitive
data redaction list , cipher keys
2025-11-11 18:05:10 +05:30
udev 2854a33791 feat: pipeline or operator (#8911)
with this PR we add OR operator support in pipeline conditions along
with the ability to nest conditions, creating complex conditions
quickly. existing conditions will be treated as legacy conditions and
still be honoured in the new evaluation logic.
2025-11-11 17:39:11 +05:30