-
Notifications
You must be signed in to change notification settings - Fork 345
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
all-in-one with non-memory storage (Kubernetes) #740
Comments
There is another example that uses Badger local storage - this should give you what you are looking for. We need to update the documentation to clearly outline this option. |
Thanks, I will try it out. But is there any other setting up needed for Badger? Like creating volume separately? Or your example takes care of it already? |
@emailtovamos No additional setup - the example yaml sets up the volume for local storage. |
Thanks @objectiser - I tried the Badger storage as per the file you mentioned. It worked fine as I could see my services in the UI. But just to test the persistence nature, I deleted the jaeger instance pod. Another pod sprung back on as expected. But this time I could no longer see my services in the UI. Is this expected behaviour? I was expecting it to still show stuff. |
For production purposes, you probably would want to provision the storage yourself and specify the volume mount/volume in the Jaeger CR. edit: I meant to say that our examples are using emptyDir, not that the operator will create emptyDir volumes (which doesn't make any sense...) |
You mean like the options shown here: https://www.jaegertracing.io/docs/1.14/operator/#storage-options ? |
The example that @objectiser mentioned and that you are probably using is the right way, just replace |
Ok So I created a
Then gave it in the jaeger instance with badger:
I can see the pvc and pv running fine when I do e.g. |
The indentation looks odd. Do you get any error messages when you try to apply this resource? Could you please start the operator with |
|
The above logs look as expected right? I just deleted the pod and it restarted. But in the UI I could no longer see the older traces. |
@emailtovamos Can you try with the modified indentation as below:
The |
Thanks @objectiser ! It works now! When I delete the Jaeger pod and the new pod gets created, I can now see the traces corresponding to the old pod in the Jaeger UI. One last question: |
There is a |
Thanks! |
Yes I believe so - let us know if you get problems with it. |
Thanks. |
Yes please! |
Sure, will do. BTW I tried to rerun the yaml using
|
@emailtovamos An option to truncate was added recently. You could try this out using the |
If this is reproducible, could you provide the log for the pod that fails - before you try restarting and getting this "Failed to init storage factory" error - it might help to detect and avoid this failure. |
Thanks @objectiser . I added the truncate option although yet to check if now I can avoid that problem. |
@burmanm would you be able to answer? |
I'm not sure what the question is really. If database runs out of diskspace, there's nothing it can do. It can't free space since it can't write the deletes and it can't rearrange the data either. |
Thanks @burmanm . A practical scenario which happened to me today: |
No, it would not continue. The writing is never happening inplace, instead those SST files are always immutable. Thus, when the TTL is expired, the next compaction process will remove that old data (and write the new SST files without that expired data). But since there's no disk space, the compaction process cannot continue. Also, I would assume at that point the WAL log has some operations which are also in the memtable and it can't be flushed for proper compaction thus the WAL log can't be cleaned. To provide consistency, the compaction process can't really continue since it can't write all the data to the disk and make correctly sorted SST files. Thus, you should always have enough empty diskspace to ensure that the compactions can take place. Same applies to Cassandra backend also as these both are based on the LSM trees. |
Thanks @burmanm for the detailed explanation. |
@emailtovamos could you please open this issue in the main repository? - regarding badger not cleaning the data properly |
I could find an example of
all-in-one
Jaeger instance within-memory
storage. But there is no such example for doing it withelasticsearch
.Where can I find it?
I understand one has to have elasticsearch running already and THEN one can incorporate corresponding changes in the above yaml file. But is there a simple way/file to have both the Jaeger instance AND elasticsearch from same file?
For someone like me who is mainly worried about having a persistent storage(with default options) and not having to figure out/manage details of elasticsearch, this would really help.
The text was updated successfully, but these errors were encountered: