From d8d96dd8d83157bd5b83fc4156a41a77a7499c59 Mon Sep 17 00:00:00 2001 From: nisiyong Date: Thu, 17 Nov 2022 21:05:49 +0800 Subject: [PATCH 1/6] Upgrade agent-test-tools and polish dubbo plugin * upgrade skywalking-agent-test-tools * change dubbo thread name * polish test case --- .../AbstractServerConstructorInterceptor.java | 4 ++-- .../AbstractServerConstructorInterceptor.java | 4 ++-- test/plugin/agent-test-tools/pom.xml | 2 +- .../config/expectedData.yaml | 16 ++++++++-------- .../config/expectedData.yaml | 16 ++++++++-------- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java index 75b331e770..ab8ef483b8 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java @@ -40,14 +40,14 @@ public void onConstruct(EnhancedInstance objInst, Object[] allArguments) throws ExecutorService executor = (ExecutorService) executorField.get(objInst); URL url = (URL) allArguments[0]; + String host = url.getHost(); int port = url.getPort(); if (!(executor instanceof ThreadPoolExecutor)) { return; } ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor; - // TODO String.format("DubboServerHandler-%s:%s", host, port) will be better - String threadPoolName = String.format("DubboServerHandler-%s", port); + String threadPoolName = String.format("DubboServerHandler-%s:%s", host, port); MeterFactory.gauge(METER_NAME, () -> (double) (threadPoolExecutor.getCorePoolSize())) .tag(METRIC_POOL_NAME_TAG_NAME, threadPoolName) diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java index 99e53c66de..446f298fea 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java @@ -40,14 +40,14 @@ public void onConstruct(EnhancedInstance objInst, Object[] allArguments) throws ExecutorService executor = (ExecutorService) executorField.get(objInst); URL url = (URL) allArguments[0]; + String host = url.getHost(); int port = url.getPort(); if (!(executor instanceof ThreadPoolExecutor)) { return; } ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor; - // TODO String.format("DubboServerHandler-%s:%s", host, port) will be better - String threadPoolName = String.format("DubboServerHandler-%s", port); + String threadPoolName = String.format("DubboServerHandler-%s:%s", host, port); MeterFactory.gauge(METER_NAME, () -> (double) (threadPoolExecutor.getCorePoolSize())) .tag(METRIC_POOL_NAME_TAG_NAME, threadPoolName) diff --git a/test/plugin/agent-test-tools/pom.xml b/test/plugin/agent-test-tools/pom.xml index c817cd03e8..ca2eb32445 100644 --- a/test/plugin/agent-test-tools/pom.xml +++ b/test/plugin/agent-test-tools/pom.xml @@ -35,7 +35,7 @@ pom - 7f20775e0631356c4823d9372b09d653db0e6540 + 2900625c6af6379fa16543e42478974de608f662 ${project.basedir}/target/agent-test-tools https://github.com/apache/skywalking-agent-test-tool.git diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml index 15d9575dd7..95f331f110 100644 --- a/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml @@ -74,47 +74,47 @@ meterItems: name: thread_pool tags: - {name: metric_type, value: core_pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: max_pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: largest_pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: queue_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: active_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: task_count} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: completed_task_count} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml index 545e28c4b3..c14c50c3df 100644 --- a/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml @@ -77,47 +77,47 @@ meterItems: name: thread_pool tags: - {name: metric_type, value: core_pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: max_pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: largest_pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: pool_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: queue_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: active_size} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: task_count} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: completed_task_count} - - {name: pool_name, value: DubboServerHandler-20880} + - {name: pool_name, value: start with DubboServerHandler-} singleValue: ge 0 From c352628be94eee7f793ce442b41f1b4645ac5d07 Mon Sep 17 00:00:00 2001 From: nisiyong Date: Fri, 18 Nov 2022 13:13:59 +0800 Subject: [PATCH 2/6] Fix agent-test-tools --- test/plugin/agent-test-tools/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/plugin/agent-test-tools/pom.xml b/test/plugin/agent-test-tools/pom.xml index ca2eb32445..cd83f4fc71 100644 --- a/test/plugin/agent-test-tools/pom.xml +++ b/test/plugin/agent-test-tools/pom.xml @@ -35,9 +35,9 @@ pom - 2900625c6af6379fa16543e42478974de608f662 + b2c68c3274a19d40056f109f8145109225c697fa ${project.basedir}/target/agent-test-tools - https://github.com/apache/skywalking-agent-test-tool.git + https://github.com/nisiyong/skywalking-agent-test-tool.git From 0a862c33cde7805a0f1d8554f9d91794285b78f6 Mon Sep 17 00:00:00 2001 From: nisiyong Date: Sat, 19 Nov 2022 11:21:49 +0800 Subject: [PATCH 3/6] Revert dubbo thread-pool name --- .../AbstractServerConstructorInterceptor.java | 3 +-- .../AbstractServerConstructorInterceptor.java | 3 +-- test/plugin/agent-test-tools/pom.xml | 2 +- .../config/expectedData.yaml | 16 ++++++++-------- .../config/expectedData.yaml | 16 ++++++++-------- 5 files changed, 19 insertions(+), 21 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java index ab8ef483b8..bd3357b010 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/asf/dubbo/AbstractServerConstructorInterceptor.java @@ -40,14 +40,13 @@ public void onConstruct(EnhancedInstance objInst, Object[] allArguments) throws ExecutorService executor = (ExecutorService) executorField.get(objInst); URL url = (URL) allArguments[0]; - String host = url.getHost(); int port = url.getPort(); if (!(executor instanceof ThreadPoolExecutor)) { return; } ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor; - String threadPoolName = String.format("DubboServerHandler-%s:%s", host, port); + String threadPoolName = String.format("DubboServerHandler-%s", port); MeterFactory.gauge(METER_NAME, () -> (double) (threadPoolExecutor.getCorePoolSize())) .tag(METRIC_POOL_NAME_TAG_NAME, threadPoolName) diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java index 446f298fea..b260613445 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/apache/skywalking/apm/plugin/dubbo/AbstractServerConstructorInterceptor.java @@ -40,14 +40,13 @@ public void onConstruct(EnhancedInstance objInst, Object[] allArguments) throws ExecutorService executor = (ExecutorService) executorField.get(objInst); URL url = (URL) allArguments[0]; - String host = url.getHost(); int port = url.getPort(); if (!(executor instanceof ThreadPoolExecutor)) { return; } ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor; - String threadPoolName = String.format("DubboServerHandler-%s:%s", host, port); + String threadPoolName = String.format("DubboServerHandler-%s", port); MeterFactory.gauge(METER_NAME, () -> (double) (threadPoolExecutor.getCorePoolSize())) .tag(METRIC_POOL_NAME_TAG_NAME, threadPoolName) diff --git a/test/plugin/agent-test-tools/pom.xml b/test/plugin/agent-test-tools/pom.xml index cd83f4fc71..5e8c611981 100644 --- a/test/plugin/agent-test-tools/pom.xml +++ b/test/plugin/agent-test-tools/pom.xml @@ -35,7 +35,7 @@ pom - b2c68c3274a19d40056f109f8145109225c697fa + 8a09b6f16b0b3fb535ca515437ef107042aaae45 ${project.basedir}/target/agent-test-tools https://github.com/nisiyong/skywalking-agent-test-tool.git diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml index 95f331f110..15d9575dd7 100644 --- a/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml @@ -74,47 +74,47 @@ meterItems: name: thread_pool tags: - {name: metric_type, value: core_pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: max_pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: largest_pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: queue_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: active_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: task_count} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: completed_task_count} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml index c14c50c3df..545e28c4b3 100644 --- a/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml @@ -77,47 +77,47 @@ meterItems: name: thread_pool tags: - {name: metric_type, value: core_pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: max_pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: largest_pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 1 - meterId: name: thread_pool tags: - {name: metric_type, value: pool_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: queue_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: active_size} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: task_count} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 - meterId: name: thread_pool tags: - {name: metric_type, value: completed_task_count} - - {name: pool_name, value: start with DubboServerHandler-} + - {name: pool_name, value: DubboServerHandler-20880} singleValue: ge 0 From e99e268223f813c000864a53c2dff245d16c0a2f Mon Sep 17 00:00:00 2001 From: nisiyong Date: Sat, 19 Nov 2022 11:40:39 +0800 Subject: [PATCH 4/6] Update docs and fix wrong spelling --- CHANGES.md | 3 +++ .../setup/service-agent/java-agent/Plugin-test.md | 14 ++++++++------ tools/plugin/check-javaagent-plugin-list.sh | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 4c85ab32cc..eefe475bcb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,9 +10,12 @@ Release Notes. * Rename `JDBI` to `JDBC` * Support collecting dubbo thread pool metrics * Bump up byte-buddy to 1.12.19 +* Upgrade agent test tools #### Documentation +* Update `Plugin-test.md`, support string operators `start with` and `end with` + All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/161?closed=1) diff --git a/docs/en/setup/service-agent/java-agent/Plugin-test.md b/docs/en/setup/service-agent/java-agent/Plugin-test.md index 00282bddc0..b661cb5c30 100644 --- a/docs/en/setup/service-agent/java-agent/Plugin-test.md +++ b/docs/en/setup/service-agent/java-agent/Plugin-test.md @@ -202,12 +202,14 @@ as the version number, which will be changed in the test for each version. **Operator for String** -| Operator | Description | -|:------------|:--------------------------------------------------------------------------------------------------------------| -| `not null` | Not null | -| `not blank` | Not blank ,it's recommended for String type field as the default value maybe blank string, such as span tags | -| `null` | Null or empty String | -| `eq` | Equal(default) | +| Operator | Description | +|:-------------|:--------------------------------------------------------------------------------------------------------------| +| `not null` | Not null | +| `not blank` | Not blank ,it's recommended for String type field as the default value maybe blank string, such as span tags | +| `null` | Null or empty String | +| `eq` | Equal(default) | +| `start with` | Tests if this string starts with the specified prefix. DO NOT use it with meterItem tags value | +| `end with` | Tests if this string ends with the specified suffix. DO NOT use it with meterItem tags value | **Expected Data Format Of The Segment** ```yml diff --git a/tools/plugin/check-javaagent-plugin-list.sh b/tools/plugin/check-javaagent-plugin-list.sh index 193e739461..46ebda6d0a 100755 --- a/tools/plugin/check-javaagent-plugin-list.sh +++ b/tools/plugin/check-javaagent-plugin-list.sh @@ -22,7 +22,7 @@ WORK_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &&cd ../.. && pwd)" GENERNATE_PLUGINS_LIST=${SRC_DIR}/genernate-javaagent-plugin-list.txt MD_PLUGINS_LIST=${SRC_DIR}/md-javaagent-plugin-list.txt -function genernateJavaagentPluginList() { +function generateJavaagentPluginList() { position_file="javaagent-position.txt" find ${WORK_DIR}/apm-sniffer -name "skywalking-plugin.def"|grep "src/main/resources" > ${position_file} cat ${position_file} | while read line @@ -38,7 +38,7 @@ function getMdJavaagentPluginList() { cat ${md_javaagent_plugins_file}|grep -v "#" |awk -F " " '{ print $2}'|grep -E '^[a-z].*'|sort|uniq|awk NF >${MD_PLUGINS_LIST} } -genernateJavaagentPluginList +generateJavaagentPluginList getMdJavaagentPluginList diff -w -bB -U0 ${MD_PLUGINS_LIST} ${GENERNATE_PLUGINS_LIST} From 5cc81ce76bea911f299b0bcdfa1f26ff2c7f0b3e Mon Sep 17 00:00:00 2001 From: nisiyong Date: Sat, 19 Nov 2022 11:48:43 +0800 Subject: [PATCH 5/6] Polish docs --- docs/en/setup/service-agent/java-agent/Plugin-test.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/setup/service-agent/java-agent/Plugin-test.md b/docs/en/setup/service-agent/java-agent/Plugin-test.md index b661cb5c30..817bf33da0 100644 --- a/docs/en/setup/service-agent/java-agent/Plugin-test.md +++ b/docs/en/setup/service-agent/java-agent/Plugin-test.md @@ -91,7 +91,7 @@ The following files are required in every test case. File Name | Descriptions ---|--- `configuration.yml` | Declare the basic case information, including case name, entrance endpoints, mode, and dependencies. -`expectedData.yaml` | Describe the expected segmentItems. +`expectedData.yaml` | Describe the expected segmentItems, meterItems or logItems. `support-version.list` | List the target versions for this case. `startup.sh` |`JVM-container` only. This is not required when using `Tomcat-container`. From f0c1fad6cabdf5c5fb4e13b3f41e705180ca218f Mon Sep 17 00:00:00 2001 From: nisiyong Date: Sat, 19 Nov 2022 15:39:25 +0800 Subject: [PATCH 6/6] Update agent-test-tools repo url and revision --- test/plugin/agent-test-tools/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/plugin/agent-test-tools/pom.xml b/test/plugin/agent-test-tools/pom.xml index 5e8c611981..7238da230c 100644 --- a/test/plugin/agent-test-tools/pom.xml +++ b/test/plugin/agent-test-tools/pom.xml @@ -35,9 +35,9 @@ pom - 8a09b6f16b0b3fb535ca515437ef107042aaae45 + 1c0bef2dd1d828e07889302bea980b24900b0db5 ${project.basedir}/target/agent-test-tools - https://github.com/nisiyong/skywalking-agent-test-tool.git + https://github.com/apache/skywalking-agent-test-tool.git