-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
Make elasticsearch client request socket timeout to be configurable #6428
Comments
Here is the log. 2021-01-11 06:06:30,964 - org.apache.skywalking.oap.server.telemetry.api.HealthCheckMetrics -17060395 [pool-10-thread-1] ERROR [] - Health check fails |
60s to do what? Seems a crazy latency. |
Refer to the log below, it should execute inserting metrics data in bulk synchronously. Actually, the max time cost is 32 seconds from logs, not 60 seconds. at org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.client.ElasticSearch7Client.synchronousBulk(ElasticSearch7Client.java:295) [storage-elasticsearch7-plugin-8.3.0.jar:8.3.0] |
Oh my, the period of persistent timer is 3s only, you took 32s to make that? |
I am wondering, is it better to make improvement for the ElasticSearch server? |
We tuned ES server, but the ES cluster looks good to us. I'm not sure why it runs so slowly. |
It will not be lost because of this in one time, but as you are using 30s, it will be in 1min. We set session period aa 1 min. |
Both of you were talking about the writing scenario. {
"data": {},
"errors": [
{
"message": "Exception while fetching data (/trace) : listener timeout after waiting for [30000] ms"
}
]
} java.io.IOException: listener timeout after waiting for [30000] ms
at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:684) ~[elasticsearch-rest-client-6.3.2.jar:6.3.2]
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:235) ~[elasticsearch-rest-client-6.3.2.jar:6.3.2]
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:198) ~[elasticsearch-rest-client-6.3.2.jar:6.3.2]
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:522) ~[elasticsearch-rest-high-level-client-6.3.2.jar:6.3.2]
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:508) ~[elasticsearch-rest-high-level-client-6.3.2.jar:6.3.2]
at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:404) ~[elasticsearch-rest-high-level-client-6.3.2.jar:6.3.2]
at org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient.doSearch(ElasticSearchClient.java:351) ~[library-client-8.2.0.jar:8.2.0]
at org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient.search(ElasticSearchClient.java:336) ~[library-client-8.2.0.jar:8.2.0]
at org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query.TraceQueryEsDAO.queryBasicTraces(TraceQueryEsDAO.java:136) ~[storage-elasticsearch-plugin-8.2.0.jar:8.2.0]
at org.apache.skywalking.oap.server.core.query.TraceQueryService.queryBasicTraces(TraceQueryService.java:91) ~[server-core-8.2.0.jar:8.2.0]
at org.apache.skywalking.oap.query.graphql.resolver.TraceQuery.queryBasicTraces(TraceQuery.java:76) ~[query-graphql-plugin-8.2.0.jar:8.2.0] How about the reading scenario? Could we make the fixed value 30s configurable? |
If you keep increasing the timeout for es query, you will end in webapp, gateway or browser timeout.😀 |
Okay, we focus es performance first. Wish BanyanDB coming. |
I am going to close this for now |
@buxingzhe @wu-sheng hey guys , i met the same exception, i checked the bulk execution log, 99.99% in 10s completed, 100% in 20s completed , i didn't see over 30s record. any suggestions find out how this happened? full error log
|
Please answer these questions before submitting your issue.
Current, we often see the SocketTimeoutException at OAP server side when elasticsearch client executes bulk API.
I tried to changed the source code to set the socket timeout to 60 seconds instead of default 30 seconds, then the issued was resolved. So I hope the ES client request socket timeout to be configurable.
Question
Bug
Which version of SkyWalking, OS, and JRE?
v8.3.0, Linux, JDK11
Which company or project?
What happened?
If possible, provide a way to reproduce the error. e.g. demo application, component version.
Requirement or improvement
Make ES client request socket timeout to be configurable.
The text was updated successfully, but these errors were encountered: