package io.ebeaninternal.server.transaction;
Profiling information for a single transaction that has completed.
/**
* Profiling information for a single transaction that has completed.
*/
public class TransactionProfile {
private long startTime;
The profileId of the transaction (On @Transactional explicitly or can be automatically set by enhancement).
/**
* The profileId of the transaction (On @Transactional explicitly or can be automatically set by enhancement).
*/
private int profileId;
The total execution time of the transaction (for filtering out small/short transactions).
/**
* The total execution time of the transaction (for filtering out small/short transactions).
*/
private long totalMicros;
The binary encoding of the transaction profiling events.
/**
* The binary encoding of the transaction profiling events.
*/
private String data;
private Summary summary;
Create with profileId, total micros and encoded profile data.
/**
* Create with profileId, total micros and encoded profile data.
*/
public TransactionProfile(long startTime, int profileId) {
this.startTime = startTime;
this.profileId = profileId;
this.summary = new Summary();
}
Construct for JSON tools.
/**
* Construct for JSON tools.
*/
public TransactionProfile(){
}
Return the transaction start time.
/**
* Return the transaction start time.
*/
public long getStartTime() {
return startTime;
}
Return the transaction profileId.
/**
* Return the transaction profileId.
*/
public int getProfileId() {
return profileId;
}
Return the total transaction execution time in micros.
/**
* Return the total transaction execution time in micros.
*/
public long getTotalMicros() {
return totalMicros;
}
Return the profiling data in encoded form.
/**
* Return the profiling data in encoded form.
*/
public String getData() {
return data;
}
Set start time (for JSON tools).
/**
* Set start time (for JSON tools).
*/
public void setStartTime(long startTime) {
this.startTime = startTime;
}
Set profileId (for JSON tools).
/**
* Set profileId (for JSON tools).
*/
public void setProfileId(int profileId) {
this.profileId = profileId;
}
Set total micros (for JSON tools).
/**
* Set total micros (for JSON tools).
*/
public void setTotalMicros(long totalMicros) {
this.totalMicros = totalMicros;
}
Set raw data (for JSON tools).
/**
* Set raw data (for JSON tools).
*/
public void setData(String data) {
this.data = data;
}
public Summary getSummary() {
return summary;
}
public void setSummary(Summary summary) {
this.summary = summary;
}
public static class Summary {
public long queryMicros;
public long queryCount;
public long queryBeans;
public long queryMax;
public long persistMicros;
public long persistCount;
public long persistBeans;
public long persistOneCount;
public long commitMicros;
void addPersist(long micros, int beanCount) {
persistMicros += micros;
persistBeans += beanCount;
persistCount++;
if (beanCount == 1) {
persistOneCount++;
}
}
void addQuery(long micros, int beanCount) {
queryMax = Math.max(queryMax, micros);
queryMicros += micros;
queryBeans += beanCount;
queryCount++;
}
}
}