-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature]: time parameters for querying trace by id #4150
Comments
What storage backend are you using? I'm not particularly opposed to this change. Even though I do not recall similar complaints, I assume if someone uses ES as storage with indices rotated regularly, then having a time range as a hint might narrow down which indices to query. However, I am not sure how that would work when people use index alias, it would require some kind of support on ES side to use the time range hint. Other official Jaeger backends are kv-stores and don't need help looking up by trace ID. |
our backend is clickhouse. Clickhouse is not good at querying item by id, especially when the id is actually a random number. We simply have too many traces, about 4 billion traces per day. that would need lots of memory if holding them in memory. for kv store, it can simply ignore the start and end time. this feature sounds like more general case as the API assume global scanning without any other options. |
@yurishkuro, this would greatly benefit us given the volume of spans we ingest into our click house cluster. we would be more than happy to contribute the enhancement as well. |
go for it. Speaking of ClickHouse: are you using https://github.com/jaegertracing/jaeger-clickhouse ? I recently opened #4196. There is another implementation in OTel Collector Contrib, which has an additional small table, as I understand for looking up time range based on trace-id |
@yurishkuro Thx for the information. we had evaluated the index table solution long ago. It does not help too much as the trace id is a random number. Clickhouse index does not help with random numbers. When the traffic volumn is not high, the index table solution can be used. I will work on the time parameters and send the PR. Thx |
## Which problem is this PR solving? - Part of jaegertracing/jaeger#4150 ## Description of the changes - Make time values non-nullable to avoid pointers ## How was this change tested? - In jaegertracing/jaeger#6218 --------- Signed-off-by: Yuri Shkuro <[email protected]>
## Which problem is this PR solving? - Part of #4150 ## Description of the changes - Sync to latest jaeger-idl (inculding jaegertracing/jaeger-idl#109) - Regenerate protobuf ## How was this change tested? - CI --------- Signed-off-by: Yuri Shkuro <[email protected]>
## Which problem is this PR solving? - Part of jaegertracing/jaeger#4150 - Having gogo annotations in the IDL makes it difficult to users to build clients ## Description of the changes - Remove gogo annotations - Rename num_traces to search_depth ## How was this change tested? - Tested in jaegertracing/jaeger#6233 --------- Signed-off-by: Yuri Shkuro <[email protected]>
## Which problem is this PR solving? - Part of #4150 ## Description of the changes - Upgrade to new IDL that removes gogo annotation from api_v3/query.proto - Add a pre-processor to inject annotations during build - Fix tests - Add start/end time to GetTrace test (which was failing in #6228) ## How was this change tested? - ## Checklist - [ ] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [ ] I have signed all commits - [ ] I have added unit tests for the new functionality - [ ] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `yarn lint` and `yarn test` --------- Signed-off-by: Yuri Shkuro <[email protected]>
…r gogo (#113) ## Which problem is this PR solving? Part of jaegertracing/jaeger#4150 ## Description of the changes - Make sure type of time fields are aligned with other requests ## How was this change tested? - unit test ## Checklist - [x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [x] I have signed all commits - [x] I have added unit tests for the new functionality - [x] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `yarn lint` and `yarn test` Signed-off-by: rim99 <[email protected]>
…6251) ## Which problem is this PR solving? Part of #4150 ## Description of the changes - related to jaegertracing/jaeger-idl#113 ## How was this change tested? - unit test Signed-off-by: rim99 <[email protected]>
## Which problem is this PR solving? Part of #4150 ## Description of the changes Refactor trace get method in span store interface: - use struct instead of literal trace id - add time window in the new struct ## How was this change tested? - unit test ## Checklist - [x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [x] I have signed all commits - [x] I have added unit tests for the new functionality - [x] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `yarn lint` and `yarn test` --------- Signed-off-by: rim99 <[email protected]> Signed-off-by: Zhang Xin <[email protected]> Signed-off-by: Zhang Xin <[email protected]> Signed-off-by: Yuri Shkuro <[email protected]> Signed-off-by: Yuri Shkuro <[email protected]> Co-authored-by: Yuri Shkuro <[email protected]> Co-authored-by: Yuri Shkuro <[email protected]>
## Which problem is this PR solving? - Part of #4150 ## Description of the changes - Add optional time window for GetTrace http_gateway ## How was this change tested? - unit test ## Checklist - [x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [x] I have signed all commits - [x] I have added unit tests for the new functionality - [x] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `yarn lint` and `yarn test` --------- Signed-off-by: Zhang Xin <[email protected]> Co-authored-by: Yuri Shkuro <[email protected]>
Requirement
add start_time and end_time as optional parameters in https://github.com/jaegertracing/jaeger-idl/blob/main/proto/api_v2/query.proto#L37
Problem
when using with Granafa console, the trace id view takes a little long time to load.
This is because the query has to scan all traces in the db. we have about 4M sampled traces per day and the data is growing, and we store several days data in the database.
Proposal
it would be good to add time parameters when querying by trace id. like tempo API https://grafana.com/docs/tempo/latest/api_docs/#query.
grafana console already have the time window.
Open questions
No response
The text was updated successfully, but these errors were encountered: