Commit Graph

994 Commits

Author SHA1 Message Date
lsyf 102c90dc59 Fix ehcache: format 2020-02-19 17:23:33 +08:00
lsyf b2ad63430b Fix ehcache: performance issue 2020-02-19 12:10:00 +08:00
lsyf e57176d05e Fix ehcache:  add interceptor for Cache's private constructor and setName method 2020-02-18 22:33:33 +08:00
lsyf 54c1cd5cb0 Fix ehcache:  missing interceptor of private constructor called by clone method 2020-02-17 23:31:28 +08:00
kezhenxu94 ae33ac81c8
Adjust Armeria plugin to adapt 0.98.0 (#4362)
Motivation:

Support Armeria 0.98.0 in its plugin.

Modifications:

Add an intercept point that is refactored in Armeria 0.98.

Result:

Now Armeria plugin supports 0.98.0, and 0.98.1
2020-02-15 11:45:38 +08:00
吴晟 Wu Sheng ae442e364f
More comments for important classes (#4361) 2020-02-14 17:03:50 +08:00
cui-liqiang c761f30e3b
Some code style and refactor (#4355)
* extract duplicated method

* change while loop to if since once rs.next() return false, it will never return true for the following calls

* simplify if() return true; return false pattern

* fix compilation

Signed-off-by: liqiang.clq <liqiang.clq@alibaba-inc.com>
2020-02-13 10:34:32 +08:00
lxliuxuankb e5366c0921
Tag annotation supports returned expression (#4327)
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2020-02-12 14:03:02 +08:00
kezhenxu94 5b255ba3e3
Set up more strict code styles and fix existing issues (#4337)
Motivation:

Review code styles with some bots automatically.

Modifications:

Set up ReviewDog in GitHub Action to review code style.

Add more check rules to checkstyle plugin.

Result:

Obvious code styles can be reviewed and commented automatically.
2020-02-11 17:10:49 +08:00
吴晟 Wu Sheng f29fc4bcb3
Set a shared submodule for e2e test project. (#4329) 2020-02-08 21:56:23 +08:00
kezhenxu94 f676aece1f
Remove unused codes, close leaked I/O stream (#4325)
### Motivation:

Clean up unused codes and migrate to JDK8.

### Modifications:

- Remove unused codes.

- Close unclosed I/O stream.

- Remove meaningless comments.

### Result:

- No unnecessary codes concerns.

- No resources leak.
2020-02-08 09:21:24 +08:00
mrproliu e44bc36281
provide profiled segment list query (#4322)
* provide profiled segment query

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: AirTrioa <44222967+AirTrioa@users.noreply.github.com>
2020-02-06 21:02:08 +08:00
John Niang 41c63672c0
Refactor ConfigInitializer and improve map type config (#4321)
* Refactor ConfigInitializer

* Rename some variable names and add some java docs

Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-02-06 17:09:38 +08:00
AirTrioa 69d238e613
[BUG]Fix the bug of port identification failure when connecting Oracle with Sid mode (JDBC: Oracle: thin: @ < host >: < port > / < Sid >) (#4320)
* [BUG]Fix the bug of port identification failure when connecting Oracle with Sid mode (JDBC: Oracle: thin: @ < host >: < port > / < Sid >)

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-02-05 20:30:03 +08:00
kezhenxu94 fa1e60f411
Reduce footprint when tagging spans via prototype pattern (#4318)
### Motivation:

Reduce footprint when tagging spans with the deprecated API: `AbstractSpan#tag(String, String)`.

### Modifications:

- Adopt [prototype pattern](https://en.wikipedia.org/wiki/Prototype_pattern) to create `Tag`, prevent from creating too many `StringTag` instances and `GC`ed.
- Replace `AbstractSpan#tag(String, String)` with `AbstractSpan#tag(AbstractTag, String)`.

### Result:

- Footprint is reduced.
2020-02-05 11:32:51 +08:00
吴晟 Wu Sheng 2e617611d4
Upgrade the bytebuddy for J9VM (#4317) 2020-02-05 00:10:04 +08:00
kezhenxu94 bf38e43d3a
Clean up legacy v1 header logic, use built-in Base64 since JDK8 (#4307)
### Motivation:

Codes clean up

### Modifications:

- Remove v1 header, follow up #4244

- Use built-in Base64 class (since JDK8)

### Result:

- No more legacy v1 headers

- No unnecessary codes concerns by using built-in ability
2020-02-02 17:45:04 +08:00
kezhenxu94 360eae22a6
Performance tuning, replace AtomicInteger with AtomicIntegerFieldUpdater (#4305)
Motivation:

Reduce unnecessary memory allocation in frequently used class.

Modifications:

Replace the `AtomicInteger` with `AtomicIntegerFieldUpdater`

Result:

We can save 4 bytes (for the reference to `AtomicInteger` itself) for each `TracingContext`, which saves credible memory in a high-concurrent agent service.
2020-02-02 00:00:14 +08:00
jialong 5c6914fc9e
Make MVC plugin support inherited annotations from interface (#4278) 2020-02-01 16:18:22 +08:00
Kanro 97950807fa
Enhance gRPC plugin (#4177)
* Enhance gRPC plugin

Co-authored-by: Kanro <higan@live.cn>
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
Co-authored-by: GuoDuanLZ <739537111@qq.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-01-30 20:12:48 +08:00
Daming 9005d1e82c
Provide AVRO plugin (#4276)
* Provide Avro plugin
* provide testcase for avro-plugin

Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2020-01-30 17:49:43 +08:00
mrproliu 90f3c4de55 Sniffer processing profile task and report status and snapshot (#4220)
* sniffer processing profile task and report status and snapshot

* resolve testServiceDependencies test case error, use same register with `TraceSegmentServiceClient`

* resolve names

* change profile to single one thread run.

* 1. change to the ArrayList, because known the max size
2. rename issue resolved

* add profiling status enum

* change sniffer use full name issue

* 1. remove `prepareProfiling` method, build profiling status when construct `TracingContext`
2. add `TracingThreadListenerManager`, notify when tracing main thread finish
3. change ProfileThread start when process new profile task

* remove unnecessary getter

* add test assert error message

* adding `AgentServiceRule`

* revert original assert

* remove unnecessary getter

* resolve issues

* reduce findService invoke

* resolve style error

* recheck profiling when change first span operatin name

* resolve issues
1. remove `ContextManager#profilingRecheck`, only check on `TracingContext`
2. rename comments
3. resolve volatile array setting

* remove article link

* add `ProfileTask#maxSamplingCount` check

* resolve conflict (Downstream -> Commands)

* 1. change profilingSegmentSlots init on construct
2. if is profiling, recheck dont need to stop
3. total profiling count increment on first dump

* remove unused return val

* remove some `@param` and `@return`

* add profile task check result data bean

* change profiler slot to `AtomicReferenceArray`

* resolved java doc error

* fix doc error, remove meaningless descriptions

* resolve missed profile receiver on oap starter

* resolve method invoke error

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2020-01-18 18:38:03 +08:00
kezhenxu94 019af3e345
Drop support of protocol v1 (sw3) (#4244)
* Drop support of protocol v1 (sw3)

* Remove versioning logic further

* Remove more version5-only classes

* Commit missing files

* Update submodule and address review comment

* Fix failed tests
2020-01-17 20:33:52 +08:00
Kanro dcb71cdeee Optimize trace ignore plugin (#4209)
* Optimize trace ignore plugin

* Add license for FastPathMatcher

* Boot again after setting config in test

* Fix check style

* Fix typos

Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2020-01-12 09:49:28 +08:00
kezhenxu94 1ed179c0bd
Stop profiling task when backend doesn't support it (#4213) 2020-01-10 19:51:42 +08:00
mrproliu 4cf0600f35 Provide profile task downstream to sniffer (#4172)
* Provide profile task downstream to sniffer

* fix agent unit testcase issue

* add profile switch config on sniffer

* fix es error

* 1. add @DefaultImplementor on the sniffer profile task service
2. change ProfileTaskExecutionService#PROFILE_TASK_READY_SCHEDULE to final and remove volatile
2. fix style error

* change timeFromStartMills use `<` to compare

* 1. add `maxSamplingCount` to profile task
2. make profile task limit to the common package

* 1. change `agent.active_profile` to `profile.active` and make true on default
2. add `maxSamplingCount` in profile task
3. use `createTime` to check has new command list
4. add task re-check before process profile task

* 1. add `profile-receiver` document
2. change `ProfileTaskExecutionService` use single schedule thread pool
3. cache dont need fetch data when no data, use auto-fresh mechanism only

* remove navigate time judge, fix comment wrong meaning
2020-01-09 09:35:39 +08:00
tzy1316106836 c6b169544e Fix plugin bug when DUBBO retries (#4187) 2020-01-07 21:35:50 +08:00
dengliming 1881a040d4 Support plugin for mongodb v3.6.x (#4173)
* feat: add support plugin of mongodb v3.6.x

* update support-version.list

* update Supported-list.md

* update Supported-list.md

* Add witness class for v3.6

* update plugins-test.yaml

Co-authored-by: zhang-wei <pknfe@outlook.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: Weiyi Liu <liuweiyi@cmss.chinamobile.com>
2020-01-07 14:25:19 +08:00
Weiyi Liu b1b1615926 Close inputstream. (#4184)
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-01-07 10:01:25 +08:00
shine 8e9a1121cd modify sample_n_per_3_secs notes (#4185)
Negative or zero means off, by default
2020-01-06 21:00:31 +08:00
Kanro 4e03d5e6d7 Add kotlin coroutine plugin (#4165)
* Kotlin coroutine plugin write in Java

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-01-04 22:51:59 +08:00
kezhenxu94 99100ed635
Split the `collect_http_params` as per plugins for better performance (#4170)
* Split the `collect_http_params` as per plugins for better performance

* Add missing change
2020-01-03 21:44:25 +08:00
kezhenxu94 f52f7f466a
Support collecting http parameters (#4162)
Plugins of Tomcat, Spring MVC, Armeria are supported for now
2020-01-03 07:51:26 +08:00
吴晟 Wu Sheng 6c20f4a41b
Add service type from register and support browser as service type (#4157)
* Add service type from register and support browser as service type

* Add service type at agent side.

* Fix format.

* Fix a test.

* Fix formats.

Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2020-01-01 18:01:41 +08:00
kezhenxu94 9862fe023f
Log harmless exception in DEBUG level (#4156)
* Log harmless exception in DEBUG level

* Log harmless exception in DEBUG level

* Minor refactor to avoid default method
2020-01-01 09:13:55 +08:00
Zhang Yonglun c5827f889a [Agent] Provide plugin for ShardingSphere 4.0.0-RC3 (#4140)
* shardingsphere 4.x RC3 test

* shardingsphere 4.x RC3 test

* shardingsphere 4.x RC3 test

* shardingsphere 4.x RC3 plugin

* shardingsphere 4.x RC3 plugin

* shardingsphere 4.x RC3 plugin

* shardingsphere 4.x RC3 plugin temp for a test

* shardingsphere 4.x RC3 plugin revert temp changes

* shardingsphere 4.x RC3 plugin change package name

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2019-12-31 17:52:29 +08:00
kezhenxu94 51e74ca4c4
[Feature] Add tag annotation to allow tagging span with annotation (#4152)
* [Feature] Add tag annotation to allow tagging span with annotation

* Use repeatable annotation syntax and add docs and example codes

* Fix failed unit test
2019-12-31 12:11:06 +08:00
Gao Hongtao 4211eff558 Fix os maven plugin issues for Eclipse m2e (#4144)
* Fix mave-os plugin issues for Eclipse m2e

* Add os-msven-plugin.version property
2019-12-29 13:49:27 +08:00
Andy Ai 4aac3293ca [test/plugin] immigrate test play framework scenario (#4128)
* Add play-scenario

* Set play plugin as default

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: Weiyi Liu <liuweiyi@cmss.chinamobile.com>
2019-12-26 22:42:56 +08:00
Zhang Yonglun ab39cecb17 shardingsphere 4.x RC1 RC2 test (#4118) 2019-12-26 08:31:10 +08:00
kezhenxu94 30cbe38df7 Move Armeria plugin to default plugin list (#4130)
* Move Armeria plugin to default plugin list

* Move Armeria plugin to default plugin list

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2019-12-26 00:45:48 +08:00
吴晟 Wu Sheng 25a677b9c7
Move Webflux plugin into default list. (#4129)
* Move Webflux plugin into default list.

* Fix a typo.
2019-12-25 22:08:14 +08:00
吴晟 Wu Sheng 3dde94ff66
Move lettuce into default plugin (#4127)
* Move lettuce into default plugin

* Fix maven pom
2019-12-25 18:53:49 +08:00
吴晟 Wu Sheng b570996006
Update JDK compiling level to 8, and remove zip dist. (#4119)
* Update JDK compiling level to 8, and remove zip dist.

* Exclude annotation and shade API.

* Fix more exclusion.

* 1. Update grava and gson 2. Fix compile issue. 3. Keep protoc and maven plugin in old version. Some incompatible of 3rd party grpc proto.

* Fix dependency conflicts, license and notice issue, and dependency check script issue

Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2019-12-25 15:55:24 +08:00
kezhenxu94 bf6491f449
[Feature] Provide Java Agent for Apache HttpClient 3.x (#4111)
* Add Java Agent for Apache HttpClient 3.x

* Update Supported-list.md

* Update pom.xml
2019-12-24 23:20:44 +08:00
adamni135 9dcd3c74de write file unwait (#4099) 2019-12-24 18:41:45 +08:00
吴晟 Wu Sheng d7f7799c80
Set the main branch to 7.0.0-SNAPSHOT (#4115)
* [maven-release-plugin] prepare release v6.6.0

* [maven-release-plugin] prepare for next development iteration
2019-12-24 16:37:13 +08:00
cyejing bc77fda5c1 Enhance webflux plugin, related to Spring Gateway plugin too. (#3945)
* webflux-reactive

* add support version comment, modify gateway

* add test case, modify name

* add docs

* remove healthCheck
2019-12-17 08:58:57 +08:00
kezhenxu94 3f48790c36 [Feature] Add Java agent plugin for Jdk Threading classes (#4067)
* Add Java agent plugin for Jdk Threading

* Fix expected data according to changes in master

* Update agent.config

* Fix failed plugin test
2019-12-17 00:12:14 +08:00
吴晟 Wu Sheng 4e50132817
Remove the local/exit span register mechanism in Java agent scenario (#4059)
* Remove the local span and exit span register mechanism in Java agent scenario.

* Fix config, plugin, and document, as exit span is not required register anymore.

* Try to fix the test case expected data due to no register for exit span.

* Fix toolkit case.

* Remove exit span from plugin test framework document.

* Update protocol, FAQ, and CHANGELOG documents to highlight this change.

* Fix NPE when no entry span in the whole segment. Set endpoint to null in segment entity.

* Fix the snapshot and add inexistence operation name id.

* Fix several async cases.

* Fix undertow test case.

* Fix wrong error log name.

* Keep name consistent with 6.x concepts.

* Try to fix 3 async scenarios.

* Fix okhttp case.

* Fix Spring Async case.

* Fix another NPE

* Fix NPE when first span has no endpoint id when it is local or exit span.

* Still fill first operation name when no endpoint id.
2019-12-15 19:15:47 +08:00