diff --git a/dev/cosbench-core/src/com/intel/cosbench/exporter/AbstractLatencyExporter.java b/dev/cosbench-core/src/com/intel/cosbench/exporter/AbstractLatencyExporter.java index c9f065d9..b7771a47 100644 --- a/dev/cosbench-core/src/com/intel/cosbench/exporter/AbstractLatencyExporter.java +++ b/dev/cosbench-core/src/com/intel/cosbench/exporter/AbstractLatencyExporter.java @@ -55,6 +55,8 @@ public void export(Writer writer) throws IOException { accs = new int[metricsNum]; for (Metrics metrics : workload.getReport()) { int sum = 0; + if(metrics.getLatency() == null) + continue; int[] data = metrics.getLatency().getHistoData(); for (int idx = 0; idx < size; idx++) sum += data[idx]; diff --git a/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVLatencyExporter.java b/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVLatencyExporter.java index b09075e3..5e8814dc 100644 --- a/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVLatencyExporter.java +++ b/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVLatencyExporter.java @@ -79,7 +79,7 @@ protected void writeHistogram(Writer writer, int idx) throws IOException { for (StageInfo stage : workload.getStageInfos()) { for (Metrics metrics : stage.getReport()) { metricsIdx++; - if (!metrics.getOpName().equals(metrics.getSampleType())) { + if (!metrics.getOpName().equals(metrics.getSampleType()) || metrics.getLatency() == null) { continue; /*skip for special work*/ } int count = metrics.getLatency().getHistoData()[idx]; diff --git a/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVMatrixExporter.java b/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVMatrixExporter.java index ac5a1a06..b920cb38 100644 --- a/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVMatrixExporter.java +++ b/dev/cosbench-core/src/com/intel/cosbench/exporter/CSVMatrixExporter.java @@ -102,12 +102,22 @@ protected void writeMetrics(Writer writer, StageInfo stage, private static void writeLatencyInfo(StringBuilder buffer, Histogram latency) throws IOException { - writePercentileRT(buffer, latency.get_60()); - writePercentileRT(buffer, latency.get_80()); - writePercentileRT(buffer, latency.get_90()); - writePercentileRT(buffer, latency.get_95()); - writePercentileRT(buffer, latency.get_99()); - writePercentileRT(buffer, latency.get_100()); + if(latency == null) { + writePercentileRT(buffer, null); + writePercentileRT(buffer, null); + writePercentileRT(buffer, null); + writePercentileRT(buffer, null); + writePercentileRT(buffer, null); + writePercentileRT(buffer, null); + }else { + writePercentileRT(buffer, latency.get_60()); + writePercentileRT(buffer, latency.get_80()); + writePercentileRT(buffer, latency.get_90()); + writePercentileRT(buffer, latency.get_95()); + writePercentileRT(buffer, latency.get_99()); + writePercentileRT(buffer, latency.get_100()); + } + } private static void writePercentileRT(StringBuilder buffer, long[] resTime) {