use of com.navercorp.pinpoint.grpc.trace.PIntStringValue in project pinpoint by naver.
the class GrpcAnnotationValueMapper method newIntStringValue.
public PIntStringValue newIntStringValue(IntStringValue v) {
final PIntStringValue.Builder builder = this.intStringBuilder;
builder.setIntValue(v.getIntValue());
if (v.getStringValue() != null) {
StringValue stringValue = newStringValue(v.getStringValue());
builder.setStringValue(stringValue);
}
PIntStringValue value = builder.build();
builder.clear();
return value;
}
use of com.navercorp.pinpoint.grpc.trace.PIntStringValue in project pinpoint by naver.
the class GrpcSpanBinder method newSpanBo.
// for test
SpanBo newSpanBo(PSpan pSpan, Header header) {
final SpanBo spanBo = new SpanBo();
spanBo.setVersion(pSpan.getVersion());
spanBo.setAgentId(header.getAgentId());
spanBo.setApplicationId(header.getApplicationName());
spanBo.setAgentStartTime(header.getAgentStartTime());
if (!pSpan.hasTransactionId()) {
throw new IllegalStateException("hasTransactionId() is false " + MessageFormatUtils.debugLog(pSpan));
}
final TransactionId transactionId = newTransactionId(pSpan.getTransactionId(), spanBo.getAgentId());
spanBo.setTransactionId(transactionId);
spanBo.setSpanId(pSpan.getSpanId());
spanBo.setParentSpanId(pSpan.getParentSpanId());
spanBo.setStartTime(pSpan.getStartTime());
spanBo.setElapsed(pSpan.getElapsed());
spanBo.setServiceType((short) pSpan.getServiceType());
spanBo.setFlag((short) pSpan.getFlag());
spanBo.setApiId(pSpan.getApiId());
spanBo.setErrCode(pSpan.getErr());
spanBo.setLoggingTransactionInfo((byte) pSpan.getLoggingTransactionInfo());
spanBo.setApplicationServiceType((short) pSpan.getApplicationServiceType());
if (pSpan.hasAcceptEvent()) {
final PAcceptEvent acceptEvent = pSpan.getAcceptEvent();
final String rpc = acceptEvent.getRpc();
if (StringUtils.hasLength(rpc)) {
spanBo.setRpc(rpc);
}
final String remoteAddr = acceptEvent.getRemoteAddr();
if (StringUtils.hasLength(remoteAddr)) {
spanBo.setRemoteAddr(remoteAddr);
}
final String endPoint = acceptEvent.getEndPoint();
if (StringUtils.hasLength(endPoint)) {
spanBo.setEndPoint(endPoint);
}
if (acceptEvent.hasParentInfo()) {
final PParentInfo parentInfo = acceptEvent.getParentInfo();
final String acceptorHost = parentInfo.getAcceptorHost();
if (StringUtils.hasLength(acceptorHost)) {
spanBo.setAcceptorHost(acceptorHost);
}
final String parentApplicationName = parentInfo.getParentApplicationName();
if (StringUtils.hasLength(parentApplicationName)) {
spanBo.setParentApplicationId(parentApplicationName);
}
spanBo.setParentApplicationServiceType((short) parentInfo.getParentApplicationType());
}
}
// because exceptionInfo is the error information of span itself, exceptionInfo can be null even if errCode is not 0
if (pSpan.hasExceptionInfo()) {
final PIntStringValue exceptionInfo = pSpan.getExceptionInfo();
spanBo.setExceptionInfo(exceptionInfo.getIntValue(), getExceptionMessage(exceptionInfo));
}
List<AnnotationBo> annotationBoList = buildAnnotationList(pSpan.getAnnotationList());
spanBo.setAnnotationBoList(annotationBoList);
return spanBo;
}
use of com.navercorp.pinpoint.grpc.trace.PIntStringValue in project pinpoint by naver.
the class GrpcSpanBinder method bind.
private void bind(SpanEventBo spanEvent, PSpanEvent pSpanEvent, SpanEventBo prevSpanEvent) {
spanEvent.setSequence((short) pSpanEvent.getSequence());
if (prevSpanEvent == null) {
int startElapsed = pSpanEvent.getStartElapsed();
spanEvent.setStartElapsed(startElapsed);
} else {
int startElapsed = pSpanEvent.getStartElapsed() + prevSpanEvent.getStartElapsed();
spanEvent.setStartElapsed(startElapsed);
}
spanEvent.setEndElapsed(pSpanEvent.getEndElapsed());
spanEvent.setServiceType((short) pSpanEvent.getServiceType());
spanEvent.setApiId(pSpanEvent.getApiId());
// v2 spec
final int depth = pSpanEvent.getDepth();
if (depth == 0) {
// depth compact case
if (prevSpanEvent == null) {
// first spanEvent
spanEvent.setDepth(0);
} else {
spanEvent.setDepth(prevSpanEvent.getDepth());
}
} else {
spanEvent.setDepth(depth);
}
if (pSpanEvent.hasNextEvent()) {
final PNextEvent nextEvent = pSpanEvent.getNextEvent();
final PNextEvent.FieldCase fieldCase = nextEvent.getFieldCase();
if (fieldCase == PNextEvent.FieldCase.MESSAGEEVENT) {
final PMessageEvent messageEvent = nextEvent.getMessageEvent();
spanEvent.setNextSpanId(messageEvent.getNextSpanId());
final String destinationId = messageEvent.getDestinationId();
if (StringUtils.hasLength(destinationId)) {
spanEvent.setDestinationId(destinationId);
}
final String endPoint = messageEvent.getEndPoint();
if (StringUtils.hasLength(endPoint)) {
spanEvent.setEndPoint(endPoint);
}
} else {
logger.info("unknown nextEvent:{}", nextEvent);
}
}
final int asyncEvent = pSpanEvent.getAsyncEvent();
spanEvent.setNextAsyncId(asyncEvent);
List<AnnotationBo> annotationList = buildAnnotationList(pSpanEvent.getAnnotationList());
spanEvent.setAnnotationBoList(annotationList);
if (pSpanEvent.hasExceptionInfo()) {
final PIntStringValue exceptionInfo = pSpanEvent.getExceptionInfo();
spanEvent.setExceptionInfo(exceptionInfo.getIntValue(), getExceptionMessage(exceptionInfo));
}
}
use of com.navercorp.pinpoint.grpc.trace.PIntStringValue in project pinpoint by naver.
the class GrpcAnnotationValueMapperTest method buildPAnnotationValue_IntString.
@Test
public void buildPAnnotationValue_IntString() {
IntStringValue intStringValue = new IntStringValue(1, "2");
PAnnotationValue container = mapper.buildPAnnotationValue(Annotations.of(1, intStringValue));
PIntStringValue pAnnotation = container.getIntStringValue();
Assert.assertEquals(pAnnotation.getIntValue(), 1);
Assert.assertEquals(pAnnotation.getStringValue().getValue(), "2");
}
Aggregations