Skip to content

Commit

Permalink
Cheery pick optimized constants (#240)
Browse files Browse the repository at this point in the history
* cheery pick constants

* optimized test case
  • Loading branch information
glmapper authored Aug 1, 2019
1 parent 744e6a6 commit cea1a07
Show file tree
Hide file tree
Showing 28 changed files with 290 additions and 174 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import com.alipay.common.tracer.core.middleware.parent.AbstractDigestSpanEncoder;
import com.alipay.common.tracer.core.span.CommonSpanTags;
import com.alipay.common.tracer.core.span.SofaTracerSpan;
import java.io.IOException;

import java.util.Map;

/**
Expand All @@ -32,10 +32,11 @@
* @since 2.2.0
*/
public class DataSourceClientDigestJsonEncoder extends AbstractDigestSpanEncoder {

@Override
public String encode(SofaTracerSpan span) throws IOException {
public String encode(SofaTracerSpan span) {
JsonStringBuilder jsonStringBuilder = new JsonStringBuilder();
jsonStringBuilder.appendBegin("time", Timestamp.format(span.getEndTime()));
jsonStringBuilder.appendBegin(CommonSpanTags.TIME, Timestamp.format(span.getEndTime()));
appendSlot(jsonStringBuilder, span);
return jsonStringBuilder.toString();
}
Expand All @@ -48,9 +49,9 @@ private void appendSlot(JsonStringBuilder jsonStringBuilder, SofaTracerSpan sofa
jsonStringBuilder
.append(CommonSpanTags.LOCAL_APP, tagWithStr.get(CommonSpanTags.LOCAL_APP));
//TraceId
jsonStringBuilder.append("traceId", context.getTraceId());
jsonStringBuilder.append(CommonSpanTags.TRACE_ID, context.getTraceId());
//SpanId
jsonStringBuilder.append("spanId", context.getSpanId());
jsonStringBuilder.append(CommonSpanTags.SPAN_ID, context.getSpanId());
//schema
jsonStringBuilder.append(DataSourceTracerKeys.DATABASE_NAME,
tagWithStr.get(DataSourceTracerKeys.DATABASE_NAME));
Expand Down Expand Up @@ -86,6 +87,7 @@ private void appendSlot(JsonStringBuilder jsonStringBuilder, SofaTracerSpan sofa
private void appendBaggage(JsonStringBuilder jsonStringBuilder,
SofaTracerSpanContext sofaTracerSpanContext) {
//baggage
jsonStringBuilder.appendEnd("baggage", baggageSerialized(sofaTracerSpanContext));
jsonStringBuilder.appendEnd(CommonSpanTags.BAGGAGE,
baggageSerialized(sofaTracerSpanContext));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.alipay.common.tracer.core.appender.file.LoadTestAwareAppender;
import com.alipay.common.tracer.core.appender.self.SelfLog;
import com.alipay.common.tracer.core.appender.self.Timestamp;
import com.alipay.common.tracer.core.constants.SofaTracerConstant;
import com.alipay.common.tracer.core.reporter.stat.AbstractSofaTracerStatisticReporter;
import com.alipay.common.tracer.core.reporter.stat.model.StatKey;
import com.alipay.common.tracer.core.reporter.stat.model.StatMapKey;
Expand Down Expand Up @@ -50,16 +51,17 @@ public void doReportStat(SofaTracerSpan sofaTracerSpan) {
tagsWithStr.get(DataSourceTracerKeys.DATABASE_NAME));
statKey.addKey(DataSourceTracerKeys.SQL, tagsWithStr.get(DataSourceTracerKeys.SQL));
//result
String result = DataSourceClientTracer.RESULT_CODE_SUCCESS.equals(tagsWithStr
.get(DataSourceTracerKeys.RESULT_CODE)) ? "true" : "false";
String result = SofaTracerConstant.RESULT_CODE_SUCCESS.equals(tagsWithStr
.get(DataSourceTracerKeys.RESULT_CODE)) ? SofaTracerConstant.STAT_FLAG_SUCCESS
: SofaTracerConstant.STAT_FLAG_FAILS;
statKey.setResult(result);
//pressure mark
statKey.setLoadTest(TracerUtils.isLoadTest(sofaTracerSpan));
//end
statKey.setEnd(TracerUtils.getLoadTestMark(sofaTracerSpan));
//value the count and duration
long duration = sofaTracerSpan.getEndTime() - sofaTracerSpan.getStartTime();
long values[] = new long[] { 1, duration };
long[] values = new long[] { 1, duration };
//reserve
this.addStat(statKey, values);
}
Expand All @@ -77,13 +79,13 @@ public void print(StatKey statKey, long[] values) {
try {
jsonBuffer.reset();
jsonBuffer.appendBegin();
jsonBuffer.append("time", Timestamp.currentTime());
jsonBuffer.append("stat.key", this.statKeySplit(statMapKey));
jsonBuffer.append("count", values[0]);
jsonBuffer.append("total.cost.milliseconds", values[1]);
jsonBuffer.append("success", statMapKey.getResult());
jsonBuffer.append(CommonSpanTags.TIME, Timestamp.currentTime());
jsonBuffer.append(CommonSpanTags.STAT_KEY, this.statKeySplit(statMapKey));
jsonBuffer.append(CommonSpanTags.COUNT, values[0]);
jsonBuffer.append(CommonSpanTags.TOTAL_COST_MILLISECONDS, values[1]);
jsonBuffer.append(CommonSpanTags.SUCCESS, statMapKey.getResult());
//pressure
jsonBuffer.appendEnd("load.test", statMapKey.getEnd());
jsonBuffer.appendEnd(CommonSpanTags.LOAD_TEST, statMapKey.getEnd());

if (appender instanceof LoadTestAwareAppender) {
((LoadTestAwareAppender) appender).append(jsonBuffer.toString(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.alipay.common.tracer.core.appender.encoder.SpanEncoder;
import com.alipay.common.tracer.core.appender.self.SelfLog;
import com.alipay.common.tracer.core.configuration.SofaTracerConfiguration;
import com.alipay.common.tracer.core.constants.ComponentNameConstants;
import com.alipay.common.tracer.core.context.span.SofaTracerSpanContext;
import com.alipay.common.tracer.core.context.trace.SofaTraceContext;
import com.alipay.common.tracer.core.holder.SofaTraceContextHolder;
Expand All @@ -41,13 +42,8 @@ protected DataSourceTracerState initialValue() {
return null;
}
};

private volatile static DataSourceClientTracer dataSourceClientTracer = null;

public static final String RESULT_CODE_SUCCESS = "success";

public static final String RESULT_CODE_FAILED = "failed";

/***
* DataSource Client Tracer Singleton
* @return singleton
Expand All @@ -64,7 +60,7 @@ public static DataSourceClientTracer getDataSourceClientTracer() {
}

private DataSourceClientTracer() {
super("dataSource");
super(ComponentNameConstants.DATA_SOURCE);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
*/
package com.alipay.sofa.tracer.plugins.datasource.tracer;

import com.alipay.common.tracer.core.constants.SofaTracerConstant;
import com.alipay.sofa.tracer.plugins.datasource.Interceptor;

/**
Expand All @@ -34,12 +35,12 @@ public void setClientTracer(DataSourceClientTracer clientTracer) {
@Override
public Object intercept(Chain chain) throws Exception {
long start = System.currentTimeMillis();
String resultCode = DataSourceClientTracer.RESULT_CODE_SUCCESS;
String resultCode = SofaTracerConstant.RESULT_SUCCESS;
try {
clientTracer.startTrace(chain.getOriginalSql());
return chain.proceed();
} catch (Exception e) {
resultCode = DataSourceClientTracer.RESULT_CODE_FAILED;
resultCode = SofaTracerConstant.RESULT_FAILED;
throw e;
} finally {
clientTracer.endTrace(System.currentTimeMillis() - start, resultCode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.alipay.common.tracer.core.appender.self.SelfLog;
import com.alipay.common.tracer.core.configuration.SofaTracerConfiguration;
import com.alipay.common.tracer.core.constants.SofaTracerConstant;
import com.alipay.common.tracer.core.context.span.SofaTracerSpanContext;
import com.alipay.common.tracer.core.context.trace.SofaTraceContext;
import com.alipay.common.tracer.core.holder.SofaTraceContextHolder;
Expand Down Expand Up @@ -50,10 +51,6 @@ public class DubboSofaTracerFilter implements Filter {

private static final String BLANK = StringUtils.EMPTY_STRING;

private static final String SUCCESS_CODE = "00";

private static final String FAILED_CODE = "99";

private static final String SPAN_INVOKE_KEY = "sofa.current.span.key";

private DubboConsumerSofaTracer dubboConsumerSofaTracer;
Expand Down Expand Up @@ -102,14 +99,14 @@ public Result onResponse(Result result, Invoker<?> invoker, Invocation invocatio
this.dubboConsumerSofaTracer = DubboConsumerSofaTracer
.getDubboConsumerSofaTracerSingleton();
}
String resultCode = SUCCESS_CODE;
String resultCode = SofaTracerConstant.RESULT_CODE_SUCCESS;
if (result.hasException()) {
if (result.getException() instanceof RpcException) {
resultCode = Integer.toString(((RpcException) result.getException())
.getCode());
sofaTracerSpan.setTag(CommonSpanTags.RESULT_CODE, resultCode);
} else {
resultCode = FAILED_CODE;
resultCode = SofaTracerConstant.RESULT_CODE_ERROR;
}
}
// add elapsed time
Expand Down Expand Up @@ -166,7 +163,7 @@ private Result doClientFilter(RpcContext rpcContext, Invoker<?> invoker, Invocat
}
Result result;
Throwable exception = null;
String resultCode = SUCCESS_CODE;
String resultCode = SofaTracerConstant.RESULT_CODE_SUCCESS;
try {
// do invoke
result = invoker.invoke(invocation);
Expand All @@ -193,7 +190,7 @@ private Result doClientFilter(RpcContext rpcContext, Invoker<?> invoker, Invocat
RpcException rpcException = (RpcException) exception;
resultCode = String.valueOf(rpcException.getCode());
} else {
resultCode = FAILED_CODE;
resultCode = SofaTracerConstant.RESULT_CODE_ERROR;
}
}

Expand All @@ -206,7 +203,7 @@ private Result doClientFilter(RpcContext rpcContext, Invoker<?> invoker, Invocat
// Record client send event
sofaTracerSpan.log(LogData.CLIENT_SEND_EVENT_VALUE);
}
// 将当前 span 缓存
// cache the current span
TracerSpanMap.put(getTracerSpanMapKey(invoker), sofaTracerSpan);
if (clientSpan != null && clientSpan.getParentSofaTracerSpan() != null) {
//restore parent
Expand Down Expand Up @@ -258,7 +255,7 @@ private Result doServerFilter(RpcContext rpcContext, Invoker<?> invoker, Invocat
exception = t;
throw new RpcException(t);
} finally {
String resultCode = SUCCESS_CODE;
String resultCode = SofaTracerConstant.RESULT_CODE_SUCCESS;
if (exception != null) {
if (exception instanceof RpcException) {
sofaTracerSpan.setTag(Tags.ERROR.getKey(), exception.getMessage());
Expand All @@ -267,7 +264,7 @@ private Result doServerFilter(RpcContext rpcContext, Invoker<?> invoker, Invocat
resultCode = String.valueOf(rpcException.getCode());
}
} else {
resultCode = FAILED_CODE;
resultCode = SofaTracerConstant.RESULT_CODE_ERROR;
}
}
dubboProviderSofaTracer.serverSend(resultCode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,16 @@ public String encode(SofaTracerSpan sofaTracerSpan) throws IOException {

JsonStringBuilder data = new JsonStringBuilder();
//span end time
data.appendBegin("time", Timestamp.format(sofaTracerSpan.getEndTime()));
data.appendBegin(CommonSpanTags.TIME, Timestamp.format(sofaTracerSpan.getEndTime()));

Map<String, String> tagStr = sofaTracerSpan.getTagsWithStr();
Map<String, Number> tagNum = sofaTracerSpan.getTagsWithNumber();
SofaTracerSpanContext context = sofaTracerSpan.getSofaTracerSpanContext();

// TraceId
data.append("traceId", context.getTraceId());
data.append(CommonSpanTags.TRACE_ID, context.getTraceId());
// SpanId
data.append("spanId", context.getSpanId());
data.append(CommonSpanTags.SPAN_ID, context.getSpanId());
// Span Type
data.append(Tags.SPAN_KIND.getKey(), tagStr.get(Tags.SPAN_KIND.getKey()));
// app name
Expand Down Expand Up @@ -89,7 +89,7 @@ public String encode(SofaTracerSpan sofaTracerSpan) throws IOException {
data.append(CommonSpanTags.CURRENT_THREAD_NAME,
tagStr.get(CommonSpanTags.CURRENT_THREAD_NAME));
//time-consuming ms
data.append("time.cost.milliseconds",
data.append(CommonSpanTags.TIME_COST_MILLISECONDS,
(sofaTracerSpan.getEndTime() - sofaTracerSpan.getStartTime()));
this.appendBaggage(data, context);
return data.toString();
Expand All @@ -98,7 +98,8 @@ public String encode(SofaTracerSpan sofaTracerSpan) throws IOException {
private void appendBaggage(JsonStringBuilder jsonStringBuilder,
SofaTracerSpanContext sofaTracerSpanContext) {
//baggage
jsonStringBuilder.appendEnd("baggage", baggageSerialized(sofaTracerSpanContext));
jsonStringBuilder.appendEnd(CommonSpanTags.BAGGAGE,
baggageSerialized(sofaTracerSpanContext));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ public class DubboServerDigestJsonEncoder extends AbstractDigestSpanEncoder {
public String encode(SofaTracerSpan sofaTracerSpan) throws IOException {
JsonStringBuilder data = new JsonStringBuilder();
//span end time
data.appendBegin("time", Timestamp.format(sofaTracerSpan.getEndTime()));
data.appendBegin(CommonSpanTags.TIME, Timestamp.format(sofaTracerSpan.getEndTime()));
Map<String, String> tagStr = sofaTracerSpan.getTagsWithStr();
Map<String, Number> tagNum = sofaTracerSpan.getTagsWithNumber();
SofaTracerSpanContext context = sofaTracerSpan.getSofaTracerSpanContext();
//TraceId
data.append("traceId", context.getTraceId());
data.append(CommonSpanTags.TRACE_ID, context.getTraceId());
//SpanId
data.append("spanId", context.getSpanId());
data.append(CommonSpanTags.SPAN_ID, context.getSpanId());
//Span Type
data.append(Tags.SPAN_KIND.getKey(), tagStr.get(Tags.SPAN_KIND.getKey()));
//local appName
Expand Down Expand Up @@ -74,7 +74,7 @@ public String encode(SofaTracerSpan sofaTracerSpan) throws IOException {
data.append(CommonSpanTags.CURRENT_THREAD_NAME,
tagStr.get(CommonSpanTags.CURRENT_THREAD_NAME));
//time-consuming ms
data.append("time.cost.milliseconds",
data.append(CommonSpanTags.TIME_COST_MILLISECONDS,
(sofaTracerSpan.getEndTime() - sofaTracerSpan.getStartTime()));
this.appendBaggage(data, context);
return data.toString();
Expand All @@ -90,6 +90,7 @@ private long getTime(Number number) {
private void appendBaggage(JsonStringBuilder jsonStringBuilder,
SofaTracerSpanContext sofaTracerSpanContext) {
//baggage
jsonStringBuilder.appendEnd("baggage", baggageSerialized(sofaTracerSpanContext));
jsonStringBuilder.appendEnd(CommonSpanTags.BAGGAGE,
baggageSerialized(sofaTracerSpanContext));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.alipay.common.tracer.core.appender.file.LoadTestAwareAppender;
import com.alipay.common.tracer.core.appender.self.SelfLog;
import com.alipay.common.tracer.core.appender.self.Timestamp;
import com.alipay.common.tracer.core.constants.SofaTracerConstant;
import com.alipay.common.tracer.core.reporter.stat.AbstractSofaTracerStatisticReporter;
import com.alipay.common.tracer.core.reporter.stat.model.StatKey;
import com.alipay.common.tracer.core.reporter.stat.model.StatMapKey;
Expand Down Expand Up @@ -58,7 +59,9 @@ public void doReportStat(SofaTracerSpan sofaTracerSpan) {
String methodName = tagsWithStr.get(CommonSpanTags.METHOD);
statKey.setKey(buildString(new String[] { fromApp, toApp, serviceName, methodName }));
String resultCode = tagsWithStr.get(CommonSpanTags.RESULT_CODE);
statKey.setResult(resultCode.equals("00") ? "Y" : "N");
statKey
.setResult(SofaTracerConstant.RESULT_CODE_SUCCESS.equals(resultCode) ? SofaTracerConstant.STAT_FLAG_SUCCESS
: SofaTracerConstant.STAT_FLAG_FAILS);
statKey.setEnd(buildString(new String[] { getLoadTestMark(sofaTracerSpan) }));
statKey.setLoadTest(TracerUtils.isLoadTest(sofaTracerSpan));
statKey.addKey(CommonSpanTags.LOCAL_APP, fromApp);
Expand Down Expand Up @@ -88,11 +91,11 @@ public void print(StatKey statKey, long[] values) {
StatMapKey statMapKey = (StatMapKey) statKey;

jsonBuffer.reset();
jsonBuffer.appendBegin("time", Timestamp.currentTime());
jsonBuffer.append("stat.key", this.statKeySplit(statMapKey));
jsonBuffer.append("count", values[0]);
jsonBuffer.append("total.cost.milliseconds", values[1]);
jsonBuffer.append("success", statMapKey.getResult());
jsonBuffer.appendBegin(CommonSpanTags.TIME, Timestamp.currentTime());
jsonBuffer.append(CommonSpanTags.STAT_KEY, this.statKeySplit(statMapKey));
jsonBuffer.append(CommonSpanTags.COUNT, values[0]);
jsonBuffer.append(CommonSpanTags.TIME_COST_MILLISECONDS, values[1]);
jsonBuffer.append(CommonSpanTags.SUCCESS, statMapKey.getResult());
jsonBuffer.appendEnd();
try {
if (appender instanceof LoadTestAwareAppender) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.alipay.common.tracer.core.appender.file.LoadTestAwareAppender;
import com.alipay.common.tracer.core.appender.self.SelfLog;
import com.alipay.common.tracer.core.appender.self.Timestamp;
import com.alipay.common.tracer.core.constants.SofaTracerConstant;
import com.alipay.common.tracer.core.reporter.stat.AbstractSofaTracerStatisticReporter;
import com.alipay.common.tracer.core.reporter.stat.model.StatKey;
import com.alipay.common.tracer.core.reporter.stat.model.StatMapKey;
Expand Down Expand Up @@ -58,7 +59,9 @@ public void doReportStat(SofaTracerSpan sofaTracerSpan) {
String methodName = tagsWithStr.get(CommonSpanTags.METHOD);
statKey.setKey(buildString(new String[] { fromApp, toApp, serviceName, methodName }));
String resultCode = tagsWithStr.get(CommonSpanTags.RESULT_CODE);
statKey.setResult(resultCode.equals("00") ? "Y" : "N");
statKey
.setResult(SofaTracerConstant.RESULT_CODE_SUCCESS.equals(resultCode) ? SofaTracerConstant.STAT_FLAG_SUCCESS
: SofaTracerConstant.STAT_FLAG_FAILS);
statKey.setEnd(buildString(new String[] { getLoadTestMark(sofaTracerSpan) }));
statKey.setLoadTest(TracerUtils.isLoadTest(sofaTracerSpan));
statKey.addKey(CommonSpanTags.LOCAL_APP, fromApp);
Expand Down Expand Up @@ -89,11 +92,11 @@ public void print(StatKey statKey, long[] values) {
StatMapKey statMapKey = (StatMapKey) statKey;

jsonBuffer.reset();
jsonBuffer.appendBegin("time", Timestamp.currentTime());
jsonBuffer.append("stat.key", this.statKeySplit(statMapKey));
jsonBuffer.append("count", values[0]);
jsonBuffer.append("total.cost.milliseconds", values[1]);
jsonBuffer.append("success", statMapKey.getResult());
jsonBuffer.appendBegin(CommonSpanTags.TIME, Timestamp.currentTime());
jsonBuffer.append(CommonSpanTags.STAT_KEY, this.statKeySplit(statMapKey));
jsonBuffer.append(CommonSpanTags.COUNT, values[0]);
jsonBuffer.append(CommonSpanTags.TIME_COST_MILLISECONDS, values[1]);
jsonBuffer.append(CommonSpanTags.SUCCESS, statMapKey.getResult());
jsonBuffer.appendEnd();
try {
if (appender instanceof LoadTestAwareAppender) {
Expand Down
Loading

0 comments on commit cea1a07

Please sign in to comment.