Commit Graph

6912 Commits

Author SHA1 Message Date
Jared Tan 62411964a4
update (#7340) 2021-07-20 16:27:26 +08:00
kezhenxu94 902b6c540b
Fix dead links (#7338) 2021-07-20 08:54:05 +08:00
Cool-Coding 7654161721
Fix the problem of Kafka transport topics are created duplicated with and without namespace (#7326) (#7329) 2021-07-20 08:50:36 +08:00
吴晟 Wu Sheng 3a4ee08e54
Enhance persistent session timeout mechanism. (#7334)
Fix bug, the enhanced session could cache the metadata metrics(hot entity) forever. A new timeout mechanism is designed for avoiding this specific case.

Optimize this timeout mechanism, make it different for ES(one index per day) and non-ES storage implementation.
2021-07-20 07:50:27 +08:00
kezhenxu94 4003c4b777
Publish snapshot Docker images (#7337) 2021-07-19 22:19:11 +08:00
Cool-Coding 467a95b61d
Fix the problem of -meters metrics topic isn't created with namespace prefix (#7325) (#7330) 2021-07-19 14:58:24 +08:00
吴伟杰 06e589fab0
Remove plugins for ShardingSphere legacy and unstable versions (#7323)
Remove the following plugins due to they are legacy and unstable releases.
1. sharding-jdbc-1.5.x-plugin
2. sharding-sphere-4.x-rc3-plugin
3. sharding-sphere-4.x-plugin (This is for RC1 and RC2)

To people who want to use these removing versions, you still could copy the plugins from SkyWalking's 8.6.0 release to the '/plugins' folder to activate, unless SkyWalking has some core level APIs upgrade. This is very rare to happen.
2021-07-18 20:35:54 +08:00
yujiaxinlong aa4ee27d4a
fix gateway plugin async finish repeatedly when fallback configured (#5886)
When there is a fallback in webflux (like a hystrix fallback or a webflux fallback method that involves visiting a new URL). This interceptor would be invoked twice, one for origin request and another for fallback request. The ServerWebExchange for these two aren't exactly the same one, but the former one is a delegate inside of the latter one, thus, they share the same attributes.

The problem of the old code is that get the span from attributes within the execution of Mono would get span for the latter request twice. so just move this part of code out could solve the problem.

It seems impossible to make the mono chain work like expected. So add a check about whether the best matching pattern really matches the URL. This check code is how webflux generating the best match pattern,
2021-07-17 20:50:57 +08:00
Lu Jiajing cd029df360
Chore: polish methods naming for Spring Kafka (#7320) 2021-07-17 17:09:51 +08:00
吴晟 Wu Sheng a6afcac86e
Logically revert #6642 and partial #7153 to reduce unnecessary thread and concurrency process (#7318)
The key logic behinds all these is, metrics persistence is fully asynchronous.

* The core/maxSyncOperationNum setting(added in 8.5.0) is removed due to metrics persistence is fully asynchronous.
* The core/syncThreads setting(added in 8.5.0) is removed due to metrics persistence is fully asynchronous.
* Optimization: Concurrency mode of execution stage for metrics is removed(added in 8.5.0). The only concurrency of prepare stage is meaningful and kept.
* Remove the outside preparedRequest list initialization, worker instance could always build a suitable size list in the first place (Reduce Array.copy and GC load a little).
2021-07-17 16:03:50 +08:00
wankai123 9f3ff517d1
Support envoy cluster manager metrics (#7294) 2021-07-16 15:35:48 +08:00
吴晟 Wu Sheng 8df362b929
Adjust ElasticSearch index refresh period as INT(flushInterval * 2/3) (#7310)
Adjust index refresh period as INT(flushInterval * 2/3), it used to be as same as bulk flush period. At the edge case, in low traffic(traffic < bulkActions in the whole period), there is a possible case, 2 period bulks are included in one index refresh rebuild operation, which could cause version conflicts. And this case can't be fixed through core/persistentPeriod as the bulk fresh is not controlled by the persistent timer anymore.

This PR should avoid the following exception in the low load case, especially when bulkActions is set larger than the number of a metric type.
2021-07-16 12:10:35 +08:00
吴晟 Wu Sheng 408bbf86e6
Fix a misused variable. (#7309) 2021-07-15 19:31:50 +08:00
吴晟 Wu Sheng c59ee90029
Performance: optimize IDs read of ElasticSearch storage options(6 and 7) (#7307)
* Performance: optimize IDs read of ElasticSearch storage options(6 and 7). Use the physical index rather than template alias name.
2021-07-15 18:06:11 +08:00
wankai123 2870b222b4
doc: separate infra monitoring doc to vm and k8s (#7301) 2021-07-15 10:23:49 +08:00
吴晟 Wu Sheng 097a8b7231
Reduce the flush period of hour and day level metrics (#7299) 2021-07-15 07:36:12 +08:00
Fine0830 ff7c8fa87e
feat: update e2e for client-js (#7297) 2021-07-14 21:43:27 +08:00
吴晟 Wu Sheng de975c7e2b
Remove synchronous persistence mechanism in API level and ElasticSearch implementation (#7293)
* Performance: remove the synchronous persistence mechanism from batch ElasticSearch DAO. Because the current enhanced persistent session mechanism, don't require the data queryable immediately after the insert and update anymore.
* Performance: share `flushInterval` setting for both metrics and record data, due to `synchronous persistence mechanism` removed. Record flush interval used to be hardcoded as 10s.
* Remove `syncBulkActions` in ElasticSearch storage option.
* Increase the default bulkActions(env, SW_STORAGE_ES_BULK_ACTIONS) to 5000(from 1000).
* Increase the flush interval of ElasticSearch indices to 15s(from 10s)

Add these 2 references. According to these, **(same _index, _type and _id) in same bulk will be in order**
1. https://github.com/elastic/elasticsearch/issues/50199
2. https://discuss.elastic.co/t/order-of--bulk-request-operations/98124

Notice, the order of different bulks is not guaranteed by the ElasticSearch cluster. We are going to have the risk of dirty write. But consider we set over 20s period between flush, and index flush period is 10, we should be safe.

Recommend 5000 bulk size and 15s flush interval only. The persistent period has been set to 25s.
2021-07-14 17:19:49 +08:00
kezhenxu94 982001c63a
perf: optimize Envoy access log persistence performance (#7290) 2021-07-13 18:44:52 +08:00
Elliot Duan 6228d450e1
support Kafka SASL login module. (#7281)
Co-authored-by: Elliot Duan <elliot.duan@homecreditcfc.cn>
2021-07-11 22:39:51 +08:00
Fine0830 a5b855d3a7
sync ui (#7279) 2021-07-10 22:49:09 +08:00
kezhenxu94 b5eb1572eb
chore: clean up source-dependencies' licenses (#7277) 2021-07-10 11:55:20 +08:00
kezhenxu94 d79094c178
Add pagination to event query (#7274) 2021-07-09 23:04:50 +08:00
kezhenxu94 fd92f4678a
perf: optimize Groovy-based LAL DSL with static compilation (#7263)
Groovy naturally supports many dynamic features that we don't benefit for now but cost performance loss, in this patch we compile our Groovy-based DSL scripts statically to optimize performance.
2021-07-09 18:00:25 +08:00
Ax1an 58dce444fc
Enhance the compatibility of `mysql-8.x-plugin` plugin. (#7261)
hostInfo.getDatabaseUrl() result in version 8.0.19 or above:

jdbc:mysql:loadbalance://**internally_generated**1620805591623**

hostInfo.getDatabaseUrl() result in version 8.0.18 or below:

jdbc:mysql:replication://127.0.0.1:3306,127.0.0.1:3306,127.0.0.1:3306/mer_goods_admin_sit?useSSL=true&useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
2021-07-08 17:55:00 +08:00
whl12345 9e022d1a73
Provide plugin for Guava Cache (#7235) 2021-07-08 11:58:09 +08:00
Fine0830 f9140b80fa
test: update commitID (#7255) 2021-07-07 17:46:29 +08:00
Switch 4067fba2ab
Add some new thread metric and class metric to JVMMetric (#7230) (#7243) 2021-07-07 16:30:55 +08:00
Sergi Castro d15b67bd97
Allow configuring max request header size (#7249)
* Allow configuring max request header size

This allows configuring the HTTP max request header size from the jetty
server.
By default it uses 8192, the same jetty default.
2021-07-06 15:10:15 +08:00
Daming 5dd56a5ca4
Upgrade etcd cluster coordinator and dynamic configuration to v3.x (#7215) 2021-07-05 11:23:11 +08:00
Jared Tan 0efc733901
Replace zuul proxy with spring cloud gateway 2.x. in webapp module. (#7220) 2021-07-04 10:24:56 +08:00
mrproliu 156678a8bf
Move ehcache-2.x plugin as optional (#7236) 2021-07-03 16:56:05 +08:00
Daming 022bf38116
Fix InfluxDB storage-plugin Metrics#multiGet issue (#7238) 2021-07-03 13:58:27 +08:00
liqiangz 0f62d9289f
Add agent plugin to support Sentinel (#7190) 2021-07-03 00:20:14 +08:00
Lin1997 58a370100a
Fix issue that webfluxwebclient plugin async finish repeatedly in multi thread (#7229) 2021-07-02 18:24:25 +08:00
AngryMills 04bb6673b8
support parameter collection for sqlserver (#7217) 2021-07-02 10:27:10 +08:00
吴晟 Wu Sheng f32d3d0720
Enhance the storage session mechanism (#7221) 2021-07-01 23:25:52 +08:00
Jing da5af095ab
Fix bug with error topic in kafka fetcher md. (#7223) 2021-07-01 21:06:41 +08:00
CharliePu 27e59868f4
sync ui and update CHANGES log (#7205) 2021-07-01 15:23:55 +08:00
hn abd36dfc94
fix some method exception error (#7210) 2021-07-01 10:59:03 +08:00
吴晟 Wu Sheng 536b7d2328
Support connectTimeout and socketTimeout settings (#7214) 2021-07-01 08:20:59 +08:00
吴伟杰 0975809e43
Add an agent plugin for ShardingSphere 5.0.0-beta (#7171) 2021-06-30 21:00:20 +08:00
kezhenxu94 dcefc69edf
Doc: update doc to declare that zookeeper 3.5+ is required in cluster coordinator (#7212) 2021-06-30 19:21:02 +08:00
吴晟 Wu Sheng 50a0bcbf73
Optimize L1 aggregation, enhance gRPC client between L1 and L2 aggregation. (#7206)
1.0Performance: Add L1 aggregation flush period, which reduces the CPU load and helps young GC.

2. Replace do not direct send after the first aggregation to reduce the network #6400.

3. Enhance the DataCarrier to notify the consumer in no enqueue event in short term.

4. L1 aggregation flush period still works even no further metrics generated, powered by <3>

5. Fix gRPC remote client OOM. The concurrency control mechanism failed.
2021-06-30 19:14:20 +08:00
吴晟 Wu Sheng 4374fac4cb
Fix broken image path for mssql server in testing. (#7211) 2021-06-30 17:55:38 +08:00
吴晟 Wu Sheng 89549c0183
Fix the queue initial size is not set by max batch size accordingly (#7204) 2021-06-30 11:33:07 +08:00
吴晟 Wu Sheng 16ebaade6a
Optimize IDs reading in the persistent worker. (#7193)
* Optimize IDs reading in the persistent worker.
2021-06-30 10:17:46 +08:00
kezhenxu94 f5b7c3e32d
Perf: cache metrics id and entity id (#7201)
There are a lot of calls to `Metrics.id()` and `ISource.getEntityId`, which calculates the id by manipulating strings in every single call, producing many garbage objects.

In this patch, I cache the id and only calculate the id if it's requested for the first time.
2021-06-29 22:48:51 +08:00
kezhenxu94 84a7fe30c8
Perf: cache regex pattern and result, optimize string concatenation (#7199)
The possible metrics names are relatively fixed in an OAP run, we previously always escape the metrics names, building a new regex Pattern from scratch, which is cpu-consuming.

In this patch, I cache the escaped metrics names, and if it missed, use a pre-compiled regex Pattern to escape the metrics name.

This patch also replace string concatenation `+` with `StringBuilder` in generated classes, which won't get optimized by Java compiler

This may reduce 1~1.5 vCPU under 20K RPS environment.
2021-06-29 17:46:42 +08:00
zhyyu b8fadec033
fix slow db dynamic config bug (#7192) 2021-06-29 16:41:01 +08:00