Commit Graph
323 Commits
Author SHA1 Message Date
Huaijin 33343bbab3 feat: add metrics for query lifetime (#3893) 2024-07-04 14:13:25 +08:00
Taiming Liu 6157ef5331 feat: schema check per req for all logs ingestion APIs (#3829) 2024-07-04 11:21:47 +08:00
Ashish Kolhe 6af3f96fc3 fix: query cache remove hits (#3887)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added `result_cache_ratio` to the search feature to improve response
management.
  - Introduced `discard_interval` parameter to enhance cache handling.

- **Improvements**
- Enhanced cache retention and discarding logic with `discard_interval`
for better performance.
- Improved timestamp parsing and rounding functions for more accurate
data handling.

- **Refactor**
- Reorganized logging and utility functions within the search and cache
modules for better code maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-03 10:10:37 +05:30
Omkar KesarkhaneandTaiming Liu 7eafb64d71 fix: added traces ids support in search requests (#3872)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced trace ID management with functions for adding, removing,
and generating trace contexts.
  - Added the ability to cancel running queries.

- **Enhancements**
- Integrated tracing functionality into search operations for improved
observability.
  - Updated CORS configuration to allow `traceparent` headers.

- **Debugging**
  - Added console logs for traceparent parameters in search functions.

- **Localization**
  - Added new localization key for "cancel" message in English.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2024-07-02 07:02:30 -07:00
Subhra264 118f916e9a feat: add time_wait_in_queue in search usage reporting (#3878) 2024-07-02 20:13:10 +08:00
Ashish Kolhe 723e00bfb1 fix: schema read lock (#3876)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Improved search function performance and reliability by managing
resources more effectively.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-02 12:41:19 +05:30
Ashish Kolhe c70a03aa57 chore: add trace id to cache logs (#3868)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced traceability by adding `trace_id` support in various search
and cache request functions.
  
- **Improvements**
- Updated logging messages to include `trace_id` for better traceability
across services.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-01 18:02:56 +05:30
Ankur Srivastava b6a4009ac4 feat: basic auth header support in GET requests (#3792)
Support basic-auth header parsing and login for enterprise-GET requests

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
  - Improved logging for user validation to aid in debugging.

- **New Features**
- Enhanced authentication process with better handling of headers and
tokens.
- Introduced new cookie preparation functionality to streamline cookie
management during authentication.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-01 08:48:26 +02:00
Ashish Kolhe 4466ec7a0d fix: discard last x min of cached data (#3859)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced logging for query start and end times in the search
functionality for better tracking and debugging.

- **Improvements**
- Enhanced cache management by adding logic to discard cached results
based on their duration, ensuring more efficient use of cache storage.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-30 10:49:49 -07:00
Ashish Kolhe a35bd30cf7 feat: cache query results (#3823)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added the ability to delete cached search results for specific
streams.
- Introduced query caching functionalities, including disk-based caching
and cluster-wide query result retrieval.

- **Enhancements**
- Implemented new methods for removing keys from caches based on
different strategies (e.g., LRU, FIFO).
  - Added new utility functions for handling and optimizing SQL queries.

- **Improvements**
- Enhanced caching mechanism to support better performance and
efficiency through new data structures and asynchronous operations.
- Expanded public APIs to include additional regex patterns and utility
functions for SQL processing.

- **Documentation**
- Updated public API documentation to reflect new functionalities and
changes in existing functions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-29 19:39:58 +05:30
Hengfei Yang ac4b804494 feat: add custom table provider (#3846) 2024-06-29 20:08:55 +08:00
ktx-vaidehiandoasisk 69f3db0612 feat: Dashboard query range per stream (#3804)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a button with tooltip in the dashboard panel to display query
range values.

- **Improvements**
- Updated error messages in search functionality to mention query range
restrictions in hours.
- Enhanced log and dashboard pages with a function to generate formatted
error messages for query range limits.

- **Bug Fixes**
- Fixed alignment issues in the `usePanelDataLoader` function call
within the dashboard components.

- **Event Handling**
- Introduced a new event `"result-metadata-update"` in dashboard panel
renderer for better metadata updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: oasisk <ashish.j.kolhe@gmail.com>
2024-06-25 14:45:00 +05:30
Hengfei Yang cd37c3d5b5 feat: Exclude _all field for select * (#3808) 2024-06-25 12:01:11 +08:00
Subhra264 e885f605bc fix: add _timestamp to usage reporting (#3799)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added timestamp tracking to various functions to capture the start
time of operations. This enhancement improves monitoring and debugging
by logging when operations begin.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-24 18:28:21 +05:30
Ashish KolheandHengfei Yang 2158b0de1a feat: add setting for query range per stream (#3789)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added support for query duration adjustments based on a maximum query
range in search functionality.
	- Introduced new fields for time range validation in search responses.
	- Included maximum query range settings in stream configurations.

- **Improvements**
- Enhanced log stream components to handle maximum query range
restrictions effectively.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2024-06-22 23:41:29 +05:30
Hengfei Yang 6a17c42e83 feat: support user level search work group (#3790) 2024-06-23 00:59:52 +08:00
Subhra264 6e38089e97 fix: include login calls into auditing (#3758)
- [x] Includes the following APIs endpoints in auditing -
- `/auth/login` - If the login is successful, the user email along with
the event data (such as response code, path, method, query params and
the timestamp) and if it is unsuccessful, it still audits the event, but
username will be present only if available.
- `/auth/presigned-url`
- `/auth/login` - `GET` request. Similar to the first `login` endpoint.
- `/config/reload` - Audits this event, but as this is not a protected
route, the username will not be present in the audit record.
- `/config/redirect` - Similar to the first `login` endpoint.
- `/config/logout`

- [x] Audit Cron job is run on all the nodes including the router. The
interval can be set through `O2_AUDIT_PUBLISH_INTERVAL` env (in
seconds).
- [x] In case of remote usage reporing, print the error if response from
remote usage url is unsuccessful


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced enhanced auditing functionalities for user authentication
and authorization in the enterprise version.
- Added asynchronous task for auditing and publishing tasks within job
module.

- **Improvements**
- Refined error handling in usage data ingestion to better manage
success and failure responses.
  
- **Conditional Compilation**
- Multiple new functionalities and auditing enhancements are now
conditionally compiled based on the "enterprise" feature.


<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-20 18:13:35 +05:30
0b721732b8 fix: Relase multi stream search (#3709)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced multi-select stream functionality in UI, allowing users to
select and query multiple data streams simultaneously.
- Added new search functions to handle multiple streams of data and
provide aggregated search results.

- **Bug Fixes**
- Corrected UI test cases to improve selection and verification of
stream names.

- **Enhancements**
- Improved search functionalities and error handling within the logs
plugin interface.
  - Enhanced stream handling and validation in the search feature.

- **Tests**
- Added new Playwright test cases for stream multi-select functionality.
- Updated existing test cases to adapt to new multi-select stream logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Neha P <neha@openobserve.ai>
Co-authored-by: Neha P <144308844+neha00290@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com>
2024-06-19 18:30:34 +05:30
Ankur Srivastava dd489e99b0 fix: the base_url didnt contain web+base_uri for presigned url (#3746)
In case of generating a presigned-url the base url should be a
combination of
```
let base_url = format!("{}{}", cfg.common.web_url, cfg.common.base_uri);
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Refactor**
- Improved URL construction by introducing a `base_url` variable for
better maintainability and flexibility.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-16 18:52:36 +02:00
Hengfei Yang 2597a06262 feat: sync hotfix from v0.10.6-rc3 (#3738) 2024-06-14 19:20:19 +08:00
Hengfei Yang 611f2e1c29 perf: improve ingestion (#3678) 2024-06-12 22:01:03 +08:00
Subhra264 9e178fd0de fix: include trace_id in search usage reporting (#3703)
Fixes #3695 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added `trace_id` support across various functions to enhance tracking
and debugging capabilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-10 12:34:21 +05:30
04b7df63be feat: support presigned GET URLS (#3667)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced user authentication by adding extended password fields and
support for generating presigned login URLs.
- Improved user management with new functions for handling user data and
authentication tokens.

- **Bug Fixes**
- Fixed issues with user data handling by passing references instead of
values in database operations.

- **Refactor**
- Streamlined authentication and user management code for better
maintainability and performance.

- **Tests**
- Added new test cases to validate password hashing and presigned URL
generation functionalities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: oasisk <ashish.j.kolhe@gmail.com>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
2024-06-07 14:20:21 +02:00
Ashish Kolheandktx-abhay 79fe002f60 feat: include search type in search calls (#3648)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced `searchType` attribute across various components to enhance
search functionality.
- Added support for different search event types like `UI`,
`Dashboards`, `Reports`, `Alerts`, `Values`, and `RUM`.

- **Bug Fixes**
- Improved search parameter handling in multiple components and API
calls.

- **Enhancements**
- Updated search-related functions to include `searchType` for more
precise search results.
- Enhanced dashboard and RUM views with new `searchType` attributes for
better data filtering.

- **Refactor**
- Standardized search functionality across different modules and
components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2024-06-03 14:14:54 +05:30
Hengfei Yang 3ccf0be933 feat: add limit -1 for query (#3658)
The query `size` works like this, it should more clear now:
1. size > 0, it will return hits equal to `size`
2. size = 0, it will return empty hits, this used to other purposes,
like: get total, get aggs.
3. size = -1, it will use a backend default limit to return hits,
setting by `ZO_QUERY_DEFAULT_LIMIT=1000`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Corrected handling of query parameters by changing types from `usize`
to `i64` to support larger values and prevent potential overflow issues.

- **Improvements**
- Enhanced the logic for setting query limits to handle negative values
more gracefully, ensuring better default behavior.

- **Refactor**
- Updated various internal structures and function signatures to use
`i64` instead of `usize` for consistency and improved range handling.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-01 11:25:12 +05:30
Hengfei Yang 569bb121ce feat: add new node role flatten_compactor (#3589) 2024-05-30 18:34:41 +08:00
Ankur SrivastavaandHengfei Yang 8f3df9e7a1 feat: support reloading config vars using an API (#3623)
The new endpoint `/config/reload` will refresh the
environment variables.

There are a bunch of env-vars which will not be reloaded
for e.g. HTTP_PORT etc. these will need a restart.

---------

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2024-05-30 08:23:27 +08:00
Hengfei Yang c830fa6532 perf: use parquet file static cache (#3604) 2024-05-28 10:43:24 +08:00
Ankur Srivastava 28cf5b0776 feat: integrate embedded reportserver (#3583)
There are three cases to consider:

if ZO_ENABLE_EMBEDDED_REPORT_SERVER=true

If running a binary, alertmanager node will spawn an embedded server
running at localhost:5082.
All the requests from alert-manager will go to localhost:5082 for pdf
generation related tasks.

For single node k8s deployment, as this is running in a container there
is no chromium installed, so even if you set the variable to true, the
report server will panic due to missing dependencies. For this situation
helm chart will spawn a report-server instance which can be used.

Same for cluster deployment.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
  - Introduced a new report server for generating and sending reports.
  - Added health check and report sending endpoints.

- **Improvements**
  - Enhanced logging for report server operations.
- Configurable option to skip TLS verification for report server
connections.

- **Bug Fixes**
  - Fixed formatting issue in HTTP status request handler.

- **Chores**
- Updated dependencies and configurations for the new report server
module.

- **Documentation**
- Added new structures and functions for email configuration, report
generation, and server operations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-05-27 11:19:50 +02:00
Hengfei Yang 470714616b fix: search partition with base64 (#3597)
fix #3557
2024-05-26 17:00:44 +08:00
Ashish Kolhe a000dad31b fix: get auth headers (#3578) 2024-05-25 03:17:57 -07:00
Taiming LiuandNeha P 37ebd33637 fix: _around api for query with limit (#3590)
fix #3587 

<img width="1286" alt="image"
src="https://github.com/openobserve/openobserve/assets/90490946/38ed9e95-6569-4015-a156-6040b0d3fc7c">

---------

Co-authored-by: Neha P <neha@openobserve.ai>
2024-05-24 16:50:35 -07:00
Ankur Srivastava e4f4389974 feat: support build-type in configuration (#3581)
![image](https://github.com/openobserve/openobserve/assets/1695056/35b2adcf-b461-4471-8962-0bd0410dca31)


![image](https://github.com/openobserve/openobserve/assets/1695056/118726c1-b276-4cae-8689-cb21ef3ae53c)
2024-05-23 18:20:18 +02:00
Taiming LiuandHengfei Yang a83c46c656 feat: cluster selection in logs (#3559)
- Add cluster selection in logs search queries for additional filtering
based on region/clusters
- add org/stream info in ingestion http handler error logging

---------

Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2024-05-22 07:33:34 -07:00
Ashish Kolhe a03b4d14e0 feat: login using basic auth headers (#3550) 2024-05-21 12:13:09 +05:30
Ashish Kolhe 798c3469ae fix: invalid peer certificate (#3505)
- [x] invalid peer certificate: UnknownIssuer
- [x] SSO user - infinite loop when accessing query cancelation UI
- [x] Clusters API should be accessible with SSO user
- [x] Handle _timestamp for _all fields
2024-05-14 17:22:05 +05:30
Hengfei Yang 6f975a02f6 fix: around API with function (#3497) 2024-05-13 16:08:15 +08:00
Hengfei Yang 1878b7eb50 fix: region filter for _around API (#3492)
#3488
2024-05-12 19:37:22 +08:00
Ashish KolheandHengfei Yang ed73fcd5ff feat: only write defined schema fields to parquet (#3454)
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
2024-05-12 01:12:43 +08:00
Omkar Kesarkhaneandoasisk ee3a9c16e5 feat: User defined schema for existing streams (#3477)
1. Users can define schema fields for existing streams.
2. During querying/exploring only those defined schema fields will be
available in schema, rest all fields will be available in "_all" field
in the schema.

---------

Co-authored-by: oasisk <ashish.j.kolhe@gmail.com>
2024-05-11 11:34:45 +05:30
Ashish Kolhe 70741119fb fix: pipeline RBAC issues (#3470) 2024-05-10 17:54:37 +05:30
Hengfei Yang 517de8f05d fix: add region filter to _value and _around API (#3449) 2024-05-09 20:00:32 +08:00
Hengfei Yang dba09d7297 feat: add config for super cluster (#3440) 2024-05-09 10:41:36 +08:00
Hengfei Yang 0e986c4728 fix: super cluster region filter (#3437) 2024-05-09 09:06:22 +08:00
Hengfei Yang 654ed8f612 perf: value api (#3435) 2024-05-09 00:04:33 +08:00
Hengfei Yang c3ec7ebbd9 fix: value API (#3429) 2024-05-08 19:08:26 +08:00
Hengfei Yang 32b7ce4c26 feat: improve super cluster (#3428)
- [x] add timeout and partical success for super cluster
- [x] add region filter for super cluster
2024-05-08 16:32:54 +08:00
c9a4e00d69 feat: data ingestion pipeline (#3282)
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: Neha P <neha@openobserve.ai>
2024-05-06 19:31:46 +05:30
Ashish KolheandNeha P a413179068 fix: only get required versions while watching (#3399)
Co-authored-by: Neha P <neha@openobserve.ai>
2024-05-06 16:24:46 +05:30
Ashish Kolhe 8a1cfddcc7 fix: RBAC for native users (#3404) 2024-05-03 12:44:32 +05:30