Commit Graph

472 Commits

Author SHA1 Message Date
吴晟 Wu Sheng de6cae3429
[Break Change] Remove endpoint name in the trace query condition. (#7438)
* [Break Change] Remove endpoint name in the trace query condition.

* Fix a local UT error(MacOS only)
2021-08-11 16:27:10 +08:00
kezhenxu94 85e22f5124
Fix issues in ES7.14 and add log cases to ES7.14 (#7429) 2021-08-10 15:36:53 +08:00
吴晟 Wu Sheng cc66254729
Remove statement, version, and endtime from segment entity. (#7427) 2021-08-10 00:05:06 +08:00
wankai123 4e7d80fb88
Support Metric level function `serviceRelation` in `MAL` and binding envoy metrics into the topology. (#7399)
* Support Metric level function `serviceRelation` in `MAL`.
* Support envoy metrics binding into the topology.
* add istio args
* remove istio 1.7

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: Jared Tan <jian.tan@daocloud.io>
Co-authored-by: Zhenxu <kezhenxu94@apache.org>
2021-08-06 17:09:13 +08:00
Gao Hongtao 1f28d2036a
Add logging module to load log configuration dynamically (#7377)
* Add logging module to load log configuration dynamically

Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
2021-07-29 19:55:22 +08:00
kezhenxu94 65e8ab3ecc
Log rate limit sampler rename `qps` to `rpm` (#7384) 2021-07-29 18:11:07 +08:00
Ax1an 383e32b44b
Fix the persistent session timeout mechanism bug. (#7347) 2021-07-22 05:50:19 +08:00
Ax1an 3704567b21
Fix possible version_conflict_engine_exception in bulk execution. (#7354) 2021-07-21 20:48:52 +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
吴晟 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
吴晟 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
吴晟 Wu Sheng 097a8b7231
Reduce the flush period of hour and day level metrics (#7299) 2021-07-15 07:36:12 +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
kezhenxu94 d79094c178
Add pagination to event query (#7274) 2021-07-09 23:04:50 +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
吴晟 Wu Sheng f32d3d0720
Enhance the storage session mechanism (#7221) 2021-07-01 23:25:52 +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 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
Alvin a966eea35c
Support prepare and save metrics concurrency (#7153) 2021-06-29 14:34:29 +08:00
liqiangz d63f3ffcc1
revert #7091 (#7189) 2021-06-28 21:05:28 +08:00
wankai123 e95064d976
chore: set openAPI grouping CoreModuleConfig default value consistent with application.yaml, add re-benchmark result (#7176) 2021-06-26 00:08:14 +08:00
wankai123 19a068d708
Feature: support endpoint name grouping by OpenAPI definitions. (#7130) 2021-06-20 07:57:10 +08:00
kezhenxu94 528ee6de40
OAL supports generating metrics from events (#7134)
* OAL supports generating metrics from events

* Add new dashboard for event metrics

* Add some docs for event metrics
2021-06-19 20:20:37 +08:00
Ax1an 402902f75c
Agent supports the collection of JVM arguments and jar dependencies information. (#7069) 2021-06-17 15:30:44 +08:00
liqiangz 7a3355f956
Use MAL to calculate JVM metrics, remove OAL dependency. (#7091) 2021-06-11 22:21:10 +08:00
wankai123 3034963374
Fix Jetty HTTP `TRACE` issue, disable HTTP methods except `POST`. (#7052) 2021-06-01 16:37:56 +08:00
Zhenxu 9e66bee7a0
Make metrics exporter still work even when storage layer failed (#7041) 2021-05-31 17:37:58 +08:00
Zhenxu f742142ca3
Add UI templates (#7013) 2021-05-28 14:35:27 +08:00
Zhenxu 68b918e3cd
Events can be configured as alarm source (#7028) 2021-05-27 18:04:21 +08:00
Daming 03294b81ea
Update MeterSystem.java (#7019) 2021-05-26 21:39:58 +08:00
chen~ bb590daba9
Include event(s) to alarms. (#6888)
Co-authored-by: kezhenxu94 <kezhenxu94@apache.org>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2021-05-19 14:14:48 +08:00
liqiangz e7d6b5457b
Fix: `!=` is not supported in oal when parameters are numbers (#6968) 2021-05-19 09:10:04 +08:00
Zhenxu Ke 85a993faf5
Allow multiple definitions as fallback in metadata-service-mapping.yaml file (#6933) 2021-05-13 06:53:05 +08:00
Zhenxu Ke 3b15f8d132
feature: Envoy access log receiver supports TCP logs (#6727) 2021-05-07 07:50:03 +08:00
wankai123 afe4cb0c0d
fix: Some incompatibles check codes didn't work in `PercentileFunction combine` (#6851) 2021-04-27 15:13:24 +08:00
liqiangz 7a53331367
Support alarm tags (#6820) 2021-04-25 17:22:43 +08:00
chen~ 8ba5e012aa
Generate the corresponding event information for the alert. (#6702) 2021-04-21 22:01:46 +08:00
吴晟 Wu Sheng 2b85ba1041
Fix `disable` statement not working (#6687) 2021-04-05 20:11:34 +08:00
Evan 2af77d4d03
make sync metrics concurrency (#6642)
* make sync metrics concurrency

* add changelog

* add changelog

* polish codes

* change default value

* remove unnecessary codes

Co-authored-by: Evan <evanljp@outlook.com>
Co-authored-by: Zhenxu Ke <kezhenxu94@apache.org>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2021-04-02 11:33:46 +08:00
吴晟 Wu Sheng f3b567160c
Enhance the export service. (#6602) 2021-03-24 09:22:03 +08:00
Zhenxu Ke 25214e910a
Collect and report agent starting / shutdown events (#6559) 2021-03-18 15:25:06 +08:00
Jingguo Yao bfef6d9120
Fix typos (#6568) 2021-03-18 09:58:47 +08:00
吴晟 Wu Sheng af6f7d2c34
Remove group concept from AvgHistogramFunction (#6552) 2021-03-16 10:26:33 +08:00
史精文 cc60f1529f
resolve "receiver don't need to get itself when healthCheck #6515 " (#6538) 2021-03-12 20:45:38 +08:00
Evan fd1d21021f
[Incompatible Enhancement]New index policy of ElasticSearch storage option (#6499) 2021-03-11 15:11:37 +08:00
Harry d61a4ef6ae
Modify the enumeration judgment usage (#6518) 2021-03-09 13:11:58 +08:00