use of com.navercorp.pinpoint.grpc.trace.PAnnotation in project pinpoint by naver.
the class SpanClientMock method span.
public void span(int count) {
final int size = 1000;
final byte[] bytes = new byte[size];
for (int i = 0; i < size; i++) {
bytes[i] = (byte) i;
}
PAnnotationValue value = PAnnotationValue.newBuilder().setBinaryValue(ByteString.copyFrom(bytes)).build();
PAnnotation annotation = PAnnotation.newBuilder().setValue(value).build();
PSpanEvent spanEvent = PSpanEvent.newBuilder().addAnnotation(annotation).build();
AtomicLong counter = new AtomicLong();
service.execute(new Runnable() {
@Override
public void run() {
// StreamObserver<PSpanMessage> requestObserver = spanStub.sendSpan(responseObserver);
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
}
for (int i = 0; i < count; i++) {
final PSpan span = PSpan.newBuilder().setSpanId(i).addSpanEvent(spanEvent).build();
final PSpanMessage spanMessage = PSpanMessage.newBuilder().setSpan(span).build();
spanStream.onNext(spanMessage);
// requestObserver.onNext(spanMessage);
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e) {
}
// System.out.print("S");
}
spanStream.onCompleted();
// requestObserver.onCompleted();
}
});
}
use of com.navercorp.pinpoint.grpc.trace.PAnnotation in project pinpoint by naver.
the class GrpcSpanMessageConverter method buildPSpanEvent.
@VisibleForTesting
public PSpanEvent.Builder buildPSpanEvent(SpanEvent spanEvent) {
final PSpanEvent.Builder pSpanEvent = getSpanEventBuilder();
// tSpanEvent.setStartElapsed(spanEvent.getStartElapsed());
if (spanEvent.getElapsedTime() != 0) {
pSpanEvent.setEndElapsed(spanEvent.getElapsedTime());
}
pSpanEvent.setSequence(spanEvent.getSequence());
// tSpanEvent.setRpc(spanEvent.getRpc());
pSpanEvent.setServiceType(spanEvent.getServiceType());
// tSpanEvent.setAnnotations();
if (spanEvent.getDepth() != -1) {
pSpanEvent.setDepth(spanEvent.getDepth());
}
pSpanEvent.setApiId(spanEvent.getApiId());
final IntStringValue exceptionInfo = spanEvent.getExceptionInfo();
if (exceptionInfo != null) {
PIntStringValue pIntStringValue = buildPIntStringValue(exceptionInfo);
pSpanEvent.setExceptionInfo(pIntStringValue);
}
final PNextEvent nextEvent = buildNextEvent(spanEvent);
if (nextEvent != null) {
pSpanEvent.setNextEvent(nextEvent);
}
final AsyncId asyncIdObject = spanEvent.getAsyncIdObject();
if (asyncIdObject != null) {
pSpanEvent.setAsyncEvent(asyncIdObject.getAsyncId());
}
final List<Annotation<?>> annotations = spanEvent.getAnnotations();
if (CollectionUtils.hasLength(annotations)) {
final List<PAnnotation> pAnnotations = buildPAnnotation(annotations);
pSpanEvent.addAllAnnotation(pAnnotations);
}
return pSpanEvent;
}
use of com.navercorp.pinpoint.grpc.trace.PAnnotation in project pinpoint by naver.
the class GrpcSpanMessageConverter method buildPSpan.
@VisibleForTesting
PSpan buildPSpan(Span span) {
final PSpan.Builder pSpan = PSpan.newBuilder();
pSpan.setVersion(SpanVersion.TRACE_V2);
pSpan.setApplicationServiceType(applicationServiceType);
final TraceRoot traceRoot = span.getTraceRoot();
final TraceId traceId = traceRoot.getTraceId();
final PTransactionId transactionId = newTransactionId(traceId);
pSpan.setTransactionId(transactionId);
pSpan.setSpanId(traceId.getSpanId());
pSpan.setParentSpanId(traceId.getParentSpanId());
pSpan.setStartTime(span.getStartTime());
pSpan.setElapsed(span.getElapsedTime());
pSpan.setServiceType(span.getServiceType());
PAcceptEvent pAcceptEvent = newAcceptEvent(span);
pSpan.setAcceptEvent(pAcceptEvent);
pSpan.setFlag(traceId.getFlags());
Shared shared = span.getTraceRoot().getShared();
pSpan.setErr(shared.getErrorCode());
pSpan.setApiId(span.getApiId());
final IntStringValue exceptionInfo = span.getExceptionInfo();
if (exceptionInfo != null) {
PIntStringValue pIntStringValue = buildPIntStringValue(exceptionInfo);
pSpan.setExceptionInfo(pIntStringValue);
}
pSpan.setLoggingTransactionInfo(shared.getLoggingInfo());
final List<Annotation<?>> annotations = span.getAnnotations();
if (CollectionUtils.hasLength(annotations)) {
final List<PAnnotation> tAnnotations = buildPAnnotation(annotations);
pSpan.addAllAnnotation(tAnnotations);
}
this.spanProcessor.preProcess(span, pSpan);
final List<SpanEvent> spanEventList = span.getSpanEventList();
if (CollectionUtils.hasLength(spanEventList)) {
final List<PSpanEvent> pSpanEvents = buildPSpanEventList(spanEventList);
pSpan.addAllSpanEvent(pSpanEvents);
}
this.spanProcessor.postProcess(span, pSpan);
return pSpan.build();
}
use of com.navercorp.pinpoint.grpc.trace.PAnnotation in project pinpoint by naver.
the class GrpcSpanBinder method buildAnnotationList.
private List<AnnotationBo> buildAnnotationList(List<PAnnotation> pAnnotationList) {
if (CollectionUtils.isEmpty(pAnnotationList)) {
return Collections.emptyList();
}
List<AnnotationBo> boList = new ArrayList<>(pAnnotationList.size());
for (PAnnotation tAnnotation : pAnnotationList) {
final AnnotationBo annotationBo = newAnnotationBo(tAnnotation);
boList.add(annotationBo);
}
boList.sort(AnnotationComparator.INSTANCE);
return boList;
}
use of com.navercorp.pinpoint.grpc.trace.PAnnotation in project pinpoint by naver.
the class GrpcSpanMessageConverter method buildPAnnotation.
@VisibleForTesting
List<PAnnotation> buildPAnnotation(List<Annotation<?>> annotations) {
final List<PAnnotation> tAnnotationList = new ArrayList<>(annotations.size());
for (Annotation<?> annotation : annotations) {
final PAnnotation.Builder builder = getAnnotationBuilder();
builder.setKey(annotation.getKey());
final PAnnotationValue pAnnotationValue = grpcAnnotationValueMapper.buildPAnnotationValue(annotation);
if (pAnnotationValue != null) {
builder.setValue(pAnnotationValue);
}
PAnnotation pAnnotation = builder.build();
tAnnotationList.add(pAnnotation);
}
return tAnnotationList;
}
Aggregations