Ok , i will start a new experiment to see if the error will be still there? Sorry i dont really get how to show the trains-apiserver log
SubstantialBaldeagle49 This should collect the logs: 'sudo docker logs trains-apiserver >& apiserver.logs'
The log is produced after i go to the web ui and reproduce the error of "Failed to get Plot Charts"
I have remake curl, this commad "sudo curl -L " https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compos" will work
Setting up an elastic cluster requires some devops. You can search for "setup elasticsearch 7 cluster" in the internet and there are some tutorials there. Stopping your docker-compose once in a certain period of time and backing up the /opt/trains/data folder is more straightforward and it would backup also the data that we store in mongodb.
The index "events-plot-d1bd92a3b039400cbafc60a7a5b1e52b" is red meaning that it is corrupted and elastic cannot work with it. The most straightforward solution would be to delete this index but it will result in all the plots generated so far will be lost.
What can be seen in the logs is that for some reason Elasticsearch had internal failure when trying to perform the plots query. I will send you the instruction on how to check for the health of ES nodes. It may provide us with some clues
SubstantialBaldeagle49 The log looks OK. Where do you see the error?
AppetizingMouse58 Thanks so much!, Could u tell why does this happen? If it happen next time , is there any other solution?
Please run these commands and see if you have any "red" statuses in the output:
curl " http://localhost:9200/_cluster/health?pretty "
curl " http://localhost:9200/_cluster/health?level=indices&pretty "
AppetizingMouse58 Ok , i see, thanks!
Sure, you delete it with the following command:
curl -XDELETE " http://localhost:9200/events-plot-d1bd92a3b039400cbafc60a7a5b1e52b "
Once deleted it will be automatically recreated by the api server and should see the plots from the new tasks that you run afterwards
https://stackoverflow.com/questions/28287261/connection-timeout-with-elasticsearch
How to set the timeout?
AppetizingMouse58 Ok, this is the full log, here seems a error:
SubstantialBaldeagle49 Well, I see. Elaticsearch does not support putting that large number into max_buckets. From the error message that I see in the apiserver log I am not sure that the original problem is connected to the buckets number. Can you please revert the max_bucket change, reproduce the original problem and share the elasticsearch log?
That's ok, i have just start the server. Could you tell me how to delete this index?
Might be some other issue related to loading plots from elastic. Can you show the trains-apiserver
log again after you received the error - there should be some more information there
AppetizingMouse58 Great, Thanks so much! You have done a great work.
Another question, how to configure elasticsearch to run as a cluster with 2 or more nodes on the same or different machine 😅
SubstantialBaldeagle49 This is fine. When you start docker-compose it takes different time for the services to start. Apiserver waits for the Elasticsearch to start and proceeds once it is ready. Can you reproduce the buckets issue and share the apiserver log that contains it?
Ok, i have reverte the change ,here is two log: