use of com.navercorp.pinpoint.common.profiler.util.TransactionId in project pinpoint by naver.
the class ScatterChartServiceImpl method selectScatterData.
@Override
public List<Dot> selectScatterData(List<TransactionId> transactionIdList, String applicationName, Filter<List<SpanBo>> filter) {
Objects.requireNonNull(transactionIdList, "transactionIdList");
Objects.requireNonNull(applicationName, "applicationName");
Objects.requireNonNull(filter, "filter");
final List<List<SpanBo>> traceList = traceDao.selectAllSpans(transactionIdList);
final List<Dot> result = new ArrayList<>();
for (List<SpanBo> trace : traceList) {
if (!filter.include(trace)) {
continue;
}
for (SpanBo span : trace) {
if (applicationName.equals(span.getApplicationId())) {
final TransactionId transactionId = span.getTransactionId();
final Dot dot = new Dot(transactionId, span.getCollectorAcceptTime(), span.getElapsed(), span.getErrCode(), span.getAgentId());
result.add(dot);
}
}
}
return result;
}
use of com.navercorp.pinpoint.common.profiler.util.TransactionId in project pinpoint by naver.
the class RecordFactoryTest method getException_check_argument.
@Test
public void getException_check_argument() {
final RecordFactory factory = newRecordFactory();
SpanBo spanBo = new SpanBo();
spanBo.setTransactionId(new TransactionId("test", 0, 0));
spanBo.setExceptionInfo(1, null);
Align align = new SpanAlign(spanBo);
Record exceptionRecord = factory.getException(0, 0, align);
Assert.assertNotNull(exceptionRecord.getArguments());
}
use of com.navercorp.pinpoint.common.profiler.util.TransactionId in project pinpoint by naver.
the class HbaseTraceDaoV2 method insert.
@Override
public boolean insert(final SpanBo spanBo) {
Objects.requireNonNull(spanBo, "spanBo");
if (logger.isDebugEnabled()) {
logger.debug("insert trace: {}", spanBo);
}
// Assert agentId
CollectorUtils.checkAgentId(spanBo.getAgentId());
// Assert applicationName
CollectorUtils.checkApplicationName(spanBo.getApplicationId());
long acceptedTime = spanBo.getCollectorAcceptTime();
TransactionId transactionId = spanBo.getTransactionId();
final byte[] rowKey = this.rowKeyEncoder.encodeRowKey(transactionId);
final Put put = new Put(rowKey, acceptedTime);
this.spanSerializer.serialize(spanBo, put, null);
TableName traceTableName = tableNameProvider.getTableName(descriptor.getTable());
return writer.write(traceTableName, put);
}
use of com.navercorp.pinpoint.common.profiler.util.TransactionId in project pinpoint by naver.
the class HbaseTraceDaoV2 method insertSpanChunk.
@Override
public void insertSpanChunk(SpanChunkBo spanChunkBo) {
Objects.requireNonNull(spanChunkBo, "spanChunkBo");
TransactionId transactionId = spanChunkBo.getTransactionId();
final byte[] rowKey = this.rowKeyEncoder.encodeRowKey(transactionId);
final long acceptedTime = spanChunkBo.getCollectorAcceptTime();
final Put put = new Put(rowKey, acceptedTime);
final List<SpanEventBo> spanEventBoList = spanChunkBo.getSpanEventBoList();
if (CollectionUtils.isEmpty(spanEventBoList)) {
return;
}
this.spanChunkSerializer.serialize(spanChunkBo, put, null);
if (!put.isEmpty()) {
TableName traceTableName = tableNameProvider.getTableName(descriptor.getTable());
writer.write(traceTableName, put);
}
}
use of com.navercorp.pinpoint.common.profiler.util.TransactionId 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;
}
Aggregations