-
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]: Support elasticsearch data stream #4708
Comments
Is this because the client library used for connecting to Elasticsearch is outdated? Namely, I see in the logs of version 1.54 of the collector that the client is olivere/[email protected]. This client is from July 27th, 2021. The client is also not being updated anymore, it would appear. Namely, it was last updated to version 7.0.32 on Mar 19th, 2022. This is almost two years ago now. Elastic has its own go library now: https://github.com/elastic/go-elasticsearch. |
I see that the OpenSearch project has the same feature-request. |
I am currently working on this feature, but I prefer to implement it in jaeger v2 |
@JaredTan95 +2 for v2, but what specifically is the difference? Our storage implementations are currently identical in v1 and v2 (with the exception of configuration) |
Currently, if we want to use esILM policy, we need to create aliases and we need to create the |
|
@JaredTan95 Is this still something you're looking at/working on? We're also keen to look at using data streams for Jaeger. In our case we manage all the templates, lifecycle etc. outside of Jaeger, so our main requirements are to have Jaeger not add the date suffix to the index it writes to, and also to use only
You can get by without explicitly creating the datastream up front and just having a matching index template that is configured to use a data stream |
@yurishkuro @Evesy Follow this guide. We have two steps to complete: 1. Create an index template 2. Create a data stream.
Do you have any advice? 🤔 |
What sort of advice are you asking for? |
It's my understanding this is a pretty important feature. Datastreams allow me to grow index size without doing any work. If Jaeger doesn't support them then there's always a risk that the size I manually set for my indexes is too small. |
follow:
Please take note of the following: |
Yes we can start with that. Services index is just a cache to avoid scanning the whole database to find distinct service names - perhaps ES can maintain that automatically as some sort of materialized preaggregation. |
@yurishkuro @zzzk1 I have been studying about data streams for a while and I think these points need to be covered:
Now making the policy configurable for the user is going to be a challenge. We can choose to create our own policy struct (because it is not provided by ES-Client) but that will lead to maintainence overhead as keeping it always synchornized with ES updates will be challenging. |
I don't think it will break your requirements. Adding a data stream will not change the naming convention of index of jaeger! As far what could I understand from the docs, it will only require adding |
Using ILM with datastreams makes sense to me. People are definitely going to want to configure age values. Datastreams makes the system more robust and easy to maintain. I'm not sure why someone wouldn't want to use it for something like traces. But some people may still want to use the old way, I dunno. |
@Manik2708 what if we didn't support any automation or customization? We can include a sample JSON for creating a policy, if people need to customize it they can. The only automation that I think will be useful is if the policy was automatically created when Jaeger starts the first time against empty storage, by using that same JSON file. We can provide an option for a user to override that file as a whole, if they want (they can also edit the policy via ES JSON API, I assume). |
This sounds good! But I have a question, Where are we gonna keep this json file so that user can edit/override that? I am assuming to keep it in factory just like mappings but then it will become difficult for the user to find that file!
Yes there is an API |
It will be in this repository and embedded in the binary. The documentation on the website can link to it, while explaining how to apply that policy against the db. |
@yurishkuro @Manik2708 I write a doc about how i am try to implement this feature, please see: Jaeger ES data stream proposal thanks. |
Things look good to me but some points over it:
|
@zzzk1 please allow comments on the doc.
|
Requirement
Problem
I has created a data stream index template, and I tried
--es.use-aliases=true
but not work.Proposal
No response
Open questions
No response
The text was updated successfully, but these errors were encountered: