You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2018/10/03 19:26:47 UTC
svn commit: r1842752 - in /uima/uima-ducc/trunk:
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/
uima-ducc-container/src/main/java/org/apache/uima/ducc/conta...
Author: degenaro
Date: Wed Oct 3 19:26:47 2018
New Revision: 1842752
URL: http://svn.apache.org/viewvc?rev=1842752&view=rev
Log:
UIMA-5880 DUCC Web Server (WS) display of Tasks column on Job Performance tab
Modified:
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IJobPerformanceSummary.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummary.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceMetricsSummaryItem.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/UimaStatistic.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/ViewJobPerformanceSummary.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualInfo.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualKeeper.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryInfo.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryKeeper.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualInfo.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualKeeper.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryInfo.java
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryKeeper.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/job.details.table.performance.jsp
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IJobPerformanceSummary.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IJobPerformanceSummary.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IJobPerformanceSummary.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IJobPerformanceSummary.java Wed Oct 3 19:26:47 2018
@@ -35,6 +35,9 @@ public interface IJobPerformanceSummary
public long getAnalysisTimeMax();
public void setAnalysisTimeMax(long value);
+ public long getAnalysisTasks();
+ public void setAnalysisTasks(long value);
+
public long getNumProcessed();
public void setNumProcessed(long value);
}
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummary.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummary.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummary.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummary.java Wed Oct 3 19:26:47 2018
@@ -30,7 +30,8 @@ public class JobPerformanceSummary imple
private AtomicLong analysisTimeMin = new AtomicLong(-1);
private AtomicLong analysisTimeMax = new AtomicLong(-1);
-
+
+ private AtomicLong analysisTasks = new AtomicLong(0);
public String getName() {
return name;
@@ -78,7 +79,17 @@ public class JobPerformanceSummary imple
public void setAnalysisTimeMax(long value) {
analysisTimeMax.set(value);
}
+
+
+ public long getAnalysisTasks() {
+ return analysisTasks.get();
+ }
+
+ public void setAnalysisTasks(long value) {
+ analysisTasks.set(value);
+ }
+
public long getNumProcessed() {
return numProcessed.get();
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceMetricsSummaryItem.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceMetricsSummaryItem.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceMetricsSummaryItem.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceMetricsSummaryItem.java Wed Oct 3 19:26:47 2018
@@ -36,6 +36,8 @@ public class PerformanceMetricsSummaryIt
private AtomicLong analysisTimeMin = new AtomicLong(-1);
private AtomicLong analysisTimeMax = new AtomicLong(-1);
+ private AtomicLong analysisTasks = new AtomicLong(0);
+
public PerformanceMetricsSummaryItem(String name, String uniqueName) {
this.name = name;
this.uniqueName = uniqueName;
@@ -46,7 +48,8 @@ public class PerformanceMetricsSummaryIt
long analysisTime,
long numProcessed,
long analysisTimeMin,
- long analysisTimeMax
+ long analysisTimeMax,
+ long analysisTasks
)
{
this.name = name;
@@ -55,6 +58,7 @@ public class PerformanceMetricsSummaryIt
this.numProcessed.set(numProcessed);
this.analysisTimeMin.set(analysisTimeMin);
this.analysisTimeMax.set(analysisTimeMax);
+ this.analysisTasks.set(analysisTasks);
}
public String getName() {
@@ -99,6 +103,10 @@ public class PerformanceMetricsSummaryIt
return analysisTimeMax.get();
}
+ public long getAnalysisTasks() {
+ return analysisTasks.get();
+ }
+
public long getNumProcessed() {
return numProcessed.get();
}
@@ -135,6 +143,10 @@ public class PerformanceMetricsSummaryIt
return analysisTime.addAndGet(delta);
}
+ public long addAndGetAnalysisTasks(long delta) {
+ return analysisTasks.addAndGet(delta);
+ }
+
public long addAndGetNumProcessed(long delta) {
return numProcessed.addAndGet(delta);
}
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java Wed Oct 3 19:26:47 2018
@@ -46,7 +46,7 @@ public class PerformanceSummaryReader ex
for(Entry<String, JobPerformanceSummary> entry : entries) {
String key = entry.getKey();
IJobPerformanceSummary jps = entry.getValue();
- PerformanceMetricsSummaryItem value = new PerformanceMetricsSummaryItem(jps.getName(),jps.getUniqueName(),jps.getAnalysisTime(),jps.getNumProcessed(),jps.getAnalysisTimeMin(),jps.getAnalysisTimeMax());
+ PerformanceMetricsSummaryItem value = new PerformanceMetricsSummaryItem(jps.getName(),jps.getUniqueName(),jps.getAnalysisTime(),jps.getNumProcessed(),jps.getAnalysisTimeMin(),jps.getAnalysisTimeMax(),jps.getAnalysisTasks());
map.putItem(key, value);
}
return map;
@@ -71,7 +71,7 @@ public class PerformanceSummaryReader ex
String key = entry.getKey();
IJobPerformanceSummary jps = entry.getValue();
PerformanceMetricsSummaryItem value = new PerformanceMetricsSummaryItem(jps.getName(), jps.getUniqueName(),
- jps.getAnalysisTime(), jps.getNumProcessed(), jps.getAnalysisTimeMin(), jps.getAnalysisTimeMax());
+ jps.getAnalysisTime(), jps.getNumProcessed(), jps.getAnalysisTimeMin(), jps.getAnalysisTimeMax(), jps.getAnalysisTasks());
map.putItem(key, value);
}
return map;
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/UimaStatistic.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/UimaStatistic.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/UimaStatistic.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/UimaStatistic.java Wed Oct 3 19:26:47 2018
@@ -25,14 +25,16 @@ public class UimaStatistic implements Co
private long analysisTime;
private long analysisMinTime;
private long analysisMaxTime;
+ private long analysisTasks;
private String longName;
- public UimaStatistic (String shortName, String longName, long analysisTime, long anMinTime, long anMaxTime) {
+ public UimaStatistic (String shortName, String longName, long analysisTime, long anMinTime, long anMaxTime, long anTasks) {
this.shortName = shortName;
this.analysisTime = analysisTime;
this.longName = longName;
this.analysisMinTime = anMinTime;
this.analysisMaxTime = anMaxTime;
+ this.analysisTasks = anTasks;
}
@@ -63,6 +65,10 @@ public class UimaStatistic implements Co
return analysisMaxTime;
}
+ public long getAnalysisTasks() {
+ return analysisTasks;
+ }
+
public String getLongName() {
return longName;
}
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/ViewJobPerformanceSummary.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/ViewJobPerformanceSummary.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/ViewJobPerformanceSummary.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/ViewJobPerformanceSummary.java Wed Oct 3 19:26:47 2018
@@ -50,11 +50,12 @@ public class ViewJobPerformanceSummary {
long anTime = entry.getValue().getAnalysisTime();
long anMinTime = entry.getValue().getAnalysisTimeMin();
long anMaxTime = entry.getValue().getAnalysisTimeMax();
+ long anTasks = entry.getValue().getAnalysisTasks();
analysisTime += anTime;
if (posName > 0) {
String shortname = key.substring(posName+1);
UimaStatistic stat = new UimaStatistic(shortname,
- entry.getKey(), anTime, anMinTime, anMaxTime);
+ entry.getKey(), anTime, anMinTime, anMaxTime, anTasks);
uimaStats.add(stat);
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java Wed Oct 3 19:26:47 2018
@@ -19,8 +19,6 @@
package org.apache.uima.ducc.container.jd.fsm.wi;
import java.util.List;
-import java.util.Map.Entry;
-import java.util.Properties;
import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
import org.apache.uima.ducc.container.common.MessageBuffer;
@@ -104,6 +102,7 @@ public class ActionEnd extends ActionEnd
private String keyName = "name";
private String keyUniqueName = "uniqueName";
private String keyAnalysisTime = "analysisTime";
+ private String keyAnalysisTasks = "analysisTasks";
private boolean oldFormat = false;
@@ -131,80 +130,60 @@ public class ActionEnd extends ActionEnd
String serializedPerformance = metaCas.getPerformanceMetrics();
try {
performanceMetrics = deserializer.deserialize(serializedPerformance);
+ if(performanceMetrics == null) {
+ logger.debug(location, ILogger.null_id, "seqNo=", wi.getSeqNo(), "performanceMetrics=", performanceMetrics); // null
+ }
+ else if(performanceMetrics.isEmpty()) {
+ logger.debug(location, ILogger.null_id, "seqNo=", wi.getSeqNo(), "performanceMetrics=", performanceMetrics); // empty
+ }
} catch( Exception e) {
logger.error(location, ILogger.null_id, e);
}
-
if(performanceMetrics != null && !performanceMetrics.isEmpty()) {
- //List<Properties> list = performanceMetrics.get();
- //if(list != null) {
- int size = 0;
- //if(list != null) {
- //size = list.size();
- size = performanceMetrics.size();
- JobDriver jd = JobDriver.getInstance();
- String logdir = jd.getLogDir();
- String seqNo = ""+wi.getSeqNo();
- IWorkItemPerformanceIndividualKeeper wipik = new WorkItemPerformanceIndividualKeeper(logdir, seqNo);
- IWorkItemPerformanceSummaryKeeper wipsk = jd.getWorkItemPerformanceSummaryKeeper();
- wipsk.count();
- long total_time = 0;
- //for(Properties properties : list) {
- for( PerformanceMetrics pm : performanceMetrics) {
- /*
- String name = properties.getProperty(keyName);
- String uniqueName = normalizeUniqueName(properties.getProperty(keyUniqueName));
- String analysisTime = properties.getProperty(keyAnalysisTime);
- */
- String name = pm.getName();
- String uniqueName = normalizeUniqueName(pm.getUniqueName());
- long time = pm.getAnalysisTime();
- //long time = 0;
- /*
- try {
- time = Long.parseLong(analysisTime);
- }
- catch(Exception e) {
- logger.error(location, ILogger.null_id, e);
- }
- */
- if(time < 0) {
-// String text = "seqNo="+seqNo+" "+"time="+time+" "+"analysisTime="+analysisTime+" "+"uniqueName="+uniqueName;
- String text = "seqNo="+seqNo+" "+"time="+time+" "+"analysisTime="+time+" "+"uniqueName="+uniqueName;
- logger.warn(location, ILogger.null_id, text);
- }
- wipik.dataAdd(name, uniqueName, time);
- wipsk.dataAdd(name, uniqueName, time);
- //for(Entry<Object, Object> entry : properties.entrySet()) {
- //String key = (String) entry.getKey();
- //String value = (String) entry.getValue();
- MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
-/*
- mb.append(Standardize.Label.key.get()+key);
- mb.append(Standardize.Label.value.get()+value);
-*/
- mb.append(Standardize.Label.key.get()+"name");
- mb.append(Standardize.Label.value.get()+name);
-
- mb.append(Standardize.Label.key.get()+"uniqueName");
- mb.append(Standardize.Label.value.get()+uniqueName);
-
- mb.append(Standardize.Label.key.get()+"analysisTime");
- mb.append(Standardize.Label.value.get()+time);
-
- logger.debug(location, ILogger.null_id, mb.toString());
- //}
- total_time += time;
- }
- wipik.publish();
- // Add the aggregate values as if a no-name delegate
- wipsk.dataAdd("TOTALS", "", total_time);
- //}
+ int size = 0;
+ size = performanceMetrics.size();
+ logger.debug(location, ILogger.null_id, "seqNo=", wi.getSeqNo(), "performanceMetrics.size=", size);
+ JobDriver jd = JobDriver.getInstance();
+ String logdir = jd.getLogDir();
+ String seqNo = ""+wi.getSeqNo();
+ IWorkItemPerformanceIndividualKeeper wipik = new WorkItemPerformanceIndividualKeeper(logdir, seqNo);
+ IWorkItemPerformanceSummaryKeeper wipsk = jd.getWorkItemPerformanceSummaryKeeper();
+ wipsk.count();
+ long total_time = 0;
+ long total_tasks = 0;
+ //for(Properties properties : list) {
+ for(PerformanceMetrics pm : performanceMetrics) {
+ String name = pm.getName();
+ String uniqueName = normalizeUniqueName(pm.getUniqueName());
+ long time = pm.getAnalysisTime();
+ long tasks = pm.getNumberOfTasksProcessed();
+ logger.debug(location, ILogger.null_id, "seqNo=", seqNo, "name=", name, "uniqueName=", uniqueName, "time=", time, "tasks=", tasks);
+ if(time < 0) {
+ String text = "seqNo="+seqNo+" "+"time="+time+" "+"analysisTime="+time+" "+"uniqueName="+uniqueName;
+ logger.warn(location, ILogger.null_id, text);
+ }
+ wipik.dataAdd(name, uniqueName, time, tasks);
+ wipsk.dataAdd(name, uniqueName, time, tasks);
MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
- mb.append(Standardize.Label.size.get()+size);
+ mb.append(Standardize.Label.key.get()+keyName);
+ mb.append(Standardize.Label.value.get()+name);
+ mb.append(Standardize.Label.key.get()+keyUniqueName);
+ mb.append(Standardize.Label.value.get()+uniqueName);
+ mb.append(Standardize.Label.key.get()+keyAnalysisTime);
+ mb.append(Standardize.Label.value.get()+time);
+ mb.append(Standardize.Label.key.get()+keyAnalysisTasks);
+ mb.append(Standardize.Label.value.get()+tasks);
logger.debug(location, ILogger.null_id, mb.toString());
+ total_time += time;
+ total_tasks += tasks;
}
- //}
+ wipik.publish();
+ // Add the aggregate values as if a no-name delegate
+ wipsk.dataAdd("TOTALS", "", total_time, total_tasks);
+ MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+ mb.append(Standardize.Label.size.get()+size);
+ logger.debug(location, ILogger.null_id, mb.toString());
+ }
}
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualInfo.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualInfo.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualInfo.java Wed Oct 3 19:26:47 2018
@@ -23,4 +23,5 @@ public interface IWorkItemPerformanceInd
public String getName();
public String getUniqueName();
public double getTime();
+ public double getTasks();
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualKeeper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualKeeper.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualKeeper.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceIndividualKeeper.java Wed Oct 3 19:26:47 2018
@@ -23,6 +23,6 @@ import java.util.List;
public interface IWorkItemPerformanceIndividualKeeper {
public List<IWorkItemPerformanceIndividualInfo> dataGet();
- public void dataAdd(String name, String uniqueName, long millis);
+ public void dataAdd(String name, String uniqueName, long millis, long tasks);
public void publish();
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryInfo.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryInfo.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryInfo.java Wed Oct 3 19:26:47 2018
@@ -28,4 +28,5 @@ public interface IWorkItemPerformanceSum
public double getAvg();
public double getMin();
public double getMax();
+ public double getTasks();
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryKeeper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryKeeper.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryKeeper.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/IWorkItemPerformanceSummaryKeeper.java Wed Oct 3 19:26:47 2018
@@ -24,6 +24,6 @@ public interface IWorkItemPerformanceSum
public List<IWorkItemPerformanceSummaryInfo> dataGet();
public void count();
- public void dataAdd(String name, String uniqueName, long millis);
+ public void dataAdd(String name, String uniqueName, long millis, long tasks);
public void publish();
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualInfo.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualInfo.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualInfo.java Wed Oct 3 19:26:47 2018
@@ -24,16 +24,19 @@ public class WorkItemPerformanceIndividu
String uniqueName = null;
double count = 0;
double time = 0;
+ double tasks = 0;
public WorkItemPerformanceIndividualInfo(
String name,
String uniquename,
- double time
+ double time,
+ double tasks
)
{
setName(name);
setUniqueName(uniquename);
setTime(time);
+ setTasks(tasks);
}
private void setName(String value) {
@@ -62,5 +65,13 @@ public class WorkItemPerformanceIndividu
public double getTime() {
return time;
}
-
+
+ private void setTasks(double value) {
+ tasks = value;
+ }
+
+ @Override
+ public double getTasks() {
+ return tasks;
+ }
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualKeeper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualKeeper.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualKeeper.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceIndividualKeeper.java Wed Oct 3 19:26:47 2018
@@ -49,7 +49,15 @@ public class WorkItemPerformanceIndividu
private String logFolder = null;
private String wiNo = null;
- private ConcurrentHashMap<PerfKey, SynchronizedStats> map = new ConcurrentHashMap<PerfKey, SynchronizedStats>();
+ private class PerfStats {
+ SynchronizedStats ss = null;
+ long tasks = 0;
+ public PerfStats() {
+ ss = new SynchronizedStats();
+ }
+ }
+
+ private ConcurrentHashMap<PerfKey, PerfStats> map = new ConcurrentHashMap<PerfKey, PerfStats>();
public WorkItemPerformanceIndividualKeeper(String logDir, String wiNo) {
if(isIndividualWorkItemPerformance) {
@@ -72,15 +80,18 @@ public class WorkItemPerformanceIndividu
public List<IWorkItemPerformanceIndividualInfo> dataGet() {
List<IWorkItemPerformanceIndividualInfo> list = new ArrayList<IWorkItemPerformanceIndividualInfo>();
if(isIndividualWorkItemPerformance) {
- for(Entry<PerfKey, SynchronizedStats> entry : map.entrySet()) {
+ for(Entry<PerfKey, PerfStats> entry : map.entrySet()) {
String name = entry.getKey().getName();
String uniqueName = entry.getKey().getUniqueName();
- SynchronizedStats stats = entry.getValue();
+ PerfStats perfStats = entry.getValue();
+ SynchronizedStats stats = perfStats.ss;
+ long tasks = perfStats.tasks;
double time = stats.getSum();
IWorkItemPerformanceIndividualInfo item = new WorkItemPerformanceIndividualInfo(
name,
uniqueName,
- time
+ time,
+ tasks
);
list.add(item);
}
@@ -89,25 +100,29 @@ public class WorkItemPerformanceIndividu
}
@Override
- public void dataAdd(String name, String uniqueName, long time) {
+ public void dataAdd(String name, String uniqueName, long time, long tasks) {
String location = "dataAdd";
if(isIndividualWorkItemPerformance) {
try {
// name
PerfKey perfKey = new PerfKey(name, uniqueName);
if(!map.containsKey(perfKey)) {
- map.putIfAbsent(perfKey, new SynchronizedStats());
+ map.putIfAbsent(perfKey, new PerfStats());
}
+ PerfStats perfStats = map.get(perfKey);
// stats
- SynchronizedStats stats = map.get(perfKey);
+ SynchronizedStats stats = perfStats.ss;
stats.addValue(time);
// sum
long lTimeSum = (long)stats.getSum();
String timeSum = FormatHelper.duration(lTimeSum,Precision.Tenths);
+ // tasks
+ perfStats.tasks = tasks;
// log
MessageBuffer mb = new MessageBuffer();
mb.append(Standardize.Label.name.get()+name);
mb.append(Standardize.Label.sum.get()+timeSum);
+ mb.append(Standardize.Label.tasks.get()+tasks);
if(lTimeSum < 0) {
logger.warn(location, ILogger.null_id, mb.toString());
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryInfo.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryInfo.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryInfo.java Wed Oct 3 19:26:47 2018
@@ -28,6 +28,7 @@ public class WorkItemPerformanceSummaryI
double avg = 0;
double min = 0;
double max = 0;
+ double tasks = 0;
public WorkItemPerformanceSummaryInfo(
String name,
@@ -37,7 +38,8 @@ public class WorkItemPerformanceSummaryI
double pctOfTime,
double avg,
double min,
- double max
+ double max,
+ double tasks
)
{
setName(name);
@@ -48,6 +50,7 @@ public class WorkItemPerformanceSummaryI
setAvg(avg);
setMin(min);
setMax(max);
+ setTasks(tasks);
}
private void setName(String value) {
@@ -121,5 +124,13 @@ public class WorkItemPerformanceSummaryI
public double getMax() {
return max;
}
+
+ private void setTasks(double value) {
+ tasks = value;
+ }
+ @Override
+ public double getTasks() {
+ return tasks;
+ }
}
Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryKeeper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryKeeper.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryKeeper.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/perf/WorkItemPerformanceSummaryKeeper.java Wed Oct 3 19:26:47 2018
@@ -47,7 +47,15 @@ public class WorkItemPerformanceSummaryK
private AtomicLong count = new AtomicLong(0);
private AtomicLong total = new AtomicLong(0);
- private ConcurrentHashMap<PerfKey, SynchronizedStats> map = new ConcurrentHashMap<PerfKey, SynchronizedStats>();
+ private class PerfStats {
+ SynchronizedStats ss = null;
+ long tasks = 0;
+ public PerfStats() {
+ ss = new SynchronizedStats();
+ }
+ }
+
+ private ConcurrentHashMap<PerfKey, PerfStats> map = new ConcurrentHashMap<PerfKey, PerfStats>();
public WorkItemPerformanceSummaryKeeper(String logDir) {
setLogDir(logDir);
@@ -60,10 +68,11 @@ public class WorkItemPerformanceSummaryK
@Override
public List<IWorkItemPerformanceSummaryInfo> dataGet() {
List<IWorkItemPerformanceSummaryInfo> list = new ArrayList<IWorkItemPerformanceSummaryInfo>();
- for(Entry<PerfKey, SynchronizedStats> entry : map.entrySet()) {
+ for(Entry<PerfKey, PerfStats> entry : map.entrySet()) {
String name = entry.getKey().getName();
String uniqueName = entry.getKey().getUniqueName();
- SynchronizedStats stats = entry.getValue();
+ PerfStats perfStats = entry.getValue();
+ SynchronizedStats stats = perfStats.ss;
double count = stats.getNum();
double time = stats.getSum();
double pctOfTime = 0;
@@ -73,6 +82,7 @@ public class WorkItemPerformanceSummaryK
double avg = stats.getMean();
double min = stats.getMin();
double max = stats.getMax();
+ long tasks = perfStats.tasks;
IWorkItemPerformanceSummaryInfo item = new WorkItemPerformanceSummaryInfo(
name,
uniqueName,
@@ -81,7 +91,8 @@ public class WorkItemPerformanceSummaryK
pctOfTime,
avg,
min,
- max
+ max,
+ tasks
);
list.add(item);
}
@@ -94,16 +105,17 @@ public class WorkItemPerformanceSummaryK
}
@Override
- public void dataAdd(String name, String uniqueName, long time) {
+ public void dataAdd(String name, String uniqueName, long time, long tasks) {
String location = "dataAdd";
try {
// name
PerfKey perfKey = new PerfKey(name, uniqueName);
if(!map.containsKey(perfKey)) {
- map.putIfAbsent(perfKey, new SynchronizedStats());
+ map.putIfAbsent(perfKey, new PerfStats());
}
+ PerfStats perfStats = map.get(perfKey);
// stats
- SynchronizedStats stats = map.get(perfKey);
+ SynchronizedStats stats = perfStats.ss;
stats.addValue(time);
total.addAndGet(time);
// sum
@@ -118,6 +130,8 @@ public class WorkItemPerformanceSummaryK
// max
long lTimeMax = (long)stats.getMax();
String timeMax = FormatHelper.duration(lTimeMax,Precision.Tenths);
+ // tasks
+ perfStats.tasks += tasks;
// log
MessageBuffer mb = new MessageBuffer();
mb.append(Standardize.Label.name.get()+name);
@@ -127,6 +141,7 @@ public class WorkItemPerformanceSummaryK
mb.append(Standardize.Label.max.get()+timeMax);
mb.append(Standardize.Label.count.get()+count.get());
mb.append(Standardize.Label.total.get()+total.get());
+ mb.append(Standardize.Label.tasks.get()+perfStats.tasks);
if((lTimeSum < 0)||(lTimeAvg < 0)||(lTimeMin < 0)||(lTimeMax < 0)) {
logger.warn(location, ILogger.null_id, mb.toString());
}
@@ -146,7 +161,8 @@ public class WorkItemPerformanceSummaryK
(long)wipsi.getTime(),
(long)wipsi.getCount(),
(long)wipsi.getMin(),
- (long)wipsi.getMax()
+ (long)wipsi.getMax(),
+ (long)wipsi.getTasks()
);
return retVal;
}
@@ -159,6 +175,7 @@ public class WorkItemPerformanceSummaryK
for(IWorkItemPerformanceSummaryInfo wipsi : list) {
PerformanceMetricsSummaryItem item = create(wipsi);
JobPerformanceSummary jps = new JobPerformanceSummary();
+ jps.setAnalysisTasks(item.getAnalysisTasks());
jps.setAnalysisTime(item.getAnalysisTime());
jps.setAnalysisTimeMax(item.getAnalysisTimeMax());
jps.setAnalysisTimeMin(item.getAnalysisTimeMin());
@@ -166,6 +183,14 @@ public class WorkItemPerformanceSummaryK
jps.setName(item.getName());
jps.setUniqueName(item.getUniqueName());
map.put(jps.getUniqueName(), jps);
+ // log
+ MessageBuffer mb = new MessageBuffer();
+ mb.append(Standardize.Label.name.get()+item.getName());
+ mb.append(Standardize.Label.sum.get()+item.getAnalysisTime());
+ mb.append(Standardize.Label.min.get()+item.getAnalysisTimeMin());
+ mb.append(Standardize.Label.max.get()+item.getAnalysisTimeMax());
+ mb.append(Standardize.Label.tasks.get()+item.getAnalysisTasks());
+ logger.debug(location, ILogger.null_id, mb.toString());
}
Integer casCount = new Integer((int)count.get());
JobPerformanceSummaryData data = new JobPerformanceSummaryData(map,casCount);
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Wed Oct 3 19:26:47 2018
@@ -1494,6 +1494,25 @@ public class DuccHandler extends DuccAbs
duccLogger.trace(methodName, null, messages.fetch("exit"));
}
+ private void dumpMap(PerformanceMetricsSummaryMap map) {
+ String location = "dumpMap";
+ if(map != null) {
+ if(map.size() == 0) {
+ duccLogger.debug(location, jobid, "map=empty");
+ }
+ else {
+ duccLogger.debug(location, jobid, "map.size="+map.size());
+ for (Entry<String, PerformanceMetricsSummaryItem> entry : map.entrySet()) {
+ PerformanceMetricsSummaryItem item = entry.getValue();
+ duccLogger.debug(location, jobid, "displayName=", item.getDisplayName(), "analysisTime=", item.getAnalysisTime(), "analysisTimeMin=", item.getAnalysisTimeMin(), "analysisTimeMax=", item.getAnalysisTimeMax(), "NumProcessed=", item.getNumProcessed());
+ }
+ }
+ }
+ else {
+ duccLogger.debug(location, jobid, "map=null");
+ }
+ }
+
private void handleDuccServletJobPerformanceData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
@@ -1507,6 +1526,7 @@ public class DuccHandler extends DuccAbs
EffectiveUser eu = EffectiveUser.create(request);
PerformanceSummary performanceSummary = new PerformanceSummary(job.getLogDirectory()+jobNo);
PerformanceMetricsSummaryMap performanceMetricsSummaryMap = performanceSummary.readSummary(eu.get());
+ dumpMap(performanceMetricsSummaryMap);
if (performanceMetricsSummaryMap == null) {
sb.append(eu.isLoggedin() ? "(data missing or unreadable)" : "(not visible - try logging in)");
} else if (performanceMetricsSummaryMap.size() == 0) {
@@ -1529,8 +1549,9 @@ public class DuccHandler extends DuccAbs
long anTime = item.getAnalysisTime();
long anMinTime = item.getAnalysisTimeMin();
long anMaxTime = item.getAnalysisTimeMax();
+ long anTasks = item.getNumProcessed();
analysisTime += anTime;
- UimaStatistic stat = new UimaStatistic(shortname, entry.getKey(), anTime, anMinTime, anMaxTime);
+ UimaStatistic stat = new UimaStatistic(shortname, entry.getKey(), anTime, anMinTime, anMaxTime, anTasks);
uimaStats.add(stat);
}
Collections.sort(uimaStats);
@@ -1581,6 +1602,11 @@ public class DuccHandler extends DuccAbs
}
sb.append(FormatHelper.duration(ltime,Precision.Tenths));
sb.append("</span>");
+ // Tasks
+ sb.append("<td align=\"right\">");
+ sb.append("<span class=\"health_purple\" title=\"number of tasks per completed work item\">");
+ sb.append(""+"N/A");
+ sb.append("</span>");
// pass 2
for (int i = 0; i < numstats; ++i) {
sb.append(trGet(counter++));
@@ -1612,6 +1638,10 @@ public class DuccHandler extends DuccAbs
time = uimaStats.get(i).getAnalysisMaxTime();
ltime = (long)time;
sb.append(FormatHelper.duration(ltime,Precision.Tenths));
+ // Tasks
+ sb.append("<td align=\"right\">");
+ long lnumTasks = (long)(uimaStats.get(i).getAnalysisTasks());
+ sb.append(""+lnumTasks);
}
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/job.details.table.performance.jsp
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/job.details.table.performance.jsp?rev=1842752&r1=1842751&r2=1842752&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/job.details.table.performance.jsp (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/job.details.table.performance.jsp Wed Oct 3 19:26:47 2018
@@ -31,6 +31,7 @@ under the License.
<th class="none" title="the average time spent in the annotater">Avg<br><small>hh:mm:ss/workitem</small></th>
<th class="none" title="the minimum time spent in the annotater">Min<br><small>hh:mm:ss/workitem</small></th>
<th class="none" title="the maximum time spent in the annotater">Max<br><small>hh:mm:ss/workitem</small></th>
+ <th class="sorttable_numeric" title="the number of tasks processed">Tasks</th>
</tr>
</thead>
<tbody id="performance_data_area">