Podling Report Reminder - March 2018
Dear podling, This email was sent by an automated system on behalf of the Apache Incubator PMC. It is an initial reminder to give you plenty of time to prepare your quarterly board report. The board meeting is scheduled for Wed, 21 March 2018, 10:30 am PDT. The report for your podling will form a part of the Incubator PMC report. The Incubator PMC requires your report to be submitted 2 weeks before the board meeting, to allow sufficient time for review and submission (Wed, March 07). Please submit your report with sufficient time to allow the Incubator PMC, and subsequently board members to review and digest. Again, the very latest you should submit your report is 2 weeks prior to the board meeting. Thanks, The Apache Incubator PMC Submitting your Report -- Your report should contain the following: * Your project name * A brief description of your project, which assumes no knowledge of the project or necessarily of its field * A list of the three most important issues to address in the move towards graduation. * Any issues that the Incubator PMC or ASF Board might wish/need to be aware of * How has the community developed since the last report * How has the project developed since the last report. * How does the podling rate their own maturity. This should be appended to the Incubator Wiki page at: https://wiki.apache.org/incubator/March2018 Note: This is manually populated. You may need to wait a little before this page is created from a template. Mentors --- Mentors should review reports for their project(s) and sign them off on the Incubator wiki page. Signing off reports shows that you are following the project - projects that are not signed may raise alarms for the Incubator PMC. Incubator PMC
[GitHub] wu-sheng commented on a change in pull request #770: Decouple JDBCURL parser logic from URLParser question
wu-sheng commented on a change in pull request #770: Decouple JDBCURL parser logic from URLParser question URL: https://github.com/apache/incubator-skywalking/pull/770#discussion_r170469391 ## File path: apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/connectionurl/parser/URLParser.java ## @@ -29,22 +33,36 @@ */ public class URLParser { -private static final String MYSQL_JDBC_URL_PREFIX = "jdbc:mysql"; -private static final String ORACLE_JDBC_URL_PREFIX = "jdbc:oracle"; -private static final String H2_JDBC_URL_PREFIX = "jdbc:h2"; -private static final String POSTGRESQL_JDBC_URL_PREFIX = "jdbc:postgresql"; +private static ServiceLoader JDBCPARSERS += ServiceLoader.load(ConnectionURLParser.class, URLParser.class +.getClassLoader()); Review comment: what is your meaning? can you provide more details? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] zone1511 commented on a change in pull request #770: Decouple JDBCURL parser logic from URLParser question
zone1511 commented on a change in pull request #770: Decouple JDBCURL parser logic from URLParser question URL: https://github.com/apache/incubator-skywalking/pull/770#discussion_r170457587 ## File path: apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/connectionurl/parser/URLParser.java ## @@ -29,22 +33,36 @@ */ public class URLParser { -private static final String MYSQL_JDBC_URL_PREFIX = "jdbc:mysql"; -private static final String ORACLE_JDBC_URL_PREFIX = "jdbc:oracle"; -private static final String H2_JDBC_URL_PREFIX = "jdbc:h2"; -private static final String POSTGRESQL_JDBC_URL_PREFIX = "jdbc:postgresql"; +private static ServiceLoader JDBCPARSERS += ServiceLoader.load(ConnectionURLParser.class, URLParser.class +.getClassLoader()); Review comment: I use a standalone java app with the agent to test and if I use `AgentClassLoader#getDefault` it will result loading a URLparser implementation which is not compatible with URLParser This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] coveralls commented on issue #829: [Agent] Support hystrix plugin
coveralls commented on issue #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#issuecomment-368309589 [![Coverage Status](https://coveralls.io/builds/15687436/badge)](https://coveralls.io/builds/15687436) Coverage increased (+0.002%) to 19.515% when pulling **b4d58cd19bf6853d8d96d7c8abb88482a4832e15 on ascrutae:feature/support-hystrix-plugin** into **e8477c0fdfc112671b9eae2e2284f5f63f623815 on apache:master**. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] coveralls commented on issue #829: [Agent] Support hystrix plugin
coveralls commented on issue #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#issuecomment-368309589 [![Coverage Status](https://coveralls.io/builds/15686882/badge)](https://coveralls.io/builds/15686882) Coverage increased (+0.002%) to 19.515% when pulling **65456716a3fbfabb2e78814f21a531c69b66e141 on ascrutae:feature/support-hystrix-plugin** into **e8477c0fdfc112671b9eae2e2284f5f63f623815 on apache:master**. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin
wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#discussion_r170453086 ## File path: apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/hystrix/v1/HystrixCommandConstructorInterceptor.java ## @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.plugin.hystrix.v1; + +import com.netflix.hystrix.HystrixCollapser; +import com.netflix.hystrix.HystrixCommand; +import com.netflix.hystrix.HystrixObservableCollapser; +import com.netflix.hystrix.HystrixObservableCommand; +import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; + +public class HystrixCommandConstructorInterceptor implements InstanceConstructorInterceptor { + +@Override +public void onConstruct(EnhancedInstance objInst, Object[] allArguments) { +String identifyKey = ""; + +if (HystrixCommand.class.isAssignableFrom(objInst.getClass())) { +HystrixCommand hystrixCommand = (HystrixCommand)objInst; +identifyKey = hystrixCommand.getCommandKey().name(); +} + +if (HystrixCollapser.class.isAssignableFrom(objInst.getClass())) { +HystrixCollapser hystrixCommand = (HystrixCollapser)objInst; +identifyKey = hystrixCommand.getCollapserKey().name(); +} + +if (HystrixObservableCollapser.class.isAssignableFrom(objInst.getClass())) { +HystrixObservableCollapser hystrixCommand = (HystrixObservableCollapser)objInst; +identifyKey = hystrixCommand.getCollapserKey().name(); +} + +if (HystrixObservableCommand.class.isAssignableFrom(objInst.getClass())) { +HystrixObservableCommand hystrixCommand = (HystrixObservableCommand)objInst; +identifyKey = hystrixCommand.getCommandKey().name(); +} + Review comment: Is there a way to reorganize these `if`s ? Put them in a `if/else` way for improving performance? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin
wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#discussion_r170453740 ## File path: apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/hystrix/v1/HystrixCommandConstructorInterceptor.java ## @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.plugin.hystrix.v1; + +import com.netflix.hystrix.HystrixCollapser; +import com.netflix.hystrix.HystrixCommand; +import com.netflix.hystrix.HystrixObservableCollapser; +import com.netflix.hystrix.HystrixObservableCommand; +import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; + +public class HystrixCommandConstructorInterceptor implements InstanceConstructorInterceptor { + +@Override +public void onConstruct(EnhancedInstance objInst, Object[] allArguments) { +String identifyKey = ""; + +if (HystrixCommand.class.isAssignableFrom(objInst.getClass())) { +HystrixCommand hystrixCommand = (HystrixCommand)objInst; +identifyKey = hystrixCommand.getCommandKey().name(); +} + +if (HystrixCollapser.class.isAssignableFrom(objInst.getClass())) { +HystrixCollapser hystrixCommand = (HystrixCollapser)objInst; +identifyKey = hystrixCommand.getCollapserKey().name(); +} + +if (HystrixObservableCollapser.class.isAssignableFrom(objInst.getClass())) { +HystrixObservableCollapser hystrixCommand = (HystrixObservableCollapser)objInst; +identifyKey = hystrixCommand.getCollapserKey().name(); +} + +if (HystrixObservableCommand.class.isAssignableFrom(objInst.getClass())) { +HystrixObservableCommand hystrixCommand = (HystrixObservableCommand)objInst; +identifyKey = hystrixCommand.getCommandKey().name(); +} + +objInst.setSkyWalkingDynamicField(new EnhanceRequireObjectCache("Hystrix/" + identifyKey)); Review comment: What is the `identifyKey` here? Can you give me some examples about your operation names? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin
wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#discussion_r170453249 ## File path: apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/hystrix/v1/SWExecutionHookWrapper.java ## @@ -0,0 +1,101 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.plugin.hystrix.v1; + +import com.netflix.hystrix.HystrixInvokable; +import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook; +import org.apache.skywalking.apm.agent.core.context.ContextManager; +import org.apache.skywalking.apm.agent.core.context.ContextSnapshot; +import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.apache.skywalking.apm.network.trace.component.ComponentsDefine; + +public class SWExecutionHookWrapper extends HystrixCommandExecutionHook { +private final HystrixCommandExecutionHook actual; + +public SWExecutionHookWrapper(HystrixCommandExecutionHook actual) { +this.actual = actual; +} + +@Override +public void onStart(HystrixInvokable commandInstance) { +EnhancedInstance enhancedInstance = (EnhancedInstance)commandInstance; +EnhanceRequireObjectCache enhanceRequireObjectCache = (EnhanceRequireObjectCache)enhancedInstance.getSkyWalkingDynamicField(); +enhanceRequireObjectCache.setContextSnapshot(ContextManager.capture()); +actual.onStart(commandInstance); +} + +/** + * execution method + */ + Review comment: Empty line. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin
wu-sheng commented on a change in pull request #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#discussion_r170453627 ## File path: apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/hystrix/v1/SWExecutionHookWrapper.java ## @@ -0,0 +1,101 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.plugin.hystrix.v1; + +import com.netflix.hystrix.HystrixInvokable; +import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook; +import org.apache.skywalking.apm.agent.core.context.ContextManager; +import org.apache.skywalking.apm.agent.core.context.ContextSnapshot; +import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.apache.skywalking.apm.network.trace.component.ComponentsDefine; + +public class SWExecutionHookWrapper extends HystrixCommandExecutionHook { +private final HystrixCommandExecutionHook actual; + +public SWExecutionHookWrapper(HystrixCommandExecutionHook actual) { +this.actual = actual; +} + +@Override +public void onStart(HystrixInvokable commandInstance) { +EnhancedInstance enhancedInstance = (EnhancedInstance)commandInstance; +EnhanceRequireObjectCache enhanceRequireObjectCache = (EnhanceRequireObjectCache)enhancedInstance.getSkyWalkingDynamicField(); +enhanceRequireObjectCache.setContextSnapshot(ContextManager.capture()); +actual.onStart(commandInstance); +} + +/** + * execution method + */ + +@Override public void onExecutionStart(HystrixInvokable commandInstance) { +// create a local span, and continued, The `execution method` running in other thread if the +// hystrix strategy is `THREAD`. +EnhancedInstance enhancedInstance = (EnhancedInstance)commandInstance; +EnhanceRequireObjectCache enhanceRequireObjectCache = (EnhanceRequireObjectCache)enhancedInstance.getSkyWalkingDynamicField(); +ContextSnapshot snapshot = enhanceRequireObjectCache.getContextSnapshot(); + +AbstractSpan activeSpan = ContextManager.createLocalSpan(enhanceRequireObjectCache.getOperationNamePrefix() + "/Execution"); +activeSpan.setComponent(ComponentsDefine.HYSTRIX); +ContextManager.continued(snapshot); +actual.onExecutionStart(commandInstance); + +// Because of `fall back` method running in other thread. so we need capture concurrent span for tracing. +enhanceRequireObjectCache.setContextSnapshot(ContextManager.capture()); +} + +@Override public Exception onExecutionError(HystrixInvokable commandInstance, Exception e) { +ContextManager.activeSpan().errorOccurred().log(e); +ContextManager.stopSpan(); +return actual.onExecutionError(commandInstance, e); +} + +@Override public void onExecutionSuccess(HystrixInvokable commandInstance) { +ContextManager.stopSpan(); +actual.onExecutionSuccess(commandInstance); +} + +/** + * Fallback + */ + Review comment: empty line again. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] coveralls commented on issue #829: [Agent] Support hystrix plugin
coveralls commented on issue #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829#issuecomment-368309589 [![Coverage Status](https://coveralls.io/builds/15686689/badge)](https://coveralls.io/builds/15686689) Coverage increased (+0.002%) to 19.515% when pulling **c58c9ec412d391d46494c0a14056c181020f525e on ascrutae:feature/support-hystrix-plugin** into **e8477c0fdfc112671b9eae2e2284f5f63f623815 on apache:master**. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ascrutae opened a new pull request #829: [Agent] Support hystrix plugin
ascrutae opened a new pull request #829: [Agent] Support hystrix plugin URL: https://github.com/apache/incubator-skywalking/pull/829 Please answer these questions before submitting pull request - Why submit this pull request? - [ ] Bug fix - [x] New feature provided - [ ] Improve performance - Related issues #612 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] coveralls commented on issue #796: support rocketMQ-3.x-plugin (from 3.0.4-open to 3.4.6.Final)
coveralls commented on issue #796: support rocketMQ-3.x-plugin (from 3.0.4-open to 3.4.6.Final) URL: https://github.com/apache/incubator-skywalking/pull/796#issuecomment-363673676 [![Coverage Status](https://coveralls.io/builds/15686206/badge)](https://coveralls.io/builds/15686206) Coverage increased (+0.1%) to 19.646% when pulling **eb70abdc0c3561a95307a6a47c4746adf50ee9d2 on carlvine500:master** into **e8477c0fdfc112671b9eae2e2284f5f63f623815 on apache:master**. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ascrutae opened a new pull request #828: [Agent] fix HierarchyMatch donot support generic type
ascrutae opened a new pull request #828: [Agent] fix HierarchyMatch donot support generic type URL: https://github.com/apache/incubator-skywalking/pull/828 Please answer these questions before submitting pull request - Why submit this pull request? - [ ] Bug fix - [x] New feature provided - [ ] Improve performance This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services