Commit Graph

90 Commits

Author SHA1 Message Date
hailin0 ca957699dc
Add support for quartz-scheduler (#5413) 2020-08-30 23:48:26 +08:00
Lu Jiajing 9442a51c11
JsonLogger implementation (#5356) (#5357) 2020-08-29 23:17:29 +08:00
xbkaishui 79c1c0cc76
Support http header tag (#5348) 2020-08-20 10:43:28 +08:00
Evan a6e45d04c9
spring annotation enhance (#5320) 2020-08-17 10:14:40 +08:00
Evan 68317dd910
Add agent plugins selector (#5293) 2020-08-14 15:06:30 +08:00
zshit dd6f439df1
support collecting feign params (#5235) 2020-08-06 13:09:31 +08:00
于玉桔 4149ac59fe
The Dubbo plugin can collect more information by custom (#5209) 2020-08-04 23:26:56 +08:00
Daming 052818041b
Fix typo (#5214) 2020-08-03 12:38:37 +08:00
Daming f9257f5274
Provide kafka as collector/reporter (#4847) 2020-07-30 11:55:49 +08:00
songzhendong 119af6ea1c
Add Tomcat 9 install document for java agent (windows) (#5169)
Add Tomcat 9 install document for java agent (windows)

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-07-24 22:10:31 +08:00
gongdewei 1817386391
Support cache mode in the agent. (#4858) 2020-07-01 23:20:50 +08:00
mrproliu cc9ea271a7
Provide agent-side meter api (#4816) 2020-06-22 14:07:34 +08:00
dagmom 08897ce5f8
New feature provided : new plugin for influxdb-java client (#4846) 2020-06-21 22:35:45 +08:00
吴晟 Wu Sheng df83490ae6
UI is ready for 8.0.0 release. (#4896) 2020-06-10 20:35:46 +08:00
Jared Tan 42d79bf08d
Fix too many mang ipv4 records reported by the agent when deployed in container. (#4817) 2020-05-25 16:15:10 +08:00
Efe Kaptan d19ba41678
Mariadb JDBC plugin (#4740)
* Add Mariadb JDBC plugin and provide tests

* Refactor component name

* Reformat plugin description and remove healthcheck span from the test

Co-authored-by: Efe Kaptan <Efe.Kaptan@webtrekk.com>
Co-authored-by: zhang-wei <pknfe@outlook.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-05-07 20:54:30 +08:00
songzhendong b3b8aaea6b
Add Tomcat 9 's Java agent deployment instructions(Linux) (#4645) 2020-04-13 18:12:54 +08:00
kezhenxu94 00e8f2d886
Fix bug that the agent heart beats too frequently (#4640)
* Fix bug that the agent heart beats too frequently

Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-04-12 20:48:44 +08:00
吴晟 Wu Sheng 44cae97c25
Set up restrict length rules for service, instance and endpoint (#4633)
* Set up restrict length rules for service, instance and endpoint

* Adjust two env names.
2020-04-10 17:59:21 +08:00
吴晟 Wu Sheng 6fe2041b47
Make 8.0.0 Core available. New protocol and register removed. (#4599)
Here are the list of changes we made in this pull request. Top 3 are the principle changes, others are following these principles.
1. New agent and mesh report protocol. 
2. New agent header protocol. 
3. Service register, instance register and network address register have been removed permanently.
4. Service traffic, instance traffic and network alias metrics are added to replace the service, instance and network address inventory.
5. Register process has been removed.
6. Metrics stream process supports insert only mode, especially for traffic entities.
7. Metrics stream process supports no-downsampling mode for traffic entities and network alias.
8. Remove all register mechanism and cache in the java agent.
9. Remove MONTH step in GraphQL query.
10. Update UI to remove MONTH step query, the max query range is 60 days now.
11. Simplify the TTL to metrics and record. And the unit has been formatted in Day unit. No specific TTL for ElasticSearch storage.
12. Buffer mechanism of trace receiver and mesh receiver has been removed due to no register.
13. New service id, instance id and endpoint id rules, including service relation, instance relation and endpoint relation id rules.
14. Java agent support `keep tracing` mode, meaning, agent generating tracing context even the backend is unconnected/unavailable.
15. Plugin test tool up to date, in order to support new protocol.
16. Plugin tests expected data files updated.
17. E2E tests updated.
18. Telemetry of Grafana config has been merged into one.
19. Documentation updates.
20. [TBD] InfluxDB storage implementation is not available, need @dmsolr to fix later, in order to reduce the master change block by this PR.
2020-04-10 11:03:24 +08:00
kezhenxu94 509b20e7ce
Add JDK13, JDK14 to build matrix (#4574)
Motivation:

Guarantee that the agent supports JDK13 and JDK14

Modifications:

Add JDK13 and JDK14 to build matrix

Result:

Build with JDK13 and JDK14
2020-03-26 22:13:28 +08:00
mrproliu 569baf3236
Correlation protocol implement (#4555)
Co-authored-by: Mrproliu <mrproliu@lagou.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: kezhenxu94 <kezhenxu94@apache.org>
2020-03-26 09:02:14 +08:00
吴晟 Wu Sheng 259a147682
Add miss doc about collecting parameters in the profiled traces. (#4552) 2020-03-23 09:41:02 +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
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
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 1ee14fbbc8
Support customized instance name by a new UUID naming policy. (#4148) 2019-12-30 14:59:29 +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
吴晟 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
吴晟 Wu Sheng fa379d786c Update README.md (#4102) 2019-12-21 23:10:42 +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
seifeHu 0020b03f2f Document error for agent config file 's config description (#3943)
* Update README.md

logging.dir 's Description is an Error .Default value is not System.out. It is a dir.
2019-11-27 21:37:50 +08:00
songzhendong 6c4cca820a Add jetty's Java agent deployment instructions (#3909)
Add java agent deployment document for skywalking with jetty
2019-11-20 23:56:18 +08:00
于玉桔 6ffd92792d Support spring-tx in optional plugin (#3857)
* plugin code

* NPE FIX
2019-11-19 10:05:01 +08:00
zhang-wei 841a9d395b [agent/plugin] Move FILTER_LENGTH_LIMIT to config.plugin.mongodb (#3820)
* move FILTER_LENGTH_LIMIT

* fix checkstyle
2019-11-10 15:04:00 +08:00
aderm 7f69a73d13 Add postgresql agent sql query param show (#3695)
* Add postgresql agent sql query param show
2019-10-28 08:43:57 +08:00
吴晟 Wu Sheng af51e23b72 Reorganize the doc, and provide catalog (#3563) 2019-10-06 15:34:03 +08:00
吴晟 Wu Sheng 8ebf3aac04
Support timeout configuration in agent and backend. (#3491)
* Support timeout configuration in agent and backend.

* Fix CI

* no message
2019-09-20 15:02:28 +08:00
wuguangkuo 60236a27d6 Add feature to control the maximum agent log files (#3475)
* Add feature to control the maximum history agent log files.
2019-09-19 14:12:17 +08:00
Louis Tsui 72f07b812a Add Light4j plugin (#3323)
* Add Light4J 1.6.x plug-in

* Add unit test for Light4J plug-in

* Add missing id to server-starter

* Remove mentions of version 1.6.x

Some local testing showed that the plugin successfully generated traces for a light4j project built with light-codegen v2.x. Therefore, there is no need for a separate plugin for v2.x and no distinction needs to be made with light4j v1.6.x.

* Update supported light4j versions

* Use ContextSnapshot to maintain trace

In a typical Light4j project, the ExceptionHandler#handleRequest is the asynchronous execution point. The flow is ExceptionHandler#handleRequest -> HttpServerExchange#dispatch -> ... -> ExceptionHandler#handleRequest. This means that handleRequest is being intercepted twice and each time a LocalSpan is created. Without handling thread propagation, the trace segment gets split up.

By saving a ContextSnapshot into the enhanced object (ExceptionHandler), we can determine if it is necessary to continue the segment.

* Update logic for span creation in trace

By default, the Light4J plugin now overrides the Undertow plugin's entry span with its own. This new entry span is created just before execution of the ExceptionHandler#handleRequest in the I/O thread. The entry span is generated here because it is considered the starting point of the Light4J handler chain.

There is now also the option to enable detailed span creation when tracing requests through Light4J. These local spans mark which middleware and business handlers are involved with handling the HTTP request to a Light4J service.

* Update skywalking version

* Update light4j version

* Fix LightInstrumentation javadoc

* Remove import violating checkstyle

This import was added from the link reference in the javadoc. The javadoc has now been changed to just reference the method name.

* Move light4j agent config property

* Sync UI
2019-09-18 21:43:17 +08:00
Jared Tan 6c347a1169 agent support custom properties. (#3367)
* agent support custom properties.
2019-09-17 14:44:42 +08:00
Andy Ai 8bf7e346ee Support play 2.x (#3207)
* Support play 2.x
2019-08-29 17:00:51 +08:00
Stalary 3d00d83fc6 ADD: add operationName length threshold (#3357)
* ADD: add operationName length threshold

* MOD:move operationName threshold to Config, simplified code

* MOD:update agent set-up document, clean code

* MOD:add agent.operation_name_threshold conf prefix
2019-08-28 22:18:11 +08:00