Florin, the newly released UIMA-AS 2.4.0 provides performance breakdown you
are looking for.
There is a new API on UIMA-AS client that facilitates this:

  public String sendAndReceiveCAS(CAS aCAS,
List<AnalysisEnginePerformanceMetrics> componentMetricsList) throws
ResourceProcessException;

For each CAS that you send you get a list of AEs with the performance
information.

If there is a failure in an AE, an exception is returned back to the client
which is thrown from the above API to the application.

The above API is for synchronous invocation only. We need to address how to
support per component performance breakdown in
async API. I had this coded at some point but it was backed out due to
backward compatibility problems.

-Jerry C

On Tue, Dec 11, 2012 at 8:11 AM, Spico Florin <spicoflo...@gmail.com> wrote:

> Hello!
>   I'm using UIMA AS 2.3.1 . My pipeline consists of a remote analysis
> engines and a consumer front ended by an aggregator.  I'm using  *
> UimaAsynchronousEngine* to send message to UIMA and to receive a reply back
> to it via *UimaAsBaseCallbackListener*. With this listener I would like to
> know:
> 1. statistics for each component name
> 2. which components (name) were failed
>
> A)Regarding the first point, I have been looking at the method
> *  public void entityProcessComplete(CAS aCas, EntityProcessStatus
> aStatus)  *of *UimaAsBaseCallbackListener, *parameter aStatus.
>
> Looking at the class *EntityProcessStatus,  *I can see that it provides a
> method returning  a list of *ProcessTraceEvent* .
>     *aStatus.getProcessTrace().getEventsByComponentName("UimaEE", false);
> *
> Unfortunately, it seems that the UimaEE is the generic name of all the
> components of the pipeline and thus you cannot distinguish which component
> is slow.
> In  my opinion, the functionality for one message processed should be as
> follow: *EntityProcessStatus *provide a method returning a Map where
>    a)*key* is the component name defined in the descriptor of the annotator
>    b)*value *a list of the events attach for it
> Question: Do we have such a functionality covered in a different way?
>
> B)For the point 2:
>    i)what will be returned by the method
> *EntityProcessStatus*.*getFailedComponentNames()?
> *
>    ii)Do we have the name of the failed component as the it is defined in
> the descriptor or it is the same problem with hard-coded name *UimaEE*?
>
> I'll look forward for your answers.
>
> Thank you.
> Regards,
>   Florin
>

Reply via email to