use of com.pamirs.pradar.interceptor.SpanRecord in project LinkAgent by shulieTech.
the class ConsumerMultiRecordEntryPointInterceptor2 method beforeTrace.
@Override
public SpanRecord beforeTrace(Advice advice) {
Object[] args = advice.getParameterArray();
if (args == null || args.length == 0) {
return null;
}
if (!(args[0] instanceof List)) {
return null;
}
List<ConsumerRecord> list = (List<ConsumerRecord>) args[0];
if (list.isEmpty()) {
return null;
}
ConsumerRecord consumerRecord = list.get(0);
String group = null;
String remoteAddress = null;
SpanRecord spanRecord = new SpanRecord();
spanRecord.setRemoteIp(remoteAddress);
if (PradarSwitcher.isKafkaMessageHeadersEnabled()) {
HeaderProcessor headerProcessor = HeaderProvider.getHeaderProcessor(consumerRecord);
Map<String, String> ctx = headerProcessor.getHeaders(consumerRecord);
spanRecord.setContext(ctx);
}
spanRecord.setRequest(consumerRecord);
spanRecord.setService(consumerRecord.topic());
spanRecord.setMethod(group == null ? "" : group);
spanRecord.setRemoteIp(remoteAddress);
spanRecord.setCallbackMsg((System.currentTimeMillis() - consumerRecord.timestamp()) + "");
return spanRecord;
}
use of com.pamirs.pradar.interceptor.SpanRecord in project LinkAgent by shulieTech.
the class ConsumerMultiRecordEntryPointInterceptor2 method exceptionTrace.
@Override
public SpanRecord exceptionTrace(Advice advice) {
Object[] args = advice.getParameterArray();
if (args == null || args.length == 0) {
return null;
}
if (!(args[0] instanceof List)) {
return null;
}
List<ConsumerRecord> list = (List<ConsumerRecord>) args[0];
if (list.isEmpty()) {
return null;
}
ConsumerRecord consumerRecord = list.get(0);
SpanRecord spanRecord = new SpanRecord();
spanRecord.setRequest(consumerRecord);
spanRecord.setResponse(advice.getThrowable());
spanRecord.setResultCode(ResultCode.INVOKE_RESULT_FAILED);
return spanRecord;
}
use of com.pamirs.pradar.interceptor.SpanRecord in project LinkAgent by shulieTech.
the class LettuceMethodInterceptor method exceptionTrace.
@Override
public SpanRecord exceptionTrace(Advice advice) {
SpanRecord spanRecord = new SpanRecord();
spanRecord.setResponse(advice.getThrowable());
spanRecord.setResultCode(ResultCode.INVOKE_RESULT_FAILED);
spanRecord.setMiddlewareName(LettuceConstants.MIDDLEWARE_NAME);
spanRecord.setCallbackMsg(LettuceConstants.PLUGIN_NAME);
/**
* 附加属性
*/
ext();
return spanRecord;
}
use of com.pamirs.pradar.interceptor.SpanRecord in project LinkAgent by shulieTech.
the class RedissonTraceMethodInterceptor method beforeTrace.
@Override
public SpanRecord beforeTrace(Advice advice) {
Object[] args = advice.getParameterArray();
String methodName = advice.getBehaviorName();
Object target = advice.getTarget();
SpanRecord record = new SpanRecord();
record.setRemoteIp(getHost(target, methodName, args));
record.setPort(getPort(target, methodName, args));
record.setMiddlewareName(RedissonConstants.MIDDLEWARE_NAME);
record.setService(String.valueOf(getDatabase(target, methodName, args)));
record.setMethod(methodName);
record.setRequest(toArgs(args));
return record;
}
use of com.pamirs.pradar.interceptor.SpanRecord in project LinkAgent by shulieTech.
the class RedissonTraceMethodInterceptor method afterTrace.
@Override
public SpanRecord afterTrace(Advice advice) {
Object result = advice.getReturnObj();
SpanRecord record = new SpanRecord();
record.setMiddlewareName(RedissonConstants.MIDDLEWARE_NAME);
record.setResponse(result);
record.setCallbackMsg(getPluginName());
attachment(advice.getTarget(), advice.getBehaviorName(), advice.getParameterArray());
return record;
}
Aggregations