Skywalking填坑记(持续新增)

走了使用开源的路,就是一路填坑,填完一个还有一个,这里Mark一下,方便后来人和自己

一、ES的存储的坑


我是华丽的分隔线:

前言:这里使用的是es,开始的时候安装的是最新的ES 7.2,后面发现连接不上,后来在官方支持群,发现不支持7.2的,目前最新支持到6.2.2,所以使用更高版本的鞋童需要注意。



1.1 ES的连接池

使用一段时间后,发现部分时间日志缺失,查看日志,发现报错如下:

2019-07-30 16:04:20,907 - org.apache.skywalking.oap.server.core.register.worker.RegisterPersistentWorker - 113 [DataCarrier.REGISTER_L2.BulkConsumePool.0.Thread] ERROR [] - Elasticsearch exception [type=es_rejected_execution_exception, reason=rejected execution of org.elasticsearch.transport.TransportService$7@511a62fe on EsThreadPoolExecutor[name = node-1/bulk, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@528f9e85[Running, pool size = 32, active threads = 32, queued tasks = 200, completed tasks = 1208015]]]

ES报错

anger的日志也出现报错

DEBUG 2019-07-30 18:13:34:730 QuartzScheduler_quartzScheduler-eurekadiscovery11563940545797_ClusterManager TraceSegmentServiceClient : One trace segment has been abandoned, cause by buffer is full.

DEBUG 2019-07-30 18:13:34:730 QuartzScheduler_quartzScheduler-eurekadiscovery11563940545797_ClusterManager TraceSegmentServiceClient :  One trace segment has been abandoned, cause by buffer is full.

DEBUG 2020-07-30 18:13:35:577 SkywalkingAgent-4-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient :  ServiceAndEndpointRegisterClient running, status:CONNECTED.


这里可以明确看到是ES的问题,具体见ES官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.htm,怀疑由于并发高,导致ES线程满,具体解决办法:

一,ES集群或者用更高级的存储(没钱的飘过~~~~)

二,优化ES的参数(只能临时缓解,指标不治本,如果持续是日志量大,还是建议升级ES集群)


skywalking关于ES的参数配置

优化后

skywalking优化配置

这里把批量写入日志的调整大一些,降低写入频率

三,撸skywalking的源码


关于ES存储的连接设置

这里是关于ES存储的部分参数(这里不够优雅,后面找时间改为读取配置文件,否则要调整参数,都需要重新编译,麻烦死啦)

你可能感兴趣的:(Skywalking填坑记(持续新增))