diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java index 701550b9685b9e8de3190cc152e91d3c9e40e00a..81cde47c788514843bd5190e5386385ee34f897c 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java @@ -144,7 +144,12 @@ public class InstanceMetricEsUIDAO extends EsDAO implements IInstanceMetricUIDAO long errorCallTimes = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue(); long durationSum = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue(); long errorDurationSum = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue(); - responseTimeTrends.add((int)((durationSum - errorDurationSum) / (callTimes - errorCallTimes))); + long correctCallTimes = callTimes - errorCallTimes; + if (correctCallTimes != 0L) { + responseTimeTrends.add((int)((durationSum - errorDurationSum) / correctCallTimes)); + } else { + responseTimeTrends.add(0); + } } else { responseTimeTrends.add(0); }