@Test public void nominalTest() { ElapsedTimeRecorder etr = new ElapsedTimeRecorder(); etr.record(etr, 100); etr.record(etr, 100); etr.record(etr, 120); etr.record(etr, 120); //should be 120 for 50% etr.record(etr, 130); etr.record(etr, 130); etr.record(etr, 400); etr.record(etr, 400); //this is an estimate so this value is ok assertEquals(128, ElapsedTimeRecorder.elapsedAtPercentile(etr, .5f)); }
public String toString() { return report(new StringBuilder()).toString(); }
@Override public void shutdown() { //long duration = System.currentTimeMillis()-start; //logger.trace("Client Bytes Written: {} kb/sec {} ",totalBytes, (8*totalBytes)/duration); if (logLatencyData) { ElapsedTimeRecorder etr = new ElapsedTimeRecorder(); int i = latencyRecordings.length; int c = 0; while (--i>=0) { if (null!=latencyRecordings[i]) { c++; etr.add(latencyRecordings[i]); } } logger.info("latency data for {} connections \n{}",c,etr); } }
@Test public void simpleEmpty() { ElapsedTimeRecorder etr = new ElapsedTimeRecorder(); assertEquals(0, etr.elapsedAtPercentile(etr, .5f)); }
private static void buildHistogramsAsNeeded(GraphManager graphManager, int stageId) { if (stageId >= graphManager.stageElapsed.length) { int maxArray = 1+graphManager.stageCounter.get(); //largestId plus 1 //Does this need to grow?? ElapsedTimeRecorder[] newHE = new ElapsedTimeRecorder[maxArray]; int i = maxArray; while (--i>=0) { newHE[i] = new ElapsedTimeRecorder(); } graphManager.stageElapsed = newHE; } }
if (null!=getStage(gm,i)) { if (GraphManager.monitorAll || (!GraphManager.hasNota(gm, i, GraphManager.MONITOR))) { long elapsedAtPercentile = ElapsedTimeRecorder.elapsedAtPercentile(gm.stageElapsed[i], percentile); if (debug) { logger.info("Stage {} Elap {} ns ",getStage(gm,i).stageId, ); if (ElapsedTimeRecorder.totalCount(gm.stageElapsed[i])>significantSampleCount) { RunningStdDev.sample(stdDev, elapsedAtPercentile); while (--i>=0) { if (GraphManager.monitorAll || (!GraphManager.hasNota(gm, i, GraphManager.MONITOR))) { if (ElapsedTimeRecorder.totalCount(gm.stageElapsed[i])>significantSampleCount) { if (ElapsedTimeRecorder.elapsedAtPercentile(gm.stageElapsed[i], percentile)>limit) { visitor.visit(getStage(gm,i));
public static long elapsedAtPercentile(GraphManager gm, int stageId, float pct) { return ElapsedTimeRecorder.elapsedAtPercentile(gm.stageElapsed[stageId], pct); }
public void recordArrivalTime(long time) { long sentTime = inFlightTimes[++inFlightTimeRespPos & maxInFlightMask]; if (sentTime>0) { long value = time - sentTime; if (value>=0 && value<MAX_HIST_VALUE) { //only record the good values ElapsedTimeRecorder.record(histRoundTrip, value); } } }
System.err.println(sleepETL.toString());
long usageCount = ElapsedTimeRecorder.totalCount(activeConnection.histogram()); if (0==usageCount) {
@Override public void startup() { etr = new ElapsedTimeRecorder(); formatter = new ISOTimeFormatterLowGC(); }
if (ElapsedTimeRecorder.totalCount(t.histogram())>100) { RunningStdDev.sample(stdDev, ElapsedTimeRecorder.elapsedAtPercentile(t.histogram(), .98));
public <A extends Appendable> A report(A target) { try { Appendables.appendValue(target.append("Total:"), totalCount).append("\n"); } catch (IOException e) { throw new RuntimeException(e); } Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .25f), " 25 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .50f), " 50 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .80f), " 80 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .90f), " 90 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .95f), " 95 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .98f), " 98 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .99f), " 99 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .999f), " 99.9 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .9999f), " 99.99 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .99999f), " 99.999 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, .999999f), " 99.9999 percentile\n"); Appendables.appendNearestTimeUnit(target, ElapsedTimeRecorder.elapsedAtPercentile(this, 1f), " max\n"); return target; }
@Test public void simpleTest() { ElapsedTimeRecorder etr = new ElapsedTimeRecorder(); etr.record(etr, 8); etr.record(etr, 8); etr.record(etr, 32); etr.record(etr, 32); etr.record(etr, 32); etr.record(etr, 32); assertEquals(32,etr.elapsedAtPercentile(etr, .5f)); //this is an estimate so this value is ok. assertEquals(16,etr.elapsedAtPercentile(etr, .16f)); }
sessionLookup[conSess.sessionId] = s; elapsedTime[i] = new ElapsedTimeRecorder();
etr.report(target).append("\n");
writeElapsed(target, ElapsedTimeRecorder.elapsedAtPercentile(m.stageElapsed[stage.stageId],(float)percentile));
@Test public void simpleFull() { ElapsedTimeRecorder etr = new ElapsedTimeRecorder(); etr.record(etr, 32); etr.record(etr, 32); //this is an estimate so this value is ok assertEquals(32, etr.elapsedAtPercentile(etr, 1f)); }
private void batchMessages(Pipe<RawDataSchema> output, int esitmate) { if ((!messageOpen) || (Pipe.outputStream(output).remaining() < (esitmate+(1<<12))) ) { if (messageOpen) { //add to end of each file, when there is room. if (Pipe.outputStream(output).remaining()>(1<<12)) { Pipe.outputStream(output).append("\n"); etr.report(Pipe.outputStream(output)); } DataOutputBlobWriter.closeLowLevelField(Pipe.outputStream(output)); Pipe.confirmLowLevelWrite(output, Pipe.sizeOf(output, RawDataSchema.MSG_CHUNKEDSTREAM_1)); Pipe.publishWrites(output); messageOpen=false; } Pipe.addMsgIdx(output, RawDataSchema.MSG_CHUNKEDSTREAM_1); Pipe.openOutputStream(output); messageOpen=true; } }