From 9c61d6b5472fcc67b85c1177e33c5d87004fb3b6 Mon Sep 17 00:00:00 2001 From: Pavol Mederly Date: Tue, 16 Jul 2019 18:17:03 +0200 Subject: [PATCH] Show task throughput --- .../IterativeInformationPanel.java | 36 +++++++++---------- .../localization/Midpoint.properties | 2 +- .../localization/Midpoint_en.properties | 2 +- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/currentState/IterativeInformationPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/currentState/IterativeInformationPanel.java index 37fd1c4622b..adecc6998dd 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/currentState/IterativeInformationPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/currentState/IterativeInformationPanel.java @@ -339,27 +339,25 @@ public String getObject() { }); add(currentObjectProcessedTime); - Label objectsTotal = new Label(ID_OBJECTS_TOTAL, new IModel() { - @Override - public String getObject() { - TaskCurrentStateDto dto = getModelObject(); - if (dto == null) { - return null; - } - IterativeTaskInformationType info = dto.getIterativeTaskInformationType(); - if (info == null) { - return null; - } - int objectsTotal = info.getTotalSuccessCount() + info.getTotalFailureCount(); - if (WALL_CLOCK_AVG_CATEGORIES.contains(dto.getTaskDto().getCategory())) { - Long avg = getWallClockAverage(dto, objectsTotal); - if (avg != null) { - return getString("TaskStatePanel.message.objectsTotal", - objectsTotal, avg); - } + Label objectsTotal = new Label(ID_OBJECTS_TOTAL, (IModel) () -> { + TaskCurrentStateDto dto = getModelObject(); + if (dto == null) { + return null; + } + IterativeTaskInformationType info = dto.getIterativeTaskInformationType(); + if (info == null) { + return null; + } + int objectsTotal1 = info.getTotalSuccessCount() + info.getTotalFailureCount(); + if (WALL_CLOCK_AVG_CATEGORIES.contains(dto.getTaskDto().getCategory())) { + Long avg = getWallClockAverage(dto, objectsTotal1); + if (avg != null) { + long throughput = avg != 0 ? 60000 / avg : 0; // TODO what if avg == 0? + return getString("TaskStatePanel.message.objectsTotal", + objectsTotal1, avg, throughput); } - return String.valueOf(objectsTotal); } + return String.valueOf(objectsTotal1); }); add(objectsTotal); } diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint.properties b/gui/admin-gui/src/main/resources/localization/Midpoint.properties index 30fef85d2f2..4e0a51de0cb 100755 --- a/gui/admin-gui/src/main/resources/localization/Midpoint.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint.properties @@ -3305,7 +3305,7 @@ TaskStatePanel.message.lastObjectProcessed={0} TaskStatePanel.message.node= - at node {0} TaskStatePanel.message.objectsProcessed={0} TaskStatePanel.message.objectsProcessedTime=(average time {1} ms, total processing time {0} seconds) -TaskStatePanel.message.objectsTotal={0} (wall clock average: {1} ms) +TaskStatePanel.message.objectsTotal={0} (wall clock average: {1} ms, throughput: {2} per minute) TaskStatePanel.message.timeInfoWithAgo={0} ({1} ago) TaskStatePanel.message.timeInfoWithDuration={0} (in {1} ms) TaskStatePanel.message.timeInfoWithDurationAndAgo={0} ({1} ago - in {2} ms) diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties b/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties index b3a9eff19a1..13864aea6ef 100644 --- a/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint_en.properties @@ -3294,7 +3294,7 @@ TaskStatePanel.message.lastObjectProcessed={0} TaskStatePanel.message.node= - at node {0} TaskStatePanel.message.objectsProcessed={0} TaskStatePanel.message.objectsProcessedTime=(average time {1} ms, total processing time {0} seconds) -TaskStatePanel.message.objectsTotal={0} (wall clock average: {1} ms) +TaskStatePanel.message.objectsTotal={0} (wall clock average: {1} ms, throughput: {2} per minute) TaskStatePanel.message.timeInfoWithAgo={0} ({1} ago) TaskStatePanel.message.timeInfoWithDuration={0} (in {1} ms) TaskStatePanel.message.timeInfoWithDurationAndAgo={0} ({1} ago - in {2} ms)