This is an automated email from the ASF dual-hosted git repository.
jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new b904bfd6e54 optimize agent tracing (#24142)
b904bfd6e54 is described below
commit b904bfd6e543f8d869271c6434c54857eafdc357
Author: jiangML <[email protected]>
AuthorDate: Mon Feb 13 22:25:26 2023 +0800
optimize agent tracing (#24142)
---
.../advice/OpenTelemetryCommandExecutorTaskAdvice.java | 1 +
.../advice/OpenTelemetryJDBCExecutorCallbackAdvice.java | 4 +++-
.../opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java | 7 +++++--
.../advice/OpenTelemetryCommandExecutorTaskAdviceTest.java | 1 -
.../advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java | 1 -
.../advice/OpenTelemetrySQLParserEngineAdviceTest.java | 1 -
.../opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java | 1 +
.../opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java | 4 +++-
.../opentracing/advice/OpenTracingSQLParserEngineAdvice.java | 4 +++-
.../advice/OpenTracingCommandExecutorTaskAdviceTest.java | 1 -
.../advice/OpenTracingJDBCExecutorCallbackAdviceTest.java | 1 -
.../opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java | 1 -
12 files changed, 16 insertions(+), 11 deletions(-)
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
index ca88bfd9f45..c714cb6f946 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdvice.java
@@ -50,5 +50,6 @@ public final class OpenTelemetryCommandExecutorTaskAdvice
extends TracingCommand
@Override
protected void recordException(final Span rootSpan, final
TargetAdviceObject target, final Throwable throwable) {
rootSpan.setStatus(StatusCode.ERROR).recordException(throwable);
+ finishRootSpan(rootSpan, target);
}
}
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
index 3a96beaa702..846a49e916d 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdvice.java
@@ -61,6 +61,8 @@ public final class OpenTelemetryJDBCExecutorCallbackAdvice
extends TracingJDBCEx
@Override
public void onThrowing(final TargetAdviceObject target, final Method
method, final Object[] args, final Throwable throwable, final String
pluginType) {
- ((Span)
target.getAttachment()).setStatus(StatusCode.ERROR).recordException(throwable);
+ Span span = (Span) target.getAttachment();
+ span.setStatus(StatusCode.ERROR).recordException(throwable);
+ span.end();
}
}
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
index a66596a71d4..fb1391c2099 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdvice.java
@@ -26,6 +26,7 @@ import io.opentelemetry.context.Context;
import org.apache.shardingsphere.agent.api.advice.TargetAdviceObject;
import
org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingSQLParserEngineAdvice;
import
org.apache.shardingsphere.agent.plugin.tracing.core.constant.AttributeConstants;
+import
org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.constant.OpenTelemetryConstants;
import java.lang.reflect.Method;
@@ -36,7 +37,7 @@ public final class OpenTelemetrySQLParserEngineAdvice extends
TracingSQLParserEn
@Override
protected Object recordSQLParseInfo(final Span parentSpan, final
TargetAdviceObject target, final String sql) {
- Tracer tracer = GlobalOpenTelemetry.getTracer("shardingsphere-agent");
+ Tracer tracer =
GlobalOpenTelemetry.getTracer(OpenTelemetryConstants.TRACER_NAME);
SpanBuilder spanBuilder = tracer.spanBuilder(OPERATION_NAME)
.setAttribute(AttributeConstants.COMPONENT,
AttributeConstants.COMPONENT_NAME)
.setAttribute(AttributeConstants.DB_STATEMENT, sql)
@@ -54,6 +55,8 @@ public final class OpenTelemetrySQLParserEngineAdvice extends
TracingSQLParserEn
@Override
public void onThrowing(final TargetAdviceObject target, final Method
method, final Object[] args, final Throwable throwable, final String
pluginType) {
- ((Span)
target.getAttachment()).setStatus(StatusCode.ERROR).recordException(throwable);
+ Span span = (Span) target.getAttachment();
+ span.setStatus(StatusCode.ERROR).recordException(throwable);
+ span.end();
}
}
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
index d52c87c6f3c..630b3dc5b67 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryCommandExecutorTaskAdviceTest.java
@@ -55,7 +55,6 @@ public final class OpenTelemetryCommandExecutorTaskAdviceTest
extends AbstractCo
OpenTelemetryCommandExecutorTaskAdvice advice = new
OpenTelemetryCommandExecutorTaskAdvice();
advice.beforeMethod(getTargetObject(), null, new Object[]{},
"OpenTelemetry");
advice.onThrowing(getTargetObject(), null, new Object[]{}, new
IOException(), "OpenTelemetry");
- advice.afterMethod(getTargetObject(), null, new Object[]{}, null,
"OpenTelemetry");
List<SpanData> spanItems = COLLECTOR.getSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
index b8b9fd5974c..c2761b5bbee 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
@@ -83,7 +83,6 @@ public final class
OpenTelemetryJDBCExecutorCallbackAdviceTest extends AbstractJ
OpenTelemetryJDBCExecutorCallbackAdvice advice = new
OpenTelemetryJDBCExecutorCallbackAdvice();
advice.beforeMethod(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, "OpenTelemetry");
advice.onThrowing(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, new IOException(),
"OpenTelemetry");
- advice.afterMethod(getTargetObject(), null, new
Object[]{getExecutionUnit(), false, getExtraMap()}, null, "OpenTelemetry");
List<SpanData> spanItems = COLLECTOR.getSpanItems();
assertThat(spanItems.size(), is(1));
SpanData spanData = spanItems.get(0);
diff --git
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
index 027b7fe6c32..d9ae59af058 100644
---
a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
+++
b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetrySQLParserEngineAdviceTest.java
@@ -82,7 +82,6 @@ public final class OpenTelemetrySQLParserEngineAdviceTest
extends AbstractSQLPar
OpenTelemetrySQLParserEngineAdvice advice = new
OpenTelemetrySQLParserEngineAdvice();
advice.beforeMethod(getTargetObject(), null, new
Object[]{SQL_STATEMENT, true}, "OpenTelemetry");
advice.onThrowing(getTargetObject(), null, new Object[]{SQL_STATEMENT,
true}, new IOException(), "OpenTelemetry");
- advice.afterMethod(getTargetObject(), null, new
Object[]{SQL_STATEMENT, true}, null, "OpenTelemetry");
List<SpanData> spanItems = COLLECTOR.getSpanItems();
assertThat(spanItems.size(), is(1));
assertThat(spanItems.get(0).getName(),
is("/ShardingSphere/parseSQL/"));
diff --git
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
index 49e7da97c35..ef24baeb155 100644
---
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
+++
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdvice.java
@@ -47,5 +47,6 @@ public final class OpenTracingCommandExecutorTaskAdvice
extends TracingCommandEx
@Override
protected void recordException(final Span rootSpan, final
TargetAdviceObject target, final Throwable throwable) {
OpenTracingErrorSpan.setError(rootSpan, throwable);
+ finishRootSpan(rootSpan, target);
}
}
diff --git
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
index bd742514f8e..5911e4d9fe3 100644
---
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
+++
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdvice.java
@@ -56,6 +56,8 @@ public final class OpenTracingJDBCExecutorCallbackAdvice
extends TracingJDBCExec
@Override
public void onThrowing(final TargetAdviceObject target, final Method
method, final Object[] args, final Throwable throwable, final String
pluginType) {
- OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(),
throwable);
+ Scope scope = (Scope) target.getAttachment();
+ OpenTracingErrorSpan.setError(scope.span(), throwable);
+ scope.close();
}
}
diff --git
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
index 9ee59d487eb..afe4da69459 100644
---
a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
+++
b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdvice.java
@@ -50,6 +50,8 @@ public final class OpenTracingSQLParserEngineAdvice extends
TracingSQLParserEngi
@Override
public void onThrowing(final TargetAdviceObject target, final Method
method, final Object[] args, final Throwable throwable, final String
pluginType) {
- OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(),
throwable);
+ Scope scope = (Scope) target.getAttachment();
+ OpenTracingErrorSpan.setError(scope.span(), throwable);
+ scope.close();
}
}
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
index aaa402ec5cc..bed03ae745d 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingCommandExecutorTaskAdviceTest.java
@@ -82,7 +82,6 @@ public final class OpenTracingCommandExecutorTaskAdviceTest
extends AbstractComm
TargetAdviceObject targetObject = getTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new
Object[]{}, "OpenTracing");
ADVICE.onThrowing(targetObject, executeCommandMethod, new Object[]{},
new IOException(), "OpenTracing");
- ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{},
null, "OpenTracing");
List<MockSpan> spans = tracer.finishedSpans();
assertThat(spans.size(), is(1));
MockSpan span = spans.get(0);
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
index 87de67cd347..e54b5796d94 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingJDBCExecutorCallbackAdviceTest.java
@@ -84,7 +84,6 @@ public final class OpenTracingJDBCExecutorCallbackAdviceTest
extends AbstractJDB
OpenTracingJDBCExecutorCallbackAdvice advice = new
OpenTracingJDBCExecutorCallbackAdvice();
advice.beforeMethod(getTargetObject(), executeMethod, new
Object[]{getExecutionUnit(), false, extraMap}, "OpenTracing");
advice.onThrowing(getTargetObject(), executeMethod, new
Object[]{getExecutionUnit(), false, extraMap}, new IOException(),
"OpenTracing");
- advice.afterMethod(getTargetObject(), executeMethod, new
Object[]{getExecutionUnit(), false, extraMap}, null, "OpenTracing");
List<MockSpan> spans = tracer.finishedSpans();
assertThat(spans.size(), is(1));
MockSpan span = spans.get(0);
diff --git
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
index bea07dfd358..62552009824 100644
---
a/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
+++
b/agent/plugins/tracing/type/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/OpenTracingSQLParserEngineAdviceTest.java
@@ -77,7 +77,6 @@ public final class OpenTracingSQLParserEngineAdviceTest
extends AbstractJDBCExec
public void assertExceptionHandle() {
ADVICE.beforeMethod(getTargetObject(), parserMethod, new
Object[]{"select 1"}, "OpenTracing");
ADVICE.onThrowing(getTargetObject(), parserMethod, new Object[]{}, new
IOException(), "OpenTracing");
- ADVICE.afterMethod(getTargetObject(), parserMethod, new Object[]{},
null, "OpenTracing");
List<MockSpan> spans = tracer.finishedSpans();
assertThat(spans.size(), is(1));
MockSpan span = spans.get(0);