提交JDBC类型的Businesskey处理的Filter
This commit is contained in:
parent
b8cfec0f1a
commit
03711ab038
|
|
@ -89,24 +89,31 @@ public class SpanEntry {
|
|||
return serverSpan.getBusinessKey();
|
||||
}
|
||||
|
||||
public void setBusinessKey(String businessKey) {
|
||||
if (clientSpan != null) {
|
||||
clientSpan.setBusinessKey(businessKey);
|
||||
}
|
||||
serverSpan.setBusinessKey(businessKey);
|
||||
}
|
||||
|
||||
public ChainNode.NodeStatus getSpanStatus() {
|
||||
if (clientSpan != null) {
|
||||
if (clientSpan.getExceptionStack() != null && clientSpan.getExceptionStack().length() > 0) {
|
||||
if(clientSpan.getStatusCode() == 1){
|
||||
return ChainNode.NodeStatus.ABNORMAL;
|
||||
}else{
|
||||
return ChainNode.NodeStatus.HUMAN_INTERRUPTION;
|
||||
}
|
||||
if (clientSpan.getStatusCode() == 1) {
|
||||
return ChainNode.NodeStatus.ABNORMAL;
|
||||
} else {
|
||||
return ChainNode.NodeStatus.HUMAN_INTERRUPTION;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (serverSpan != null) {
|
||||
if (serverSpan.getExceptionStack() != null && serverSpan.getExceptionStack().length() > 0) {
|
||||
if(clientSpan != null && clientSpan.getStatusCode() == 1){
|
||||
return ChainNode.NodeStatus.ABNORMAL;
|
||||
}else{
|
||||
return ChainNode.NodeStatus.HUMAN_INTERRUPTION;
|
||||
}
|
||||
if (clientSpan != null && clientSpan.getStatusCode() == 1) {
|
||||
return ChainNode.NodeStatus.ABNORMAL;
|
||||
} else {
|
||||
return ChainNode.NodeStatus.HUMAN_INTERRUPTION;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.ai.cloud.skywalking.analysis.chainbuild.filter.impl;
|
||||
|
||||
import com.ai.cloud.skywalking.analysis.chainbuild.SpanEntry;
|
||||
import com.ai.cloud.skywalking.analysis.chainbuild.filter.SpanNodeProcessFilter;
|
||||
import com.ai.cloud.skywalking.analysis.chainbuild.po.ChainNode;
|
||||
import com.ai.cloud.skywalking.analysis.chainbuild.util.SubLevelSpanCostCounter;
|
||||
|
||||
public class JDBCBusinessKeyHandleFilter extends SpanNodeProcessFilter {
|
||||
@Override
|
||||
public void doFilter(SpanEntry spanEntry, ChainNode node, SubLevelSpanCostCounter costMap) {
|
||||
String businessKey = spanEntry.getBusinessKey();
|
||||
if (businessKey != null) {
|
||||
int index = businessKey.lastIndexOf(":");
|
||||
if (index != -1) {
|
||||
businessKey = businessKey.substring(index + 1).trim();
|
||||
String key = businessKey.toUpperCase();
|
||||
if (key.startsWith("SELECT")) {
|
||||
businessKey = subBusinessKey(businessKey, key, "WHERE");
|
||||
} else if (key.startsWith("UPDATE")) {
|
||||
businessKey = subBusinessKey(businessKey, key, "SET");
|
||||
} else if (key.startsWith("DELETE")) {
|
||||
businessKey = subBusinessKey(businessKey, key, "WHERE");
|
||||
} else if (key.startsWith("INSERT")) {
|
||||
businessKey = subBusinessKey(businessKey, key, "VALUES");
|
||||
}
|
||||
}
|
||||
}
|
||||
spanEntry.setBusinessKey(businessKey);
|
||||
this.doNext(spanEntry, node, costMap);
|
||||
}
|
||||
|
||||
private String subBusinessKey(String businessKey, String key,String keyWord) {
|
||||
int whereIndex = key.indexOf(keyWord);
|
||||
if (whereIndex != -1) {
|
||||
businessKey = businessKey.substring(0, whereIndex - 1).trim();
|
||||
}
|
||||
return businessKey;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
#
|
||||
default=CopyAttrFilter->ReplaceAddressFilter->ProcessCostTimeFilter->TokenGenerateFilter
|
||||
J=CopyAttrFilter->AppendBusinessKeyFilter->ProcessCostTimeFilter->TokenGenerateFilter
|
||||
J=CopyAttrFilter->JDBCBusinessKeyHandleFilter->AppendBusinessKeyFilter->ProcessCostTimeFilter->TokenGenerateFilter
|
||||
|
|
|
|||
Loading…
Reference in New Issue