mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
125 lines
2.5 KiB
Java
125 lines
2.5 KiB
Java
package io.ebeaninternal.server.profile;
|
|
|
|
import io.ebean.meta.MetricType;
|
|
import io.ebean.metric.TimedMetricStats;
|
|
|
|
/**
|
|
* Snapshot of the current statistics for a Counter or TimeCounter.
|
|
*/
|
|
class DTimeMetricStats implements TimedMetricStats {
|
|
|
|
private final MetricType metricType;
|
|
|
|
private String name;
|
|
|
|
private String location;
|
|
|
|
private final long startTime;
|
|
|
|
private final long count;
|
|
|
|
private final long total;
|
|
|
|
private final long max;
|
|
|
|
private final long beanCount;
|
|
|
|
DTimeMetricStats(MetricType metricType, String name, long collectionStart, long count, long total, long max, long beanCount) {
|
|
this.metricType = metricType;
|
|
this.name = name;
|
|
this.startTime = collectionStart;
|
|
this.count = count;
|
|
this.total = total;
|
|
// collection is racy so sanitize the max value if it has not been set
|
|
// this most likely would happen when count = 1 so max = mean
|
|
this.max = max != Long.MIN_VALUE ? max : (count < 1 ? 0 : Math.round(total / count));
|
|
this.beanCount = beanCount;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
StringBuilder sb = new StringBuilder();
|
|
if (name != null) {
|
|
sb.append("name:").append(name).append(" ");
|
|
}
|
|
sb.append("count:").append(count)
|
|
.append(" total:").append(total)
|
|
.append(" max:").append(max)
|
|
.append(" beanCount:").append(beanCount);
|
|
if (location != null) {
|
|
sb.append(" loc:").append(location);
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
@Override
|
|
public void setLocation(String location) {
|
|
this.location = location;
|
|
}
|
|
|
|
@Override
|
|
public void setName(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
@Override
|
|
public MetricType getMetricType() {
|
|
return metricType;
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public String getLocation() {
|
|
return location;
|
|
}
|
|
|
|
/**
|
|
* Return the time the counter started statistics collection.
|
|
*/
|
|
@Override
|
|
public long getStartTime() {
|
|
return startTime;
|
|
}
|
|
|
|
/**
|
|
* Return the count of values collected.
|
|
*/
|
|
@Override
|
|
public long getCount() {
|
|
return count;
|
|
}
|
|
|
|
/**
|
|
* Return the total of all the values.
|
|
*/
|
|
@Override
|
|
public long getTotal() {
|
|
return total;
|
|
}
|
|
|
|
/**
|
|
* Return the Max value collected.
|
|
*/
|
|
@Override
|
|
public long getMax() {
|
|
return max;
|
|
}
|
|
|
|
/**
|
|
* Return the mean value rounded up.
|
|
*/
|
|
@Override
|
|
public long getMean() {
|
|
return (count < 1) ? 0L : Math.round((double)(total / count));
|
|
}
|
|
|
|
@Override
|
|
public long getBeanCount() {
|
|
return beanCount;
|
|
}
|
|
}
|