I am using very old Elasticsearch 1.x I know its EOL but no choice here and as that time official ES client was not there, using Jest
client to interact with Elasticsearch and occassionaly seeing the timeout exception when Jest is trying to establish a connection and below is the stack trace of the log
rg.apache.http.conn.ConnectTimeoutException: Connect to <es-ip>:9200 [/<es-ip>] failed: connect timed out
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at io.searchbox.client.http.JestHttpClient.executeRequest(JestHttpClient.java:109)
at io.searchbox.client.http.JestHttpClient.execute(JestHttpClient.java:56)
One weird thing I noticed is that this mostly happen to the Elasticsearch instances hosted in AWS and not in the data centre, I am using Data dog integration with Elasticsearch for elasticsearch infra monitoring and can provide more relevant details if required from there.