package com.ldbc.driver.runtime.metrics; import org.codehaus.jackson.annotate.JsonProperty; import java.util.concurrent.TimeUnit; public class ContinuousMetricSnapshot { @JsonProperty(value = "name") private String name; @JsonProperty(value = "unit") private TimeUnit unit; @JsonProperty(value = "count") private long count; @JsonProperty(value = "mean") private double mean; @JsonProperty(value = "min") private long min; @JsonProperty(value = "max") private long max; @JsonProperty(value = "50th_percentile") private long percentile50; @JsonProperty(value = "90th_percentile") private long percentile90; @JsonProperty(value = "95th_percentile") private long percentile95; @JsonProperty(value = "99th_percentile") private long percentile99; private ContinuousMetricSnapshot() { } ContinuousMetricSnapshot(String name, TimeUnit unit, long count, double mean, long min, long max, long percentile50, long percentile90, long percentile95, long percentile99) { this.name = name; this.unit = unit; this.count = count; this.mean = mean; this.min = min; this.max = max; this.percentile50 = percentile50; this.percentile90 = percentile90; this.percentile95 = percentile95; this.percentile99 = percentile99; } public String name() { return name; } public TimeUnit unit() { return unit; } public long count() { return count; } public double mean() { return mean; } public long min() { return min; } public long max() { return max; } public long percentile50() { return percentile50; } public long percentile90() { return percentile90; } public long percentile95() { return percentile95; } public long percentile99() { return percentile99; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ContinuousMetricSnapshot that = (ContinuousMetricSnapshot) o; if (count != that.count) return false; if (max != that.max) return false; if (Double.compare(that.mean, mean) != 0) return false; if (min != that.min) return false; if (percentile50 != that.percentile50) return false; if (percentile90 != that.percentile90) return false; if (percentile95 != that.percentile95) return false; if (percentile99 != that.percentile99) return false; if (name != null ? !name.equals(that.name) : that.name != null) return false; if (unit != that.unit) return false; return true; } @Override public int hashCode() { int result; long temp; result = name != null ? name.hashCode() : 0; result = 31 * result + (unit != null ? unit.hashCode() : 0); result = 31 * result + (int) (count ^ (count >>> 32)); temp = Double.doubleToLongBits(mean); result = 31 * result + (int) (temp ^ (temp >>> 32)); result = 31 * result + (int) (min ^ (min >>> 32)); result = 31 * result + (int) (max ^ (max >>> 32)); result = 31 * result + (int) (percentile50 ^ (percentile50 >>> 32)); result = 31 * result + (int) (percentile90 ^ (percentile90 >>> 32)); result = 31 * result + (int) (percentile95 ^ (percentile95 >>> 32)); result = 31 * result + (int) (percentile99 ^ (percentile99 >>> 32)); return result; } }