/* * Copyright 2014 NAVER Corp. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.navercorp.pinpoint.web.vo; import java.util.ArrayList; import java.util.List; import com.navercorp.pinpoint.common.server.bo.SpanBo; import com.navercorp.pinpoint.common.util.TransactionIdUtils; /** * @author emeroad */ public class BusinessTransaction { private final List<Trace> traces = new ArrayList<>(); private final String rpc; private int calls = 0; private int error = 0; private long totalTime = 0; private long maxTime = 0; private long minTime = 0; public BusinessTransaction(SpanBo span) { if (span == null) { throw new NullPointerException("span must not be null"); } this.rpc = span.getRpc(); long elapsed = span.getElapsed(); totalTime = maxTime = minTime = elapsed; String transactionIdString = TransactionIdUtils.formatString(span.getTransactionId()); Trace trace = new Trace(transactionIdString, elapsed, span.getCollectorAcceptTime(), span.getErrCode()); this.traces.add(trace); calls++; if(span.getErrCode() > 0) { error++; } } public void add(SpanBo span) { if (span == null) { throw new NullPointerException("span must not be null"); } long elapsed = span.getElapsed(); totalTime += elapsed; if (maxTime < elapsed) { maxTime = elapsed; } if (minTime > elapsed) { minTime = elapsed; } String transactionIdString = TransactionIdUtils.formatString(span.getTransactionId()); Trace trace = new Trace(transactionIdString, elapsed, span.getCollectorAcceptTime(), span.getErrCode()); this.traces.add(trace); if(span.getErrCode() > 0) { error++; } //if (span.getParentSpanId() == -1) { calls++; //} } public String getRpc() { return rpc; } public List<Trace> getTraces() { return traces; } public int getCalls() { return calls; } public long getTotalTime() { return totalTime; } public long getMaxTime() { return maxTime; } public long getMinTime() { return minTime; } public int getError() { return error; } }