This PR make necessary changing for using new sessions table for storing
user sessions and also removes the existing sessions from meta table
NEED TO BE MERGED POST RELEASE
- Check schema for peer attributes before querying
- COALESCE priority: peer_service > server_address > db_name > db_system > http_url
- Fallback to 'internal' if no peer attributes
- Support INTERNAL spans with exclude config
- Improved UI empty state with troubleshooting
- Move service graph processor from compactor to dedicated job module
- Create `src/job/service_graph.rs` with independent lifecycle
- Remove service graph code from `src/job/compactor.rs`
- Update `src/job/mod.rs` to spawn service_graph job
- Support INTERNAL spans (span_kind='1') in addition to CLIENT/SERVER
- Remove early exit when peer attributes are missing
- Use 'internal' as fallback for peer identification
- Update SQL to include `span_kind IN ('1', '2', '3')`
This enables service graph to work with OpenObserve's internal tracing
data which uses INTERNAL spans without explicit peer.service attributes.
The peer.service attribute can be stored in:
- peer_service column (flattened)
- attributes['peer.service'] map
- attributes_string['peer.service'] map
Use COALESCE to try all locations. Filter NULL results in WHERE clause.
See working run here
https://github.com/openobserve/openobserve/actions/runs/19761555623/job/56624451400
Also check the timeline items that mention gh actions bot added the
label and milestone to it.
This adds a CI which will automatically label every PR on approve and
add it to the lowest open milestone (ignoring backlog)
So if current open milestones are backlog, v0.20.0, v0.20.1 , it will
auto add this on approval to v0.20.0 and add `Needs-Testing` label.
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
How I run my query
1. nov 26 10:30 - 11:30 - interval 30 mins
2. nov 26 10:30 - 16:30 - interval 60 mins
3. nov 26 10:30 - 16:30 - interval 60 mins -- refresh cache
Cache dir
1. on first run
- has 2 caches 30 mins
2. on 2nd run
- will havve mixed 30mins cache and 60 mins cache
TODO:
- [x] Problem 1:
on step 3
- the interval for that duration is 60 mins
- but the discovery of cache will also include the 30 mins cache
[@mod.rs](file:///Users/lin/o2/openobserve/src/service/search/mod.rs)
`discover_cache_for_query`
- the overwrite will over write the 60 mins cache only. How to address
this problem?
- [x] Problem 2:
- fix: add rbac control only user with permussion to edit stream can
`refresh cache`
Proposed Solution
- On `refresh_cache` run streaming aggs without using cache
- at `streaming/execution.rs` , at the end of steaming aggs delete all
the cache files for the given duration when there are miss matched cache
interval files
- then remove the `streaming_id` from the `GLOBAL_CACHE`
- eg: nov 26 10:30 - 16:30 - interval 60 mins -- refresh cache
- Cache consists of 30mins or 4hr interval files all of them will be
deleted
- 60 mins cache interval files will be overwritten or created a new.
- This way on the next run there will be no query results mismatch when
the query runs again with the newly updated cache, especially delayed
data for the same duration.
- add rbac control to only allow users with edit permissions to stream
to use this feature
don't load license info for cloud in about us page
show license section for meta orgs in cloud as well
show default ingestion limit when license expired
In super cluster, currently we broadcast the trigger update events
individually. This pr allows bulk updates through super cluster.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This fixes two issues for reporting triggers to own org :
- sometimes triggers of different orgs would get reporting to different
orgs, this fixes it by grouping triggers by org and then ingesting them
- for cloud, previously it would cause issues for expired orgs and block
alert manager, now this skips the expired orgs altogether. With a
previous change of disabling trigger causing stuff (alerts, reports etc)
for expired orgs completely, this change should fix the minor remaining
problem as well.
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
- Verify full camel case token search: DbException should be found when
searching for complete camel case identifiers
- Verify atomic token search: UserAccountService should be searchable
and return matching results for full service class names
- Verify XML acronym tokenization: XMLHttpRequest should be properly
tokenized and discoverable through match_all queries
- Verify camel case with numbers: OAuth2TokenHandlershould handle mixed
alphanumeric camel case tokens correctly
- Verify multi-word service search:UserManagementService should support
complex multi-word camel case service names
added workflow to udpate the language conversion
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>